NAT란? (Network Address Translation)
AWS를 공부하다 보면 NAT 게이트웨이, NAT 인스턴스 같은 말이 자주 나오는데, NAT 자체가 뭔지 모르는 상태에서 게이트웨이니 인스턴스니 하는 걸 읽으면 당연히 뭔 소린지 하나도 안 들어오더라구요.
그래서 이번 포스팅에서는 NAT가 무엇인지 알아보려고 합니다.
들어가기 전에 — 공인 IP와 사설 IP

NAT를 이해하려면 먼저 공인 IP(Public IP) 와 사설 IP(Private IP) 의 차이를 알아야 합니다.
공인 IP (Public IP)
전 세계에서 유일하게 식별되는 IP 주소입니다. 인터넷 상에서 실제로 통신할 때 사용하는 주소로, 통신사(KT, SKT, LG 등)에서 할당해줍니다.
사설 IP (Private IP)
같은 네트워크 내부에서만 사용하는 IP 주소입니다. 집이나 회사의 공유기 안에서 각 기기에 할당되는 IP가 바로 사설 IP예요. 인터넷 상에서는 직접 통신이 불가능합니다.
사설 IP로 약속된 대역은 다음과 같습니다.
| 사설 IP 대역 | 범위 |
|---|---|
| 10.0.0.0/8 | 10.0.0.0 ~ 10.255.255.255 |
| 172.16.0.0/12 | 172.16.0.0 ~ 172.31.255.255 |
| 192.168.0.0/16 | 192.168.0.0 ~ 192.168.255.255 |
집에서 공유기에 연결된 기기의 IP를 확인해보면 192.168.0.x 같은 형태인 걸 볼 수 있는데, 바로 이게 사설 IP입니다.
그런데 왜 굳이 IP를 두 종류로 나눈 걸까?
IPv4의 주소 부족 문제 때문입니다.
IPv4 주소는 총 약 43억 개(2³²)밖에 없는데, 전 세계에서 인터넷을 쓰는 기기 수는 이미 그걸 훨씬 넘어섰습니다. 그래서 인터넷 통신이 꼭 필요한 기기에만 공인 IP를 주고, 나머지는 사설 IP를 써서 주소를 절약하는 방식으로 해결한 거예요.
실생활 예시:
아파트 주소 체계와 비슷합니다.
- 공인 IP = 도로명 주소 (예: 서울시 강남구 테헤란로 123)
- 전 세계 어디서든 이 주소로 편지를 보낼 수 있음
- 사설 IP = 아파트 동/호수 (예: 101동 502호)
- 아파트 단지 내에서만 유효한 주소
외부에서 편지를 보낼 때는 도로명 주소(공인 IP)로 아파트(공유기)까지 오고, 거기서 동/호수(사설 IP)로 전달되는 구조인 거죠.
NAT란?

