Docs Cloud Devops

AWS NAT Gateway

NAT란?

NAT(Network Address Translation)는 네트워크 주소 변환 기술로, 내부 네트워크의 사설 IP 주소를 공인 IP 주소로 변환하여 인터넷 통신을 가능하게 하는 중요한 메커니즘입니다.

  • 사설 IP 주소를 공인 IP 주소로 변환하는 기본적인 기술
  • 1
    매핑 방식으로 동작

NAT의 주요 특징과 장점

  • IP 주소 절약: 제한된 공인 IP 주소를 여러 내부 호스트가 공유할 수 있게 합니다.
  • 보안 강화: 내부 네트워크 구조를 외부에서 직접 볼 수 없게 하여 보안을 향상시킵니다.
  • 유연한 네트워크 구성: 내부 네트워크 구조 변경 시 외부 연결에 영향을 주지 않습니다.
  • 주소 충돌 해결: 서로 다른 네트워크에서 같은 사설 IP 주소를 사용할 수 있게 합니다.

NAT는 주로 라우터나 방화벽에서 구현되며, 패킷이 내부에서 외부로 나갈 때 사설 IP를 공인 IP로 변환하고, 외부에서 내부로 들어올 때 다시 공인 IP를 사설 IP로 변환합니다. 이 과정에서 NAT 변환 테이블을 사용하여 정확한 주소 매핑을 관리합니다.

NAT의 작동 원리

NAT는 작동 과정은 다음과 같습니다: a) 요청 단계:

  • 내부 호스트(PrivateIP)가 인터넷으로 요청을 보냅니다.
  • 이 요청은 NAT 기능을 제공하는 라우터를 통과합니다.
  • NAT 라우터는 PrivateIP를 PublicIP로 변환합니다.
  • 변환된 주소로 인터넷에 요청을 전송합니다. b) 응답 단계:
  • 인터넷으로부터 응답이 NAT 라우터에 도착합니다.
  • NAT 라우터는 NAT 변환 테이블을 참조합니다.
  • 테이블 정보를 바탕으로 PublicIP를 원래의 PrivateIP로 다시 변환합니다.
  • 변환된 주소로 내부 호스트에 응답을 전달합니다.

NAT 변환 테이블

NAT 변환 테이블은 이 과정의 핵심입니다. 아래는 NAT 변환 테이블의 예시 입니다:

Private IPPublic IP
192.168.1.10203.0.113.1
192.168.1.20203.0.113.2
192.168.1.30203.0.113.3

이 테이블은 다음 정보를 포함합니다:

  • Private IP: 내부 네트워크의 호스트 IP
  • Public IP: NAT 라우터의 외부 IP

NAT 라우터는 이 테이블을 이용해 incoming/outgoing 패킷의 주소를 정확히 변환합니다. 결론적으로, NAT는 제한된 PublicIP를 효율적으로 사용하면서도 내부 네트워크의 보안을 유지하는 중요한 기술입니다. 이를 통해 대규모 네트워크에서도 안전하고 효율적인 인터넷 통신이 가능해집니다.


NAPT란?

NAPT(Network Address Port Translation)는 현대 네트워크에서 널리 사용되는 중요한 기술로, 여러 host가 고유한 PrivateIP를 할당받고 하나의 공용 IP 주소를 공유하면서 인터넷과 통신할 수 있습니다.

  • NAT의 확장 버전으로, IP 주소와 포트 번호를 함께 변환
  • 여러 사설 IP 주소가 하나의 공인 IP 주소를 공유 가능

NAPT의 작동 원리

NAPT의 작동 과정은 다음과 같습니다: a) 요청 단계:

  • 내부 호스트(PrivateIP)가 특정 포트를 통해 인터넷으로 요청을 보냅니다.
  • 이 요청은 NAPT 기능을 제공하는 라우터를 통과합니다.
  • NAPT 라우터는 PrivateIP와 포트를 PublicIP와 새로운 포트로 변환합니다.
  • 변환된 주소와 포트로 인터넷에 요청을 전송합니다. b) 응답 단계:
  • 인터넷으로부터 응답이 NAPT 라우터에 도착합니다.
  • NAPT 라우터는 NAPT 변환 테이블을 참조합니다.
  • 테이블 정보를 바탕으로 PublicIP와 포트를 원래의 PrivateIP와 포트로 다시 변환합니다.
  • 변환된 주소와 포트로 내부 호스트에 응답을 전달합니다.

NAPT 변환 테이블

사설 IP사설 포트공용 IP공용 포트
192.168.1.103000203.0.113.120000
192.168.1.204000203.0.113.120001
192.168.1.305000203.0.113.120002

위 테이블은 다음 정보를 포함합니다:

  • Private IP: 내부 네트워크의 호스트 IP
  • Private Port: 내부 호스트의 포트 번호
  • Public IP: NAT 라우터의 외부 IP
  • Public Port: NAT 라우터가 할당한 외부 포트

AWS의 NAT gateway란?

AWS NAT 게이트웨이는 Amazon Web Services에서 제공하는 관리형 네트워크 주소 변환(NAT) 서비스입니다.
주요 기능:

  • 프라이빗 서브넷 내 인스턴스의 외부 연결 지원
  • 외부에서 프라이빗 서브넷으로의 직접 접근 차단
    작동 방식:
  • 프라이빗 서브넷 -> NAT 게이트웨이 -> 인터넷 게이트웨이 -> 외부 네트워크
  • 외부 네트워크 -> NAT 게이트웨이 (접근 차단) 장점:
  • 보안 강화: 외부로부터의 직접적인 접근 방지
  • 관리 용이성: AWS에서 관리하는 서비스로 유지보수 간편
  • 확장성: 트래픽 증가에 따라 자동으로 확장

AWS NAT Gateway 설정

프라이빗 서브넷의 인스턴스들이 NAT Gateway를 통해 인터넷에 접근할 수 있도록 AWS NAT Gateway 설정 과정을 기술합니다: image

  1. 퍼블릭 서브넷 선택:
  • 선택한 VPC 내의 퍼블릭 서브넷을 지정합니다.
  • 이 서브넷은 인터넷 게이트웨이와 연결되어 있어야 합니다.
  1. 페블릭 서브넷 내 NAT Gateway 생성:
  • AWS 콘솔의 VPC 섹션에서 ‘NAT Gateways’를 선택합니다.
  • ‘새 NAT Gateway 생성’ 버튼을 클릭합니다.
  • 선택한 퍼블릭 서브넷을 지정합니다.
  • 새로운 탄력적 IP 주소를 할당하거나 기존 주소를 선택합니다.
  1. 라우팅 테이블 설정:
  • 프라이빗 서브넷의 라우팅 테이블을 엽니다.
  • 새 라우팅 규칙을 추가합니다:
    • 목적지: 0.0.0.0/0 (모든 인터넷 트래픽)
    • 대상: 방금 생성한 NAT Gateway의 ID
  1. 변경 사항 저장:
  • 라우팅 테이블의 변경 사항을 저장합니다.

Reference