| 리포트 | 기술문서 | 테크-블로그 | 글로벌 블로그 | 원샷 갤러리 | 통신 방송 통계  | 한국 ICT 기업 총람 |

제품 검색

| 네트워크/통신 뉴스 | 기술자료실 | 자유게시판 |  
 
 
섹션 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/UHD IoT SDN/NFV Wi-Fi Video Streaming KT SK Telecom LG U+ OTT Network Protocol CDN YouTube Data Center
 
스폰서채널 |

 

  스폰서채널 서비스란?
NAT (Network Address Translation) 소개 (RFC 3022/2663)
Basic Understanding of the NAT (Network Address Translation)
September 03, 2013 | By 유창모 (cmyoo@netmanias.com)
banner
코멘트 (6)
24

 NAT 문서 모두 보기 

 

현재 국내 통신사업자는 유선 액세스(FTTH, Ethernet, DSL 등)를 제외한 (거의) 모든 액세스 망에 NAT 장비를 적용하고 있습니다.

  • 3G/LTE 망: 3G/LTE Core 망(GGSN/P-GW) 상단에 LSN(Large Scale NAT) 도입 (CGN: Carrier Grade NAT라고도 부름)
  • Wi-Fi Hotspot 망: Wi-Fi Hotspot용 AP에서 NAT 수행
  • 댁내 망: 통신 사업자가 가입자 댁내에 공급(임대)한 유무선 공유기 혹은 Open Market의 유무선 공유기(예. EFM의 ipTIME)에서 NAT 수행
즉, 3G/LTE 사용자, Wi-Fi Hotspot 사용자, 댁내 유무선 공유기를 설치한 사용자 모두 사설 IP 주소(Private IP Address)를 할당 받고 NAT 장비를 통해 공인 IP 주소(Public IP Address)로 변환되어 인터넷과 연결됩니다.
 
통신 사업자는 NAT 장비 도입을 통해 
(1) 사설 IP 주소를 가진 여러대의 단말들이 하나의 공인 IP 주소를 통해 인터넷과 연결됨으로써 공인 IP 주소를 절약할 수 있으며
(2) 3G/LTE 망에 LSN을 도입하여 외부에서 이동통신 단말 혹은 이동 통신망으로 향하는 공격을 차단할 수 있습니다.
기업 역시 사내망을 사설 IP 주소화 하여 외부로 부터의 친입/공격을 차단할 수 있습니다. (방화벽의 개념). 
 
오늘은 RFC 3022(Traditional NAT)RFC 2663(IP NAT Terminology and Considerations)에서 기술하고 있는 NAT 용어에 대해 알아보도록 하겠습니다. 

 

 

용어의 정의 (Terminology)

 

1. TU Ports

TCP와 UDP 헤더에는 각각 TCP Source & Destination Port #와 UDP Source & Destination Port #가 존재하는데 이를 총칭하여 TU Ports라고 부릅니다. 혹은 Transport Identifier라고도 부릅니다. 보통 단말(Client)이 서버(Server)와 TCP 혹은 UDP 통신 시 TU Destination Port는 0 ~ 1023 (Well Known Ports, which is defined by IANA) 혹은 1024 ~ 49191 (Registered Ports, which is not defined by IANA) 중에 하나의 값[RFC 1700에 정의]을 사용하며(대표적인 예. HTTP는 TCP Destination Port = 80 사용), TU Source Port는 OS 마다 서로 다른 범위(대략 30,000~60,000)의 값 중에 하나를 random하게 사용하는데 이를 Ephemeral Port라고 부릅니다(http://en.wikipedia.org/wiki/Ephemeral_port 참조).

 

2. Public/Global/External Network

IANA(Internet Assigned Numbers Authority) 기관에서 할당 받은 Globally Unique한 IP 주소를 가진 네트워크를 말하며 따라서 이 네트워크는 전세계 통신 사업자 망을 통해 라우팅(통신)이 가능합니다. 흔히 "공인 IP 네트워크"라고 부릅니다.

 

3. Private/Local Network

IANA에서 할당 받지 않은 IP 주소를 가진 네트워크를 말하며 인터넷에서 라우팅 될 수 없습니다. 흔히 "사설 IP 네트워크"라고 부릅니다.

IANA에서는 아래 3개의 IP 블럭을 이 용도로 정의하고 있습니다.

  • 10/8, 172.16/12, 192.168/16

 

4. Session

NAT에 의해 변환(translation)되는 트래픽의 단위를 Session으로 정의하고 있는데(A session is defined as the set of traffic that is managed as a unit for translation), 쉽게 말해 TCP/UDP Session은 {source IP address, source TU port, destination IP address, destination TU port}로 구분되는 것을 말합니다.

 

