본문으로 바로가기

SNAT와 DNAT

category Computer Science/Network 2022. 5. 18. 22:35

NAT란?

Network Address Translation의 약자로써 사설 네트워크(Private Network)에 속한 여러개의 호스트가 하나의 공인 IP를 사용하여 인터넷에 접속하기 위한 기술이다.

 

 

동작원리

NAT 통신 예시 이미지

  1. 사용자는 라우터에게 구글 사이트로 접속하라는 신호를 보낸다.
  2. 라우터는 구글 사이트를 요청한 사설IP를 저장한다.
  3. 라우터의 NAT기술을 사용하여 사설IP를 공인IP로 변경한다.
  4. 구글은 해당 요청을 받고 59.6.66.238에게 페이지를 응답한다.
  5. 라우터는 응답받은 정보를 확인하고 #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를 담당한다.