Public NAT

Public NAT를 사용하면 Public NAT를 사용하는 각 VM에 공유 외부 IPv4 주소와 소스 포트 세트를 할당하여 인터넷에 대한 아웃바운드 연결을 생성함으로써 Compute Engine 가상 머신(VM) 인스턴스가 인터넷과 통신할 수 있습니다.

Public NAT를 사용하면 외부 IPv4 주소가 없는 VM 인스턴스가 인터넷의 IPv4 대상과 통신할 수 있습니다. 또한 Public NAT를 사용하면 외부 또는 내부 IPv6 주소가 있는 VM 인스턴스가 인터넷의 IPv4 대상에 연결할 수 있습니다.

사양

Public NAT는 다음에 대한 네트워크 주소 변환(NAT)을 지원합니다.

  • IPv4에서 IPv4 또는 NAT44로. 자세한 내용은 Public NAT의 NAT44를 참조하세요.

  • IPv6에서 IPv4 또는 NAT64로. Compute Engine VM 인스턴스에 NAT64를 사용할 수 있습니다. Google Kubernetes Engine(GKE) 노드, 서버리스 엔드포인트, 리전 인터넷 네트워크 엔드포인트 그룹의 경우 Public NAT는 IPv4 주소만 변환합니다. 자세한 내용은 Public NAT의 NAT64를 참조하세요.

일반 사양

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

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

  • 각 Public NAT용 Cloud NAT 게이트웨이는 단일 VPC 네트워크, 리전, Cloud Router와 연결됩니다. Cloud NAT 게이트웨이와 Cloud Router는 컨트롤 플레인을 제공합니다. 따라서 데이터 영역에 포함되지 않으므로 패킷은 Cloud NAT 게이트웨이나 Cloud Router를 통과하지 않습니다.

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

  • NAT44의 경우 Public NAT는 다음에서 전송된 아웃바운드 패킷에 대한 NAT를 제공할 수 있습니다.

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

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

    • VM에서 IP 전달에 사용하는 IP 주소. 이러한 주소에 대한 NAT를 구성하려면 VM에서 패킷을 전달할 때 사용하는 소스 IP 주소와 일치하는 NAT 규칙을 만듭니다. 자세한 내용은 소스 기반 규칙(프리뷰)을 참조하세요.

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

  • NAT64의 경우 Public NAT는 다음에서 전송된 아웃바운드 패킷에 대한 NAT를 제공할 수 있습니다.

    • VM IPv6 전용 네트워크 인터페이스의 내부 /96 주소 범위입니다.
    • VM IPv6 전용 네트워크 인터페이스의 외부 /96 주소 범위입니다.

경로 및 방화벽 규칙

Public NAT는 다음 홉이 기본 인터넷 게이트웨이인 로컬 정적 경로를 사용합니다. 기본 경로는 일반적으로 이 요구사항을 충족합니다. 자세한 내용은 경로 상호작용을 참조하세요.

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

Public NAT용 Cloud NAT 게이트웨이에서 VM 네트워크 인터페이스에 NAT를 제공하면 관련 이그레스 방화벽 규칙은 NAT가 수행되기 전에 해당 네트워크 인터페이스의 패킷으로 평가됩니다. 인그레스 방화벽 규칙은 NAT에서 패킷을 처리한 후에 평가됩니다. 개발자는 특별히 NAT에 사용할 방화벽 규칙을 만들지 않아도 됩니다.

하지만 IPv4 대상에 대한 이그레스 거부 방화벽 규칙이 있는 VPC 네트워크에서 NAT64를 사용 설정하려면 대상의 IPv4 삽입 IPv6 주소에 대한 이그레스 거부 방화벽 규칙을 추가로 만드는 것이 좋습니다. 이렇게 하면 NAT64를 사용하는 VM의 트래픽이 IPv4 방화벽 규칙을 우회할 수 없습니다. 예를 들어 IPv4 규칙의 대상이 1.2.3.4/32이면 IPv6 규칙의 대상은 64:ff9b:0102:0304/128이어야 합니다. IPv4 삽입 IPv6 주소에 대한 자세한 내용은 NAT64를 참조하세요.

서브넷 IP 주소 범위 적용성

Public NAT는 IPv4 서브넷 범위, IPv6 서브넷 범위 또는 둘 다에 NAT를 제공할 수 있습니다.

  • IPv4 서브넷 범위의 경우 다음 옵션을 사용하여 기본 IP 주소 범위, 별칭 IP 범위 또는 둘 다에 대해 NAT를 구성할 수 있습니다.

    • 리전 내 모든 서브넷의 기본 및 보조 IPv4 범위: 단일 Cloud NAT 게이트웨이가 기본 내부 IP 주소 및 네트워크 인터페이스에서 리전의 IPv4 서브넷을 사용하는 적격한 VM의 모든 별칭 IP 범위에 NAT를 제공합니다.

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

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

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

  • IPv6 서브넷 범위의 경우 다음 옵션을 사용하여 내부 IP 주소 범위, 외부 IP 주소 범위 또는 둘 다에 대해 NAT를 구성할 수 있습니다.

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

여러 Cloud NAT 게이트웨이

다음 조건 중 하나가 해당하면 VPC 네트워크의 같은 리전에 Public NAT용 Cloud NAT 게이트웨이가 여러 개 있을 수 있습니다.

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

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

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

