좋습니다. 이번에는 **NAT (Network Address Translation)**에 대해 실무 관점에서 상세히 정리해드리겠습니다. 단순한 개념부터 종류, 동작 방식, 실무 예시까지 포함합니다.


🌐 NAT (Network Address Translation) 완전 정리


✅ NAT란?

NAT는 내부 네트워크의 사설 IP 주소를 외부와 통신하기 위해 공인 IP로 변환해주는 기술입니다.

  • 주로 라우터, 방화벽, VPN 게이트웨이 등에 적용
  • IPv4 주소 부족 문제 해결에 핵심 역할
  • **OSI 3계층(Network Layer)**에서 동작 (IP 기반)

🧠 NAT의 핵심 목적

  1. 사설 네트워크 보호 (보안)
    내부 IP는 외부에 공개되지 않음

  2. IPv4 공인 IP 절약
    공인 IP 하나로 여러 기기 사용 가능

  3. 네트워크 분리 및 경로 제어


🔢 사설 IP 주소 대역 (RFC1918)

클래스IP 범위
A10.0.0.0 ~ 10.255.255.255
B172.16.0.0 ~ 172.31.255.255
C192.168.0.0 ~ 192.168.255.255

🧩 NAT의 동작 방식

예시:

[내부 PC: 192.168.0.10] ──→ [라우터: NAT 수행, 공인 IP 203.0.113.5] ──→ [인터넷]
  • 내부 IP는 사설이므로 인터넷에 직접 통신 불가
  • NAT 장치가 출발지 IP를 203.0.113.5로 바꿔서 전송
  • 응답이 오면 다시 내부 IP로 역변환

🧭 NAT의 종류

1. SNAT (Source NAT)

  • 출발지 IP 변경

  • 주로 내부 → 외부로 나갈 때 사용

  • 리눅스 iptables 예:

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

2. DNAT (Destination NAT)

  • 목적지 IP 변경

  • 외부에서 들어올 때 내부 서버로 라우팅

  • 포트포워딩도 DNAT의 일종

    iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.100:80

3. MASQUERADE

  • SNAT의 변형으로, 공인 IP가 동적으로 바뀔 경우 유용
  • 서버 재부팅이나 DHCP 환경에서도 안전

4. PAT (Port Address Translation)

  • 여러 내부 IP가 하나의 공인 IP를 포트 번호로 구분하여 공유

  • 흔히 우리가 쓰는 “NAT”는 실제로 PAT임

    • 예: 203.0.113.5:40001 → 192.168.0.10:80

🏠 실생활 예시

📶 가정용 공유기

  • 내부: 192.168.0.0/24
  • 외부: ISP에서 받은 공인 IP (예: 203.x.x.x)
  • NAT가 자동으로 내부 → 외부로 IP 변환

🌐 클라우드 (AWS, GCP 등)

  • NAT Gateway를 통해 프라이빗 서브넷의 인스턴스들이 인터넷 접속
  • 외부에서는 해당 인스턴스에 직접 접근 불가

🐳 Docker

  • 기본적으로 bridge 네트워크는 NAT를 통해 외부 통신
  • 외부에서 컨테이너 접근하려면 포트포워딩 필요

🔐 NAT의 보안적 이점

  • 내부 네트워크를 비공개화
  • 외부에서 직접 접근 어려움
  • 방화벽과 함께 쓰면 강력한 보안 경계 생성

❗ 주의할 점

  • NAT는 세션 유지 상태이므로, 연결 수가 많으면 성능 병목 가능
  • VoIP, P2P, 게임은 NAT traversal 기법 필요 (예: STUN, TURN)
  • 이중 NAT(Double NAT)은 VPN, 원격접속 시 문제 발생 가능

✅ 결론

NAT는 네트워크 주소 변환 기술로서, 사설 IP 환경과 공인 인터넷을 연결하는 중추 역할을 합니다.
실무에서는 iptables, iptables-nat, router 설정, VPN, Docker 등 다양한 곳에서 NAT가 작동 중입니다.


원한다면 다음엔 iptables로 SNAT/DNAT 구성 실습이나, Docker와 NAT의 관계도 이어서 정리해줄게요.