← 목록으로
네트워크
#NAT#PAT#IPv4고갈#CGN#NAT64
최종 업데이트 · 2026-10-28

NAT(Network Address Translation, 네트워크 주소 변환)

1. 개요

가. 정의

NAT(Network Address Translation)란 IP 패킷이 라우터·방화벽 같은 경계 장비를 통과할 때, 헤더에 담긴 출발지 또는 목적지 IP 주소(및 포트)를 다른 값으로 바꿔치기하여, 서로 다른 주소 공간(대개 사설망과 공인망)을 연결하는 네트워크 주소 변환 기법을 말한다. 변환 장비는 원본 주소와 변환 주소의 대응 관계를 변환 테이블(NAT table)에 기록해 두었다가, 되돌아오는 응답 패킷의 주소를 역으로 복원함으로써 양방향 통신을 중개한다.

NAT는 본래 IPv4 주소 고갈이라는 현실적 제약에 대응하기 위해 고안되었으나, 오늘날에는 주소 절약을 넘어 내부망 은닉과 경계 보안의 핵심 수단으로 자리 잡았다. 하나의 공인 IP 뒤에 수백~수천 대의 사설 호스트를 숨길 수 있어, 가정·기업·통신사 모두가 사실상 NAT 없이는 인터넷에 접속하지 못하는 구조가 되었다. RFC 2663·3022로 개념과 용어가 표준화되었고, 특히 포트까지 함께 변환하는 방식(NAPT/PAT)이 보편화되면서 "공인 IP 1개 = 호스트 1대"라는 제약이 깨졌다.

나. 등장 배경과 필요성

NAT가 필요해진 가장 직접적인 배경은 IPv4 주소의 구조적 고갈이다. IPv4는 약 43억 개(2³²)의 주소만 표현할 수 있는데, 인터넷에 연결되는 단말이 폭증하면서 1990년대 이미 고갈이 예견되었고, 2011년 IANA의 최상위 주소 블록이 소진되었다. NAT는 RFC 1918이 정의한 사설 주소 대역(10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)을 내부에서 자유롭게 재사용하고, 외부로 나갈 때만 소수의 공인 IP로 변환함으로써 공인 주소 소비를 극적으로 줄였다.

두 번째 배경은 내부망 토폴로지의 은닉과 경계 통제이다. NAT를 거치면 외부에서는 내부 호스트의 실제 주소 구조를 볼 수 없고 변환 장비의 공인 IP 하나만 보이므로, 공격자가 내부 단말을 직접 지목·스캔하기 어려워진다. 특히 PAT 환경에서는 외부에서 내부로 들어오는 세션을 명시적으로 열어 주지 않는 한 수신이 차단되는데, 이 "기본 차단" 성질이 방화벽을 보완하는 1차 경계 효과를 제공한다.

세 번째 배경은 주소 체계의 독립성과 이전 용이성이다. 사설 주소를 쓰면 ISP를 바꾸거나 두 조직을 합병할 때 외부 공인 주소 변경과 무관하게 내부 주소를 유지할 수 있고, 반대로 겹치는 사설 대역을 쓰는 두 망을 연결할 때도 NAT로 주소 충돌을 회피할 수 있다. 이처럼 NAT는 주소 절약·보안·운영 유연성이라는 세 가지 가치를 동시에 제공하며 인터넷 성장의 숨은 토대가 되었다.

다. 적용 목표와 범위

NAT 도입의 목표는 첫째 공인 IPv4 주소의 절약과 공유, 둘째 내부 구조 은닉을 통한 경계 보안 보강, 셋째 사설 주소 기반의 운영 독립성 확보다. 적용 범위는 가정용 공유기, 기업 경계 방화벽, 데이터센터·클라우드의 아웃바운드 게이트웨이, 통신사의 대규모 공유 장비(CGN)에 이르기까지 사설·공인 경계가 존재하는 거의 모든 지점이다. 다만 NAT는 종단 간 투명성(end-to-end transparency)을 깨뜨려 P2P·VoIP·일부 프로토콜에 장애를 유발하므로, 그 한계와 우회(traversal) 기법까지 함께 이해해야 올바로 적용할 수 있다.

