NAT란 무엇일까? SNAT·DNAT·PAT 차이 쉽게 정리
NAT란 무엇일까? SNAT·DNAT·PAT 차이 쉽게 정리
JP-Hosting · 인프라 정보

안녕하세요, JP-Hosting입니다. 회사 PC 여러 대가 인터넷에서는 어떻게 같은 공인 IP로 보일까요? 반대로 외부에서 접속한 주소를 내부 웹 서버로 연결할 때는 무엇이 바뀔까요? 두 경우 모두 NAT를 쓰지만, 바꾸는 주소가 다릅니다.
먼저 결론부터: SNAT는 출발지 IP를, DNAT는 목적지 IP를 바꿉니다. NAPT(PAT)는 포트 번호까지 써서 여러 연결을 구분합니다. 같은 통신에 SNAT와 PAT가 함께 적용될 수 있어요.

1. NAT는 패킷에 적힌 IP 주소를 바꿔요
데이터를 보내는 작은 단위인 패킷을 편지 봉투라고 생각해 보세요. 봉투에는 보낸 곳과 받는 곳의 주소가 있죠. NAT(Network Address Translation)는 공유기나 방화벽이 패킷에 적힌 IP 주소를 다른 주소로 바꿔 주는 기능입니다. 어느 주소를 바꾸느냐에 따라 SNAT와 DNAT로 나눌 수 있어요.
2. SNAT는 보낸 곳, DNAT는 받는 곳을 바꿔요
- SNAT(Source NAT): 회사 PC가 인터넷에 나갈 때, 공유기가 패킷의 출발지 IP를
192.168.50.11에서 외부 IP203.0.113.45로 바꿉니다. SNAT만 했다면 목적지 주소는 그대로입니다. - DNAT(Destination NAT): 외부에서
203.0.113.80:8443으로 들어온 요청을 내부 웹 서버10.0.20.8:443에 보냅니다. 목적지 IP와 포트를 바꾸는 포트 포워딩 예입니다. DNAT만 했다면 접속한 쪽의 출발지 주소는 그대로입니다.
서버 응답이 같은 NAT 장비로 돌아오면 장비가 앞서 한 변환을 반대로 적용합니다. 예를 들어 DNAT를 거친 연결에서 외부 사용자는 응답도 처음 접속했던 203.0.113.80:8443에서 온 것으로 봅니다.
3. PAT는 공인 IP 하나를 여러 PC가 쓰게 해요
두 PC가 우연히 같은 출발지 포트 52000을 써서 같은 HTTPS 서버에 접속한다고 해 볼게요. 공유기는 출발지 IP를 하나로 바꾸되, 외부에서 보이는 출발지 포트는 서로 다르게 배정할 수 있습니다.
| 내부 출발지 | 변환 후 외부 출발지 |
|---|---|
PC A192.168.50.11:52000 | 203.0.113.45:40001 |
PC B192.168.50.12:52000 | 203.0.113.45:40002 |
응답이 오면 공유기는 변환 기록을 보고 40001로 온 응답은 PC A에, 40002로 온 응답은 PC B에 돌려줍니다. 이 예시는 출발지를 바꾼다는 점에서 SNAT이고, 포트로 연결을 구분한다는 점에서 PAT입니다. PAT는 Port Address Translation의 약자예요. 이 방식은 RFC 3022에서 NAPT(Network Address Port Translation), Cisco 문서에서는 NAT overload라는 이름으로 볼 수 있습니다.
4. 정적 NAT와 동적 NAT는 주소를 정하는 방식이에요
정적 NAT는 내부 IP와 외부 IP의 대응을 미리 정해 둡니다. 예를 들어 서버 한 대에 외부 IP 한 개를 고정해 둘 수 있습니다. 동적 NAT는 미리 준비한 외부 IP 목록(주소 풀)에서 쓸 수 있는 주소를 필요할 때 할당합니다. 여기서 ‘동적’은 변환 주소를 배정하는 방법을 뜻합니다.
5. 리눅스의 masquerade는 언제 쓰나요?
Linux nftables의 masquerade는 패킷이 나가는 인터페이스의 IP를 출발지 주소로 사용하는 SNAT 방식입니다. 외부 회선 IP가 바뀔 수 있는 환경에서 변환할 주소를 일일이 적지 않아도 됩니다. masquerade는 어떤 출발지 IP를 쓸지, PAT는 포트까지 써서 연결을 어떻게 구분할지에 관한 이름입니다.
포트 포워딩이 안 될 때는 NAT 설정과 함께 방화벽의 허용 규칙, 내부 서버가 실제로 열어 둔 포트, 응답이 돌아오는 경로를 확인하세요. NAT는 주소를 바꾸는 기능이므로, 그 자체로 접속을 허용하거나 데이터를 암호화하지는 않습니다.
한 줄 정리: 어느 주소를 바꾸는지는 SNAT·DNAT, 주소를 어떻게 배정하는지는 정적·동적 NAT, 포트까지 써서 구분하는지는 PAT로 기억하세요.