NAT — 사설 IP와 공인 IP 변환의 원리
집에서 여러 기기가 인터넷을 쓸 수 있는 이유가 NAT 덕분입니다. 하나의 공인 IP로 여러 사설 IP 기기가 인터넷에 접속할 수 있게 해주는 기술입니다.
NAT란
NAT(Network Address Translation) 은 사설 IP와 공인 IP 간 주소를 변환하는 기술입니다.
사설 네트워크 NAT 라우터 인터넷
192.168.1.10 ──┐
192.168.1.11 ──┤── NAT ──→ 203.0.113.1 ──→ 서버
192.168.1.12 ──┘ (주소 변환)
NAT 유형
1. Static NAT (1:1)
사설 IP와 공인 IP를 1:1로 고정 매핑합니다.
2. Dynamic NAT
사설 IP를 공인 IP 풀에서 동적으로 매핑합니다.
3. PAT / NAPT (Port Address Translation)
가장 많이 사용 되는 방식입니다. 하나의 공인 IP를 포트 번호로 구분합니다.
NAT 테이블:
| 사설 IP:포트 | 공인 IP:포트 | 목적지 |
|----------------------|---------------------|-----------------|
| 192.168.1.10:50001 | 203.0.113.1:40001 | 8.8.8.8:443 |
| 192.168.1.11:50002 | 203.0.113.1:40002 | 8.8.8.8:443 |
| 192.168.1.12:60001 | 203.0.113.1:40003 | 1.1.1.1:80 |
하나의 공인 IP로 약 65,000개의 동시 연결이 가능합니다 (포트 번호 범위).
NAT의 장단점
장점:
- IPv4 주소 절약 (사설 IP는 무한히 재사용 가능)
- 내부 네트워크 구조 은닉 (보안)
단점:
- 외부에서 내부로 접속 어려움 → 포트 포워딩 필요
- P2P 통신 복잡 → NAT Traversal (STUN, TURN, ICE)
- End-to-End 원칙 위반
NAT Traversal
NAT 뒤의 장비와 직접 통신하기 위한 기법입니다.
| 기법 | 설명 |
|---|---|
| STUN | 자신의 공인 IP/포트를 알아냄 |
| TURN | 중계 서버를 통해 통신 |
| ICE | STUN + TURN 조합으로 최적 경로 선택 |
WebRTC가 이 기법들을 사용하여 브라우저 간 P2P 통신을 구현합니다.
핵심 포인트
- NAT가 IPv4 수명을 연장한 방법: 사설 IP로 공인 IP 소비 최소화
- 포트 포워딩: 외부에서 내부 서버 접근을 위해 NAT 테이블에 고정 매핑 추가
- CGNAT: 통신사가 NAT를 중복 적용 (사설 IP → 통신사 사설 IP → 공인 IP)
정리
NAT는 IPv4 주소 고갈을 해결한 핵심 기술이면서, 동시에 P2P 통신을 어렵게 만든 원인이기도 합니다. PAT 방식으로 하나의 공인 IP에 수만 개의 사설 IP가 매핑되는 원리를 이해하면 됩니다.