Public NAT

Public NAT를 사용하면 공개 IP 주소가 없는 Google Cloud 가상 머신(VM) 인스턴스가 공유 공개 IP 주소 집합을 사용하여 인터넷과 통신할 수 있습니다. Public NAT는 인터넷에 대한 아웃바운드 연결을 만들기 위해 게이트웨이를 사용하는 각 VM에 외부 IP 주소 및 소스 포트 집합을 할당하는 Public NAT 게이트웨이를 사용합니다.

기본 Public NAT 구성 및 워크플로

다음 다이어그램은 기본 Public NAT 구성을 보여줍니다.

Public NAT 변환 예시
Public NAT 변환 예시(확대하려면 클릭)

이 예에서는 다음과 같이 정의됩니다.

  • nat-gw-us-east 게이트웨이가 us-east1 리전에서 subnet-1의 기본 IP 주소 범위에 적용되도록 구성되었습니다. 네트워크 인터페이스에 외부 IP 주소가 없는 VM은 기본 내부 IP 주소 또는 subnet-1,10.240.0.0/16의 기본 IP 주소 범위에서 별칭 IP 범위를 사용하여 트래픽을 인터넷에 전송할 수 있습니다.

  • 네트워크 인터페이스에 외부 IP 주소가 없고 기본 내부 IP 주소가 subnet-2에 있는 VM은 해당 서브넷의 IP 주소 범위에 적용되는 Public NAT 게이트웨이가 없기 때문에 인터넷에 액세스할 수 없습니다.

  • nat-gw-eu 게이트웨이가 europe-west1 리전에서 subnet-3의 기본 IP 주소 범위에 적용되도록 구성되었습니다. 네트워크 인터페이스에 외부 IP 주소가 없는 VM은 기본 내부 IP 주소 또는 subnet-3,192.168.1.0/24의 기본 IP 주소 범위에서 별칭 IP 범위를 사용하여 트래픽을 인터넷에 전송할 수 있습니다.

Public NAT 워크플로 예시

이전 다이어그램에서 외부 IP 주소가 없는 기본 내부 IP 주소가 10.240.0.4인 VM은 외부 IP 주소 203.0.113.1에서 업데이트를 다운로드해야 합니다. 다이어그램에서 nat-gw-us-east 게이트웨이는 다음과 같이 구성됩니다.

  • 인스턴스당 최소 포트 수: 64
  • 수동으로 할당한 두 네트워크 주소 변환(NAT) IP 주소: 192.0.2.50192.0.2.60
  • subnet-1의 기본 IP 주소 범위에 NAT가 제공됨

Public NAT는 네트워크의 각 VM에 다음 NAT 소스 IP 주소와 소스 포트 튜플을 예약하기 위해 포트 예약 절차를 따릅니다. 예를 들어 Public NAT 게이트웨이는 내부 IP 주소 10.240.0.4로 VM에 64개의 소스 포트를 예약합니다. NAT IP 주소 192.0.2.50은 64개의 예약되지 않은 포트가 있으므로 게이트웨이는 VM에 대한 다음 64개의 NAT 소스 IP 주소 및 소스 포트 튜플 집합을 예약합니다.

  • 192.0.2.50:34000 에서 192.0.2.50:34063

VM이 TCP 프로토콜을 사용하여 대상 포트 80의 업데이트 서버 203.0.113.1에 패킷을 전송하면 다음과 같은 결과가 발생합니다.

  • VM이 다음 속성으로 요청 패킷을 전송합니다.

    • 소스 IP 주소: 10.240.0.4, VM의 기본 내부 IP 주소
    • 소스 포트: 24000, VM의 운영 체제에서 선택한 임시 소스 포트
    • 대상 주소: 203.0.113.1, 업데이트 서버의 외부 IP 주소
    • 대상 포트: 80, 업데이트 서버에 대한 HTTP 트래픽에 대한 대상 포트
    • 프로토콜: TCP
  • nat-gw-us-east 게이트웨이는 이그레스에 소스 네트워크 주소 변환(SNAT)을 수행하여 요청 패킷의 NAT 소스 IP 주소와 소스 포트를 재작성합니다. 수정한 패킷은 Virtual Private Cloud(VPC) 네트워크에 다음 홉이 기본 인터넷 게이트웨이인 203.0.113.1 대상에 대한 경로가 있는 경우 인터넷으로 전송됩니다. 기본 경로는 일반적으로 이 요구사항을 충족합니다.

    • NAT 소스 IP 주소: 192.0.2.50, VM의 예약된 NAT 소스 IP 주소 및 소스 포트 튜플 중 하나
    • 소스 포트: 34022, VM의 예약된 소스 포트 튜플 중 하나에서 가져온 사용되지 않은 소스 포트
    • 대상 주소: 203.0.113.1, 변경되지 않음
    • 대상 포트: 80, 변경되지 않음
    • 프로토콜: TCP, 변경되지 않음
  • 업데이트 서버가 응답 패킷을 전송하면 해당 패킷은 다음 속성과 함께 nat-gw-us-east 게이트웨이에 도착합니다.

    • 소스 IP 주소: 203.0.113.1, 업데이트 서버의 외부 IP 주소
    • 소스 포트: 80, 업데이트 서버의 HTTP 응답
    • 대상 주소: 192.0.2.50, 요청 패킷의 원래 NAT 소스 IP 주소와 일치
    • 대상 포트: 34022, 요청 패킷의 소스 포트와 일치
    • 프로토콜: TCP, 변경되지 않음
  • nat-gw-us-east 게이트웨이는 응답 패킷에 대상 네트워크 주소 변환(DNAT)을 수행하여 패킷이 VM에 전달되도록 응답 패킷의 대상 주소와 대상 포트를 재작성합니다.

    • 소스 IP 주소: 203.0.113.1, 변경되지 않음
    • 소스 포트: 80, 변경되지 않음
    • 대상 주소: 10.240.0.4, VM의 기본 내부 IP 주소
    • 대상 포트: 24000, 요청 패킷의 기존 임시 소스 포트와 일치
    • 프로토콜: TCP, 변경되지 않음

