---
title: "공인 주소 하나를 여러 기기가 나눠 쓰는 NAT"
author: "Lee"
published_at: "2026-10-27T02:44:03.792Z"
updated_at: "2026-09-30T09:24:36.798Z"
tags: ["컴퓨터공학","네트워크"]
canonical_url: "https://ariser.io/@writer_a1cd615ab19e/%EA%B3%B5%EC%9D%B8-%EC%A3%BC%EC%86%8C-%ED%95%98%EB%82%98%EB%A5%BC-%EC%97%AC%EB%9F%AC-%EA%B8%B0%EA%B8%B0%EA%B0%80-%EB%82%98%EB%88%A0-%EC%93%B0%EB%8A%94-nat"
ai_assisted: false
---

# 공인 주소 하나를 여러 기기가 나눠 쓰는 NAT

[원문](https://ariser.io/@writer_a1cd615ab19e/%EA%B3%B5%EC%9D%B8-%EC%A3%BC%EC%86%8C-%ED%95%98%EB%82%98%EB%A5%BC-%EC%97%AC%EB%9F%AC-%EA%B8%B0%EA%B8%B0%EA%B0%80-%EB%82%98%EB%88%A0-%EC%93%B0%EB%8A%94-nat)

NAT는 패킷이 네트워크 경계를 통과할 때 IP 주소 등을 변환하는 기능이다. 가정용 공유기에서 흔한 형태는 내부의 여러 사설 주소가 하나의 공인 IPv4 주소를 공유하게 하는 주소와 포트 변환이다. 주소 변환만 하는 경우와 포트까지 바꾸는 경우를 구분해야 하지만 일상에서는 둘을 함께 NAT라고 부르기도 한다.

![두 내부 기기의 연결이 하나의 공인 주소의 서로 다른 포트로 변환되고 응답이 원래 기기로 돌아오는 그림](/api/v1/media/8dea6993-00d7-4cf6-9e25-ba9e34451b81)

*주소와 포트의 대응 상태가 여러 내부 연결을 구별하고 응답의 목적지를 복원한다.*

### 응답이 돌아올 곳을 기록한다
내부 기기 10.0.0.2:50000과 10.0.0.3:50000이 같은 외부 서버에 연결한다고 하자. 공유기는 첫 연결을 공인 주소의 포트 40001로, 둘째를 40002로 변환할 수 있다. 외부에서 보면 출발지 IP는 같지만 포트가 달라 두 연결을 구별할 수 있다. 이 포트 선택은 예시이며 실제 정책은 장비마다 다르다.

공유기는 변환 전후의 주소·포트와 프로토콜 등 필요한 상태를 테이블에 기록한다. 돌아온 패킷을 보고 대응하는 내부 목적지로 되돌려 보낸다. 주소나 포트가 바뀌면 관련 체크섬도 올바르게 조정해야 한다. 단순히 패킷에 새 IP 숫자만 적는 것으로 끝나지 않는다.

이 상태는 연결의 진행과 타임아웃 정책에 따라 유지된다. UDP처럼 명시적인 연결 설정과 종료가 없는 전송에서도 장비는 통신 패턴을 바탕으로 임시 매핑을 둘 수 있다. 매핑이 만료되면 오래 쉬다가 돌아온 패킷을 이전과 같은 방식으로 전달하지 못할 수 있다.

### 바깥에서 먼저 말을 걸면
외부 서버가 아무 매핑도 없는 내부 기기에 먼저 연결하려 하면 공유기는 어느 기기에 전달할지 판단하지 못할 수 있다. 포트 포워딩은 특정 외부 포트를 정해진 내부 주소와 포트에 연결하는 방법이다. 여러 NAT를 통과하는 P2P 통신은 매핑 동작과 방화벽 정책 때문에 추가적인 탐색이나 중계가 필요할 수 있다.

NAT는 주소 공간 사용과 네트워크 구성을 돕지만 보안 정책과 같은 개념은 아니다. 외부에서 시작한 통신이 기본적으로 잘 전달되지 않는 효과가 있어도, 허용할 트래픽을 결정하는 방화벽 규칙을 대신한다고 단정할 수 없다. 내부 기기가 먼저 연결한 경로로 위험한 데이터가 돌아올 수도 있다.

IP와 포트가 변환되면 끝점이 자신을 표현하는 방식과 관찰자의 로그가 달라진다. 응용 본문 안에 내부 주소를 넣는 프로토콜은 변환과 별도의 처리가 필요할 수 있다. 여러 사용자가 같은 공인 주소를 쓰므로 IP 하나를 사용자 하나의 영구 신원처럼 취급하는 것도 부정확하다.

공유 공인 주소에서 사용할 수 있는 포트와 장비의 연결 상태 자원은 유한하다. 많은 연결을 동시에 만들거나 타임아웃이 길면 포트와 테이블이 병목이 될 수 있다. 외부 요청이 실패할 때는 서버만 확인하지 말고 NAT 상태, 포트 포워딩, 이중 NAT와 만료 시간을 함께 살펴야 한다.

주소 변환의 정확한 행동은 구현과 설정에 따라 다르므로 한 예시로 모든 NAT의 필터링 규칙을 설명하지 않는 것이 좋다. 핵심은 패킷의 주소를 바꾸는 일과, 응답을 되돌릴 대응 관계를 관리하는 일이 함께 필요하다는 점이다. 이 두 가지를 표로 그리면 공인 주소 하나로 여러 연결이 어떻게 공존하는지 이해할 수 있다.

### 참고 자료

- [RFC 3022: Traditional IP NAT](https://www.rfc-editor.org/rfc/rfc3022.html)
- [RFC 4787: NAT Behavioral Requirements for UDP](https://www.rfc-editor.org/rfc/rfc4787.html)