2. NAT의 동작 원리와 구성요소

가. 전체 구조

NAT의 전체 구조는 사설망의 패킷이 경계 장비에서 공인 주소로 변환되어 인터넷으로 나가고, 응답은 변환 테이블을 통해 원래 호스트로 복원되는 흐름으로 요약된다. 변환 장비는 내부(inside)와 외부(outside) 인터페이스를 가지며, 각 세션에 대해 (내부 IP·포트 ↔ 공인 IP·포트) 쌍을 테이블에 등록한다.

flowchart LR
    subgraph INSIDE["사설망(Inside, RFC 1918)"]
        H1["호스트 A(192.168.0.10)"]
        H2["호스트 B(192.168.0.11)"]
    end
    H1 --> NAT
    H2 --> NAT
    NAT["NAT 장비(경계 라우터/방화벽)"]
    TBL[("변환 테이블(세션 매핑)")] -.->|"매핑 조회·복원"| NAT
    NAT -->|"출발지 IP를 공인 IP로 치환"| INET["인터넷(Outside)"]
    INET -->|"응답 패킷"| NAT
    NAT -.->|"목적지를 원 호스트로 복원"| H1

변환 테이블(세션 매핑)을 중심에 둔다는 점이 핵심이다. NAT는 상태 유지(stateful) 장비로서, 나가는 첫 패킷을 보고 매핑을 생성하고 응답을 복원할 수 있어야 하므로, 이 테이블의 수명·크기·정책이 NAT의 성능과 보안을 좌우한다.

나. 변환 처리 생명주기와 구성요소

하나의 세션이 NAT를 통과하는 생명주기를 PAT(포트 변환)를 예로 들어 시퀀스로 보면 다음과 같다. 내부 호스트가 서로 다르더라도 포트를 달리 배정해 하나의 공인 IP를 공유하게 하는 것이 PAT의 본질이다.

sequenceDiagram
    participant A as 호스트 A(192.168.0.10:3500)
    participant N as NAT/PAT 장비
    participant S as 웹 서버(203.0.113.9:443)
    A->>N: "SYN 출발지=192.168.0.10:3500"
    N->>N: "매핑 생성: 내부 10:3500 -> 공인 1.1.1.1:40001"
    N->>S: "SYN 출발지=1.1.1.1:40001 로 치환"
    S-->>N: "SYN-ACK 목적지=1.1.1.1:40001"
    N->>N: "테이블 조회로 원 호스트 식별"
    N-->>A: "SYN-ACK 목적지=192.168.0.10:3500 복원"
    Note over N: "세션 종료·타임아웃 시 매핑 회수"

핵심 구성요소는 네 가지다. 내부/외부 인터페이스(inside/outside)는 변환의 기준이 되는 경계이며, 주소 풀(NAT pool)은 변환에 사용할 공인 주소의 집합이다. 변환 테이블(translation table)은 세션별 매핑과 타이머를 보관하는 상태 저장소이고, ALG(Application Layer Gateway)는 FTP·SIP처럼 페이로드 안에 IP·포트를 담는 프로토콜을 위해 본문까지 함께 고쳐 주는 보조 모듈이다.

다. 주소·포트 변환의 세부 동작

NAT가 바꾸는 필드는 IP 헤더의 주소뿐 아니라, 변경에 따라 재계산이 필요한 체크섬과, PAT의 경우 TCP/UDP 헤더의 포트 번호까지 포함한다. IP 체크섬과 TCP/UDP 체크섬은 주소·포트를 포함해 계산되므로, NAT 장비는 변환 후 이들을 다시 계산(또는 증분 갱신)해야 패킷이 폐기되지 않는다. 포트 배정은 보통 1024 이상의 가용 포트에서 선택하며, 하나의 공인 IP는 이론상 약 6만여 개의 포트로 그만큼의 동시 세션을 구분할 수 있으나, 실제로는 타이머·충돌·예약 포트 때문에 그보다 적다.

