Doctor Pepper

NAT(Network Address Translation) & NAPT(Port Translation) 본문

자격증/CCNA

NAT(Network Address Translation) & NAPT(Port Translation)

Doctor Pepper 2024. 10. 19. 00:24

 

1. IPv4 주소의 한계

 IP 주소는 글로벌 주소와 프라이빗 주소의 두 가지 종류로 나눌 수 있다. 글로벌 주소는 인터넷상에서 고유하게 정의된 주소 범위로, 전 세계 어디서나 접근 가능한 주소이다. 반면, 프라이빗 주소는 기업이나 가정 등 로컬 네트워크(LAN)에서 자유롭게 설정하여 사용할 수 있는 주소 범위이다.

 

 인터넷상의 단말기, 예를 들어 웹 서버와 통신하기 위해서는 출발지 단말기에도 고유한 IP 주소가 필요하다. 출발지 단말기에 고유한 주소가 없으면 서버가 응답할 목적지를 알 수 없기 때문이다.

 

 그러나 IP 주소는 한계가 있다. 현재 널리 사용되고 있는 IPv4 주소는 약 42억 개에 불과하며, 그 중 우리가 사용하는 장치에 할당할 수 있는 주소의 수도 제한되어 있다. 전 세계적으로 IP 주소를 필요로 하는 단말기는 매년 증가하고 있어, 42억 개의 IPv4 주소로는 더 이상 충분하지 않은 상황이다.

 

2. NAT(Network Address Translation)

 IP 주소의 한계를 해결하기 위해, LAN(로컬 영역 네트워크) 안에 있는 단말기가 인터넷을 통해 통신할 때는 단말기가 가진 프라이빗 주소를 해당 LAN의 출입구가 가진 하나의 글로벌 주소로 변환해 통신한다. LAN 안에 여러 단말기가 하나의 글로벌 주소를 공유하므로, 이 방식은 IP 주소를 절약할 수 있는 효과적 방법이다.

 

 이때 사용되는 IP 주소 변환 기술을 NAT (Network Address Translation)라고 한다. NAT는 내부 네트워크의 프라이빗 IP 주소와 외부 인터넷의 글로벌 IP 주소 간의 매핑을 수행하여, 여러 장치가 동일한 글로벌 IP 주소를 사용할 수 있도록 한다.

 

3. NAT & NAPT 원리

NAT는 이름이 나타내는 것처럼 IP 주소를 변환하는 기술이다. 유입된 IP 패킷의 헤더에 포함된 주소를 미리 정해진 규칙에 따라 다른 주소로 변환한다. NAT에는 정적 NAT동적 NAT이 있다.

 

  • 정적 NAT (Static NAT) : 내부 네트워크의 특정 사설 IP 주소와 공인 IP 주소를 1:1로 매핑한다. 특정 장치에 항상 동일한 공인 IP 주소가 할당됩니다. 주로 서버와 같은 특정 장치에 사용된다.

 

  • 동적 NAT (Dynamic NAT) : 내부 네트워크의 사설 IP 주소를 풀(Pool)로 관리하고, 외부에 요청할 때마다 사용 가능한 공인 IP 주소를 할당한다. 여러 장치가 공인 IP 주소를 공유할 수 있지만, 각 장치가 인터넷에 접속할 때마다 할당받는 IP 주소는 달라질 수 있다.

 

 IP 주소 이외에 포트 번호도 변환 대상에 추가하여 하나의 글로벌 주소를 여러 개의 프라이빗 주소에서 공유할 수 있게 하는 기술을 NAPT (Network Address Port Translation)라고 한다. NAPT는 여러 장치가 동일한 글로벌 IP 주소를 사용하면서도 각 장치의 트래픽을 구분할 수 있도록 포트 번호를 활용한다.

 

 인터넷에 접속할 때는 일반적으로 NAPT를 사용하며, 이는 가정용 라우터에서 기본적으로 구현되는 기능입니다. 이때 가정용 라우터는 NAPT를 간단히 NAT라고 부르는 경우가 많다. 또한, 리눅스와 같은 운영 체제에서는 NAPT 기능을 IP Masquerade라고도 지칭하여, 내부 네트워크의 IP 주소를 숨기고 외부와의 통신을 처리하는 방법으로 사용한다.

 

 NAPT는 IP 주소와 포트 번호를 함께 변환함으로써, 하나의 글로벌 IP 주소를 통해 여러 내부 장치의 통신을 효율적으로 관리할 수 있는 중요한 기술이다. 이를 통해 IP 주소의 부족 문제를 해결하고, 보안 및 관리의 용이성을 제공하는 데 큰 기여를 하고 있다.

 

4. NAT 구성 사례

NAT의 네트워크 구성은 LAN 내부에서 인터넷에 접속하는 경우와 LAN 내부의 단말기를 인터넷에 공개하는 경우로 나눌 수 있다.

 

  • LAN 내부에서 인터넷에 접속하는 경우 : 동적 NAPT가 가장 일반적인 구성이다. 예를 들어, 가정이나 기업의 네트워크에서 인터넷에 접속할 때, NAPT는 외부와 연결된 라우터가 담당하며, 여러 내부 장치가 하나의 글로벌 IP 주소를 공유하여 인터넷에 접근한다. 이 방식은 동적으로 할당된 포트 번호를 사용해 각 장치의 트래픽을 구분하며, 효율적인 IP 주소 사용과 간편한 네트워크 관리를 가능하게 한다.
  • LAN 내부 단말기를 인터넷에 공개하는 경우 : LAN 내부 단말기를 인터넷에 공개하려면 정적 NAPT를 사용한다. 이 방법에서는 사전에 LAN 내의 특정 IP 주소와 포트 번호를 외부에 노출할 글로벌 IP 주소와 연결해 두고, 인터넷에서 들어오는 통신에 대해 NAPT를 수행한다. 이를 통해 외부 사용자나 서비스가 내부 단말기와 통신할 수 있도록 설정할 수 있으며, 주로 서버와 같은 서비스 제공 장치에 사용된다.