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