NAT(Network Address Translation)

이경환·2023년 11월 27일

네트워크

목록 보기
3/5

NAT(Network Address Translation)

개인 IP 주소 또는 로컬 주소가 공용 IP 주소로 변환되는 것을 말합니다. NAT는 로컬 IP 또는 개인 IP 주소를 글로벌 또는 공용 IP 주소로 변환하여 사용 가능한 IP 주소의 고갈 속도를 늦추는 데 사용됩니다.

예를들어 컴퓨터,스마트폰 , 스마트 TV 세가지 기기가 잇는 홈 네트워크에서 NAT를 사용하지 않을 경우, 인터넷에 연결하려면 각 장치에 고유한 공용 IP 주소가 있어야 합니다.

하지만 NAT를 사용하면 이러한 모든 장치가 하나의 공용 IP 주소공유하고 각자의 사설 IP 주소를 사용하여 인터넷과 통신할 수 있습니다.

장치 중 하나가 인터넷에 요청을 보내면 NAT에서는 개인 IP 주소가 공용 IP 주소로 변환됩니다. 즉 외부 입장에서는 어떤 사설IP가 보냈는지 알지 못합니다. 그냥 공유기 주소(공인 IP)만 알고 있습니다.

  • 추가적으로 공인 IP 부족말고도
    • 외부로부터 보안성이 우수하다.
    • 공인 IP가 변경 되어도, 서버안의 기존 설정을 유지할 수 있다.
  • Static NAT, Dynamic NAT등이 있다.

위와 같은 특징이 있습니다.

그림으로 이해해 보겠습니다.

sw1(공유기)에 연결된 컴퓨터들은 각가의 사private(사설IP라 칭하겠습니다)한 Ip를 받습니다.

만일 인터넷을 통해 특정 사이트에 접속하고 싶다면, 컴퓨터는 공유기에게 신호를 보냅니다.

신호를 받은 공유기는 다음 순서를 거쳐 웹사이트에 요청을 보냅니다.

  1. 먼저 요청받은 내부 Ip를 기록한다. ex) 192.168.1.2
  2. 요청한 컴퓨터 IP는 외부에서 접속할 수 없는 사설 IP입니다. 따라서 사설 IP를 공인 IP로 변환합니다.

이제 공유기는 이 요청을 공인 IP로 웹사이트에 요청을 하고 웹사이트는 이 요청을 처리합니다. 그리고 다시 웹사이트는 다시 공인 IP로 응답을 보내고

sw1(공유기는) 사설 IP 192.168.1.2로 보내 통신을 완료합니다.

좀 더 자세히 알아 보겠습니다

인터넷 공유기를 통해 외부에 있는 웹 서버를 접근하고자 하는 경우, 해당 요청 패킷은 반드시 공유기를 거치게 되어있습니다. 이 때 사설 IP는 웹서버 측에서 알 수 없는 IP주소이기 때문에 공인 IP를 쓴다고 보면됩니다.

NAT는 따라서 다음과 같은 과정을 거치게 됩니다.

  1. 패킷 헤더에 host와 목적지 서버의 주소를 기록합니다. 이 때, 출발지는 자신의 사설망 IP를 기록합니다.
host 컴퓨터
출발지: 10.0.1
목적지: 200.100.10.1
  1. 공유기에서 외부로 나가는 패킷을 인식, host의 IP 주소를 라우터의 주소 즉(게이트웨이의 주소) 공인IP주소로 변경합니다. 이 때 별도의 NAT테이블을 보관합니다.
라우터(게이트 웨이)에서 다시출발
출발지: 10.0.1 -> 150.150.01.1 
목적지: 200.100.10.1
  1. 웹 서버에서 수신한 데이터를 처리한 후, 응답하여 패킷을 보냅니다. 목적지는 라우터(게이트웨이의 공인 IP입니다.
웹서버에서 출발
출발지: 200.100.10.1 
목적지:150.150.01.1
  1. host의 기본 게이트웨에서 웹서버가 보낸 패킷을 받으면, 기록해 두었던 NAT테이블을 참고하여 최종 목적지인 host 컴퓨터에게 사설IP주소로 변경하여 패킷을 전달합니다.
라우터(게이트 웨이)에서 다시출발
출발지: 200.100.10.1 
목적지:150.150.01.1 ->  10.0.1

사설 네트워크에 한 대의 호스트가 아닌 여러 대의 호스트가 같은 목적지와 통신 할 때, 되돌아오는 패킷의 최종 목적지가 어디로 가야하는 혼선이 생길 수 있습니다.

이 때 별도의 추가 포트를 설정하여 패킷을 구분하는 PAT방식을 사용합니다.

PAT

위의 세가지 기기가 있는 옛 컴퓨터가 인터넷에 요청을 보내면 PAT는 고유 포트 번호를 할당한 후 컴퓨터의 개인 IP 주소를 네트워크의 공용 IP 주소로 변환합니다.

목적지인 서버는 요청을 수신 후 고유 포트 번호로 응답하여 컴퓨터가 응답을 받을 수 있도록 합니다.

차이점

NATPAT
네트워크 주소변환포트 주소 변환
개인 IP 주소 → 공용 IP 주소로 변환개인 IP 주소 → 포트 번호를 통해 공용 IP 주소로 변환
IPv4 주소를 사용IPv4 주소와 port를 사용
정적, 동적 NAT 및 PAT/ NAT 과부하/IP 마스킹 총 3가지 유형정적 및 과부하 PAT 두 가지 유형

NAT는 PAT의 상위 집합이라 할 수 있습니다.

profile
개선하는 개발자, 이경환입니다

0개의 댓글