NAT(Network Address Translation) Traversal

1. 사설 네트워크 통과 NAT 기술, NAT Traversal의 개념

개념도
개념사설 IP 주소를 보유한 Host의 P2P 통신을 위해 IP 주소/Port 변환과 Filtering 및 Binding 기반 NAT 내/외부 네트워크를 연결시키는 네트워크 기술
  • NAT Traversal을 구현하기 위해 RFC 5128에서 설명하고 있는 기술 방식은 Relaying, Connection Reversal, Hole Punching의 3가지 방식으로, Host 및 네트워크 환경을 고려하여 최적의 방식 선택

 

2. NAT Traversal 구현을 위한 주요 기술

(1) Relaying 원리 및 장단점

원리동작 방식– 사설 IP 주소를 보유한 Host의 P2P 통신을 위해 공인 IP 주소를 보유한 외부 Relay 서버를 경유하여 패킷을 전달하는 NAT Traversal 통신 방식
특징– 공인 IP 주소를 보유한 외부 Relay 서버 필요
– Relay 서버에서 등록된 Host의 IP 주소와 Port 정보 테이블 관리
장단점장점– NAT 장비의 동작 특성에 무관하게 Host 간 P2P 통신 가능
– NAT Traversal 기능 및 Host 간 통신 신뢰성 높음
단점– Relay 서버가 필수적, Relay 서버 인터페이스에 따른 대역폭 이슈 발생 가능
– Relay 서버 부하로 인한 병목 현상 발생 가능, SPoF 리스크 존재
  • Relaying방식은 NAT 동작과 무관하나 별도의 Relay 서버가 필요하므로 NAT 적용 위한 최후의 수단으로 고려

(2) Connection Reversal 원리 및 장단점

원리동작 방식– 사설 IP 주소 보유 Host의 P2P 통신을 위해 두 Host 중 하나는 공인 IP 주소를 가지는 경우 적용 가능한 NAT Traversal 통신 방식
특징– 두 Host 중 하나는 공인 IP 주소 보유 필요
장단점장점– Host 간 P2P 데이터 전송 시 경유지 없이 직접 통신 가능
– NAT 장비의 동작 특성에 무관하게 Host 간 P2P 통신 가능
단점– 두 Host 모두 사설 IP 주소 보유 환경 시 적용 불가
– 초기 연결 수립을 위한 서버 필요
  • Connection Reversal 방식도 최선의 NAT Traversal 방식은 아니며, Relaying 방식을 사용하기 전 고려

(3) Hole Punching 원리 및 장단점

원리동작 방식– 사설 IP 주소를 보유한 Host의 P2P 통신 위해 Host IP 주소, Port 정보를 포함하는 Endpoint 정보를 Filtering Rule에 적용한 NAT Traversal 통신 방식
특징– Endpoint Dependent와 Independent 2가지 모드 존재
장단점장점– 두 Host 모두 사설 IP 주소 보유 시 적용 가능, Relay 서버 불필요
단점– 주기적인 Keepalive 메시지를 통해 연결 상태 유지 필요
  • 동일 NAT를 통해 Host 간 P2P 통신 시 IP주소, Port 변환 없이 Private Endpoint 정보 기반 통신 수행

 

3. NAT Traversal의 IETF 표준

표준표준 문서표준 내용
STUNRFC 5389– Session Traversal Utilities for NAT
– Endpoint가 NAT에 의해 할당된 IP 주소, Port 판별 위한 프로토콜 정의
TURNRFC 5766– Traversal Using Relay NAT
– Host가 Relay를 사용하여 Peer와 패킷 교환 가능하도록 프로토콜 정의
ICERFC 5245– Interactive Connectivity Establishment
– 오퍼/응답 모델의 UDP 멀티미디어 세션위한 NAT 순회 프로토콜 정의
  • RTP 프로토콜을 활용한 WebRTC 등 Host 간 P2P 연결 생성 및 데이터 전송 시 STUN, TURN, ICE 같은 표준 기법들을 이용하여 사설 네트워크에서 NAT 기반 원활한 통신을 제공

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^