NAT로 사설망과 인터넷 경계를 설계하는 방법
NAT의 주소 변환 방식과 Static NAT, Dynamic NAT, PAT, LSNAT의 용도, 운영 시 고려할 보안·호환성·IPv6 전환 이슈를 정리한다.
2026-08-15 · 최초 발행 2025-08-10
사설망을 인터넷에 연결하는 주소 변환 계층
NAT(Network Address Translation)는 사설 IP 주소를 공인 IP 주소로 바꿔 인터넷 통신을 가능하게 하는 네트워크 주소 변환 기술이다. 제한된 공인 IPv4 주소를 여러 내부 장치가 함께 쓰게 하고, 외부에 내부 주소 체계가 드러나는 범위도 줄인다.
NAT가 필요해진 배경에는 약 43억 개인 IPv4 주소 공간의 부족, 내부 시스템을 외부 공격으로부터 분리하려는 요구, ISP 변경 때 내부 주소를 모두 다시 설계해야 하는 부담이 있다.
내부 호스트는 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 같은 사설 IP 주소 대역을 사용할 수 있다. NAT 장비는 내부와 외부 사이의 중개점에서 패킷의 출발지 또는 목적지 주소와 포트 정보를 변환하고, Translation Table로 통신 상태를 추적한다. 이 테이블에는 소스 IP, 목적지 IP, 소스 포트, 목적지 포트, 프로토콜 정보가 저장되며, 세션 타임아웃을 두면 사용하지 않는 연결을 자동으로 해제할 수 있다. 외부에서는 일반적으로 NAT 장비의 공인 IP만 보게 된다.
이 구조는 제한된 공인 IP로 다수의 내부 호스트를 연결하고, 내부 주소 체계를 외부에 숨기며, ISP가 바뀌어도 내부 IP 체계를 유지할 수 있게 한다. 다만 NAT 자체가 완전한 보안 솔루션을 의미하지는 않는다.
외부 공개와 주소 공유 방식에 따른 NAT 선택
Static NAT로 고정된 외부 진입점 만들기
Static NAT는 내부 IP와 외부 IP를 1:1로 고정 매핑한다. 웹 서버나 메일 서버처럼 외부에서 지속적으로 접근해야 하는 서버에 적합하며, 양방향 연결이 항상 보장된다. 반대로 공인 IP 주소를 절약하는 효과는 제한적이다.
Dynamic NAT는 공인 IP 풀을 필요할 때 배정한다
Dynamic NAT는 NAT Pool을 사용해 내부 IP와 외부 IP를 M:N으로 동적 매핑한다. 여러 내부 호스트가 간헐적으로 인터넷에 접속하는 환경에서 사용할 수 있다. 통신이 필요하면 사용 가능한 공인 IP 풀에서 주소를 할당하고, 통신이 끝나면 반환한다.
Static NAT보다 공인 IP 활용도를 높일 수 있지만, 동시 접속자가 공인 IP 풀 크기를 넘으면 일부 접속은 불가능하다.
PAT와 NAPT는 포트까지 변환한다
PAT(Port Address Translation) 또는 NAPT(Network Address Port Translation)는 내부 IP와 포트의 조합을 하나의 공인 IP와 서로 다른 포트에 매핑한다. 가정이나 소규모 사무실에서 인터넷을 공유할 때 가장 일반적인 NAT 유형이다.
변환 테이블은 (내부IP:포트) → (공인IP:변환된포트) 매핑을 관리한다. 하나의 공인 IP로 수천 개의 연결을 지원할 수 있는 대신, 일부 애플리케이션에서는 호환성 문제가 생길 수 있다.
LSNAT는 요청을 내부 서버로 나눈다
LSNAT(Load Sharing NAT)는 Distributed NAT라고도 하며, 부하 분산을 위해 사용하는 NAT 기술이다. 웹 서버 팜이나 대규모 서비스에서 외부 요청을 여러 내부 서버에 분산한다.
Load Sharing Table은 트래픽 분산 정책을 관리하고, Child Host는 실제 서비스를 제공하는 서버 그룹이다. 이 방식은 고가용성과 확장성을 제공한다.
주소 은폐, 제한적 공개, 트래픽 분산에 쓰는 방식
IP 마스커레이딩은 내부 호스트의 IP 주소를 NAT 라우터의 공인 IP 뒤에 숨기는 방식이다. 리눅스 시스템에서 널리 사용하는 NAT 구현 방식이며, 경로는 Internet → eth1(외부 인터페이스) → Router(NAT) → eth0(내부 인터페이스) → Client로 구성된다.
포트 포워딩은 외부의 특정 포트로 들어온 트래픽을 내부의 특정 호스트와 포트로 전달하도록 구성하는 방식이다. 웹, 게임, VPN 서버처럼 내부 서비스를 제한적으로 외부에 공개할 때 사용한다. 예를 들어 외부 80포트를 내부 192.168.1.10:80으로 전달할 수 있다. 외부에서 내부로 들어오는 경로를 만들기 때문에 보안 위험이 커질 수 있으며, 공개할 서비스와 포트를 제한하고 방화벽, IDS/IPS 같은 추가 보안 장비와 함께 구성해야 한다.
로드 밸런싱은 LSNAT로 다수 서버에 요청을 분배하는 활용 방식이다. 라운드 로빈, 가중치 기반, 최소 연결 같은 알고리즘을 적용해 시스템 안정성과 응답성을 높일 수 있다.
운영에서 확인할 성능, 호환성, 보안 경계
주소 변환은 패킷마다 수행되므로 대규모 네트워크에서는 전용 NAT 장비나 고성능 라우터를 고려해야 한다. 패킷 변환에 따른 지연이 발생할 수 있고, 장애가 났을 때는 NAT 테이블과 세션 상태를 함께 추적해야 하므로 원인 분석과 관리가 복잡해진다.
직접적인 P2P 통신 같은 엔드-투-엔드 연결성은 떨어질 수 있다. P2P 애플리케이션, VoIP, 온라인 게임처럼 특정 프로토콜을 사용하는 애플리케이션이나 IP 주소 정보를 페이로드에 포함하는 프로토콜에서는 호환성 문제가 생길 수 있으며, STUN, TURN, ICE 같은 NAT 트래버설 기술로 일부를 해결할 수 있다. 연결 타임아웃이나 특정 애플리케이션의 작동 불량은 NAT 환경에서 흔히 확인하는 문제이므로 NAT 테이블 상태와 세션을 로깅·모니터링하고, netstat, tcpdump, NAT 테이블 확인 명령어로 통신 경로를 점검할 수 있다.
NAT는 내부 네트워크 구조와 주소 체계를 외부에서 숨기는 보조 계층이다. 방화벽, IDS/IPS 같은 추가 보안 장비와 함께 운영해야 한다.
IPv6는 2^128개의 광범위한 주소 공간을 제공하므로 NAT의 필요성을 줄인다. 그러나 IPv4와 IPv6이 공존하는 전환기에는 NAT64, DS-Lite 같은 변형 기술이 활용된다.
가정, 기업, 클라우드에서의 배치
가정용 인터넷 공유기는 가장 흔한 PAT 구현 사례다. 한 개의 공인 IP를 가정 내 모든 장치가 공유하며, 공유기는 NAT와 DHCP 서버 역할을 함께 수행한다. 필요한 경우 포트 포워딩으로 내부 서비스를 외부에 공개할 수 있다.
기업 네트워크에서는 경계 라우터나 방화벽이 NAT 기능을 담당한다. 내부망(DMZ) 서버에는 Static NAT를 적용하고, 일반 사용자에게는 PAT를 적용하는 하이브리드 구성이 일반적이다.
클라우드 환경에서는 가상 네트워크 안에서 NAT 게이트웨이 서비스를 제공한다. AWS의 NAT Gateway와 Azure의 NAT 서비스가 대표적이다. 프라이빗 서브넷의 인스턴스가 인터넷에 접속하는 경로를 제공하며, 고가용성과 확장성을 갖춘 관리형 NAT 서비스로 구성된다. IPv6 보급 이후에도 기존 IPv4 인프라와의 호환성, 내부 네트워크 보안 요구 때문에 NAT는 계속 중요한 역할을 할 전망이다.