Cloud NAT 제품 상호작용

이 페이지에서는 Cloud NAT와 다른 Google Cloud 제품 간의 중요한 상호작용을 설명합니다.

경로 상호작용

Public NAT게이트웨이는 다음 홉이 기본 인터넷 게이트웨이인 경로만 사용할 수 있습니다. 각 가상 프라이빗 클라우드(VPC) 네트워크는 대상이 0.0.0.0/0이고 다음 홉이 기본 인터넷 게이트웨이인 기본 경로로 시작됩니다. 중요 배경 정보는 경로 개요를 참조하세요.

다음 예시에서는Public NAT게이트웨이가 작동하지 않게 될 수 있는 상황을 보여줍니다.

  • 다음 홉이 다른 유형의 정적 경로 다음 홉으로 설정된 정적 경로를 만들면 해당 경로 대상과 일치하는 대상 IP 주소가 포함된 패킷이 기본 인터넷 게이트웨이 대신 다음 홉으로 전송됩니다. 예를 들어 NAT 게이트웨이, 방화벽 또는 프록시 소프트웨어가 실행되는 가상 머신(VM) 인스턴스를 사용하는 경우 이러한 VM에 대한 트래픽을 다음 홉으로 전달하려면 정적 경로를 만듭니다. 다음 홉 VM을 사용하려면 외부 IP 주소가 필요합니다. 따라서 다음 홉 VM을 사용하는 VM이나 다음 홉 VM 자체의 트래픽에서는Public NAT게이트웨이를 사용할 수 없습니다.

  • 다음 홉이 Cloud VPN 터널인 커스텀 정적 경로를 만들면Public NAT에서 이 경로를 사용할 수 없습니다. 예를 들어 대상이 0.0.0.0/0이고 다음 홉 Cloud VPN 터널이 있는 정적 경로는 기본 인터넷 게이트웨이가 아닌 해당 터널로 트래픽을 전달합니다. 따라서Public NAT게이트웨이에서 이 경로를 사용할 수 없습니다. 마찬가지로Public NAT게이트웨이는 0.0.0.0/1128.0.0.0/1을 포함하여 보다 구체적인 대상이 포함된 정적 경로를 사용할 수 없습니다.

  • 온프레미스 라우터에서 Cloud VPN 터널이나 VLAN 연결을 관리하는 Cloud Router에 동적 경로를 공지하면Public NAT게이트웨이에서 이 경로를 사용할 수 없습니다. 예를 들어 온프레미스 라우터에서 대상이 0.0.0.0/0인 동적 경로를 공지하면 0.0.0.0/0이 Cloud VPN 터널이나 VLAN 연결로 전달됩니다. 0.0.0.0/1128.0.0.0/1을 포함한 보다 구체적인 대상인 경우에도 이 동작이 적용됩니다.

Private NAT는 다음 경로를 사용합니다.

  • Network Connectivity Center 스포크의 경우 Private NAT는 서브넷 경로와 동적 경로를 사용합니다.
    • VPC 스포크만 포함된 Network Connectivity Center 허브에 연결된 두 VPC 스포크 간의 트래픽의 경우 Private NAT는 연결된 VPC 스포크로 교환되는 서브넷 경로를 사용합니다. VPC 스포크에 대한 내용은 VPC 스포크 개요를 참조하세요.
    • Network Connectivity Center 허브에 VPC 스포크와 하이브리드 스포크(예: Cloud Interconnect, Cloud VPN 터널 또는 라우터 어플라이언스 VM용 VLAN 연결)가 모두 포함된 경우 Private NAT는 BGP를 통해 하이브리드 스포크에서 학습한 동적 경로와 연결된 VPC 스포크로 교환되는 서브넷 경로를 사용합니다. 하이브리드 스포크에 대한 자세한 내용은 하이브리드 스포크를 참조하세요.
  • Hybrid NAT의 경우 Private NAT는 Cloud Interconnect 또는 Cloud VPN을 통해 Cloud Router에서 학습한 동적 경로를 사용합니다.

비공개 Google 액세스 상호작용

Public NAT게이트웨이는 일부 Google API 및 서비스용 외부 IP 주소로 전송되는 트래픽에 대해 NAT를 수행하지 않습니다. 대신Google Cloud 는 사용자가 기본 또는 보조로 서브넷 범위에 적용하기 위해Public NAT게이트웨이를 구성할 때 서브넷 IP 주소 범위에 비공개 Google 액세스를 자동으로 사용 설정합니다. 게이트웨이에서 서브넷 범위에 NAT를 제공하는 한 해당 범위에 비공개 Google 액세스가 사용되며 이를 수동으로 사용 중지할 수 없습니다.

Public NAT게이트웨이는 비공개 Google 액세스 작동 방법을 변경하지 않습니다. 자세한 내용은 비공개 Google 액세스를 참조하세요.

Private NAT 게이트웨이는 비공개 Google 액세스에 적용되지 않습니다.

공유 VPC 상호작용

