Computer-Sience/Network

[Network] NAT / SNAT / DNAT

dev_ss 2023. 12. 21. 00:35

 

 

 

일반적으로 가정에서 공유기에 연결된 PC는 사설 IP(Private IP)를 공유기로부터 배정받고, 외부로 패킷이 나갈 때는 공인 IP(Public IP)로 나가게 되어 통신을 하게 되는데, 이러한 IP 변환 과정에는 라우터의 NAT를 사용하게 된다.

 

 

통신의 흐름을 보면 아래 사진과 같이 볼 수 있다.

 

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

 

예시 : PC(Private IP) -> 공유기(NAT) -> 구글(Public IP) -> 공유기(NAT) -> PC(Private IP)

 

 

 

 

 

NAT(Network Address Translator) :

 

NAT는 패킷이 라우터를 지나갈 때 패킷의 IP 헤더에 있는 네트워크 주소 정보를 수정하여 IP 주소를 다른 IP 주소로 매핑하는 방법이다.

 

 

NAT는 다양한 장점이 존재한다.

 

IPv4는 2 ** 32(40억 이상) 개의 IP 주소가 존재하며, 그중 약 600,000,000개가 예약되어 있으며 공용 라우팅으로 사용할 수 없다.

 

지구의 모든 인구에 IPv4를 최소 1개씩도 배정될 수 없다는 것을 의미한다.

 

이러한 IPv4 고갈 현상도 NAT 기술을 이용하여 부족한 공인 IP를 절약할 수 있었고, 사설 IP와 공인 IP를 분리함으로 외부 접근을 제한하여 사설망에 대한 보안도 향상했다.

 

 

 

NAT에는 크게 두 가지로 구분하는데, 출발지의 주소를 바꾸는 SNAT과, 목적지의 주소를 바꾸는 DNAT이 있다.

 

 

 

※ AFT(Address Family Translator) : IPv4 -> IPv6 또는 IPv6 -> IPv4를 수행하는 기술 

 

 

 

 

 

SNAT(Source NAT) :

 

패킷의 출발지 주소를 변경하는 NAT이며, 1:N 상황의 NAT(공용 서비스로 Outbound) 일 때 이용된다.

 

일반적으로 주소 충돌이 있는 VPN을 통과하는 것과 같은 특정 요구 사항에도 사용되며, 반환되는 트래픽이 클라이언트로 직접 전달되지 않고 로드 밸런서로 트래픽을 고정할 때도 사용된다.

 

IP Masquerading : 특수한 형태의 SNAT이며, 방화벽 주소를 기반으로 외부 인터넷으로 나가는 NAT를 의미한다, 

 

 

 

 

 

DNAT(Destination NAT) :

 

패킷의 목적지 주소를 변경하는 NAT이며, 주로 공인 IP에서 내부 서버로의 포트 전달에 사용된다.

 

DNAT의 역할을 하는 것의 대표적인 예시가 로드 밸런서가 내부 사설망에 존재하는 서버의 사설 IP로 패킷을 전달하는 행위를 들 수 있다.

 

 

 

 

반응형