대역폭

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

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

네트워크 인터페이스가 여러 개 있는 VM을 구성하는 경우 각 인터페이스는 개별 VPC 네트워크에 있어야 합니다. 따라서 다음 사항이 해당됩니다.

  • Public NAT용 Cloud NAT 게이트웨이는 VM의 단일 네트워크 인터페이스에만 적용될 수 있습니다. Public NAT용 개별 Cloud NAT 게이트웨이는 같은 VM에 NAT를 제공할 수 있습니다. 여기서 게이트웨이는 개별 인터페이스에 적용됩니다.
  • 여러 네트워크 인터페이스 VM의 인터페이스 중 하나에 외부 IPv4 주소가 있으면 해당 인터페이스에서 Public NAT를 수행할 수 없게 됩니다. 반면 해당 인터페이스에 외부 IPv4 주소가 없고 Public NAT용 Cloud NAT 게이트웨이가 적절한 서브넷 IP 주소 범위에 적용되도록 구성된 경우에는 이 인터페이스에서 NAT를 수행할 수 있습니다. IPv6의 경우 내부 및 외부 IPv6 주소가 모두 지원됩니다.

NAT IP 주소 및 포트

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

NAT IP 주소가 자동으로 할당된 Public NAT용 Cloud NAT 게이트웨이의 경우 다음을 고려하세요.

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

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

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

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

NAT 서비스를 제공하기 위해 각 VM에서 각 Public NAT용 Cloud NAT 게이트웨이가 예약하는 소스 포트 수를 구성할 수 있습니다. 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 제한 시간을 참조하세요.

Public NAT의 NAT44

다음 다이어그램에서는 IPv4 트래픽에 대한 기본 Public NAT 구성을 보여줍니다.

Public NAT IPv4 변환 예시
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 주소 범위에 적용되는 Cloud NAT 게이트웨이가 없으므로 인터넷에 액세스할 수 없습니다.

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

워크플로 예시

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

  • 인스턴스당 최소 포트 수: 64
  • 수동으로 할당된 NAT IP 주소 2개: 192.0.2.50192.0.2.60
  • subnet-1의 기본 IP 주소 범위에 NAT가 제공됨

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

  • 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 주소와 소스 포트를 재작성합니다. 수정한 패킷은 가상 프라이빗 클라우드(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(변경되지 않음)

Public NAT의 NAT64

NAT64를 사용하면 IPv6 전용 네트워크 인터페이스가 있는 VM 인스턴스가 인터넷의 IPv4 대상과 통신할 수 있습니다. Public NAT는 외부 및 내부 IPv6 주소 모두에 NAT64를 지원합니다. NAT64를 구성하려면 DNS64도 구성해야 합니다.

Cloud DNS에서 DNS64를 구성하면 다음과 같은 동작이 가능합니다.

  • IPv6 전용 VM 인스턴스가 IPv4 주소만 있는 인터넷 대상 이름을 변환하기 위한 요청을 시작하면 DNS64 서버는 A 레코드를 조회합니다.
  • A 레코드가 발견되면 DNS64 서버는 A 레코드에서 가져온 대상 IPv4 주소 앞에 64:ff9b::/96 프리픽스를 추가하여 IPv4 삽입 IPv6 주소를 합성합니다. 예를 들어 대상 IPv4 주소가 203.0.113.1이면 서버는 64:ff9b::cb00:7101을 반환하며 여기서 cb00:7101203.0.113.1의 16진수 표현입니다.

    자세한 내용은 DNS64를 참조하세요.

NAT64가 사용 설정된 요청이 Cloud NAT 게이트웨이에 도달하면 게이트웨이는 다음을 실행하여 SNAT를 수행합니다.

  • 소스 IPv6 주소와 포트를 게이트웨이에 할당된 외부 IPv4 주소와 포트 중 하나로 바꿉니다.
  • 합성된 대상 IPv6 주소(예: 64:ff9b::cb00:7101)를 합성된 주소의 마지막 32비트를 사용하여 원래 IPv4 주소로 변환합니다.

    Cloud NAT 게이트웨이는 합성된 IPv6 주소의 마지막 32비트를 사용하여 요청 패킷이 인터넷으로 라우팅되는 방식을 결정합니다. IPv6 전용 VM 인스턴스에서 64:ff9b::/96 프리픽스가 있는 대상에 패킷을 전송하면 게이트웨이는 VPC 네트워크의 IPv4 라우팅 테이블을 대상 IPv4 주소에 적용합니다. IPv4 라우팅 테이블에 다음 홉이 기본 인터넷 게이트웨이인 대상 IPv4 주소에 대한 경로가 있으면 수정된 패킷이 인터넷으로 전송됩니다.

응답이 수신되면 Cloud NAT 게이트웨이는 다음을 실행하여 DNAT를 수행합니다.

  • 응답 패킷의 소스 IP 주소에 64:ff9b::/96 프리픽스를 추가합니다.
  • 패킷이 VM에 전달되도록 응답 패킷의 목적지 주소와 목적지 포트를 재작성합니다.

NAT64를 구성하기 전에 제한사항경로 및 방화벽 규칙을 검토하세요.

다음 단계