✔️ NAT란?
NAT는 다수의 사설(Private) IP를 하나의 공인(Public) IP로 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 Router를 사용하여 변환하는 기술입니다.
주로 내부망을 사용하는 PC에 사설 IP를 제공하고 외부망에 연결 시엔 공인 IP 하나를 같이 사용하는 형태로 운영합니다.
이렇게 내부망과 외부망이 IP에 따라 분리되면서 경계에서 별도의 조치를 취해야 할 필요성이 생겼습니다.
내부망에서 외부망으로 나가고자 할 때 자시느이 출발지 IP(Source IP)를 사설 IP 그대로 쓸 수 없기 때문입니다.
그렇기에 사설 IP를 공인 IP로 변환할 필요가 있습니다.
또한 자사의 내부망과 전용 회선(Leased Line)을 통해 대외사의 내부망을 연결할 경우에도 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. 요청은 인터넷을 통해 TELNET 서버 - 68.1.31.1에 도달합니다.
4. TELNET 서버는 요청의 클라이언트 IP를 공인 IP - 101.89.101.12:8801로 인식하고 응답합니다.
5. TELNET 서버의 응답이 라우터에 도착하고 라우터는 포트번호 8801을 응답 패킷에서 인식합니다.
6. 라우터는 사설 IP - 192.168.1.1:8801 호스트에 할당된 포트임을 NAT 테이블에서 찾아 응답을 돌려줍니다.
📌 PAT(Port Address Translation)
PAT는 IP 주소뿐만 아니라 Port까지 변환시켜 사용하는 것을 포함하며 1:N입니다.
1개의 공인 IP에 다수의 사설 IP가 매핑되어 있다면 port를 구분하여 사설 PC를 구분하게 됩니다.
예를 들어, 김인턴이 외부 통신하기 위해서는 공인 IP가 필요합니다. 하지만 여러 사원들이 사설 IP를 사용하고 있습니다.
1. 사설(내부) -> 공인(외부)
김인턴은 사설 IP인 192.168.0.2:60000을 이용하여 외부에 서비스를 요청합니다.
외부로 패킷이 나가기 전에 라우터에서 해당 IP를 공인 IP인 120.160.10.123:60000으로 변환하여 내보냅니다.
2. 공인(외부) -> 사설(내부)
외부에서 내부의 김인턴 PC에 서비스를 요청하려고 하는데 해당 LAN구간에서 할당된 공인 IP는 1개입니다.
이 때 Port를 사용하여 사설 PC를 구분하여 공인 IP인 120.160.10.123:60000으로 설정하여 보냅니다.
라우터에서 120.160.10.123:60000과 매핑된 사설 IP 192.168.0.2로 패킷을 보냅니다.
📌 포트포워딩(Port forwarding)
포트포워딩 또는 포트 매핑(Port mapping)은 패킷이 라우터나 방화벽 같은 게이트웨이를 가로지르는 동안 하나의 IP 주소와 Port 결합의 통신 요청을 다른 곳으로 넘겨주는 NAT의 응용입니다.
이 기법은 외부망이 내부망에 상주하는 호스트에 대한 서비스를 생성하기 위해 사용되며 통신하는 목적지 IP 주소와 Port를 내부 호스트에서 다시 매핑함으로써 이루어집니다.
✔️ NAT의 필요성
1. 공인 IP 주소를 절약하는 것입니다.
인터넷 상의 공인 IP 주소는 한정되어 있습니다. 따라서 회사, 학교 등의 단체에 보급된 PC가 각각의 고유한 공인 IP를 보유해야 한다면 IPv4 상에서 인터넷의 주소는 벌써 고갈되었을 것입니다.
IPv4 체계의 인터넷 주소는 32비트 길이를 사용하는데 이는 2의 32승 -> 4,294,967,296개의 IP 주소를 표현할 수 있습니다.
하지만 IPv6가 보급된다면 인터넷 주소 고갈 문제는 지금보다 나아질 것입니다.
2. 보안의 목적입니다.
공개된 인터넷망은 외부에서 내부로의 해킹이나 침입의 위험이 있습니다.
따라서 내부망과 공개망 사이에 방화벽을 운영하여 외부 공격으로부터 내부 인터넷망을 지킵니다.
내부에서 사설 IP를 사용하는 것은 외부에서 개인 PC나 인터넷 장비로 직접적인 접근을 하지 못하는 이유도 포함합니다.
NAT장비는 방화벽(Firewall) 형태일 수도 있고 Router 일 수도 있습니다.
3. 효과적인 주소 할당을 위한 것입니다.
사설 IP는 내부에서 IP를 설정하므로 관리자가 원하는대로 네트워크를 할당하여 라우팅 네트워크 성능이 향상되고 장애처리가 쉬워집니다.
✔️ NAT의 종류
📌 Static NAT
- 공인 IP 1개 : 사설 IP 1개를 매핑하여 변환합니다.
- 외부에서 내부망으로 접속할 경우 공인 IP를 통해서 접속이 가능합니다.
📌 Dynamic NAT
- 여러 개의 사설 IP와 여러 개의 공인 IP 주소를 m:n으로 매핑하는 것을 말합니다.
- 대부분의 공인 IP 주소가 사설 IP 주소보다 적을 경우에 사용합니다.
- 사설 IP 주소는 여러 개의 공인 IP 주소 중 사용되지 않는 주소와 매핑되어 사용합니다.
📌 NAPT(Network Address Port Translation)
포트까지 변환하는 방법입니다.
📌 SNAT(Source IP NAT)
Soruce IP를 변환하는 방법입니다.
📌 DNAT(Destination IP NAT)
Destination IP를 변환하는 방법입니다.
📄 참고
https://docs.microsoft.com/ko-kr/azure/rtos/netx-duo/netx-duo-nat/chapter1
https://cheershennah.tistory.com/123
https://ko.wikipedia.org/wiki/%ED%8F%AC%ED%8A%B8_%ED%8F%AC%EC%9B%8C%EB%94%A9
'🖥 CS > 네트워크' 카테고리의 다른 글
SSL/TLS, HTTPS (0) | 2022.04.16 |
---|---|
DHCP(Dynamic Host Configuration Protocol) (0) | 2022.04.14 |
브라우저와 작동원리 (0) | 2022.04.14 |
호스팅(Hosting) (0) | 2022.04.13 |
DNS(Domain Name System) (0) | 2022.04.13 |