NAT(Network Address Translation)는 사설 IP 주소를 공인 IP 주소로 변환하여 여러 장치가 하나의 공인 IP로 인터넷에 접속할 수 있게 하는 기술입니다.
IPv4 주소는 약 43억 개입니다. 전 세계 수백억 개의 기기가 모두 공인 IP를 가지는 것은 불가능합니다. NAT를 사용하면 가정이나 회사 내부의 수많은 기기가 하나의 공인 IP를 공유하여 인터넷에 접속할 수 있습니다.
사설 IP 범위:
10.0.0.0 ~ 10.255.255.255172.16.0.0 ~ 172.31.255.255192.168.0.0 ~ 192.168.255.255이 범위의 IP는 인터넷에서 라우팅되지 않습니다. 내부 네트워크에서 자유롭게 사용할 수 있습니다.
[내부 네트워크] [라우터/NAT] [인터넷]
192.168.1.2:5000 → 공인IP:12345 → 서버 80
192.168.1.3:6000 → 공인IP:12346 → 서버 80
라우터는 내부 IP:포트 ↔ 외부 포트 매핑을 NAT 테이블에 보관합니다. 서버의 응답이 오면 NAT 테이블을 참조하여 올바른 내부 장치로 전달합니다.
가장 일반적인 NAT입니다. 가정용 공유기가 사용하는 방식입니다.
포트 포워딩이 대표적 사례입니다. 외부에서 공인 IP:포트로 접속하면 내부 서버로 연결합니다.
일반적으로 말하는 NAT는 대부분 PAT입니다. IP뿐만 아니라 포트 번호도 변환합니다.
두 내부 장치가 서로 직접 통신하려면 NAT를 통과해야 합니다. NAT 통과(NAT Traversal) 기술이 필요합니다. 화상 통화, 온라인 게임에서 NAT 문제가 자주 발생합니다.
하나의 공인 IP를 여러 장치가 공유하므로, 공인 IP만으로 개별 장치를 특정할 수 없습니다.
IPv6가 보편화되면 사실상 무한한 IP 공간으로 NAT 없이 각 장치가 공인 IP를 가질 수 있게 됩니다.