1. NAT 방식의 구분
ㅇ Basic NAT 방식 : (IP 주소의 변환 만 수행)
- 정적 NAT 방식 (static NAT 방식, 정적인 1:1 NAT 방식)
. 수동으로, 외부 공인 IP와 내부 사설 IP를 매핑 (1:1)
- 동적 NAT 방식 (dynamic NAT 방식)
. 사설 IP 주소를 풀(Pool)화하여, 소수의 공인 주소들에 동적으로 자동 매핑 (多:1)
ㅇ NAPT 또는 PAT 방식 : (IP 주소, 포트 번호 등 포함, 복합적 변환 수행)
- IP 주소 뿐만 아니라 포트 번호 등까지도 포함시켜 내부 호스트를 구분
. TCP,UDP에서는, 포트번호
. ICMP에서는, 질의식별자(에코 요청시 ID 필드, Query Identifier)
※ [참고] ☞ RFC 3022 : Traditional IP Network Address Translator (Traditional NAT)
ㅇ Twice NAT 방식
- 출발지,목적지 모두 주소변환이 동시에 필요한 방식
. 일반 NAT 보다 더 복잡한 변환 수행 필요
- 필요 형태
. 두 네트워크 간에 IP 주소 대역이 중복되거나,
. 특정 정책에 따라 출발지와 목적지 주소를 모두 변환해야 할 때 사용
. 例) VPN, 데이터센터 간 통신, ISP 환경 등
또는, 동일 회사 내 멀리 떨어진 두 지사 간에 인터넷 경유 연결 등
ㅇ CGNAT (Carrier Grade NAT), LSNAT (Large Scale NAT)
- 기존 NAPT를, 통신사업자 또는 ISP 등에서, 대규모로 사용 가능토록 확장한 방식
- 활용 분야
. 이동통신망, 광대역 인터넷 등 대량의 사용자에게 공용 IP를 제공해야 하는 환경
. 대규모 사용자 트래픽의 분산 처리 등
- 구현 요소
. 서비스 흐름 : 고객 단말 → 가정용 공유기(NAPT) → ISP CGN 장비(NAPT) → 인터넷
. 포트 블록 할당
.. 각 가입자에게 균등하게 적정 범위의 포트(포트 블록)를 할당 제어
.. 포트 부족시, ICMP 메시지로 알리고, 포트 할당 정책을 통해 네트워크 안정성 유지
. ALG (Application Layer Gateway) 지원
.. SIP, FTP, PPTP, IPSEC 등 일부 프로토콜에서, NAT 환경을 위한 추가 처리
. 고 가용성 및 확장성 장비 사용
.. 수십만~수백만 세션을 처리 가능토록, 고성능 하드웨어,소프트웨어 설계 적용
- 구현 방식
. NAT44/NAT444 : 사설 IPv4 → ISP 내부 사설 IPv4 → 공용 IPv4로 3번의 주소 변환 필요
. DS-Lite (Dual Stack Lite) : IPv6 네트워크 내에서 IPv4 트래픽 만 CGNAT로 처리하는 방식
2. NAPT (Network Address Port Translation) 또는 PAT (Port Address Translation), 그리고 문제점
ㅇ 원래는, (Basic NAT)
- IP 주소 변환(공인 IP 주소 → 사설 IP 주소) 만을 이용하는 basic NAT 방식 이었음
. 즉, IP 헤더의 목적지와 출발지 주소 만 변경하고, IP 패킷 내부에 다른 어떤 처리도 안함
ㅇ 그러다가, (NAPT 또는 PAT)
- TCP,UDP 헤더 내 포트 번호 변환을 통해 (IP 주소 및 포트 번호를 모두 함께 결합시킴),
- 하나의 IP 주소 및 여러 포트 번호에 의해,
- 여러 내부 호스트 주소 및 포트를 연결이 가능해짐 (IP Masquerading)
ㅇ 이에따라, 구현이 복잡해지는 등 문제점 발생
- 프로토콜,응용 마다 NAT 구현이 달라짐
- NAT 장비 자신이 연결 마다 내부 상태 정보(내부 호스트 IP 주소,포트 번호 등)를 보존 필요
- 例) SIP를 이용한 어플리케이션 등에 문제 발생 가능성