Skip to content

NAT와 주소 변환

NAT의 개념

NAT(Network Address Translation)는 IP 주소를 변환하는 기술입니다. 우리가 매일 사용하는 공유기와 AWS의 NAT Gateway에서 모두 중요한 역할을 합니다.

왜 NAT가 필요한가

IPv4 주소는 약 43억 개뿐이지만 전 세계 인터넷 기기는 수백억 대입니다. NAT를 사용하면 하나의 공인 IP를 여러 기기가 공유할 수 있습니다.

NAT vs NAPT

Basic NAT

공인 IP와 사설 IP를 1:1로 매핑합니다. 공인 IP가 여러 개 필요합니다.

NAPT(Network Address Port Translation)

공인 IP 하나를 포트 번호를 활용하여 여러 사설 IP가 공유합니다. 우리가 실제로 사용하는 방식입니다. PAT(Port Address Translation)라고도 합니다.

단계로 보기

NAPT는 내부 주소와 포트를 공인 주소의 새 포트로 바꿔 기억한다

1 / 5내부 요청

PC는 자신의 사설 IP와 임시 포트로 외부 웹 서버에 요청을 보낸다.

스스로 확인

NAPT가 하나의 공인 IP로 여러 내부 기기의 응답을 구분할 수 있는 핵심 정보는 무엇일까?

NAT의 보안 효과

NAT는 보안 장비 자체는 아니지만, 구조적으로 새로운 외부 인바운드 연결을 직접 수용하지 않기 때문에 노출면을 줄이는 효과가 있습니다. 실제 보안 설계에서는 방화벽, 보안 그룹 같은 정책 제어와 함께 봐야 합니다.

핵심 원리:

  • 아웃바운드(내부 -> 외부): NAT 테이블에 매핑이 생성되므로 응답 수신 가능
  • 인바운드(외부 -> 내부): NAT 테이블에 매핑이 없으면 접근 자체가 불가능

이것이 "공유기를 쓰면 직접 노출이 줄어든다"는 말의 근거입니다. 다만 NAT만으로 보안이 완성되는 것은 아니며, OS 방화벽과 서비스 포트 관리가 함께 필요합니다.

Cone NAT vs Symmetric NAT

NAT의 포트 매핑 방식에 따라 분류됩니다. P2P 통신이나 게임에서 중요한 개념입니다.

  • Full Cone NAT: 한 번 매핑된 외부 포트로 누구나 접근 가능. 보안 취약
  • Restricted Cone NAT: 이전에 통신한 IP에서만 접근 가능
  • Port Restricted Cone NAT: IP와 포트 모두 일치해야 접근 가능
  • Symmetric NAT: 목적지마다 다른 외부 포트 할당. 가장 엄격하지만 P2P 어려움

대부분의 가정용 공유기는 Port Restricted Cone NAT 또는 Symmetric NAT를 사용합니다.

포트포워딩

외부에서 내부 네트워크의 특정 서비스에 접근할 수 있도록 NAT 규칙을 수동 설정하는 것입니다.

# 포트포워딩 규칙 예시
외부 포트    내부 IP           내부 포트
8080     -> 192.168.0.100  -> 80     (웹 서버)
2222     -> 192.168.0.100  -> 22     (SSH)
3389     -> 192.168.0.200  -> 3389   (원격 데스크톱)

UPnP(Universal Plug and Play)

포트포워딩을 자동으로 설정하는 기술입니다. 토렌트 같은 P2P 프로그램이 별도 설정 없이 동작하는 이유가 UPnP 덕분입니다.

단점: 악성 코드가 UPnP를 악용하면 내부 포트를 자동으로 개방할 수 있으므로, 높은 보안이 필요하면 UPnP를 비활성화해야 합니다.

AWS에서의 NAT

NAT Gateway

AWS VPC의 프라이빗 서브넷에 있는 EC2 인스턴스가 인터넷으로 아웃바운드 접속할 수 있게 해 주는 관리형 NAT 서비스입니다. 가정용 공유기와 개념은 비슷하지만, 포트포워딩 같은 인바운드 공개 용도로 쓰는 장비는 아닙니다.

  • 프라이빗 서브넷의 인스턴스: 인터넷 아웃바운드만 가능
  • 외부에서 프라이빗 인스턴스로 인바운드 접근 불가 (NAT의 보안 효과)
  • NAT Gateway는 퍼블릭 서브넷에 위치, Elastic IP 필요