네트워크

[네트워크] NAT

slimdog 2025. 4. 14. 23:28

 

 

NAT (Network Address Transation)

네트워크의 NAT(Network Address Translation) 기술은 사설 IP를 공인 IP로 변환하기 위한 서비스입니다. NAT는 공인 IP 주소의 부족 문제를 해결하고자 사설 IP 주소를 사용할 수 있도록 개발되었습니다.

 

통상적으로 L3 장비를 사용하여 다수의 사설 IP를 하나의 공인 IP주소로 변환합니다. 대표적인 예시로는 우리가 가정 집에도 많이 사용하고 있는 공유기가 있습니다.


NAT에는 3가지의 방식이 존재합니다.

 

1. DNAT (Destination NAT)

외부에서 서버를 접근할 경우 사용자의 Client는 사설 IP를 알 수 없습니다. 때문에 사설로서 존재하는 서버로 포트포워딩이 필요합니다. 통상적으로 방화벽/UTM에서 NAT 정책룰이 셋업되며 위와 같은 환경에서의 DNAT정책은 아래와 같습니다.

출발지: ANY
목적지: 211.100.250.100

포트: ALL

변환 사설 IP: 192.168.100.250


사용자는 방화벽/UTM 장비의 공인 IP만 알고 있기 때문에 서버의 사설 IP 존재를 알 수 없어 서버를 은닉할 수 있다는 장점이 있습니다. 아래와 같이 목적지 IP 기준으로 NAT 정책을 셋업하는 기술이 Destination NAT 입니다.

 


2. SNAT (Source NAT)

SNAT는 방화벽/UTM 장비를 들어가보면  NAT정책에 1번 셋업 정책으로 들어갑니다. DNAT가 외부에서 유입되는 패킷을 포트포워딩 했다면, SNAT는 출발지를 변환하는 기술입니다.

 

192.168.100.250 IP를 가진 사설 IP로는 외부로 통신이 불가능합니다. 흔히 공유기를 사용하는 가정집에 인터넷 망에서 네이버>내아이피를 검색해서 나오는 IP가 Source NAT가되어 외부로 변환된 IP를 의미합니다.

 

출발지: 192.168.100.0/24
목적지: ANY

포트: ALL

변환 공인 IP: 211.100.250.100

 

3. MASQUERADE

마스쿼레이드는 가면 무도회라는 어원에서 시작된 기술로서, SNAT와 비슷하지만 출발지의 공인 IP를 은닉하여 유동적으로 SNAT가 필요할 때 사용하는 기술입니다.

출발지: 192.168.100.0/24
목적지: ANY

포트: ALL

변환 공인 IP: 211.100.250.100

 

위와 같은 NAT 정책을 셋업하여 잘 통신을 하던 도중 

공인 IP가 갑작스럽게 변경되는 상황이 발생하였습니다. 방화벽/UTM의 셋업 정책으로 인해 211.100.250.111의 IP를 SNAT 정책으로 셋업하면 되겠지만, 셋업을 새로 해주는 시간 동안에는 해당 대역대는 장애 상황입니다.

마스쿼레이드를 사용하게 되면 해당 방화벽/UTM에 셋팅된 인터페이스 IP로 자동 변환 되게 합니다.


해당 기술은 리눅스 iptables/nftables에서 사용하는 기술로서, 각 벤더의 장비마다 상이한 방식을 가지고 있으나 근본적인 개념/지식만 이해한다면 상황에 따라 사용함에 있어 어려움이 없을것 입니다. 향후에는 쿠버네티스의 CNI에서 중요한 역할을 하게됩니다.

'네트워크' 카테고리의 다른 글

[네트워크] 계층형 아키텍처  (0) 2025.04.15
[네트워크] 표준 아키텍처  (0) 2025.04.15
[네트워크] DHCP  (0) 2025.04.09
[네트워크] 광모듈과 케이블  (0) 2025.04.04
[네트워크] ARP  (0) 2025.04.02