ICMP처럼 포트가 없는 프로토콜은 Query ID를 포트 대신 식별자로 사용해 매핑하며, 이 때문에 ping이나 traceroute도 PAT 환경에서 정상 동작한다. 한편 매핑에는 타임아웃(idle timeout)이 걸려 있어 일정 시간 트래픽이 없으면 회수되는데, 이 값이 짧으면 유휴 세션이 끊기고 길면 테이블이 포화되므로, TCP/UDP별로 적절히 조정하는 것이 운영의 관건이다.

3. NAT의 유형

가. 정적 NAT와 동적 NAT

NAT는 매핑 방식에 따라 크게 정적·동적·PAT로 나뉜다. 정적 NAT(Static NAT)는 내부 IP 하나를 공인 IP 하나에 고정 1:1로 대응시키는 방식으로, 외부에서 항상 같은 공인 주소로 내부 서버에 접근해야 하는 경우(웹·메일 서버 공개)에 쓰인다. 주소를 아끼지는 못하지만 매핑이 고정이라 인바운드가 예측 가능하다는 장점이 있어, DMZ 서버 공개의 표준 방식이다.

동적 NAT(Dynamic NAT)는 공인 주소 풀을 두고 내부 호스트가 외부로 나갈 때마다 풀에서 하나를 임시로 빌려 1:1로 할당하는 방식이다. 동시에 나가는 호스트 수만큼만 공인 주소가 필요하므로 정적보다 효율적이지만, 풀이 소진되면 그 이상은 접속하지 못하고, 매핑이 매번 달라져 외부에서 특정 내부 호스트를 지정해 접근할 수 없다.

나. PAT(NAPT)와 다수 호스트 공유

PAT(Port Address Translation, NAPT)는 오늘날 가장 보편적인 방식으로, 공인 IP 하나에 포트를 달리 배정해 다수의 내부 호스트를 동시에 매핑한다. 가정용 공유기가 수십 대의 단말을 ISP가 준 공인 IP 하나로 인터넷에 연결하는 것이 바로 PAT이며, "IP 과부하(IP overloading)"라고도 불린다. 주소 절약 효과가 가장 크지만, 외부에서 내부로의 인바운드 세션은 기본적으로 차단되므로 서버 공개에는 포트 포워딩(정적 매핑)을 별도로 설정해야 한다.

flowchart TB
    START["나가는 패킷 수신"] --> Q1{"목적지가 내부 공개 서버?"}
    Q1 -->|"예(인바운드·정적)"| STATIC["정적 매핑/포트포워딩 적용"]
    Q1 -->|"아니오(아웃바운드)"| Q2{"변환 방식?"}
    Q2 -->|"1:1 고정"| SNAT["정적 NAT 매핑"]
    Q2 -->|"풀에서 1:1 임시"| DNAT["동적 NAT 할당"]
    Q2 -->|"IP 1개 + 포트 다중"| PAT["PAT 포트 배정"]
    SNAT --> WRITE["테이블 기록·체크섬 재계산"]
    DNAT --> WRITE
    PAT --> WRITE
    STATIC --> WRITE
    WRITE --> OUT["공인망으로 전송"]

다. NAT 세부 분류 비교

PAT는 외부 주소·포트에 매핑을 얼마나 묶느냐에 따라 세부 동작이 달라지며, 이 차이가 P2P·VoIP의 통과 가능성을 좌우한다. 아래 표는 유형별 특성을 주소 절약·인바운드·대표 용도의 관점에서 정리한 것이다.

구분 정적 NAT 동적 NAT PAT(NAPT)
매핑 관계 1:1 고정 1:1 임시(풀) N:1(포트로 구분)
주소 절약 없음 중간 매우 큼
인바운드 접근 항상 가능 매핑 중에만 기본 차단(포워딩 필요)
대표 용도 서버 공개·DMZ 간헐 외부접속 가정·기업 공유
포트 변환 없음 없음 있음

정적 NAT는 "공개해야 할 서버"에, PAT는 "숨긴 채 내보낼 다수 단말"에 적합하다는 점이 핵심 차이다. 동적 NAT는 둘의 중간이지만 포트 공유가 없어 PAT만큼 절약되지 않아, 실무에서는 서버는 정적, 사용자망은 PAT로 조합하는 구성이 일반적이다.

4. NAT의 한계와 통과(Traversal) 기법

