NAT란?
Network Address Translation의 약자로써 사설 네트워크(Private Network)에 속한 여러개의 호스트가 하나의 공인 IP를 사용하여 인터넷에 접속하기 위한 기술이다.
동작원리
- 사용자는 라우터에게 구글 사이트로 접속하라는 신호를 보낸다.
- 라우터는 구글 사이트를 요청한 사설IP를 저장한다.
- 라우터의 NAT기술을 사용하여 사설IP를 공인IP로 변경한다.
- 구글은 해당 요청을 받고 59.6.66.238에게 페이지를 응답한다.
- 라우터는 응답받은 정보를 확인하고 #2번에서 기록해둔 요청한 사설 IP를 바탕으로 192.168.0.4에게 페이지를 전달합니다.
NAT는 Source에 적용하느냐, Destination에 적용하느냐에 따라 SNAT와 DNAT로 구분된다.
SNAT (Source NAT)
- 출발지 주소를 변경하는 NAT
- 인터넷으로 나가는 패킷의 Source IP를 게이트웨이의 공인 IP로 바꾼다.
- iptables의 POSTROUTING(사후 라우팅)의 체인룰이 SNAT를 담당한다.
DNAT (Destination NAT)
- 도착지 주소를 변경하는 NAT
- 외부에서 내부로 패킷을 보낼 때 사용한다.
- 대표적으로 Load Balancer가 있다.
- iptables의 PREROUTING(사전 라우팅)의 체인룰이 DNAT를 담당한다.