본문 바로가기
기타

NAT

by 동기 2022. 12. 18.
반응형
  • thumnail

NAT

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

NAT(Network Address Translation 의 약자로써 네트워크 주소 변환을 의미)는 사설 IP를 공인 IP로 변경에 필요한 주소 변환 서비스입니다.

풀어 설명하자면 라우터(router) 등의 장비를 사용하여 다수의 사설 IP(private IP)를 하나의 공인 IP(public IP) 주소로 변환하는 기술입니다.

기본적으로 개인(사설)IP 주소로는 외부와 통신(인터넷 연결 등) 을 할 수 없습니다.

외부와 통신할 수 있는 IP 주소는 오직 인터넷 IP 주소 관리 기관에서 공식적으로 발급한 공인 IP 주소 뿐입니다.

주로 기업이나 기관에서 내부망을 사용하는 PC에 사설 IP를 제공하고 외부 인터넷에 연결 시엔 공인 IP 하나를 같이 사용하는 형태로 운영합니다. NAT는 다수의 주소 변환 정보에 대해 IP 주소와 Port 번호로 구성된 NAT Forwarding Table을 보관하고 있고 이에 맞게 주소 변환 서비스를 제공합니다.

또한 NAT는 장비가 아니라 기능 즉, 프로그램을 의미합니다. 그래서 라우터 등에 NAT 기능이 포함되어 있습니다. 흔히 NAT 기능이 포함된 라우터를 NAT 라우터라고 부릅니다.우리가 주변에서 흔히 볼 수 있는 NAT 라우터로는 바로 인터넷 공유기가 있습니다. 공유기는 허브/스위치의 역할도 하면서 동시에 NAT 기능을 탑재하여 우리가 하나의 인터넷 회선으로(공인IP) 다수의 컴퓨터에서(내부 사설 IP) 동시에 인터넷을 사용할 수 있게 해주는 것 입니다. NAT 를 가장 쉽게 이해하시는 방법은NAT = 인터넷 공유기 라는 공식을 대입시키시면 됩니다.VMware Workstation 은 이 NAT 라우터를 자체적으로 내장하여 내부 사설망으로 구성된 가상 머신들이 외부와 통신할 수 있게 해줍니다.

NAT는 어떻게 작동하는가

위 그림에서 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는 왜 필요한가?

첫째, 공인 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를 사용하여 외부 인터넷을 사용하는 것을 가능하게 해 줍니다.


Bridged Network

호스트의 네트워크와 게스트의 네트워크를 브릿지하여(연결하여) 게스트 컴퓨터가 네트워킹 하는 방식입니다. 즉, 호스트와 게스트를 하나로 연결하여 두 개의 네트워크를 마치 하나의 네트워크처럼 쓰는 것 입니다.

(호스트,게스트 예시로는 Host OS 가 개인 PC에 설치된 Window, Guest OS 는 VM을 통해 설치된 Ubuntu OS 입니다.)

호스트와 게스트가 서로 동등한 자격을 가지기 때문에 게스트 컴퓨터에도 호스트 컴퓨터와 같이 공인(Public) IP를 할당하거나 호스트 컴퓨터가 사설망에 연결된 경우 호스트와 동일한 IP 대역을 할당할 수 있습니다.

즉 Host OS가 공유기와 연결되어 있다면 Bridge 모드로 설정된 VM 역시 공유기의 IP를 제공받게 된다.Host OS와 동등한 단계의 네트워크 위치를 가질 수 있게 된다는 말이겠죠.

이 때는 반드시 공인이든 사설이든 게스트 컴퓨터에도 할당할 수 있는 여분의 IP가 존재해야 합니다.


출처

https://brunch.co.kr/@sangjinkang/61

https://wiki.teltonika-networks.com/view/File:Private_public_ip_3_v2.png

https://docs.microsoft.com/ko-kr/azure/rtos/netx-duo/netx-duo-nat/chapter1

https://itmore.tistory.com/entry/NAT-와-Bridged-Networking-개념-정리

반응형

댓글