IP의 패킷의 TPC/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록 하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술을 말한다.
패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 한다. NAT을 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하면서 인터넷에 접속하기 위함이다. 많은 네트워크 관리자들이 NAT을 편리한 기법이라고 보고 널리 사용하고 있으며, NAT가 호스트 간의 통신에 있어서 복잡성을 증가시킬 수 있으므로 네트워크 성능에 영향을 줄 수 있는 것은 당연하다 볼 수 있다.
NAT는 IPv4의 주소 부족 문제를 해결하기 위한 방법으로서 고려되었으며, 주로 비공인(사설, local) 네트워크 주소를 사용하는 망에서 외부의 공인망(public, 예를 들면 인터넷)과의 통신을 위해서 네트워크 주소를 변환하는 것입니다.
즉 내부 망에서는 사설 IP 주소를 사용하여 통신을 하고, 외부망과의 통신시에는 NAT를 거쳐 공인 IP 주소로 자동 변환합니다.
1:1 주소 매핑을 수행하기 때문에 NAT 라우터로 들어온 inside→outside 패킷(또는 그 반대) 만이 주소 전환의 대상이 된다.
즉, IP의 헤더라는 부분을 체크하여 NAT 테이블에 의해 해당 주소를 바꾼 다음 checksum을 다시 계산하여 IP 헤더를 바꾸는 방법. Application layer에서도 NAT의 주소 전환이 반영되려면, NAT은 IP 주소의 참조 내용을 담고 있는 application 데이터 부분을 새로운 주소로 변환해야 한다.
공인 IP주소 절약
인터넷의 공인 IP주소는 한정되어 있기 때문에 가급적 이를 공유할 수 있도록 하는 것이 필요한데 NAT를 이용하면 사설 IP주소를 사용하면서 이를 공인 IP주소와 상호변환할 수 있도록 하여, 공인 IP주소를 다수가 함께 사용할 수 있도록 함으로써 이를 절약할 수 있는 것입니다
보안
사설망은 특별한 설정을 해 주지 않는 이상 외부망에서 사설망 내부 PC로의 접근이 불가능한 구조로 되어 있다. 따라서 네트워크를 통한 공격에 매우 안전해진다.
공개된 인터넷과 사설망 사이에 방화벽(Firewall)을 설치하여 외부 공격으로부터 사용자의 통신망을 보호하는 기본적인 수단으로 활용할 수 있습니다. 이때 외부 통신망 즉 인터넷망과 연결하는 장비인 라우터에 NAT를 설정할 경우 라우터는 자신에게 할당된 공인 IP주소만 외부로 알려지게 하고, 내부에서는 사설 IP주소만 사용하도록 하여 필요시에 이를 서로 변환시켜 줍니다. 따라서 외부 침입자가 공격하기 위해서는 사설망의 내부 사설 IP주소를 알아야 하기 때문에 공격이 불가능해지므로 내부 네트워크를 보호할 수 있게 됩니다.
end-to-end간의 추적(IP trace)가 어려워짐
여러 개의 NAT 라우터에 의해 multiple NAT가 적용되었을 경우, 경로 추적이 더 어려워지는데 이런한 단점은 반면 해커가 대상 경로를 추적하기 어렵게 만듦으로써 좀 더 보안성 있는 연결을 하게 된다 볼 수 있음
NAT 라우터를 거치는 모든 패킷을 scan 하므로 switching path delay가 거치게 됨
NAT은 IP주소를 이용하는 몇몇 application을 동작하지 못하게 할 수도 있는데 이러한 경우 static NAT을 이용해 해결이 가능한 경우도 있음