Network

NAT(Network Address Translation)란?

Y30L 2023. 11. 21. 00:54

1. NAT(Network Address Translation)란?

NAT에 대해서 이해를 하기 위해서는 공인 IP(Public IP)와 사설 IP(Private IP)에 대한 사전 지식이 필요하다.

(공인 IP 및 사설 IP는 더보기에 정리하였습니다!)

더보기
공인 IP와 사설 IP

 

공인 IP는 공용 IP로 불리며 외부에 공개되어 있는 IP를 의미하고, 사설 IP는 IPv4의 주소 부족 문제를 해결하고자 하나의 공인 IP에 사설망을 구성해 각기 다른 주소로 할당된 IP를 의미한다.

 

일반적인 블로그 및 여러 네트워크 관련 서적을 보면 NAT란 "IP 패킷에 적힌 소켓 주소의 포트 숫자와 목적지의 IP주소를 재기록하며 라우터(공유기 등)를 통해 네트워크 트래픽을 주고 받는 기술"로 정의되어 있다.  하지만, 사전적 정의와 유사한 형태로 기술된 정의를 보았을 때 쉽게 이해되지 않는 부분이 존재하여 [그림 1]을 통해 NAT를 보다 쉽게 설명하고자 한다.

 

[그림 1]은 사설 IP를 사용하고 있는 Client가 특정 Server에 연결 요청을 보냈을 때 어떻게 NAT가 적용되고 연결 요청이 보내지는 과정을 간략히 표현한 것이다. 동작 과정은 다음과 같다.

 

[그림 1] NAT 동작 원리

 

[그림 1]은 사설 IP를 사용하고 있는 Client가 특정 Server에 연결 요청을 보냈을 때 어떻게 NAT가 적용되고 연결 요청이 보내지는 과정을 간략히 표현한 것이다. 동작 과정은 다음과 같다.

1. Client가 특정 Server로 연결 요청을 보냄(과정 1에 해당)
2. Router는 NAT를 적용하여 패킷 내 존재하는 Source IP 정보를(사설 IP > 공인 IP)를 변경(과정 2에 해당)
3. 공인 IP로 변경된 요청이 서버로 전송

 

즉,  NAT는 단순히 네트워크의 패킷 내 존재하는 사설 IP 정보를 공인 IP로 변경해주는 기능을 한다.

 

2. NAT를 왜 사용할까?

NAT를 사용하는 이유는 크게 자원적인 측면과 보안적인 측면으로 구분된다.

자원적인 측면

IPv4 주소의 경우 현재 거의 포화상태이며 주소 부족 문제를 겪고있다. NAT 및 사설 IP 사용 시, 1개의 공인 IP를 통해 다수의 사설 IP를 사용한 정상적인 이용(요청 등)을 할 수 있기 때문에 IPv4의 주소 부족 문제를 조금이나마 해결할 수 있다.

 

보안적인 측면

Client의 요청이 NAT를 통해 나갈 때, 요청을 받은 서버에서는 사설 IP정보가 노출되는 것이 아닌 공인 IP의 정보가 노출되기 때문에 실제 사설 IP 주소를 알기 어렵게 된다. 이는, 외부 침입자가 공격하기 위해서는 사설망의 내부 사설 IP주소를 알아야 함을 의미하므로 내부 네트워크를 보호할 수 있다.

 

 

 

3. Reference

1. https://dany-it.tistory.com/36

2. https://yang-wistory1009.tistory.com/41

3. https://www.stevenjlee.net/2020/07/11/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-nat-network-address-translation-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%A3%BC%EC%86%8C-%EB%B3%80%ED%99%98/