5. Application Level Gateway (ALG)

응용에 따라 Payload(TCP/UDP 헤더 이후에 나오는 Application specific한 데이터)에 IP address or/and TU port 정보가 실리는 경우가 있습니다. ALG란 응용 별로 Payload 내의 IP address or/and TU port 정보를 변환(translation) 해 줄 수 있는 기능(agent)이 NAT 장비에 올라가 있는 경우이며(Application awareness inside the NAT), 보통 이 NAT 장비는 어떤 어떤 응용(예. FTP, SIP, RTSP, etc)을 지원한다라는 식의 응용 프로그램 리스트를 함께 얘기하곤 합니다. 세상에 쏟아져 나오는 각종 응용 프로그램에 대한 ALG를 NAT 장비가 모두 지원한다는 건 비현실적이기 때문에 ALG를 지원하는 NAT 장비는 그리 많지 않은 듯 합니다.

 

 

NAT란? (What is NAT?)

 

NAT(Network Address Translation)란 한마디로 Private Network에 위치하는 단말이 Public Network(인터넷)과 통신이 가능하도록 상호 간에 연결 시켜 주는 기능입니다.

 

 

 

Traditional NAT would allow hosts within a private network to transparently access hosts in the external network, in most cases.  In a traditional NAT, sessions are uni-directional, outbound from the private network.  Sessions in the opposite direction may be allowed on an exceptional basis using static address maps for pre-selected hosts. (RFC 3022)

 

Traditionally, NAT devices are used to connect an isolated address realm with private unregistered addresses to an external realm with globally unique registered addresses. (RFC 2663)

 

 

 

 

NAT의 종류

 

RFC 3022/2663에서는 NAT를 Basic NAT와 NAPT(Network Address Port Translation)로 구분하여 설명하고 있으며, 이 2개를 총칭하여 Traditional NAT라고 부르고 있습니다. "IPv4 주소의 절약"이라는 목적을 위해 사용되는 NAPT가 현재 일반적인 NAT 장비의 방식이며, 따라서 그냥 NAT라고 하는 경우에 NAPT를 의미하는 경우가 많으며 현재 모든 유무선 공유기는 NAPT 방식을 지원하고 있습니다.

 

 

 

Basic Network Address Translation or Basic NAT is a method by which IP addresses are mapped from one group to another, transparent to end users.  Network Address Port Translation, or NAPT is a method by which many network addresses and their TCP/UDP (Transmission Control Protocol/User Datagram Protocol) ports are translated into a single network address and its TCP/UDP ports.  

Together, these two operations, referred to as traditional NAT, provide a mechanism to connect a realm with private addresses to an external realm with globally unique registered addresses. (RFC 3022)

 

 

 

 

Basic NAT

 

 

■ Definition : 목적 및 정의

기업망(Enterprise Network)에서 보안의 목적(방화벽)으로 사용하며, Private IP 주소를 가지는 단말 개수 만큼 Pubilc IP 주소를 가지고 인터넷과 연결됨

Nodes on private network could be enabled to communicate with external network by dynamically mapping the set of private addresses to a set of globally valid network addresses. (RFC 3022)

 

■ Translation : Translation 규칙

1:1 translation (1 = Public IP, 1 = Private IP)

 

■ Mapping : Translation되는 패킷 정보

- Outbound Traffic: Translation {Private Source IP Address} to {Pubilc source IP Address}

- Inbound Traffic: Translation {Public Destination IP Address} to {Private Destination IP Address}

 

■ Packet Modification : Translation 수행 시 변경되는 패킷 정보

- Outbound Traffic: Source IP Address, IP Header Checksum

- Inbound Traffic: Destination IP Address, IP Header Checksum

 
■ Translation Phases of a Session : Translation 3 단계

1. Address Binding

Private IP Address를 가진 단말이 보낸 Outbound Traffic에 대해 Basic NAT 장비가 {Private IP Address}에 대한 {Public IP Address}를 결정하고(1:1 mapping) NAT Binding Table에 세션 엔트리 생성

 

2. Address Lookup and Translation
- 이후 Outbound 방향으로(단말에서 NAT 장비로) 패킷이 수신되면 NAT Binding Table을 참조하여 {Private Source IP Address}를 {Public Source IP Address}로 변환하여 인터넷으로 전송 
- Inbound 방향으로(인터넷에서 NAT 장비로) 패킷 수신 시 NAT Binding Table을 참조하여 {Public Destination IP Address}를 단말의 IP 즉, {Private Destination IP Address}로 변환하여 단말로 전송
 
