brunch

You can make anything
by writing

C.S.Lewis

by 테크유람 Apr 03. 2021

NAT은 무엇이며, 왜 필요한 것인가?

NAT(Network Address Translation)가 필요한 이유



WebRTC, VoIP 기반의 인터넷 통화 등 인터넷 기반의 Peer-to-Peer 음성 채팅/영상 통화 서비스를 만들기 위해서는 관련된 네트워크 지식과 더불어 우리가 사용하고 있는 인터넷의 특성에 대한 이해가 반드시 필요합니다.


NAT(Network Address Translation)

NAT는 사설 IP를 공인 IP로 변경에 필요한 주소 변환 서비스입니다. 풀어 설명하자면 라우터(router) 등의 장비를 사용하여 다수의 사설 IP(private IP)를 하나의 공인 IP(public IP) 주소로 변환하는 기술입니다. 주로 기업이나 기관에서 내부망을 사용하는 PC에 사설 IP를 제공하고 외부 인터넷에 연결 시엔 공인 IP 하나를 같이 사용하는 형태로 운영합니다. NAT는 다수의 주소 변환 정보에 대해 IP 주소와 Port 번호로 구성된 NAT Forwarding Table을 보관하고 있고 이에 맞게 주소 변환 서비스를 제공합니다.


<이미지 출처: wiki.teltonika.lt/view/Network_Address_Translation>


위 그림에서 NAT Table 부분을 잘 살펴보면 다음 특징이 있습니다.

내부 네트워크에 위치한 호스트들의 사설 IP와 포트 번호에 대한 정보를 가지고 있음.

외부로 나갈 때의 동일한 공인 IP와 각기 다른 포트 번호를 가지고 있음.

목적지 주소의 공인 IP와 서비스에 사용된 동일한 서비스 포트 번호를 가지고 있음.


공인 IP는 같으나. 포트 번호를 다르게 할당하여 각각의 호스트를 구분 짓는 구조 입니다. 마치 회사 대표 전화번호를 사용하면서 내선 번호를 지정한 것과 유사합니다. 이를 통해 외부로 통신을 내보내고, 이에 대해 받은 네트워크 응답을 다시 해당 호스트에 보내주는 것입니다. 따라서 사설 IP를 사용하는 호스트들이 외부에서 봤을 때엔 (웹 서버가 봤을 때엔) 같은 클라이언트 같지만 각각의 웹 서핑이 가능한 구조가 될 수 있습니다.


첫 번째 호스트 - 192.168.1.1:8801 가 외부 호스트 - 68.1.31.1에 Telnet (port: 23)으로 접속하는 시나리오를 생각해봅시다.


1) 사설 IP - 192.168.1.1을 사용하는 호스트가 68.1.31.1에 접속을 원한다.

2) 라우터는 NAT 기술을 사용하여 이 요청에 공인 IP - 101.89.101.12와 포트 번호 8801을 할당한다.

3) 요청은 인터넷을 통해 텔넷 서버 - 68.1.31.1.1에 도달한다.

4) 텔넷 서버는 요청의 클라이언트 IP를 공인 IP - 101.89.101.12, 포트 8801로 인식하고 응답한다.

5) 텔넷 서버의 응답이 라우터에 도착한다. 라우터는 포트 번호 8801을 응답 패킷에서 인식한다.

6) 라우터는 사설 IP 192.68.1.1:9688 호스트에 할당된 포트임을 NAT 테이블에서 찾아 응답을 돌려준다.


NAT는 왜 필요한가?

NAT를 사용하는 데는 크게 두 가지 목적이 있습니다.


첫째, 공인 IP 주소를 절약하는 것입니다.

인터넷상의 공인 IP 주소는 한정되어 있습니다. 따라서 회사, 학교 등의 단체에 보급된 PC가 각각의 고유한 공인 IP를 모두 보유해야 한다면 IPv4 상에서의 인터넷 주소는 벌써 고갈이 되었을 것입니다. IPv4 체계의 인터넷 주소는 32비트 길이를 사용하는데 이는 2의 32승 -> 4,294,967,296개의 IP 주소를 표현할 수 있습니다. IPv6가 보급이 되면 인터넷 주소 고갈 문제는 지금보다 나아질 것으로 예상됩니다.


둘째, 보안의 목적입니다.

공개된 인터넷망은 외부에서 내부로의 해킹이나 침입의 위험이 있습니다. 따라서 내부망과 공개망 사이에 방화벽(firewall)을 운영하여 외부 공격으로부터 내부 인터넷망을 지킵니다. 내부에서 사설 IP를 사용하는 것은 외부에서 개인 PC나 인터넷 장비로 직접적인 접근을 하지 못하는 이유도 포함합니다. NAT 장비는 Firewall 형태일 수도 있고 Router 일 수도 있습니다.


NAT의 동작 원리 - IP masquerading(마스쿼레이딩)

NAT는 하나의 공인 IP 뒤로 여러 개의 사설 IP 공간을 은닉하는 IP masquerading 기법을 사용합니다. masquerading이라는 영단어는 가장무도회를 의미하는데 다수의 인터넷 디바이스가 하나의 공인 IP를 사용하여 외부 인터넷을 사용하는 것을 가능하게 해 줍니다.





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari