Justin-book

NAT와 사설 네트워크 구조 (Home/Office Network)

2025-10-27

요약

  • NAT(Network Address Translation) 은 사설 IP(내부 주소)를 공인 IP(외부 주소)로 변환하는 기술이다.
  • IPv4 주소 고갈을 해결하고, 내부망의 보안을 강화하며, 여러 장치가 하나의 공인 IP를 공유하도록 한다.
  • NAT는 오늘날 거의 모든 가정용 공유기(ipTIME, Netgear)기업용 라우터(Cisco, Juniper) 에 내장되어 있다.

NAT는 IPv4 시대의 생존 기술로, 한정된 주소를 최대한 효율적으로 활용하고, 내부망 보안과 외부망 연결을 동시에 해결한다. 가정에서는 ipTIME 공유기, 기업에서는 방화벽·라우터 장비가 이 역할을 수행한다.

즉, NAT는

“내부망을 보호하면서 외부와 연결을 가능하게 만드는 네트워크 번역기다.”

핵심 요약

  1. NAT는 내부 IP와 외부 IP 간 주소 변환을 수행한다.
  2. 사설 IP는 외부에서 직접 접근할 수 없으며, NAT를 통해만 인터넷 통신 가능하다.
  3. Port Address Translation(PAT)을 사용하면 하나의 공인 IP로 여러 세션을 동시에 유지할 수 있다.
  4. NAT는 보안 + 자원 절약 + 연결 공유의 핵심 기술이다.

1. NAT의 개념 이해

flowchart LR A["PC
192.168.0.10"] --> B["ipTIME 공유기
NAT 변환
192.168.0.1 ↔ 121.130.45.10"] B --> C["인터넷 (Public Network)"] C --> D["서버
203.0.113.20"] style A fill:#e0f2fe,stroke:#0284c7 style B fill:#fef9c3,stroke:#facc15 style C fill:#dcfce7,stroke:#16a34a style D fill:#f3e8ff,stroke:#9333ea
  • PC가 192.168.0.10(사설 IP)에서 HTTP 요청을 보내면, 공유기가 NAT 테이블을 이용해 121.130.45.10:50123 으로 변환한다.
  • 서버는 응답을 보낼 때 해당 포트를 참고해 다시 올바른 내부 장치로 전달된다.

2. NAT 변환 테이블 예시

내부 IP내부 포트외부 IP외부 포트상태
192.168.0.1050123121.130.45.1050123Established
192.168.0.1150124121.130.45.1050124Established
192.168.0.1250125121.130.45.1050125Established

💡 NAT는 이처럼 “포트 단위”로 매핑을 관리한다. 동일한 공인 IP를 여러 장치가 동시에 사용 가능하다.


3. NAT의 종류와 특징

유형설명예시
Static NAT내부 IP ↔ 외부 IP 1:1 고정 매핑DMZ 서버, 고정 접근용
Dynamic NATIP 풀(Pool)에서 임시 매핑기업망, 세션당 동적 할당
PAT (Port Address Translation)포트를 기반으로 다중 매핑가정용 공유기 일반형
Bidirectional NAT양방향 변환 (서버용)공인 서버 IP 내부화 시 사용
flowchart TB A["Static NAT
1:1 매핑"] -->|192.168.0.10 ↔ 203.0.113.10| B["외부 접속"] C["PAT
1:N 매핑"] -->|192.168.0.10, .11, .12 ↔ 121.130.45.10:다중포트| D["공유 인터넷"]

4. 사설 IP 주소 대역 (RFC 1918)

대역크기사용 예시
10.0.0.0/816,777,216개대규모 기업, 클라우드
172.16.0.0/121,048,576개중형 기관망
192.168.0.0/1665,536개가정, 소형 사무실

이 범위의 IP는 외부 인터넷에서 라우팅되지 않는다. (즉, NAT 없이 외부에서 접근 불가)


5. NAT 동작 흐름 (패킷 전송 절차)

sequenceDiagram participant PC as 내부 단말 (192.168.0.10) participant R as NAT 라우터 (121.130.45.10) participant S as 외부 서버 (203.0.113.20) PC->>R: 패킷 송신 (Source IP 192.168.0.10) R->>S: 주소 변환 (Source IP 121.130.45.10) S-->>R: 응답 (Destination IP 121.130.45.10) R-->>PC: 역변환 (Destination IP 192.168.0.10) Note over R: NAT Table을 통해 세션 매칭

6. 실제 예시① — 가정용 NAT(ipTIME 기반)

장비역할예시 IP설명
PC내부 클라이언트192.168.0.10DHCP 자동 할당
스마트폰무선 단말192.168.0.11Wi-Fi 연결
ipTIME 공유기NAT + DHCP192.168.0.1 / 121.130.45.10내부 ↔ 외부 변환
서버외부 대상203.0.113.20웹서비스 제공
flowchart LR A["PC (192.168.0.10)"] --> R["ipTIME Router (192.168.0.1)
↔ NAT ↔ 121.130.45.10"] R --> I["인터넷"] I --> S["Web Server (203.0.113.20)"]

7. 실제 예시② — 기업용 사설망 구조

구분설명IP 예시
내부망 (LAN)업무용 PC / 서버망10.0.10.0/24
DMZ외부 공개 서버 구간10.0.20.0/24
외부망 (WAN)ISP 연결공인 IP 121.130.45.10
NAT/Firewall내부↔외부 변환 및 접근 제어Cisco ASA, Palo Alto 등
flowchart LR LAN["내부망 (10.0.10.0/24)"] --> FW["Firewall + NAT
(10.0.20.1 ↔ 121.130.45.10)"] FW --> DMZ["DMZ 서버 (10.0.20.10)"] FW --> ISP["외부 인터넷"] style LAN fill:#e0f2fe,stroke:#0284c7 style FW fill:#fde68a,stroke:#f59e0b style DMZ fill:#dcfce7,stroke:#16a34a

8. 포트 포워딩 (Port Forwarding)

  • 외부 사용자가 내부 서버에 접속할 수 있도록 특정 포트를 열어둠
  • 예: 외부에서 121.130.45.10:8080으로 접근 → 내부 192.168.0.20:80으로 전달
flowchart LR A["Client
접속 요청 121.130.45.10:8080"] --> R["Router
포트포워딩 설정"] R --> S["내부 Web Server
192.168.0.20:80"] style S fill:#dcfce7,stroke:#16a34a
외부 포트내부 IP내부 포트프로토콜용도
8080192.168.0.2080TCPWeb
8443192.168.0.30443TCPHTTPS
22192.168.0.4022TCPSSH 원격 접속

9. NAT의 한계 및 주의사항

항목설명
세션 제한PAT은 포트 수(65535) 이상 동시 연결 불가
실시간 통신P2P, WebRTC는 NAT Traversal 필요 (STUN/TURN)
로깅 복잡성외부 IP 하나에 다수 세션 매핑으로 추적 어려움
보안 설정포트포워딩 과다 시 공격 노출 위험

10. 실무 팁

NAT + DHCP 조합은 일반적인 가정용 기본 구성 ✅ 공인 IP가 필요한 서버는 DMZ 또는 포트포워딩 사용 ✅ VPN 구성 시 NAT-T(NAT Traversal) 기능 활성화 필요 ✅ IPv6 환경에서는 NAT보다 방화벽/ACL 정책으로 대체