사양

일반 사양

다음에서 전송되는 패킷을 위해 인터넷에 NAT를 제공하도록 Public NAT 게이트웨이를 구성할 수 있습니다.

  • 네트워크 인터페이스에 할당된 외부 IP 주소가 없는 경우 Compute Engine VM 네트워크 인터페이스의 내부 IP 주소. 네트워크 인터페이스에 할당된 외부 IP 주소가 있는 경우 Google Cloud는 네트워크 인터페이스가 Google Cloud 인터넷 액세스 요구사항을 충족하므로 인터페이스의 기본 내부 IP 주소와 일치하는 소스를 가진 패킷에 대해 일대일 NAT를 자동으로 수행합니다. 인터페이스에 외부 IP 주소가 있으면 항상 우선 적용되며, Public NAT를 사용하지 않고 항상 일대일 NAT를 수행합니다.

  • VM의 네트워크 인터페이스에 할당된 별칭 IP 범위. 네트워크 인터페이스에 할당된 외부 IP 주소가 있더라도 인터페이스의 별칭 IP 범위에 속하는 소스의 패킷에 대해 NAT를 제공하도록 Public NAT 게이트웨이를 구성할 수 있습니다. 인터페이스에서 외부 IP 주소는 별칭 IP 주소로 일대일 NAT를 수행하지 않습니다.

  • Google Kubernetes Engine(GKE) 클러스터의 경우 특정 환경에서 클러스터에 외부 IP 주소가 포함되더라도 Public NAT가 서비스를 제공할 수 있습니다. 자세한 내용은 GKE 상호작용을 참조하세요.

Public NAT에서는 아웃바운드 연결과 해당 연결에 대한 인바운드 응답을 허용합니다. 각 Public NAT 게이트웨이는 이그레스에서 소스 NAT를 수행하고 설정된 응답 패킷에 대해 대상 NAT를 수행합니다.

Public NAT는 방화벽 규칙에서 허용되었더라도 인터넷에서 수신되는 원치 않는 인바운드 요청을 허용하지 않습니다. 자세한 내용은 관련 RFC를 참조하세요.

각 Public NAT 게이트웨이는 단일 VPC 네트워크, 리전, Cloud Router와 연결됩니다. Public NAT 게이트웨이 및 Cloud Router는 제어 영역을 제공합니다. 이는 데이터 영역에 포함되지 않으므로 패킷이 Public NAT 게이트웨이 또는 Cloud Router를 통과하지 않습니다.

Public NAT 게이트웨이가 Cloud Router에서 관리되더라도 Public NAT는 경계 게이트웨이 프로토콜(BGP) 사용하지 않거나 의존하지 않습니다.

경로 및 방화벽 규칙

Public NAT는 다음 홉이 기본 인터넷 게이트웨이인 커스텀 정적 경로에 의존합니다. Public NAT 게이트웨이를 완전히 활용하려면 Virtual Private Cloud 네트워크에 다음 홉이 기본 인터넷 게이트웨이인 기본 경로가 필요합니다. 자세한 내용은 경로 상호작용을 참조하세요.

Public NAT에는 Cloud NGFW 규칙 요구사항이 없습니다. 방화벽 규칙은 Public NAT 게이트웨이가 아닌 Compute Engine VM의 네트워크 인터페이스에 직접 적용됩니다.

