Synology NAS는 ip를 알려준적도 없는데, ddns를 키면 클라이언트는 어떻게 NAS를 인식할까?
Summary 시놀로지 NAS는 UPnP를 통해 공유기의 포트포워딩을 자동 설정하여 외부 접속 경로를 확보하고, 클라이언트는 DDNS를 통해 공인 IP를 확인하여 NAS에 접속한다. NAT Loopback 기능 덕분에 내부망에서도 외부 IP로 접근할 수 있으며, 포트 번호 없이 접속할 경우 NAS가 자동으로 리다이렉트를 통해 관리 페이지로 안내한다. 수동 포트포워딩이 우선시되므로, 포트 충돌이 발생할 경우 사용자가 명시적으로 포트를 입력해야 한다.


[주제 1: NAS와 공유기 간의 UPnP 자동 설정 및 우선순위]
시놀로지 NAS는 네트워크 환경 내에서 외부 접속 경로를 확보하기 위해 UPnP(Universal Plug and Play) 통신 규약을 활용하여 공유기의 포트포워딩 설정을 자동 제어한다. 사용자가 시놀로지 설정 내의 라우터 구성을 완료하면, NAS는 로컬 네트워크상의 게이트웨이를 탐색하여 관리 페이지 및 서비스에 필요한 특정 포트(5000, 5001, 80, 443 등)로 인입되는 패킷을 자신의 내부 IP 주소로 전달하도록 공유기에 요청한다. 공유기는 이 요청을 수용하여 내부 메모리에 외부 포트와 내부 IP를 매핑하는 테이블을 생성함으로써 사용자의 수동 설정 없이도 데이터 전달 경로를 구축한다. 다만, 공유기 관리자 페이지에서 직접 입력한 수동 포트포워딩 규칙은 UPnP를 통한 자동 규칙보다 높은 우선순위를 가지며, 만약 동일한 포트를 두고 다른 서버와 충돌이 발생할 경우 수동 설정된 경로로 패킷이 우선 전달된다.
UPnP는 실제로 IGD(Internet Gateway Device) 프로토콜을 기반으로 작동합니다.
기기는 SOAP(Simple Object Access Protocol) 메시지로 AddPortMapping 명령을 전송하여 라우터에 포트 매핑 규칙을 추가합니다.
<m:AddPortMapping>
<NewRemoteHost></NewRemoteHost>
<NewExternalPort>5000</NewExternalPort>
<NewProtocol>TCP</NewProtocol>
<NewInternalPort>5000</NewInternalPort>
<NewInternalClient>192.168.0.X</NewInternalClient>
</m:AddPortMapping>이 정보는 라우터의 메모리에 저장됩니다.
리스 타임(Lease Time) 메커니즘
허나, UPnP 포트포워딩은 영구적이지 않습니다.
대신 리스 타임이 설정됩니다.
예를 들어:
- ASUS 라우터: 약 60분 리스 타임
- 일부 라우터: 3-5분마다 만료된 리스 정리
- 리스 타임 0: 무한 지속 (구현에 따라 상이) 기기는 리스를 갱신해야 하며, 그렇지 않으면 포트포워딩 규칙이 자동으로 삭제됩니다.
이는 세션 기반으로 작동한다는 의미입니다.
[주제 2: DNS 질의를 통한 공인 IP 식별 및 접속 경로 확립]
클라이언트 PC가 DDNS 주소를 통해 NAS에 접속하려 할 때, 시스템은 전 세계 도메인 관리 체계인 DNS(Domain Name System) 서버를 통해 해당 주소에 할당된 라우터의 공인 IP(Public IP)를 먼저 확인한다. 브라우저가 DDNS 주소에 대한 IP 정보를 DNS 서버에 질의하면, 서버는 해당 도메인에 등록된 질문자 거주지의 라우터 공인 IP를 응답으로 반환한다. 이를 통해 접속 단말기는 패킷의 최종 목적지 주소를 획득하게 되며, 해당 공인 IP를 향해 데이터 패킷을 송신함으로써 물리적인 접속 경로를 확립한다. 이 과정에서 패킷은 논리적으로 외부를 지향하지만 실제로는 일차적인 게이트웨이인 라우터에 먼저 도달하는 구조를 취한다.
[주제 3: NAT Loopback을 통한 내부 네트워크 패킷의 회귀 메커니즘]
내부망 환경에서 외부 공인 IP를 통해 접속을 시도하더라도 연결이 단절되지 않는 이유는 공유기에서 지원하는 NAT Loopback(Hairpin NAT) 기능에 기인한다. 내부 네트워크의 단말기가 공유기의 공인 IP를 목적지로 하는 패킷을 송신할 경우, 라우터는 해당 목적지 IP가 자기 자신임을 식별한다. 공유기는 이를 인터넷망으로 송출하지 않고 내부 네트워크로 즉시 회귀시키며, 이때 앞서 UPnP나 포트포워딩으로 작성된 매핑 테이블을 참조하여 해당 패킷을 목적지인 NAS의 내부 IP로 정확히 배달한다. 결과적으로 내부망 내의 패킷 유턴 현상을 통해 내부 사용자는 외부 주소로도 내부 자원에 원활하게 접근할 수 있게 된다.
외부 요청: 203.0.113.45:80 → 라우터라우터 포트포워딩 테이블 조회: 외부 포트 80 → 내부 IP 192.168.0.x, 포트 80라우터 재작성: 패킷 목적지를 192.168.0.x:80으로 변경내부 NAS 수신[주제 4: 포트 미입력 시의 자동 리다이렉션 및 예외 상황]
사용자가 접속 주소 뒤에 별도의 포트 번호를 명시하지 않을 경우, 웹 브라우저는 HTTP 표준 규약에 따라 자동으로 80번 포트를 통해 접속을 시도한다. 공유기가 UPnP 설정을 통해 80번 포트의 신호를 NAS로 전달하도록 설정되어 있다면, 해당 신호는 NAS의 웹 서버에 도달한다. 이때 NAS는 내부 설정에 따라 관리 페이지 포트인 5000번 또는 5001번으로 접속할 것을 명령하는 리다이렉트(Redirect) 신호를 브라우저에 회신하며, 이에 따라 사용자의 주소창은 자동으로 관리 포트로 변경된다. 그러나 80번 또는 443번 포트가 타 서버에 의해 선점되어 NAS로 신호가 도달하지 못하는 상황에서는 이러한 자동 전환이 이루어지지 않으므로, 사용자는 반드시 주소창에 명시적인 포트 번호를 입력하여 공유기가 올바른 경로를 식별하도록 해야 한다.
QnA로 이해해보자

