시리즈

인터넷 계층 (Internet Layer, (TCP/IP))

IP(Internet Protocol) 주소는 네트워크 상에서 장치를 식별하기 위한 고유한 주소. 다들 알고 계시죠. Public IP, Private IP는 어렵지 않은 개념이지만, 이 IP에 연결하고자 할 때 ‘어떤 것에 연결해야할까’하는 상황에서 많이 혼동될 때가 있습니다.

Public IP

Public IP는 인터넷 상에서 고유(전 세계에서 유일)한 IP입니다. 인터넷 서비스 제공업체가 할당하며, 외부 네트워크와의 통신에 사용되는데요. 외부에 공개되어 있기 때문에, 다른 네트워크에서 접근이 가능해집니다. 공개되어 있기 때문에 방화벽이나 VPN등의 보안조치가 필요하겠죠.

Private IP

Private IP는 내부 네트워크에서만 사용되는 IP주소 입니다. 외부 인터넷에서는 직접 접근할수가 없는데요. 가정, 기업등 내부 네트워크에서 장치간 통신을 위해 사용됩니다. 우리의 스마트폰이 와이파이에 연결될때는 와이파이의 내부 IP에 연결이 되는것입니다(연결 될 때, 공유기(라우터)로부터 사설 IP를 할당).

외부? 내부?

‘외부 네트워크’, ‘내부 네트워크’ 이건 물리적, 논리적 관점에서 정의될 수 있습니다. 논리적으로는 네트워크 방화벽 안밖을 기준으로 나누고, 물리적으로는 가정, 기업, 데이터 센터 등에서 장치들이 연결된 환경을 기준으로 나눌 수 있습니다.

NAT/DNAT

위에서 정의한 외부, 내부에 연결에서 이 연결을 관리하는 핵심 기술은 NAT(Network Address Translation)입니다. 외부에서는 내부 네트워크의 Private IP를 알 수 없도록 보호해야하고. 또 내부 네트워크에서는 외부 네트워크(인터넷)와 통신해야하는 경우가 있기 때문에 이 기술이 필요합니다.

  • 내부 -> 외부 : 내부 장치(Private IP)가 외부 네트워크와 통신할 때 NAT기술로 출발지 주소를 Public IP로 변환
  • 외부 -> 내부 : 외부에서 요청이 들어올 경우, NAT장비는 DNAT를 통해 내부 네트워크의 장치로 전달

DNAT(Desitnation NAT)

외부에서 공인 IP를 통해 해당 서버에 접근할때 요청의 목적지 주소를 변경해서. 외부 네트워크와 내부 네트워크 간의 연결을 가능하게 하는 기술입니다. 외부에서 203.0.113.10:80으로 요청 -> 라우터가 요청을 192.168.0.10:80으로 전달. 이런식의 기술이고 이 역시 NAT기술중 하나입니다. 따라서 NAT라고 퉁쳐 얘기합니다.

어떤 IP에 연결해야할까

위에서 어떤 IP에 연결해야할지 혼동되는 상황이 많다고 얘기를 드렸었는데 다음 항목들을 점검하며 고민해보면 좋습니다.

목적지

내(네트워크 장치)가 어디(내부, 외부)에 속해 있는지 기준을 잡고

  • 외부 웹사이트에 접속하려면 공인 IP 주소로 요청.
  • 내부 네트워크 장치에 연결하려면 사설 IP 주소로 요청.

방향

외부에서 내부로 이동하는가? 내부에서 외부로 이동하는가?

  • 내부 -> 외부 : 사설 IP로 요청. NAT기술로 외부와 연결
  • 외부 -> 내부 : 공인 IP로 요청. DNAT로 내부와 연결

정리

구분 설명
Public IP 전 세계에서 유일한 IP 주소로, 외부 네트워크와 통신할 때 사용. 방화벽 및 VPN 등 보안 조치 필요.
Private IP 내부 네트워크에서만 사용되는 IP 주소. 외부에서는 접근 불가. 내부 장치 간 통신을 위해 사용.
NAT 내부 장치의 Private IP를 외부 통신 시 Public IP로 변환. 외부 요청을 내부 네트워크로 전달.
DNAT 외부 요청의 목적지 주소를 변경해 내부 장치와 연결 가능하도록 지원.
내부 -> 외부 내부 네트워크에서 외부 인터넷으로 요청. NAT 기술로 Public IP로 변환.
외부 -> 내부 외부 네트워크에서 내부 네트워크로 요청. DNAT 기술로 내부 장치와 연결.