NAT, PAT 그리고 Port Forwarding

공유기에서 자주 봤을법한 기능들이다.
용어가 혼동돼 정리해본다.

NAT는 Network Address Translation의 약자로, 말 그대로 주소를 변환하는 기능이다.
이러한 기능을 IP Masquerade라고도 한다.
다만, IP Masquerade는 IP를 바꾸기만 해주는 반면
NAT는 더 나아가 패킷의 checksum 등을 알맞게 수정해준다.

위키에서도 보이듯이 NAT도 종류가 다양하다.
가장 기초적인 것이 주소가 1:1로 대응되는 static NAT이다.
반면 우리는 주소가 1:N으로 대응되는 dynamic NAT을 일반적으로 사용한다.

static NAT의 경우 주소가 1:1로 대응되기 때문에 문제가 안되지만
dynamic NAT는 인바운드로 들어오는 패킷에 대해서는 추가적인 이슈가 생긴다.
NAT 인터페이스에 포워딩된 패킷이 NAT 내부 네트워크의 어느 곳으로 포워딩돼야하는지 모르기 때문에 발생하는 이슈이다.
이를 해결해주는 것이 PAT(Port Address Translation)이다.

PAT은 dynamic NAT의 일종으로, 다양한 내부 네트워크의 주소를 port로 매핑하여 통신시키는 것이다.
이 경우, NAT 인터페이스에 도착한 패킷에 포트번호가 적혀있어 NAT 내부 네트워크의 어느 곳으로 포워딩되어야 한다는 것을 알 수 있다.

다시말해, 현재 NAT이라는 이름으로 널리 사용되는 것은 dynamic NAT 가운데에서도 PAT이다.
PAT은 하나의 인터페이스에서 두 이기종의 네트워크 간 통신을 가능하게 해주는 기술인 것이다.

반면 포트포워딩은 이러한 개념과는 다르다.
포트포워딩은 인터페이스의 특정 포트로 들어온 패킷을 내부 네트워크에 존재하는 특정 단말의 특정 포트에 매핑해주는 기술로, 포트 간 매핑을 실현하는 기술이다.
반면 PAT은 dynamic NAT을 베이스로 하여, 포트번호를 일종의 DEMUX 키로서 사용하는 것이다.
즉, end-to-end 통신을 실현하는 기술이다.

댓글 남기기