NAT는 종단 간 연결성을 깨뜨리므로, 외부에서 내부로 먼저 연결을 시도하는 애플리케이션에서 근본적 장애를 일으킨다. 특히 P2P 파일 공유, VoIP(SIP/RTP), 온라인 게임, 화상회의처럼 양측이 직접 세션을 맺어야 하는 경우, 양쪽 모두 PAT 뒤에 있으면 상대의 실제 주소·포트를 알 수 없어 연결이 성립하지 않는다. 이를 해결하기 위한 표준 기법이 STUN·TURN·ICE다.

STUN(Session Traversal Utilities for NAT)은 내부 호스트가 외부 STUN 서버에 질의해 "내가 외부에서 보이는 공인 IP·포트"를 알아내게 하여, 그 주소를 상대에게 알려 직접 연결을 시도하게 한다. 그러나 대칭형(symmetric) NAT처럼 목적지마다 포트를 달리 배정하는 환경에서는 STUN으로 알아낸 주소가 실제 통신에 쓰이지 않아 실패하는데, 이때는 TURN(Traversal Using Relays around NAT) 서버가 트래픽을 중계(relay)해 우회한다. ICE(Interactive Connectivity Establishment)는 직접 연결·STUN·TURN 후보를 모두 수집해 연결 가능한 경로를 자동으로 선택하는 프레임워크로, WebRTC가 이를 채택해 브라우저 간 실시간 통신을 가능하게 했다.

한편 애플리케이션 계층에서 IP·포트를 페이로드에 담는 FTP(액티브 모드)·SIP 등은 ALG가 본문을 함께 고쳐 주어야 동작하며, 가정용 공유기는 UPnP IGD·NAT-PMP·PCP 같은 프로토콜로 단말이 스스로 포트 포워딩을 요청하게 해 통과를 자동화한다. 이처럼 NAT 통과는 "NAT가 깬 투명성을 애플리케이션·보조 프로토콜이 복원한다"는 구조로 이해해야 한다.

5. 심화: 대규모 NAT(CGN)와 IPv6 전환 동향

가. 통신사 수준의 CGN(Carrier-Grade NAT)

IPv4 고갈이 심화되면서 통신사는 가입자에게 공인 IP를 줄 수 없게 되자, ISP 내부에 2차 NAT 계층을 두는 CGN(또는 LSN, Large Scale NAT)을 도입했다. 가입자 가정의 공유기(1차 NAT)가 변환한 트래픽을 ISP의 CGN(2차 NAT)이 다시 변환하는 더블 NAT 구조이며, 이때 가입자에게는 RFC 6598이 전용으로 할당한 100.64.0.0/10 공유 대역이 부여된다. CGN은 수만 가입자가 소수의 공인 IP를 공유하게 해 주소를 극한으로 절약하지만, 가입자별 인바운드가 불가능해지고, 하나의 공인 IP를 다수가 공유함에 따라 악용 행위의 추적(로깅)과 IP 기반 차단·평판 관리가 어려워지는 부작용을 낳는다. 이 때문에 CGN은 포트 블록 단위 할당과 상세 로깅을 함께 요구하며, RFC 6888은 이러한 CGN 요구사항을 규정한다.

나. IPv6 전환과 NAT64/DNS64

NAT는 IPv4의 수명을 연장한 성공적 임시방편이었으나, 근본 해법은 주소 공간이 사실상 무한한(2¹²⁸) IPv6로의 전환이다. IPv6는 모든 단말에 공인 주소를 줄 수 있어 원칙적으로 NAT가 불필요하지만, 전환기에는 IPv6 전용 단말이 IPv4 전용 서버와 통신해야 하는 혼재 상황이 발생한다. 이를 중개하는 것이 NAT64(RFC 6146)로, IPv6 패킷을 IPv4로 변환하며, 보통 DNS64(RFC 6147)와 함께 쓰여 IPv4 주소를 IPv6 주소로 합성해 단말에 돌려준다. 다만 IPv6 환경에서도 내부 구조 은닉을 목적으로 NAT를 쓰려는 수요가 있어 NPTv6(RFC 6296) 같은 무상태 프리픽스 변환이 정의되었으나, IETF는 IPv6에서는 주소 변환 대신 방화벽으로 보안을 달성할 것을 권고하여, NAT는 점차 IPv4 유산 기술로 수렴하는 추세다.

