1. NAT (Network Address Translation)
ㅇ IP 주소를 변환하는 기술
- 1개의 실제 공인 IP 주소에, 다량의 가상 사설 IP 주소를 할당 및 매핑하는,
- 1:1 또는 1:多 주소 변환(Address Translation) 방식
※ [참고]
- IP 주소의 동적 설정 방식 ☞ 유동IP
- 사적인 용도로 임의 사용 가능한 IP 주소 범위 ☞ 사설IP
- NAT 사용 장비 例) ☞ 인터넷공유기(IP 공유기) 등
2. NAT 및 DHCP 비교
ㅇ NAT : 사설 IP 주소공간을 별도로 정하고는, IP 주소변환에 중점을 둠
- 기본적으로, 인터넷 상에 동일 IP 주소를 재사용할 수 있게 하는 것
ㅇ DHCP : 기확보된 공인 IP 주소들을 Pool화하여, 집단 공유하며 사용후 반납
- 기본적으로, 제한된 IP 주소를 여럿이 공유케 하여 절약하려는 것
3. NAT의 사용 이유
ㅇ IPv4의 `IPv4 주소 고갈` 및 `라우팅 테이블 대형화 (Routing Scalability)`에 대한 해소책
ㅇ 주로, 공인 IP 주소의 효율적 공유 및 절약
- 공인 IP 주소 사용시 ISP社를 바꿀 때 마다, 모든 컴퓨터 주소를 바꿔야하는 등의 단점 해소
ㅇ 또한, 주소변환을 통해 내부 사설망 보안 및 Load Balancing 등도 가능
- 통상, 방화벽 등과 결합되어 함께 기능 수행
. 내/외 주소변환 규칙을 외부에서 알 수 없으므로,
. 내부 망에 대한 정보(내부망 주소,숫자 설정 등)가 외부에 노출 안됨 (프라이버시 보호,은닉)
- 주로, 외부망과 사설망 간에 연결점에 있는 라우터에서 수행됨
4. NAT의 사용 유의점
ㅇ NAT은, IP 주소 변환 뿐만 아니라,
- IP 주소, TCP Checksum, UDP Checksum 등 서로 관련된 많은 부분도 함께 변경해야 하므로,
. 매 연결 단위로 연결 상태 정보를 필요로 하고,
. 다수의 프로토콜 계층에 걸쳐 동작해야 할 필요가 있는 등
- FTP, SIP 등에서 문제 발생
※ [참고]
- NAT 문제 발생 유형들 ☞ RFC 3027 (Protocol Complications with the IP Network Address Translator)
5. NAT의 주요 기능
ㅇ IP Masquerading (IP 위장, IP 마스커레이드)
- 외부망에서 볼 때 내부망 여러 호스트들이 단일 NAT 서버 하나로 만 보임
. (외부) ↔ (NAT 1대) ↔ (多 호스트들)
- 단 하나의 공인 IP로 내부 모든 PC가 대표 IP 주소를 공유 사용
- IP 계층,전송 계층 모두에서 변환(맵핑)으로, 마치 가면(위장,Masquerading) 효과 있음
ㅇ NAT Traversal (NAT 투과/초월)
- (내외부 간 호스트끼리 직접 통신 연결이 가능토록 하는 기능)
. 인터넷을 통한 양자간 직접 음성 및 영상 통화(VoIP 등) 등에 필요
- (포트번호별 다른 내부 호스트 연결) : 포트 포워딩 (Port Forwarding)
. 트랜스포트계층에서, 내부망 여러 호스트들이 외부망과 각각 별도로 연결짓게 할 수 있음
.. 서비스 포트 번호 별로 내부의 사설 IP로 지정된 호스트로 전달
.. 주로, 내부 서버를 외부 인터넷에 공개할 때 등에 사용
ㅇ Load Balancing
- 각 포트별로 트래픽을 균형있게 함
ㅇ 패킷 필터링
- IP주소,포트번호를 기반으로 접근제어
6. NAT의 방식 구분
※ ☞ NAT 방식 구분 참조
- Basic NAT 방식 : (IP 주소의 변환 만 수행)
. 정적 NAT 방식 (1:1), 동적 NAT 방식 (多:1)
- NAPT 또는 PAT 방식 : (IP 주소, 포트 번호 등 포함, 복합적 변환 수행)
- Twice NAT 방식 : 출발지,목적지 모두 주소변환이 동시에 필요한 방식
- CGNAT (Carrier Grade NAT), LSNAT (Large Scale NAT) : 대규모로 사용 가능토록 확장한 방식