포트 포워딩, NAT, IP Masquerade…

이들은 내부(사설) 주소를 외부(공인) 주소로 바꾸어준다는 개념 또는 기능들 입니다. 다만 얼핏보면 다 똑같은 개념들을 왜 굳이 다른 용어로 설명하는 건가 싶기도 합니다. (실제로 검색해보면 적지않은 곳에서 개념을 혼용해서 씁니다)

하지만 알아보면 각각은 분명하게 다른 개념들입니다.

NAT

Untitled

출처: https://en.wikipedia.org/wiki/Network_address_translation

**NAT(Network Address Translation)**은 패킷의 IP header에 있는 주소를 수정하여 기존 IP 주소에서 다른 IP 주소로 Mapping 하는 기법의 총칭입니다. NAT는 NAT table이라는 테이블로 변환해야 할 주소들을 관리하고 있습니다.

NAT는 사설 주소 → 공인 주소 로의 변환이 제일 일반적이지만, 변환에 대한 다른 제약은 없기 때문에 사설 → 사설, 공인 → 공인 등으로의 변환도 가능합니다.

NAT의 장점은 여러 사설 IP 주소를 하나의 공인 IP 주소로 Mapping 함으로써 각 호스트마다 공인 IP 주소를 할당할 필요가 없다는 것입니다. 따라서 공인 IP 주소를 절약할 수 있습니다.

또한 IP 주소 변환을 통해서 내부 사설망을 보호하고, 경우에 따라서는 호스트의 부하를 분산 시킬수 있는 로드 밸런싱이 가능합니다.

하지만 패킷을 변환시키고 그 과정에서 체크섬도 다시 계산하기 때문에 복잡성을 증가시켜서 네트워크 성능에 영향을 줄 수 있고, FTP, SIP 등의 프로토콜에서는 사용할 수 없습니다.

NAT 연결 방법에 따른 분류

Basic NAT