NAT 동작 원리 완전 해설 — 현장에서 배운 Static NAT·Dynamic NAT·PAT의 진짜 차이
들어가며
소규모 기업 네트워크를 구축하면서 가장 많이 받는 질문 중 하나가 이것입니다.
“공인 IP가 1개인데 직원 30명이 동시에 인터넷을 쓸 수 있나요?”
답은 “당연히 됩니다”입니다. 그 이유가 바로 NAT, 정확히는 PAT 덕분입니다.
처음 NAT를 현장에서 설정했을 때 저도 헷갈렸습니다. 세 가지 유형(Static, Dynamic, PAT)이 있는데, 어떤 상황에 어떤 것을 써야 하는지 구분이 안 됐습니다. 내부 서버를 외부에 노출하려다가 PAT 설정으로 시도했다가 실패한 경험도 있습니다. 용도를 명확히 이해한 뒤로는 실수가 없어졌습니다.
이 글에서는 세 가지 NAT 유형을 현장 경험을 바탕으로 명확하게 구분해 설명합니다.

사설 IP와 공인 IP — NAT가 필요한 이유
■ 사설 IP 주소 범위 (RFC 1918)
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
이 주소들은 인터넷에서 라우팅되지 않습니다. 즉, 외부 인터넷에서 사설 IP로 패킷을 보내도 도달할 수 없습니다.
IPv4 주소는 총 약 43억 개뿐인데, 전 세계 장비 수는 이미 이를 훨씬 초과합니다. NAT는 하나의 공인 IP로 수많은 사설 IP 장비가 인터넷을 공유할 수 있게 해주어 IPv4 고갈 문제를 실질적으로 해결한 기술입니다.
Static NAT — 내부 서버를 외부에 노출할 때
Static NAT는 특정 사설 IP를 특정 공인 IP에 1:1로 고정 매핑하는 방식입니다.
■ 현장 사용 사례
사내 웹 서버나 메일 서버를 외부 인터넷에서 접근 가능하게 만들 때 씁니다.
예: 192.168.1.100 (내부 웹 서버) → 203.0.113.10 (공인 IP)
현장 경험: Static NAT를 설정할 때 자주 하는 실수가 inside/outside 인터페이스를 반대로 지정하는 것입니다. inside는 반드시 내부 인터페이스에, outside는 인터넷 연결 인터페이스에 적용해야 합니다.
■ Cisco 설정 예시
ip nat inside source static 192.168.1.100 203.0.113.10
interface GigabitEthernet0/0
ip nat inside ← 내부 인터페이스
interface GigabitEthernet0/1
ip nat outside ← 외부(인터넷) 인터페이스
■ 단점
공인 IP가 사설 IP 수만큼 필요하므로 IP 절약 효과가 없습니다. 서버 수가 적을 때만 사용합니다.
Dynamic NAT — 현실에서는 거의 쓰지 않는 방식
Dynamic NAT는 공인 IP 풀에서 사설 IP 장비에 동적으로 할당하는 방식입니다.
공인 IP 풀: 203.0.113.10 ~ 203.0.113.20 (11개)
→ 내부 장비 12번째가 접속 시도 → 풀 소진 → 접속 거부
현장 팁: Dynamic NAT는 이 풀 소진 문제 때문에 실무에서 거의 쓰지 않습니다. 대부분의 환경에서 PAT(NAT Overload)로 대체됩니다.
PAT (Port Address Translation) — 현장의 99%가 쓰는 방식
PAT는 하나의 공인 IP 주소로 수백·수천 대의 사설 IP 장비가 동시에 인터넷을 사용할 수 있게 해줍니다. IP뿐만 아니라 TCP/UDP 포트 번호까지 함께 추적하여 각 연결을 구분합니다.
■ 동작 예시
장비 A (192.168.1.10): 8.8.8.8의 80번 포트로 연결
→ 출발지: 192.168.1.10:1025
→ NAT 변환 후: 203.0.113.1:10001
장비 B (192.168.1.11): 같은 서버의 80번 포트로 연결
→ 출발지: 192.168.1.11:1025
→ NAT 변환 후: 203.0.113.1:10002 ← 같은 공인 IP, 다른 포트
응답이 돌아올 때:
:10001 → 192.168.1.10:1025 으로 복원
:10002 → 192.168.1.11:1025 으로 복원
■ Cisco 설정 예시 (인터페이스 공인 IP 사용)
access-list 1 permit 192.168.0.0 0.0.255.255
ip nat inside source list 1 interface GigabitEthernet0/1 overload
← ‘overload’ 키워드가 PAT를 의미
현장 팁: overload 키워드를 빠뜨리면 Dynamic NAT로 동작해 장비 수가 공인 IP 개수를 초과하면 접속이 차단됩니다. 반드시 overload를 붙여서 PAT로 동작하게 하십시오.
NAT의 한계와 현장 주의사항
■ 외부에서 내부로 직접 연결 불가
PAT는 외부에서 내부로 먼저 연결을 시작할 수 없게 만듭니다.
P2P, VoIP, 원격 데스크톱 등에서 연결 문제가 생기면 먼저 NAT Traversal 이슈를 의심하세요.
해결책: 포트 포워딩(Port Forwarding) 설정
ip nat inside source static tcp 192.168.1.100 3389 203.0.113.1 3389
← 외부 3389 포트를 내부 서버 3389 포트로 포워딩 (원격 데스크톱)
■ NAT 테이블 확인 명령어
show ip nat translations ← 현재 활성 연결 목록
show ip nat translations total ← 전체 연결 수 확인
clear ip nat translation * ← NAT 테이블 초기화 (주의: 기존 연결 모두 끊김)
현장 경험: VoIP 품질이 갑자기 나빠지거나 인터넷 연결이 특정 장비에서만 안 될 때, NAT 테이블을 확인해보면 오래된 연결 항목이 비정상적으로 많이 쌓여 있는 경우가 있습니다. clear ip nat translation * 으로 테이블을 초기화하면 해결되는 경우가 적지 않습니다.
마무리 — NAT 유형을 구분하면 설정 실수가 없어진다
세 가지 NAT 유형을 한 줄로 정리하면 이렇습니다.
- 내부 서버를 외부에 공개해야 한다 → Static NAT
- 공인 IP 여러 개를 동적으로 나눠 써야 한다 → Dynamic NAT (거의 안 씀)
- 공인 IP 1개로 여러 장비가 인터넷을 써야 한다 → PAT (대부분의 환경)
구축 현장에서 NAT 설정 후 통신이 안 된다면, show ip nat translations를 먼저 실행하세요. 변환 항목이 생기지 않는다면 ACL이나 inside/outside 설정을 확인하고, 항목은 있는데 응답이 없다면 외부 방화벽 정책을 확인하는 순서로 접근하면 대부분 해결됩니다.
