[네트워크] NAT(Network Address Translation)란? NAT의 동작 과정, NAT의 종류

NAT(Network Address Translation)란?

NAT는 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고받는 기술을 말한다. -위키백과-

 

NAT는 Network Address Translation의 줄임말로, 직역하자면 네트워크 주소 변환이다. 이러한 NAT는 IPv4의 주소 부족으로 인해 도입되었다. IPv4는 XXX.XXX.XXX.XXX 형태로 2^32개(약 43억 개)의 주소만을 할당할 수 있다. 언뜻 많아 보이지만 전 세계에 존재하는 수많은 호스트들을 모두 감당하기에는 역부족이다.

 

NAT
[그림 1] NAT

 

이때 NAT를 사용하면 IP 주소의 부족을 해결할 수 있다. NAT는 하나의 공인 IP를 여러 개의 사설 IP로 변환한다. 

 

이러한 NAT를 이용하면 다음과 같은 이점들을 얻을 수 있다.

 

  • 사설망(Local Network)이 하나의 IP주소로 여러 대의 기기를 연결해 사용할 수 있다.
  • 외부망에 공지(notify)하지 않고 내부망의 기기들의 주소를 변경할 수 있다.
  • 내부망의 주소가 외부에 노출되지 않아 보안성에 유리할 수 있다.

 

실제로 많은 곳에서 NAT가 이용되고 있다. 집에서 사용되는 공유기들도 NAT의 기능을 해주고 있다. 

 

 

 

NAT의 동작 과정

NAT의 데이터 송신
[그림 2] NAT의 동작 - 송신

 

만약 내부망의 PC1이라는 기기에서 외부의 128.119.0.18 PC의 80 포트로 데이터를 전송한다고 하자. 내부망에서는 해당 패킷의 source IP가 내부망의 IP와 포트로 기록되어 있을 것이다. 

 

하지만, NAT를 거치면서 해당 source IP와 포트는 공인 IP 주소로 변경된다. 그리고 원래 source IP와 포트, 변환된 source IP와 포트를 NAT 변환 테이블에 기록해 둔다. 이는 추후 응답을 받을 때 사용된다.

 

NAT의 수신 과정
[그림 3] NAT의 동작 - 수신

 

 

이제 다시 외부망 PC로부터 응답을 받는다고 하자. 해당 외부망 PC는 목적지 IP와 Port를 NAT가 변환한 주소를 기준으로 설정한다. 그럼 NAT는 해당 응답을 받고 테이블을 참조해 해당 패킷의 목적지 IP와 Port를 PC1의 주소로 변경한다. 

 

결국 요청을 보냈던 PC1이 응답을 받게된다. 

 

NAT의 종류

정적 NAT(Static NAT)

이 NAT는 로컬 주소가 공용 주소로 변환될때 항상 동일한 주소로 변환된다. 즉, 해당 라우터 혹은 NAT 장치와 연결된 일관된 공용 IP 주소가 존재한다. 즉 1:1 매핑으로 변환하는 가장 간단한 NAT 유형이라고 볼 수 있다. 

 

동적 NAT(Dynamic NAT)

일관되게 하나의 공용 IP 주소만을 선택하는 것 대신, 다양한 공용 IP 주소를 선택한다. 즉, 로컬 주소에서 공용 주소로 변환할 때 다양한 주소를 선택하게 된다.

 

PAT(Port Address Translation)

PAT은 동적 NAT의 종류 중 하나로, 여러 로컬 IP주소를 단일 공용 IP 주소로 변환한다. 이때 로컬 IP주소를 포트번호를 부여하여 구분하는 방식을 PAT라고 한다. 

 

 

 


참고

 

1. https://ko.wikipedia.org/wiki/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC_%EC%A3%BC%EC%86%8C_%EB%B3%80%ED%99%98

 

2. https://www.comptia.org/content/guides/what-is-network-address-translation

 

 

반응형

댓글

Designed by JB FACTORY