NAT(Network Address Translation) 는 말 그대로 네트워크 주소를 변환하는 기술입니다.
사설 IP를 가진 기기가 인터넷과 통신해야 할 때, 라우터(공유기)가 사설 IP를 공인 IP로 바꿔주는 것이 NAT의 핵심입니다.
간단히 말하면 이렇습니다.
"내부망의 사설 IP ↔ 공인 IP 사이에서 주소를 번역해주는 기술"
NAT 동작 원리
그림으로 이해하면 훨씬 쉽습니다. 카페에서 노트북으로 위키피디아에 접속하는 상황을 예로 들어볼게요.
전제 조건
- 내 노트북 사설 IP:
192.168.0.3 - 카페 공유기 공인 IP:
59.6.66.238 - 위키피디아 서버 IP:
208.80.154.224
Step 1 — 요청 발생
내 노트북이 위키피디아에 접속하려고 합니다. 이 요청 패킷의 출발지 IP는 내 사설 IP입니다.
[노트북 → 공유기]
출발지(src): 192.168.0.3 (사설 IP)
목적지(dst): 208.80.154.224 (위키피디아)
Step 2 — NAT 변환 (사설 IP → 공인 IP)
요청이 공유기에 도착하면, 공유기는 출발지 IP를 자신의 공인 IP로 바꿉니다. 동시에 나중에 응답이 왔을 때 어느 기기에 전달할지 알기 위해 NAT 테이블에 변환 정보를 기록해둡니다.
[공유기 → 위키피디아]
출발지(src): 59.6.66.238 (공인 IP로 변환됨!)
목적지(dst): 208.80.154.224
NAT 테이블: 192.168.0.3:5000 ↔ 59.6.66.238:40000
Step 3 — 응답 수신
위키피디아 서버는 공유기의 공인 IP로 응답을 돌려보냅니다.
[위키피디아 → 공유기]
출발지(src): 208.80.154.224
목적지(dst): 59.6.66.238
Step 4 — NAT 역변환 (공인 IP → 사설 IP)
응답을 받은 공유기는 NAT 테이블을 조회해서 이 응답이 어느 기기로 가야 하는지 확인하고, 목적지 IP를 사설 IP로 다시 변환해서 내 노트북에 전달합니다.
[공유기 → 노트북]
출발지(src): 208.80.154.224
목적지(dst): 192.168.0.3 (사설 IP로 다시 변환됨!)
전체 흐름을 한눈에 보면 이렇습니다.
[내 노트북] [공유기 / NAT] [위키피디아]
192.168.0.3 → 59.6.66.238 → 208.80.154.224
(사설 IP) (공인 IP)
← 응답 ←
192.168.0.3 ← 59.6.66.238 ← 208.80.154.224
위키피디아 입장에서는 59.6.66.238 (공유기 공인 IP)에서 요청이 온 것으로만 보입니다. 내 노트북의 사설 IP는 외부에 전혀 드러나지 않는 거죠.
NAT 테이블이란?
공유기에 기기가 여러 대 연결되어 있으면 어떨까요? 응답이 왔을 때 어느 기기에 전달해야 할지 어떻게 알 수 있을까요?
이때 사용하는 게 NAT 테이블입니다. 공유기는 변환 정보를 아래처럼 테이블로 관리합니다.
| 내부 사설 IP:포트 | 공인 IP:포트 | 목적지 |
|---|---|---|
| 192.168.0.3:5000 | 59.6.66.238:40000 | 위키피디아 |
| 192.168.0.4:3000 | 59.6.66.238:40001 | 구글 |
| 192.168.0.5:8080 | 59.6.66.238:40002 | 유튜브 |
포트 번호까지 함께 관리하기 때문에, 공인 IP가 하나뿐이어도 여러 기기의 통신을 구분해서 처리할 수 있는 거예요. 이 방식을 PAT(Port Address Translation) 또는 NAPT 라고도 부릅니다.
NAT의 종류
NAT는 크게 두 가지 기준으로 분류할 수 있습니다.
- 주소 할당 방식에 따른 분류: Static NAT / Dynamic NAT / PAT(NAPT)
- 패킷 방향에 따른 분류: SNAT / DNAT / Twice-NAT / Hairpin NAT
주소 할당 방식에 따른 분류
Static NAT (1:1 NAT)
공인 IP 하나와 사설 IP 하나를 1:1로 고정 매핑하는 방식입니다.
기기마다 전용 공인 IP가 하나씩 붙는 구조이기 때문에 IP 주소 절약 효과는 없습니다. 그 대신 포트 포워딩(Port Forwarding) 을 목적으로 주로 사용합니다.
포트 포워딩이란? 하나의 서버에서 여러 서비스를 운영할 때, 외부에서 특정 포트로 들어오는 요청을 내부의 특정 서비스로 연결해주는 기능입니다.
실생활 예시:
회사 건물의 안내 데스크를 생각해보세요. 외부에서 전화(공인 IP)가 오면 안내 데스크에서 "몇 번 방(포트) 연결해드릴까요?"라고 물어보고 해당 부서(내부 서버)로 연결해주는 것과 같습니다.
외부 요청: 공인IP:80 → 내부 웹서버: 192.168.0.10:8080
외부 요청: 공인IP:22 → 내부 SSH서버: 192.168.0.11:22
외부 요청: 공인IP:443 → 내부 HTTPS서버: 192.168.0.12:443
Dynamic NAT (N:N NAT)
여러 개의 공인 IP 풀(Pool)에서 사설 IP와 동적으로 매핑하는 방식입니다.
예를 들어 공인 IP가 10개 있고 내부 기기가 50대라면, 현재 인터넷을 사용하는 기기 10대에만 공인 IP를 동적으로 할당해서 쓰는 방식입니다. 사용이 끝나면 반납하고, 다른 기기가 그 IP를 가져가는 식이죠.
실생활 예시:
도서관 좌석 배정 시스템과 비슷합니다. 좌석(공인 IP)이 100개고 이용자(사설 IP)가 300명이어도, 실제로 동시에 앉을 수 있는 인원은 100명뿐이니 그 범위 안에서 돌아가며 사용하는 방식입니다.
PAT (Port Address Translation) / NAPT
공인 IP 1개에 사설 IP 여러 개를 포트 번호로 구분해서 매핑하는 방식입니다.
NAPT(Network Address Port Translation) 라고도 부르며, 앞서 설명한 NAT 테이블의 포트 기반 구분이 바로 이 방식입니다. 우리가 흔히 쓰는 가정용 공유기가 이 PAT 방식으로 동작합니다.
공인 IP 하나로 여러 기기가 동시에 인터넷 사용:
사설 IP:포트 공인 IP:포트
192.168.0.3:60000 ↔ 59.6.66.238:70001
192.168.0.4:60000 ↔ 59.6.66.238:70002
192.168.0.5:60000 ↔ 59.6.66.238:70003
| NAT 종류 | 매핑 방식 | 공인 IP 절약 | 주요 용도 |
|---|---|---|---|
| Static NAT | 1:1 고정 | X | 포트 포워딩, 서버 공개 |
| Dynamic NAT | N:N 동적 | 부분적 | 기업 내부망 |
| PAT / NAPT | 1:N (포트 구분) | O (최대 절약) | 가정용 공유기, AWS NAT GW |
패킷 방향에 따른 분류
SNAT (Source NAT)
내부 → 외부 방향으로 나가는 패킷의 출발지(Source) IP를 변환하는 방식입니다.
사설망에서 인터넷으로 나갈 때 공유기가 출발지 IP를 공인 IP로 바꿔주는 것이 SNAT입니다. 리눅스에서는 IP 마스커레이드(IP Masquerade) 라는 이름으로 이 기능을 구현하기도 합니다.
AWS의 NAT 게이트웨이가 대표적인 SNAT 활용 사례입니다. 프라이빗 서브넷의 인스턴스가 인터넷으로 나갈 때 사용하는 방식이에요.
[프라이빗 서브넷 EC2] → [NAT Gateway] → [인터넷]
src: 10.0.1.5 (사설) src: 52.78.xx.xx (공인 IP로 변환)
DNAT (Destination NAT)
외부 → 내부 방향으로 들어오는 패킷의 목적지(Destination) IP를 변환하는 방식입니다.
외부에서 공인 IP로 들어오는 요청을 받아서, 내부의 특정 서버로 연결해주는 방식입니다. 방화벽이나 로드 밸런서에서 자주 활용됩니다.
실생활 예시:
콜센터를 떠올려보세요. 고객이 대표번호(공인 IP)로 전화하면, 콜센터 시스템이 상담사(내부 서버)들 중 한 명에게 연결해주는 방식이 DNAT입니다.
[인터넷 사용자] → [로드 밸런서] → [내부 서버]
dst: 52.78.xx.xx (공인 IP) dst: 10.0.1.5 (사설 IP로 변환)
Twice-NAT
출발지 IP와 목적지 IP를 동시에 변환하는 방식입니다.
서로 다른 두 네트워크가 중간 허브를 통해 연결될 때, 양쪽 주소를 모두 변환해야 하는 상황에서 사용합니다. 예를 들어 두 회사가 VPN으로 연결되어 있는데 양쪽 사설 IP 대역이 겹칠 때 Twice-NAT로 해결할 수 있습니다.
두 네트워크의 IP가 겹치는 상황:
회사 A 내부: 10.0.0.x
회사 B 내부: 10.0.0.x ← 같은 대역!
→ Twice-NAT로 양쪽 주소를 모두 변환해서 충돌 해결
Hairpin NAT (NAT Loopback)
내부 기기가 공인 IP(또는 도메인)를 통해 같은 내부 망의 다른 서버에 접근할 때 사용하는 방식입니다.
조금 헷갈릴 수 있는 개념인데, 실생활 예시로 이해해보면 쉽습니다.
실생활 예시:
같은 아파트 단지 안에 있는 택배 기사에게 "저 101동 502호로 배달해주세요"라고 요청하면, 단지 바깥으로 나갔다 다시 들어오지 않고 단지 내에서 바로 처리하는 것과 같습니다.
내부 서버가 도메인 이름으로 같은 내부망의 다른 서버에 요청을 보낼 때, DNS가 공인 IP를 반환하더라도 외부 인터넷을 돌지 않고 내부에서 루프백(loopback)으로 처리하는 방식입니다.
[내부 서버 A] → 도메인 요청 → [DNS: 공인 IP 반환]
↓
외부로 나가지 않고 NAT 장비에서 내부로 되돌림
↓
[내부 서버 B] (같은 망)
| NAT 종류 | 변환 방향 | 주요 사용 장비 | AWS 사례 |
|---|---|---|---|
| SNAT | 내부 → 외부, 출발지 IP 변환 | 공유기, NAT GW | NAT Gateway |
| DNAT | 외부 → 내부, 목적지 IP 변환 | 방화벽, LB | IGW, ALB |
| Twice-NAT | 출발지 + 목적지 동시 변환 | 방화벽 | - |
| Hairpin NAT | 내부 → 내부 (공인 IP 경유) | 공유기, 방화벽 | - |
NAT가 왜 중요한가?
NAT는 단순히 IP를 바꾸는 기술이지만, 실제로는 굉장히 중요한 역할을 합니다.
1. IPv4 주소 절약
앞서 언급한 것처럼 공인 IP가 한 개여도 내부의 수십, 수백 대의 기기가 인터넷을 쓸 수 있게 해줍니다.
2. 보안 효과
사설 IP를 사용하는 내부 기기들의 실제 IP가 외부에 노출되지 않습니다. 외부에서는 공유기의 공인 IP만 보이기 때문에 내부 네트워크 구조를 숨기는 효과가 있습니다.
3. AWS 프라이빗 서브넷의 핵심
AWS에서 DB 서버를 프라이빗 서브넷에 두면 외부에서 직접 접근이 불가능합니다. 하지만 DB 서버도 가끔 패키지 업데이트나 외부 API 호출이 필요할 수 있는데, 이때 NAT 게이트웨이를 통해 아웃바운드 통신을 허용하면서 보안을 유지하는 것입니다.
NAT의 단점
- 복잡성 증가: 주소 변환 과정이 추가되다 보니 라우터/공유기에 부하가 생기고 네트워크 처리 성능에 영향을 줄 수 있습니다.
- P2P 통신 어려움: NAT 뒤에 있는 기기에 외부에서 먼저 연결을 시도하기 어렵습니다. 게임이나 P2P 파일 공유 등에서 포트 포워딩 설정이 필요한 이유가 이 때문이에요.
로그 추적 복잡: 공인 IP 하나를 여러 기기가 공유하다 보니, 문제가 생겼을 때 어느 기기에서 발생한 것인지 추적하기 어려울 수 있습니다.
정리
| 항목 | 내용 |
|---|---|
| NAT 정의 | 사설 IP ↔ 공인 IP 사이에서 주소를 변환하는 기술 |
| 필요한 이유 | IPv4 주소 부족 해결 + 보안 효과 |
| 동작 방식 | 공유기(NAT 장비)가 NAT 테이블을 유지하며 변환 처리 |
| Static NAT | 공인 IP ↔ 사설 IP 1:1 고정 매핑 (포트 포워딩 목적) |
| Dynamic NAT | 공인 IP 풀에서 사설 IP와 동적 매핑 (N:N) |
| PAT / NAPT | 공인 IP 1개 + 포트로 여러 사설 IP 구분 (1:N, 가정용 공유기) |
| SNAT | 내부 → 외부, 출발지 IP 변환 (예: NAT 게이트웨이) |
| DNAT | 외부 → 내부, 목적지 IP 변환 (예: 포트 포워딩, 로드 밸런서) |
| Twice-NAT | 출발지 + 목적지 IP 동시 변환 (IP 대역 충돌 해결) |
| Hairpin NAT | 내부 기기가 공인 IP 경유 없이 내부 서버에 접근 |
| AWS와의 관계 | NAT 게이트웨이(SNAT) / NAT 인스턴스가 이 NAT 기술을 활용 |
참고
본 포스팅은 해당 사이트의 내용을 참고 및 인용하여 작성했습니다.
Inpa Dev - 🌐 NAT(Network Address Translation) 이란 무엇인가?
STEVEN J.LEE - NAT - 네트워크 주소 변환
NordVPN - 공인 IP, 사설 IP...
코드연구소 - 네트워크 NAT(Network Address Translation)란? NAT의 동작 과정, NAT의 종류
'CS공부 > 클라우드' 카테고리의 다른 글
| [AWS] VPC란 (Virtual Private Cloud) (1) | 2026.04.24 |
|---|---|
| [AWS] Bastion VS AWS Session Manager (0) | 2026.04.24 |
| [AWS] NAT Gateway VS NAT Instance (0) | 2026.04.24 |
| [AWS] 클라우드 용어 정리 (0) | 2026.04.24 |
| [AWS] AWS 구조 알아보기 (0) | 2026.04.24 |