3. Address Unbinding
NAT Binding Table의 해당 엔트리에 대해 일정 시간(NAT 장비마다 다름)동안 패킷이 흐르지 않으면 세션 엔트리를 삭제
 
■ Deployment Example : 적용 예
기업망(Enterprise Network)

 

 

NAPT (Network Address Port Translation)

 

 

■ Definition : 목적 및 정의

Public IP 주소 절약을 목적으로, Private IP 주소를 가지는 여러대의 단말이 하나의 Public IP 주소를 통해 인터넷과 연결되는 방식

Nodes on the private network could be allowed simultaneous access to the external network, using the single registered IP address with the aid of NAPT. (RFC 3022)

 

■ Translation : Translation 규칙
1:N translation (1 = Public IP, N = Private IP)

 

■ Mapping : Translation되는 패킷 정보

- Outbound Traffic: Translation {Private Source IP Address, Local TU Source Port} tuple to {Pubilc Source IP Address, Registered TU Source Port} tuple

- Inbound Traffic: Translation {Public Destination IP Address, Registered TU Destination Port} tuple to {Private Destination IP Address, Local TU Destination Port}

 

■ Packet Modification : Translation 수행 시 변경되는 패킷 정보

- Outbound Traffic: Source IP Address, IP Header Checksum, TU Source Port, TCP/UDP Header Checksum

- Inbound Traffic: Destination IP Address, IP Header Checksum, TU Destination Port, TCP/UDP Header Checksum

 

■ Translation Phases of a Session : Translation 3 단계

1. Address Binding

Private IP Address를 가진 단말이 보낸 Outbound Traffic에 대해 NAPT 장비가 Private IP Address와 TU Source Port에 대한 Public IP Address 및 TU Source Port를 결정하고(1:N mapping) NAT Binding Table에 세션 엔트리 생성

 

2. Address Lookup and Translation

- 이후 Outbound 방향으로(단말에서 NAT 장비로) 패킷이 수신되면 NAT Binding Table을 참조하여 {Private Source IP Address, Local TU Source Port}를 {Public Source IP Address, Registered TU Source Port}로 변환하여 인터넷으로 전송  (Registered란 NAT 장비가 할당한 Port 값을 의미함. Local TU Source Port를 Internal Port, Registered TU Source Port를 External Port라고도 부름)
- Inbound 방향으로(인터넷에서 NAT 장비로) 패킷 수신 시 NAT Binding Table을 참조하여 {Public Destination IP Address, Registered TU Destination Port}를 단말의 IP 및 Port 정보 즉, {Private Destination IP Address, Local TU Destination Port}로 변환하여 단말로 전송
 
3. Address Unbinding
NAT Binding Table의 해당 엔트리에 대해 일정 시간(NAT 장비마다 다름)동안 패킷이 흐르지 않으면 세션 엔트리를 삭제

 

■ Deployment Example : 적용 예

Wi-Fi Hotspot, SOHO, Home, 3G/LTE LSN

 

변동우 2013-09-11 09:00:01
네트워킹 쪽에는 무지한지라 많은 도움이 되었습니다. 감사합니다.
한원진 2014-05-14 15:23:52
네트워크와 연계된 일이 할당되어 난감 했는데 많은 도움 받고 있습니다. 너무 감사 드립니다. 꾸벅^^ 행복하세요 ~
정교영 2015-04-03 16:02:32

이해하기 쉽게 설명해 주셔서 감사합니다. 질문이 있습니다. 

NAPT 에서 local port 를 resistered port 로 translation 하는 이유가 무었입니까. private ip 를 매핑하기 위함이라면 local port 를 그대로 사용해도 될것 같은데요..

감사합니다.

버너 2015-04-03 17:00:06

NAT는 내부 단말의 IP만 변경하고 내부 단말의 발신 포트 번호는 그대로 유지하는 경우고 NAPT는 IP 및 내부

단말의 발신 포트 번호를 모두 변경하는 것을 말하게 되는데,   

만약 NAPT 장비내부에 2개 이상의 단말이 있다면 두 단말이 같은 시점에 동일한 registered port 번호를 사용하여

통신을 할 수 있기 때문에 이런 경우를 방지하기 위해 NAPT에서는 일반적으로 내부 IP & PORT를 모두 변경하는

방법을 선택합니다. (NAPT 입장에서는 내부에 단말이 있는지의 여부와 해당 단말이 언제 어떤 포트 번호를 발신 포트로 쓸 지 알 수 없지요)

 