NAT IP 주소에 대한 연결을 허용하는 특별한 방화벽 규칙을 만들 필요가 없습니다. Public NAT 게이트웨이가 VM의 네트워크 인터페이스로 NAT를 제공할 때 관련 이그레스 방화벽 규칙은 NAT 전에 네트워크 인터페이스에 대한 패킷으로 평가됩니다. 인그레스 방화벽 규칙은 패킷이 NAT에서 처리된 다음 평가됩니다.

서브넷 IP 주소 범위 관련성

VM 네트워크 인터페이스의 기본 내부 IP 주소, 별칭 IP 범위 또는 둘 다에 대해 NAT를 제공하도록 Public NAT 게이트웨이를 구성할 수 있습니다. 이 구성은 게이트웨이가 적용될 서브넷 IP 주소 범위를 선택하여 수행됩니다.

다음에 대해 NAT를 제공하도록 Public NAT 게이트웨이를 구성할 수 있습니다.

  • 리전 내 모든 서브넷의 기본 및 보조 IP 주소 범위. 단일 Public NAT 게이트웨이는 네트워크 인터페이스가 해당 리전의 서브넷을 사용하는 적격한 VM의 기본 내부 IP 주소 및 모든 별칭 IP 범위로 NAT를 제공합니다. 이 옵션은 리전별로 정확히 하나의 NAT 게이트웨이를 사용합니다.

  • 리전에 있는 모든 서브넷의 기본 IP 주소 범위. 단일 Public NAT 게이트웨이는 네트워크 인터페이스가 해당 리전의 서브넷을 사용하는 적격한 VM의 서브넷 기본 IP 주소 범위로부터 기본 내부 IP 주소 및 별칭 IP 범위로 NAT를 제공합니다. 해당 리전에서 추가 Public NAT 게이트웨이를 만들어 적격한 VM의 서브넷 보조 IP 주소 범위로부터 별칭 IP 범위로 NAT를 제공할 수 있습니다.

  • 커스텀 서브넷 목록. 단일 Public NAT 게이트웨이는 네트워크 인터페이스가 지정된 서브넷 목록의 서브넷을 사용하는 적격한 VM의 기본 내부 IP 주소 및 모든 별칭 IP 범위로 NAT를 제공합니다.

  • 커스텀 서브넷 IP 주소 범위. Public NAT 할당량 및 한도에 따라 Public NAT 게이트웨이를 필요한 만큼 여러 개 만들 수 있습니다. 각 게이트웨이에서 제공할 서브넷 기본 또는 보조 IP 주소 범위를 선택합니다.

여러 Public NAT 게이트웨이

다음 조건 중 하나가 참이면 VPC 네트워크의 동일한 리전에 Public NAT 게이트웨이가 여러 개 있을 수 있습니다.

  • 각 게이트웨이는 서로 다른 서브넷에 구성됩니다.

  • 단일 서브넷 내에서 각 게이트웨이는 서로 다른 IP 주소 범위에 구성됩니다. 커스텀 Cloud NAT 매핑을 사용하여 특정 서브넷이나 IP 주소 범위에 Public NAT 게이트웨이를 매핑합니다.

매핑된 NAT 게이트웨이가 겹치지만 않으면 Public NAT 할당량 및 한도에 따라 필요한 만큼 Public NAT 게이트웨이를 만들 수 있습니다. 자세한 내용은 Cloud NAT 게이트웨이 제한사항을 참조하세요.

대역폭

Public NAT 게이트웨이를 사용해도 VM이 사용할 수 있는 아웃바운드 또는 인바운드 대역폭 양이 변경되지 않습니다. 머신 유형별로 달라지는 대역폭 사양은 Compute Engine 문서의 네트워크 대역폭을 참조하세요.

여러 네트워크 인터페이스가 있는 VM

여러 네트워크 인터페이스가 포함된 VM을 구성할 때 각 인터페이스는 개별 VPC 네트워크에 있어야 합니다. 따라서 다음 사항이 참입니다.

  • Public NAT 게이트웨이는 VM의 단일 네트워크 인터페이스에만 적용될 수 있습니다. 개별 Public NAT 게이트웨이는 각 게이트웨이가 개별 인터페이스에 적용되는 동일 VM에 NAT를 제공할 수 있습니다.
  • 여러 네트워크 인터페이스 VM의 인터페이스 중 하나가 외부 IP 주소를 가져 해당 인터페이스가 Public NAT에 적격하지 않게 되어도 또 다른 한 인터페이스에 외부 IP 주소가 없고 적절한 서브넷 IP 주소 범위에 적용되도록 Public NAT 게이트웨이를 구성했다면 이 인터페이스가 NAT에 적격할 수 있습니다.