다. 예상 출제 방향과 답안 구성 전략

기술사 관점에서 NAT는 "IPv4 고갈 대응과 주소 절약 메커니즘"이라는 개념 설명으로 출제되거나, "NAT 유형 비교와 보안·통과 설계"라는 분석 문제로 확장될 수 있다. 답안은 단순 정의에 그치지 말고 ① 정적·동적·PAT의 매핑 차이와 적용 기준, ② 체크섬·포트·ALG 등 변환 세부 동작, ③ STUN·TURN·ICE 통과 기법과 CGN·NAT64의 전환 맥락을 주소 절약–보안–종단투명성 훼손이라는 트레이드오프 축으로 엮어 전개하는 것이 설득력 있다. 여기에 IPv6 전환 전망까지 더하면 기술사 수준의 통합적 시야를 드러낼 수 있다.

6. 고려사항 및 시사점

  • 보안 효과의 과신 금지: NAT의 인바운드 기본 차단은 부수적 경계 효과일 뿐, 설계된 보안 통제가 아니다. 포트 포워딩·UPnP로 구멍이 열리면 그대로 노출되므로, NAT를 방화벽의 대체재로 여겨서는 안 되며 상태 기반 방화벽·IPS와 함께 다계층으로 구성해야 한다. 특히 IPv6 전환 시 "NAT가 없어 위험하다"는 오해에 빠지지 말고 방화벽 정책으로 경계 통제를 명시적으로 설계해야 한다.
  • 종단 투명성 훼손과 애플리케이션 호환성: NAT는 종단 간 직접 연결을 전제하는 프로토콜을 깨뜨린다. VoIP·화상회의·P2P를 도입할 때는 STUN/TURN/ICE 지원 여부와 TURN 중계 서버의 대역폭·비용을 반드시 함께 설계하고, ALG가 유발하는 예기치 않은 페이로드 변형(오히려 장애를 일으키는 경우)도 점검 대상에 포함해야 한다.
  • 성능·확장성과 상태 테이블 관리: NAT는 상태 유지 장비이므로 동시 세션 수가 변환 테이블 크기와 CPU에 직접 영향을 준다. 대규모 환경에서는 테이블 포화·포트 고갈이 서비스 장애로 이어지므로, 타임아웃 튜닝·세션 상한·이중화(장비 간 상태 동기화)를 설계에 반영하고, CGN은 포트 블록 할당으로 로깅량과 추적성을 균형 있게 관리해야 한다.
  • 추적성·법적 대응과 CGN의 딜레마: 다수 가입자가 하나의 공인 IP를 공유하는 CGN에서는 사고 발생 시 특정 가입자 식별이 어려워, 수사 협조·악용 차단·평판 관리에 공통적 어려움이 생긴다. 포트 범위 단위 로깅과 정확한 시각 동기화(NTP)를 의무화해 추적성을 확보하는 운영 체계가 필요하다.
  • 전망 — IPv4 유산 기술로의 수렴: NAT는 IPv4 수명을 20년 이상 연장했으나, IPv6 보급률이 상승하면서 장기적으로는 NAT64·듀얼스택을 거쳐 "NAT 없는 종단 간 인터넷"으로 이행할 전망이다. 당분간은 IPv4/IPv6 혼재가 불가피하므로, 조직은 듀얼스택을 기본으로 삼고 NAT를 전환기 중계·주소 절약 수단으로 한정해 운용하는 전략이 현실적이다.

참고자료


한 줄 요약: NAT는 경계 장비에서 IP 주소·포트를 변환해 사설망과 공인망을 잇는 기법으로, IPv4 고갈에 대응해 주소를 절약하고 내부망을 은닉하지만, 정적·동적·PAT의 매핑 차이와 CGN·NAT64 전환 맥락, 그리고 종단 투명성 훼손을 보완하는 STUN·TURN·ICE 통과 기법까지 함께 이해해야 비로소 올바로 설계·운용할 수 있는, IPv6 시대로 수렴해 가는 과도기적 핵심 인프라 기술이다.