본문 바로가기
Dev/Network

[Network] NAT

by 흰바다제비 2022. 9. 17.
728x90

NAT (Network Address Translation)

인터넷에 접근하기 위해서는 공공 IP 주소 하나가 필요하지만, 우리는 개인 네트워크에서 개인 IP 주소를 사용한다.

NAT는 하나의 공공 IP 주소에 여러개의 디바이스가 인터넷에 접근하는 것을 허용하기 위한 것이다. 그러기 위해선, 개인 IP 주소를 공공 IP 주소로 변환해야 한다. NAT는 하나 이상의 로컬 IP 주소를 하나 이상의 글로벌 IP 주소로 변경하는 프로세스이다. 또한 목적지로 라우팅될 패킷에서 호스트의 포트 번호를 다른 포트 번호로 마스킹한다. 그 다음 NAT 테이블에 해당하는 IP 주소 및 포트 번호 항목을 만든다.

 


NAT의 작동 원리

보통 경계에 있는 라우터가 NAT용으로 사용된다. 이 라우터엔 로컬 네트워크(내부)에 하나의 인터페이스가 있고, 글로벌 네트워크(외부)에 하나의 인터페이스가 있다.

패킷이 로컬 네트워크를 통과하여 외부로 가면 NAT는 해당 개인 IP주소를 공용 IP 주소로 변환한다.

패킷이 로컬 네트워크에 들어오면 공용 IP 주소가 개인 IP 주소로 변환된다.

 

 

INSIDE LOCAL → PRIVATE NETWORK  →  INSIDE GLOBAL  →  PUBLIC NETWORK  →  INTERNET  →  PUBLIC NETWORK  →  OUTSIDE GLOBAL  →  PRIVATE NETWORK  →  OUTSIDE LOCAL

 

  • inside local address : 로컬 네트워크에서 호스트에 할당되는 IP 주소이다. 개인 IP 주소로, 내부 네트워크에서 본 내부 호스트에 해당한다.
  • inside global address : 외부 세계에 대한 하나 이상의 내부 로컬 IP 주소를 나타내는 IP 주소이다. 외부 네트워크에서 본 내부 호스트에 해당한다. 
  • outside global address : 변환 전 외부 대상 호스트의 IP 주소. 외부 네트워크에서 본 외부 호스트이다.
  • outside local address : 변환 후 로컬 네트워크에 있는 대상 호스트의 실제 IP 주소

 


NAT 종류

1. static NAT

개인 IP주소를 공용 IP 주소가 1:1 매핑된다. 일반적으로 웹 호스팅에 사용된다.

규모가 큰 경우엔 적합하지 않다. 인터넷에 액세스해야 하는 장치가 3000개면 3000개의 공용 IP 주소를 사야하기 때문에 조직에서 사용하기엔 많은 비용이 든다.

 

2. Dynamic NAT

등록되지 않은 IP 주소는 공개 IP 주소 풀 내에서 공개 IP 주소로 변환된다. IP 주소 풀이 비어있지 않으면, 패킷이 삭제되고 정해진 수의 개인 IP 주소만 공용 IP 주소로 변환될 수 있다.

NAT는 인터넷에 접속하고자 하는 사용자 수가 고정되어 있을 때 사용한다. Dynamic NAT 또한 많은 글로벌 IP 주소를 구입해야 하기 때문에 비용이 많이 든다. 

 

3. PortAddress Translation(PAT)

NAT overload (NAT 과부하) 라고도 한다. 많은 로컬 IP 주소를 등록된 단일 IP주소로 변환할 수 있다. 포트 번호는 어떤 트래픽이 어떤 IP 주소에 속하는지 구별하는 데 사용된다. 실제 공용 IP 주소 하나만으로 수천명의 사용자가 인터넷에 연결할 수 있어 효율적이기 때문에 가장 많이 사용된다.

 

 


참고

 

Network Address Translation (NAT) - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

728x90

'Dev > Network' 카테고리의 다른 글

[Network] SSL handshake  (0) 2022.09.18
[Network] SSH와 Telnet의 차이점  (0) 2022.09.16
[Network] Network Layer  (0) 2022.09.14
[Network] Transport Layer  (0) 2022.09.13
[Network] OSI 7 layers  (0) 2022.09.12

댓글