물론 NAPT 구현 시 local port 를 그대로 유지하고 두번째 단말이 동일 포트를 사용하려고 할 때만 신규 포트를

할당해서 매핑하도록 구현을 해도 문제는 없습니다. 구현상의 문제일 뿐이지요.

 

참고로 일반적인 OS에서 TCP/UDP 포트를 할당할 때는 registered port인 1024번 포트부터 순차적으로

증가시키면서 round-robin 형태로 포트번호를 할당합니다. 이렇게 하는 이유는 이미 사용된 포트에 대한 명시적인

종료가 안된 상태에서 다른 서비스에 동일 포트를 할당하게 되면 잘못된 데이터 전달이 발생할 수도 있고, OS

내부적으로도 포트 자원 관리가 용이하기 때문이지요.

 

정교영 2015-04-16 11:42:49

안녕하세요. 버너님

설명 감사합니다. 동일 포트를 동시에 사용하는 경우를 방지하고자 포트번호 translation 이 필요하다는 점을 알았습니다. 제가 헷갈렸던 부분중 하나는 local port 를 registered port 로 translation 한다는 내용인데 각각의 의미가 무었인지요 ? NAPT 를 사용하는 경우 local port 가 할당되고 사용하지 않는 일반적인 경우는 registered port 가 할당됩니까 ?

감사합니다.

여경현 2018-11-29 11:19:11

안녕하세요 창모형

공유기 내에서 어떤일이 일어나는지 평소 생각없이 사용하였는데 궁금해서 찾아보니 좀처럼 찾기가 어렵네요.
알기쉬운 설명 감사합니다. 이해가 쏙쏙 됩니다.

Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
View All (969)
5G (67) AI (5) ALTO (1) AR (2) ARP (6) AT&T (1) Akamai (5) Authentication (5) BT (1) Backhaul (2) Big Data (2) Bridging (5) C-RAN/Fronthaul (17) CDN (20) CIoT (2) CPRI (6) Carrier Aggregation (5) Charging (2) China Mobile (2) Cisco (6) CoMP (3) Comcast (1) DHCP (6) DNS (15) Data Center (15) EDGE (10) EMM (1) EPS Bearer (7) Ethernet (3) FTTH (8) GSLB (5) Gigabit Internet (17) Google (17) Google Global Cache (8) Google TV (1) HLS (5) HTTP (5) HTTP Adaptive Streaming (7) HTTP Progressive Download (2) Handover (5) Huawei (1) IGMP (3) IP (6) IP Allocation (8) IP Routing (20) IPSec (4) IPTV (25) IoST (2) IoT (44) KT (45) Korea (8) Korea ICT Vendor (1) L3 Switch (5) LG U+ (24) LTE (99) LTE-A (10) LTE-A Pro (1) LTE-M (1) LTE-U (3) LoRa (5) MEC (10) MPLS (3) MWC 2013 (1) MWC 2015 (3) MWC 2016 (2) MWC 2017 (1) Mobile IPTV (1) Multi-Screen (1) Multicast (2) NAT (9) NB-IoT (6) NTT Docomo (1) Netflix (5) Network Protocol (49) Network Slicing (3) OSPF (3) OTT (20) Operator CDN (1) P2P (3) PS-LTE (3) Pooq (2) QoS (5) RCS (1) RRH (1) Request Routing (3) SD-WAN (8) SDN/NFV (34) SK Broadband (1) SK Telecom (38) Samsung (2) Security (8) Self-Driving (3) Shortest Path Tree (2) Small Cell (3) Spectrum Sharing (1) TAU (2) Transparent Caching (9) UHD (7) VLAN (2) VPN (3) VR (3) Video Streaming (22) VoLTE (1) VoWiFi (1) WAN Optimization (1) Wi-Fi (30) WiBro(WiMAX) (2) YouTube (16) eICIC (1) eMBMS (1) ePDG (6) u+ tv G (4) 로컬 5G (1)

 

 

     
         
     

 

     
     

넷매니아즈 회원 가입 하기

2019년 1월 현재 넷매니아즈 회원은 49,000+분입니다.

 

넷매니아즈 회원 가입을 하시면,

► 넷매니아즈 신규 컨텐츠 발행 소식 등의 정보를

   이메일 뉴스레터로 발송해드립니다.

► 넷매니아즈의 모든 컨텐츠를 pdf 파일로 다운로드

   받으실 수 있습니다. 

     
     

 

     
         
     

 

 

비밀번호 확인
코멘트 작성시 등록하신 비밀번호를 입력하여주세요.
비밀번호