공유 VPC는 단일 조직의 여러 서비스 프로젝트에서 호스트 프로젝트에 있는 공통된 공유 VPC 네트워크 하나를 사용하도록 지원합니다. 공유 VPC 네트워크를 사용하는 서비스 프로젝트의 VM에 NAT를 제공하려면 호스트 프로젝트에서 Cloud NAT 게이트웨이를 만들어야 합니다.

VPC 네트워크 피어링 상호작용

Cloud NAT 게이트웨이는 단일 리전과 단일 VPC 네트워크에 있는 서브넷 IP 주소 범위와 연결됩니다. 한 VPC 네트워크에서 생성된 Cloud NAT 게이트웨이는 피어링된 네트워크의 VM이 게이트웨이와 동일한 리전에 있더라도 VPC 네트워크 피어링을 통해 연결된 다른 VPC 네트워크의 VM에 NAT를 제공할 수 없습니다.

GKE 상호작용

Public NAT게이트웨이는 VPC 기반 클러스터 유형인 비공개 클러스터에서 노드와 포드에 NAT를 수행할 수 있습니다.Public NAT게이트웨이는 최소한 클러스터에서 사용하는 서브넷의 다음 서브넷 IP 주소 범위에 적용되도록 구성되어야 합니다.

  • 서브넷 기본 IP 주소 범위(노드에 사용됨)
  • 클러스터의 포드에 사용되는 서브넷 보조 IP 주소 범위
  • 클러스터의 서비스에 사용되는 서브넷 보조 IP 주소 범위

전체 비공개 클러스터에 NAT를 제공하는 가장 쉬운 방법은Public NAT게이트웨이가 클러스터 서브넷의 모든 서브넷 IP 주소 범위에 적용되도록 구성하는 것입니다.

VPC 기반 클러스터에서 서브넷 IP 주소 범위를 활용하는 방법에 대한 배경 정보는 VPC 기반 클러스터의 IP 범위를 참조하세요.

Public NAT게이트웨이가 비공개 클러스터에 NAT를 제공하도록 구성된 경우 노드 VM마다 NAT 소스 IP 주소와 소스 포트를 예약합니다. 포드 IP 주소는 각 노드 VM에 할당된 별칭 IP 범위로 구현되므로 이러한 NAT 소스 IP 주소와 소스 포트는 포드에서 사용될 수 있습니다.

Google Kubernetes Engine(GKE) VPC 기반 클러스터는 항상 IP 주소가 2개 이상 포함된 별칭 IP 범위(/32보다 작은 넷마스크)를 각 노드에 할당합니다.

  • 정적 포트 할당이 구성되면 Public NAT 포트 예약 절차에 따라 소스 포트가 노드당 최소 1,024개 이상 예약됩니다. VM당 최소 포트 수에 지정된 값이 1,024를 초과하면 해당 값이 사용됩니다.

  • 동적 포트 할당이 구성되면 VM당 최소 포트 수에 지정된 값이 노드별로 초기 할당됩니다. 할당된 포트 수는 이후 요청에 따라 VM당 최소 및 최대 포트 수에 지정된 값 사이로 변경됩니다.

포드 IP 주소 범위와 VPC 기반 클러스터에 대한 자세한 내용은 포드의 서브넷 보조 IP 주소 범위를 참조하세요.

Public NAT와 무관하게 Google Kubernetes Engine은 개발자가 클러스터의 IP 매스커레이드 구성을 변경하지 않은 한 포드가 패킷을 인터넷으로 전송할 때 각 노드에서 실행되는 소프트웨어를 사용하여 소스 네트워크 주소 변환(소스 NAT 또는 SNAT)을 수행합니다. 포드의 이그레스 트래픽을 세밀하게 제어해야 하는 경우에는 네트워크 정책을 사용하면 됩니다.

특정 상황에서Public NAT는 비공개가 아닌 VPC 기반 클러스터에도 유용할 수 있습니다. 비공개가 아닌 클러스터의 노드에 외부 IP 주소가 있으므로 노드의 기본 내부 IP 주소에서 전송되는 패킷은 Cloud NAT에서 처리되지 않습니다. 그러나 다음 두 사항이 모두 충족되면 비공개가 아닌 클러스터의 포드에서 전송된 패킷은Public NAT게이트웨이에서 처리될 수 있습니다.

  • VPC 기반 클러스터의 경우Public NAT게이트웨이가 클러스터 포드의 보조 IP 주소 범위에 적용되도록 구성됩니다.

  • 클러스터의 IP 매스커레이드 구성은 포드에서 인터넷으로 전송되는 패킷에 대해 클러스터 내에서 SNAT를 수행하도록 구성되지 않습니다.

다음 예시에서는Public NAT와 GKE의 상호작용을 보여줍니다.

GKE를 사용하는 Public NAT
GKE를 사용하는Public NAT(확대하려면 클릭)