NAT IP 주소 및 포트

Public NAT 게이트웨이를 만들 때는 게이트웨이가 리전 외부 IP 주소를 자동으로 할당하도록 선택할 수 있습니다. 또는 게이트웨이에 고정된 개수의 리전 외부 IP 주소를 수동으로 할당할 수 있습니다.

자동 NAT IP 주소 할당이 포함된 Public NAT 게이트웨이의 경우 다음을 고려하세요.

  • Public NAT 게이트웨이가 IP 주소를 할당할 네트워크 서비스 등급(프리미엄 등급 또는 표준 등급)을 선택할 수 있습니다.
  • 자동으로 NAT IP 주소가 할당된 Public NAT 게이트웨이의 등급을 변경하면 Google Cloud에서 해당 게이트웨이에 할당된 모든 IP 주소를 해제하고 모든 포트 할당을 사용 중지합니다.

    새로 선택한 등급의 새 IP 주소 집합이 자동으로 할당되고 모든 엔드포인트에 새 포트 할당이 제공됩니다.

특정 Public NAT 게이트웨이의 경우 특정 조건에 따라 프리미엄 등급이나 표준 등급 또는 둘 다에서 IP 주소를 수동으로 할당할 수도 있습니다.

NAT IP 주소 할당에 대한 자세한 내용은 Public NAT IP 주소를 참조하세요.

각 Public NAT 게이트웨이가 NAT 서비스를 제공할 VM마다 예약하는 소스 포트 수를 구성할 수 있습니다. 각 VM에 대해 동일 개수의 포트가 예약되는 정적 포트 할당 또는 지정한 최소 및 최대 한도 사이에 예약된 포트 수가 변동될 수 있는 동적 포트 할당을 구성할 수 있습니다.

NAT가 제공할 VM은 게이트웨이가 제공하도록 구성된 서브넷 IP 주소 범위에 의해 결정됩니다.

포트에 대한 자세한 내용은 포트를 참조하세요.

관련 RFC

Public NAT는 RFC 5128에서 정의된 엔드포인트 독립 매핑엔드포인트 종속 필터링을 지원합니다. 엔드포인트 독립 매핑을 사용 설정 또는 사용 중지할 수 있습니다. 기본적으로 엔드포인트 독립 매핑은 NAT 게이트웨이를 만들 때 사용 중지됩니다.

엔드포인트 독립 매핑은 VM이 지정된 내부 IP 주소 및 포트 쌍에서 여러 다른 대상으로 패킷을 전송하는 경우, 게이트웨이가 패킷의 대상에 관계없이 이러한 모든 패킷을 동일한 NAT IP 주소 및 포트 쌍으로 매핑하는 것을 의미합니다. 엔드포인트 독립 매핑에 대한 자세한 내용 및 관련 영향은 동시 포트 재사용 및 엔드포인트 독립 매핑을 참조하세요.

엔드포인트 종속 필터링은 인터넷의 응답 패킷이 VM에서 이미 패킷을 전송한 IP 주소 및 포트에서 온 경우에만 입력할 수 있다는 것을 의미합니다. 필터링은 엔드포인트 매핑 유형에 관계없이 엔드포인트에 종속됩니다. 이 기능은 항상 사용 설정되어 있으며 사용자가 구성할 수 없습니다.

포트와 연결 간의 관계에 대한 자세한 내용은 포트 및 연결NAT 흐름 예시를 참조하세요.

Public NAT는 RFC 3489에 정의된 포트 제한 Cone NAT입니다.

NAT 순회

엔드포인트 독립 매핑이 사용 설정된 경우 고유 STUN 또는 TURN 서버를 배포하면 Public NAT는 STUN 및 TURN과 같은 일반적인 NAT 순회 프로토콜과 호환됩니다.

  • STUN(Session Traversal Utilities for NAT, RFC 5389)은 통신 채널이 설정된 다음 NAT 뒤의 VM 간 직접 통신을 허용합니다.
  • TURN(Traversal Using Relays around NAT, RFC 5766)은 서버에 외부 IP 주소가 포함된 타사 서버를 통해 NAT뒤의 VM 간 통신을 허용합니다. 각 VM이 서버의 외부 IP 주소에 연결되고, 해당 서버가 두 VM 사이의 통신을 릴레이합니다. TURN이 더 강력하지만 대역폭과 리소스 소비량이 더 많습니다.

NAT 제한 시간

Public NAT는 프로토콜 연결에 대한 제한 시간을 설정합니다. 이러한 제한 시간 및 기본값에 대한 자세한 내용은 NAT 제한 시간을 참조하세요.

다음 단계