1. NAS가 라우터에게 무엇을 “집어넣었나?”
A: UPnP를 통한 자동 포트 매핑 정보입니다.
NAS는 부팅되거나 네트워크 설정이 바뀔 때, UPnP(Universal Plug and Play)라는 프로토콜을 사용해 공유기(게이트웨이)에게 메시지를 보냅니다.
- 전달 정보: “내 내부 IP는 192.168.0.x이고, 외부에서 80, 443, 5000, 5001번 포트로 신호가 오면 나에게 보내줘.”
- 결과: 공유기는 이 정보를 받아 자신의 메모리에 자동 포트포워딩 명단을 작성합니다.
2. 라우터는 어떻게 NAS의 위치(IP/포트)를 찾는가?
A: DNS 응답과 공유기 내부의 “명단"을 대조합니다.
- DNS 조회: 클라이언트 PC가 DDNS 주소를 치면 DNS 서버로부터 공유기의 공인 IP를 받아옵니다.
- 공유기 도달: PC는 공유기의 공인 IP로 접속을 시도합니다.
- 명단 확인: 공유기는 들어온 패킷의 포트 번호를 보고, 아까 NAS가 UPnP로 넣어둔 명단에서 “이 포트는 192.168.0.x로 가라"는 기록을 찾아내 전달합니다.
3. 내부망에서 외부 IP로 접속이 가능한 이유는?
A: NAT Loopback (Hairpin NAT) 기술 덕분입니다.
공유기는 내부에서 보낸 신호의 목적지가 자기 자신의 공인 IP일 경우, 이를 인터넷 밖으로 내보내지 않고 다시 내부(NAS)로 U턴시킵니다. 이 기술이 있어야만 내부망에서도 DDNS 주소로 접속할 수 있습니다.
4. 포트 번호 없이 접속했는데 어떻게 5000번을 아는가?
A: 기본 포트(80) 접속 후 NAS가 직접 알려줍니다 (리다이렉트).
- 포트를 안 쓰면 브라우저는 자동으로 80번으로 접속합니다.
- 공유기는 명단에 따라 80번 요청을 NAS로 보냅니다.
- NAS는 “관리 페이지는 5000번이니 이리로 다시 오세요"라고 응답하여 브라우저 주소창을 자동으로 변경(Redirect)시킵니다.
5. 다른 서버와 포트가 겹치면 어떻게 되는가?
A: 수동 설정이 우선되며, 접속에 실패할 수 있습니다.
- 공유기에서 사용자가 직접 설정한 수동 포트포워딩은 NAS의 자동 UPnP 요청보다 우선순위가 높습니다.
- 80번 포트를 다른 서버가 쓰고 있다면 리다이렉트가 동작하지 않으므로, 사용자는 반드시 주소 뒤에 :5000을 직접 붙여서 공유기가 NAS를 찾을 수 있게 도와줘야 합니다.
GitHub 계정으로 로그인하여 댓글을 남겨보세요. GitHub 로그인
댓글 시스템 설정이 필요합니다
GitHub Discussions 기반 댓글 시스템을 활성화하려면:
- Giscus 설정 페이지에서 설정 생성
- GISCUS_SETUP_GUIDE.md 파일의 안내를 따라 설정 완료
- Repository의 Discussions 기능 활성화
Repository 관리자만 설정할 수 있습니다.