이 예시에서는 컨테이너를 NAT로 변환하려고 합니다. 모든 컨테이너와 GKE 노드에 NAT를 사용 설정하려면 Subnet 1의 모든 IP 주소 범위를 NAT 후보로 선택해야 합니다.

  • 서브넷 기본 IP 주소 범위: 10.240.0.0/24
  • 포드에 사용되는 서브넷 보조 IP 주소 범위: 10.0.0.0/16

Pod1 또는 Pod2에만 NAT를 사용 설정할 수는 없습니다.

Private NAT 게이트웨이는 비공개 클러스터 및 비공개가 아닌 클러스터의 노드와 포드에 NAT를 수행할 수 있습니다. Private NAT 게이트웨이는 클러스터에서 사용하는 비공개 서브넷의 모든 서브넷 IP 주소 범위에 자동으로 적용됩니다.

Direct VPC 이그레스 상호작용

Cloud NAT 게이트웨이는 Direct VPC 이그레스로 구성된 Cloud Run 리소스에 NAT를 제공할 수 있습니다. Cloud Run에서 Public NAT 또는 Private NAT에 Cloud NAT 게이트웨이를 사용하도록 설정하려면 다음을 구성합니다.

  • Cloud Run 리소스를 배포할 때 --vpc-egress 플래그를 설정합니다. Public NAT를 사용하려면 값을 all-traffic으로 설정해야 합니다.

  • 다음 설정으로 Cloud NAT 게이트웨이를 구성합니다.

    • --nat-custom-subnet-ip-ranges 플래그를 설정하여 게이트웨이를 사용할 수 있는 소스 서브넷 범위를 지정합니다. Cloud Run 리소스를 배포하는 서브넷 이름으로 값을 설정합니다.
    • --endpoint-types 플래그 값을 ENDPOINT_TYPE_VM으로 설정합니다.
    • Public NAT의 경우 --min-ports-per-vm 플래그 값이 단일 Cloud Run 인스턴스에 필요한 포트 수의 2배로 설정되어 있는지 확인합니다. Private NAT의 경우에는 이 플래그를 Cloud Run 인스턴스별로 필요한 포트 수의 4배로 설정해야 합니다.

    • 수동 NAT IP 주소 할당을 구성하려면(Public NAT만 해당) 게이트웨이에서 제공하는 VM 인스턴스와 Cloud Run 인스턴스의 합계를 포함할 수 있을 만큼 충분한 수의 IP 주소를 게이트웨이에 할당해야 합니다.

Direct VPC 이그레스의 Cloud NAT 로그에는 Cloud Run 리소스 이름이 표시되지 않습니다.

연결 테스트 상호작용

연결 테스트를 사용하여 Cloud NAT 구성을 사용하는 네트워크 엔드포인트 간 연결을 확인할 수 있습니다. Public NAT 게이트웨이, Private NAT 게이트웨이 또는 둘 다를 사용하는 네트워크에서 연결 테스트를 실행할 수 있습니다.

연결 테스트 세부정보 페이지의 구성 분석 trace 창에서 NAT 구성 세부정보를 봅니다.

Cloud Load Balancing 상호작용

Google Cloud 리전 내부 애플리케이션 부하 분산기리전 외부 애플리케이션 부하 분산기는 여러 리전 인터넷 네트워크 엔드포인트 그룹(NEG) 백엔드와 통신합니다. 리전 인터넷 NEG에 사용할 Cloud NAT 게이트웨이를 구성하면 Google Cloud 트래픽이 시작되는 위치에서 자체 외부 IP 주소 범위 집합을 할당할 수 있습니다. 상태 점검 및 데이터 영역 트래픽은 개발자가 할당한 NAT IP 주소에서 시작됩니다.

기타 Google Cloud 외부 부하 분산기와 상태 점검 시스템은 특수 라우팅 경로를 사용하여 VM과 통신합니다. 백엔드 VM에는 외부 IP 주소가 필요하지 않으며 Cloud NAT 게이트웨이도 부하 분산기 및 상태 점검에 대한 통신을 관리하지 않습니다. 자세한 내용은 Cloud Load Balancing 개요상태 점검 개요를 참조하세요.

Private Service Connect 전파 연결 상호작용

같은 VPC 스포크에서 Network Connectivity Center용 Private NATPrivate Service Connect 전파 연결을 모두 사용하는 경우에는 다음이 적용됩니다.

  • 서브넷이 Private NAT로 구성된 경우 서브넷에서 Private Service Connect 전파 연결까지의 트래픽이 삭제됩니다.

  • 겹치지 않는 서브넷의 트래픽이 삭제되지 않게 하려면 Private NAT를 구성할 때 다음 사항을 고려하세요.

    • --nat-custom-subnet-ip-ranges 플래그를 사용하여 겹치는 서브넷을 지정합니다.
    • 전파 연결에 액세스해야 하는 겹치지 않는 서브넷을 지정하지 마세요.
    • --nat-all-subnet-ip-ranges 플래그를 사용하지 마세요.

다음 단계