집이나 사무실에서 여러 노트북과 휴대폰이 동시에 인터넷을 쓰는데도 외부에서는 하나의 공인 IP처럼 보이는 이유가 바로 주소 변환(NAT)입니다. NAT를 이해하면 사설 IP, 공인 IP, 포트 포워딩, 클라우드 NAT Gateway 문제를 훨씬 정확하게 해석할 수 있습니다.
주소 변환(NAT)이란 무엇인가
NAT의 한 줄 정의
NAT는 패킷 안의 IP 주소를 다른 IP 주소로 바꾸는 기능입니다. 더 실무적으로 말하면 내부 네트워크에서 쓰는 사설 IP를 외부 인터넷에서 통신 가능한 공인 IP와 매핑하는 과정입니다. NIST CSRC 용어집도 NAT를 한 네트워크의 주소를 다른 네트워크의 주소로 매핑하거나, 패킷 내 IP 주소를 다른 IP 주소로 대체하는 기능으로 설명합니다. 참고: NIST CSRC Network Address Translation.
사설 IP와 공인 IP가 만나는 지점
사설 IP는 조직 내부에서 자유롭게 사용할 수 있지만 공용 인터넷에서 전역적으로 라우팅되는 주소가 아닙니다. RFC 1918에서 정의한 대표 사설 주소 공간은 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16입니다. 집 공유기의 192.168.0.x 주소, 회사 내부 서버의 10.x.x.x 주소가 여기에 해당하는 경우가 많습니다.
NAT가 패킷에서 바꾸는 정보
단순한 NAT는 IP 주소만 바꿀 수 있고, 더 흔한 방식은 IP 주소와 TCP 또는 UDP 포트를 함께 바꿉니다. 예를 들어 내부 PC의 192.168.0.10:51532가 외부 웹 서버로 나갈 때 NAT 장비는 이를 203.0.113.10:40001처럼 바꾸고, 그 매핑을 NAT 테이블에 기록합니다. 여기서 예시 IP는 설명을 위한 문서용 주소입니다.
NAT가 필요한 이유
IPv4 주소 부족과 사설 주소 공간
NAT가 널리 쓰이게 된 가장 큰 배경은 IPv4 주소 부족입니다. 모든 PC, 휴대폰, 서버, IoT 장비가 각자 고유한 공인 IPv4 주소를 가져야 한다면 주소 자원이 빠르게 고갈됩니다. NAT는 내부에서는 사설 IP를 쓰고, 외부 통신 시에는 제한된 공인 IP를 공유하게 해 이 문제를 현실적으로 완화했습니다.
내부 네트워크 주소를 외부에 직접 노출하지 않는 효과
NAT를 사용하면 외부에서는 내부 호스트의 실제 사설 IP 구조를 직접 보기 어렵습니다. 이 때문에 NAT가 보안 기능처럼 느껴질 수 있습니다. 다만 “숨겨 보인다”는 것과 “접근을 정책적으로 차단한다”는 것은 다릅니다. 접근 제어, 로그, 모니터링, 취약점 관리, 방화벽 정책은 별도로 설계해야 합니다.
여러 기기가 하나의 공인 IP를 공유하는 구조
가정용 공유기에서 흔히 말하는 NAT는 실무적으로 NAPT 또는 PAT 형태인 경우가 많습니다. 여러 내부 기기가 같은 공인 IP를 쓰더라도 서로 다른 포트 번호로 구분되기 때문에 동시에 인터넷을 사용할 수 있습니다.
NAT의 기본 동작 원리
내부에서 외부로 나가는 요청 흐름
내부 PC가 웹사이트에 접속한다고 가정해 보겠습니다. 내부 PC는 192.168.0.10:51532, NAT 장비의 공인 측 주소는 203.0.113.10:40001, 목적지 웹 서버는 198.51.100.20:443입니다. NAT 장비는 출발지 정보를 192.168.0.10:51532에서 203.0.113.10:40001로 바꾸고 외부로 보냅니다.
NAT 테이블과 세션 상태
NAT 장비는 이 변환 관계를 상태 테이블에 저장합니다. 테이블에는 내부 주소와 포트, 외부로 변환된 주소와 포트, 목적지 정보, 세션 상태 등이 포함될 수 있습니다. RFC 3022는 전통적 NAT가 Basic NAT와 NAPT를 포함한다고 설명하며, NAT가 네트워크에 상태 정보를 증가시키고 IP 주소의 end-to-end 의미를 약화시킬 수 있음을 다룹니다. 참고: RFC 3022 Traditional IP Network Address Translator.
응답 패킷이 원래 내부 호스트로 돌아오는 방식
웹 서버의 응답이 203.0.113.10:40001로 돌아오면 NAT 장비는 테이블을 조회합니다. 그리고 해당 응답을 원래 내부 PC인 192.168.0.10:51532로 다시 전달합니다. 이 매핑이 없거나 만료되면 응답을 어느 내부 장비로 보내야 할지 판단하기 어렵습니다.
NAT 유형 비교: Basic NAT, NAPT, SNAT, DNAT
| 구분 | 핵심 동작 | 대표 상황 |
|---|---|---|
| Basic NAT | IP 주소만 변환 | 내부 주소와 외부 주소를 1:1로 매핑 |
| NAPT 또는 PAT | IP 주소와 포트를 함께 변환 | 여러 내부 호스트가 하나의 공인 IP 공유 |
| SNAT | 출발지 주소를 변환 | 내부 사용자의 인터넷 접속 |
| DNAT | 목적지 주소를 변환 | 외부 요청을 내부 서버로 전달 |
| 포트 포워딩 | 특정 외부 포트를 내부 주소와 포트로 전달 | 웹 서버, 게임 서버, 원격 접속 공개 |
Basic NAT
Basic NAT는 IP 주소만 바꾸는 방식입니다. 예를 들어 내부 주소 하나를 외부 주소 하나에 대응시키는 구조로 이해할 수 있습니다. 포트를 함께 바꾸지 않으므로 여러 내부 호스트가 하나의 공인 IP를 동시에 공유하는 용도에는 적합하지 않습니다.
NAPT 또는 PAT
NAPT는 IP 주소뿐 아니라 TCP/UDP 포트까지 함께 변환합니다. 그래서 192.168.0.10:51532와 192.168.0.11:51532가 같은 공인 IP를 사용하더라도 외부 포트를 다르게 배정해 구분할 수 있습니다. 일반 공유기 NAT를 설명할 때 가장 자주 만나는 방식입니다.
SNAT
SNAT는 Source NAT, 즉 출발지 주소 변환입니다. 내부 사용자가 외부 인터넷으로 나갈 때 사설 IP를 공인 IP로 바꾸는 흐름을 SNAT 관점으로 설명할 수 있습니다.
DNAT
DNAT는 Destination NAT, 즉 목적지 주소 변환입니다. 외부에서 들어온 패킷의 목적지를 내부 서버 주소로 바꾸는 방식입니다. 포트 포워딩은 보통 DNAT의 실무적 사용 사례로 이해하면 쉽습니다.
포트 포워딩과 NAT의 관계
외부 요청을 내부 서버로 전달하는 방식
포트 포워딩은 외부에서 특정 공인 IP와 포트로 들어온 요청을 내부 서버의 사설 IP와 포트로 전달하는 설정입니다. 예를 들어 외부 사용자가 공인 IP:8443으로 접속하면 NAT 장비가 이를 내부 서버 192.168.0.50:443으로 보낼 수 있습니다.
웹 서버, 게임 서버, 원격 접속 예시
집이나 사무실 내부에 웹 서버를 운영하거나, 게임 서버를 열거나, 원격 접속용 서비스를 공개할 때 포트 포워딩이 사용됩니다. 이 설정은 외부에서 내부로 들어오는 경로를 만드는 것이므로 서비스 인증, 업데이트, 접근 제어, 로그 확인을 함께 점검해야 합니다.
NAT와 방화벽은 같은 것일까
NAT가 숨겨 주는 것과 막아 주는 것은 다르다
NAT는 내부 주소를 외부에 직접 노출하지 않는 효과가 있습니다. 하지만 이것만으로 방화벽이라고 단정할 수는 없습니다. NAT의 본질은 주소 변환이고, 방화벽의 본질은 정책에 따른 허용과 차단입니다.
상태 기반 방화벽과 NAT의 차이
상태 기반 방화벽은 세션 상태와 규칙을 보고 트래픽을 허용하거나 차단합니다. NAT 장비도 세션 상태를 관리할 수 있지만, 그 목적은 주로 변환된 주소와 포트를 되돌려 찾는 것입니다. 따라서 NAT 설정과 방화벽 정책은 같은 화면에 있더라도 역할을 구분해야 합니다.
NAT를 보안 대책으로 과신하면 안 되는 이유
포트 포워딩으로 내부 서비스가 공개되어 있거나, 내부 장비가 악성 외부 서버로 먼저 연결하는 경우 NAT만으로 문제를 막기는 어렵습니다. NAT는 보안 설계의 한 요소처럼 보일 수 있지만, 완전한 보안 장치가 아니라는 점을 기억해야 합니다.
클라우드와 기업망에서의 NAT
AWS NAT Gateway 같은 관리형 NAT 서비스
클라우드에서는 관리형 NAT 서비스가 자주 사용됩니다. AWS NAT Gateway 문서에 따르면 프라이빗 서브넷의 인스턴스는 NAT Gateway를 통해 외부 서비스에 연결할 수 있지만, 외부 서비스가 해당 인스턴스로 원치 않는 인바운드 연결을 시작할 수는 없습니다. 이는 클라우드에서 프라이빗 서버의 아웃바운드 업데이트, 패키지 다운로드, API 호출을 설계할 때 중요한 개념입니다.
프라이빗 서브넷의 아웃바운드 인터넷 접근
기업망에서도 비슷합니다. 내부 서버는 직접 공인 IP를 갖지 않고 NAT 장비를 통해 외부로 나갈 수 있습니다. 이때 라우팅 테이블, 기본 게이트웨이, NAT 정책, 방화벽 정책이 함께 맞아야 정상 통신이 됩니다.
ISP의 Carrier-Grade NAT, 즉 CGNAT
CGNAT는 ISP 네트워크에서 여러 가입자가 하나의 공인 IPv4 주소를 공유하도록 하는 구조입니다. RFC 6888은 CGNAT가 가입자에게 고유한 IPv4 주소를 제공하지 않기 때문에 통신에 제약을 만들 수 있다고 설명합니다. 가정 공유기 NAT와 ISP CGNAT가 겹치면 이중 NAT가 되어 서버 공개나 P2P 연결이 더 어려워질 수 있습니다.
NAT의 장점과 한계
| 장점 | 한계 |
|---|---|
| 공인 IPv4 주소를 절약할 수 있음 | 엔드투엔드 연결성이 약해질 수 있음 |
| 내부 주소 체계를 유지한 채 외부와 통신 가능 | VoIP, 게임, P2P, 일부 VPN/IPsec에서 문제가 생길 수 있음 |
| 공유기와 클라우드에서 운영 편의성 제공 | 이중 NAT, 포트 고갈, 세션 만료가 장애 원인이 될 수 있음 |
VoIP, 게임, P2P, VPN에서 주의할 점
일부 애플리케이션은 IP 주소나 포트 정보를 패킷 페이로드에 담거나, UDP 기반으로 동작합니다. NAT 구현마다 UDP 매핑과 필터링 방식이 달라 동작 예측이 어려울 수 있으며, 이 때문에 VoIP, 멀티미디어, 온라인 게임, P2P, 일부 VPN/IPsec 환경에서는 NAT traversal이나 별도 설정이 필요할 수 있습니다.
NAT 문제를 진단할 때 확인할 항목
- 현재 장비 IP가
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16같은 사설 IP 대역인지 확인합니다. - 기본 게이트웨이가 올바른 NAT 장비를 가리키는지 확인합니다.
- NAT 테이블 또는 세션 상태에 변환 항목이 생성되는지 확인합니다.
- 포트 포워딩 규칙과 방화벽 허용 정책을 동시에 확인합니다.
- 가정 공유기 뒤에 ISP CGNAT가 있는지, 즉 이중 NAT인지 확인합니다.
- 필요한 포트가 고갈되었거나 세션 타임아웃이 너무 짧지 않은지 점검합니다.
자주 묻는 질문
주소 변환(NAT)과 포트 포워딩은 같은 것인가요?
같지 않습니다. NAT는 주소 변환 전체를 뜻하고, 포트 포워딩은 외부 특정 포트를 내부 서버로 전달하는 설정입니다. 보통 DNAT의 한 사용 사례로 이해하면 됩니다.
NAT와 방화벽은 어떤 차이가 있나요?
NAT는 주소와 포트를 변환하는 기능이고, 방화벽은 정책에 따라 트래픽을 허용하거나 차단하는 기능입니다. NAT가 내부 주소를 숨기는 효과는 있지만 방화벽 자체라고 보기는 어렵습니다.
사설 IP는 왜 인터넷에서 직접 접속할 수 없나요?
사설 IP는 내부 네트워크용 주소 공간이며 공용 인터넷에서 전역적으로 라우팅되는 주소가 아닙니다. 다만 NAT, 프록시, VPN, 터널링 같은 방식을 통해 간접적으로 외부와 통신할 수 있습니다.
이중 NAT는 왜 문제가 되나요?
두 단계의 NAT를 거치면 외부에서 내부 장비로 들어오는 경로를 정확히 만들기 어렵습니다. 포트 포워딩을 해도 상위 NAT나 CGNAT에서 막히면 서버 공개, P2P, 원격 접속이 실패할 수 있습니다.
CGNAT 환경에서도 포트 포워딩을 할 수 있나요?
가입자 장비에서 포트 포워딩을 설정하더라도 ISP 쪽 CGNAT를 통과해야 하므로 원하는 대로 동작하지 않을 수 있습니다. 이 경우 공인 IP 제공 여부나 대체 접속 방식을 통신사와 확인해야 합니다.
주소 변환(NAT) 핵심 요약
- NAT는 패킷의 IP 주소, 경우에 따라 포트까지 바꾸는 주소 변환 기능입니다.
- 일반 공유기의 NAT는 여러 기기가 하나의 공인 IP를 공유하는 NAPT/PAT 형태인 경우가 많습니다.
- SNAT는 주로 내부에서 외부로 나갈 때, DNAT와 포트 포워딩은 외부 요청을 내부 서버로 보낼 때 이해하면 쉽습니다.
- NAT는 내부 주소를 숨기는 효과가 있지만 방화벽을 대체하지 않습니다.
- 장애 진단 시 사설 IP, NAT 테이블, 방화벽 정책, 포트 포워딩, 이중 NAT 또는 CGNAT 여부를 함께 확인해야 합니다.