Skip to content

Network address translation

네트워크 주소 변환(영어: network address translation, 줄여서 NAT)은 컴퓨터 네트워킹에서 쓰이는 용어로서, IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말한다. 패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다. NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함이다. 많은 네트워크 관리자들이 NAT를 편리한 기법이라고 보고 널리 사용하고 있다. NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있는 것은 당연하다.

NAT implementation classifications

Full-cone NAT

Full_Cone_NAT.png

내부에 있는 호스트들의 모든 요청은, 모두 같은 외부 ip, port 로 맵핑된다.
더군다나 어떤 외부 호스트든 공인 IP가 맵핑된 패킷 보내기에 의해 내부 호스트로 패킷을 보낸다.

(Address)-restricted-cone NAT

Restricted_Cone_NAT.png

목적지의 주소에 따라 NAT에 맵핑되는 포트가 달라진다.
홀 펀칭을 위해서는 목적지의 IP만 동일시하여 뚫어주면 목적지의 패킷을 받을 수 있다.

Port-restricted cone NAT

Port_Restricted_Cone_NAT.png

목적지의 주소에 따라 NAT에 맵핑되는 포트가 달라진다.
홀 펀칭을 위해서는 목적지의 IP와 포트를 동일시하여 뚫어주어야만 목적지의 패킷을 받을 수 있다.

Symmetric cone NAT

Symmetric_NAT.png

목적지의 주소와 포트에 따라 NAT에 맵핑되는 포트가 달라진다.
P2P로의 1:1 연결에서는 적어도 한 쪽이 Symmetric Cone NAT 가 아니거나 공인 아이피를 소유하고 있는 Peer 여야 한다.
만약 양쪽 모두 Symmetric Cone NAT 일 경우 TURN과 같은 중계 서버가 필요하다.

A case for TURN

STUN 서버가 더 이상 충분하지 않으면 TURN 서버를 사용하여 미디어를 중계해야 합니다. 모든 symmetric NAT에 TURN 서버가 필요한 것은 아닙니다.

-

Full Cone

Restricted Cone

Port Restricted Cone

Symmetric

Full Cone

STUN

STUN

STUN

STUN

Restricted Cone

STUN

STUN

STUN

STUN

Port Restricted Cone

STUN

STUN

STUN

TURN

Symmetric

STUN

STUN

TURN

TURN

홀펀칭 (Hole punching)

자세한 내용은 Hole punching항목 참조.

NAT Traversal

해당 항목 참조.

Mapping Behavior

Filtering Behavior

오리뎅이의 LAN 통신 이야기

  1. 삼테이블을 정복하면 LAN 통신은 끝!! - Goduck2-LAN-1.pdf
  2. ARP는 이더넷 통신의 꽃이다 - Goduck2-LAN-2.pdf
  3. Ethernet switch는 Plug & Play 가 된다? - Goduck2-LAN-3.pdf
  4. Routing Table은 Router와 어떤 관계인가요? - Goduck2-LAN-4.pdf
  5. Proxy ARP가 없다면? - Goduck2-LAN-5.pdf
  6. Gratuitous ARP가 얼마나 요긴한데, 이름이 꽁짜 ARP? - Goduck2-LAN-6.pdf
  7. Subnet, 서브넷, Subnet Mask - Goduck2-LAN-7.pdf
  8. VLAN - 그것이 알고 싶다. - Goduck2-LAN-8.pdf
  9. 꼬리표(VLAN Tag) 없으면, 원주민(Native)인가요? - Goduck2-LAN-9.pdf

See also

Favorite site

Tutorials

Tutorials

References


  1. NAT_easy_to_understand.pdf