Cloud NAT 제품 상호작용

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

경로 상호작용

Public NAT 게이트웨이는 다음 홉이 기본 인터넷 게이트웨이인 경로만 사용할 수 있습니다. 각 Virtual Private Cloud(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는 다음 경로를 사용합니다.

  • Inter-VPC NAT의 경우 Private NAT는 Network Connectivity Center 허브에 연결된 2개의 Network Connectivity Center VPC 스포크로 교환하는 서브넷 경로만 사용합니다. Network Connectivity Center VPC 스포크에 대한 자세한 내용은 VPC 스포크 개요를 참조하세요.
  • Hybrid NAT(미리보기)의 경우 Private NAT는 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 네트워크 피어링 또는 Network Connectivity Center VPC 스포크를 사용하여 연결된 다른 VPC 네트워크의 VM에 NAT를 제공할 수 없습니다.

GKE 상호작용

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

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

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

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

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

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

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

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

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

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

특정 상황에서 Public NAT는 비공개가 아닌 VPC 기반 클러스터에도 유용할 수 있습니다. 비공개가 아닌 클러스터의 노드에 외부 IP 주소가 포함되기 때문에 노드의 기본 내부 IP 주소에서 전송되는 패킷은 Cloud NAT에서 처리되지 않습니다. 하지만 공개 클러스터에 Public NAT 게이트웨이에서 제공하는 고정 외부 IP 주소를 사용하려면 다음을 수행합니다.

  • 클러스터 포드 객체의 보조 IP 주소 범위에만 적용되도록 Public NAT 게이트웨이를 구성합니다.
  • GKE가 인터넷으로 전송된 패킷의 소스 포드 객체에 대해 IP 주소를 보존하도록 기본 SNAT를 사용 중지하도록 클러스터를 구성합니다.
  • 에이전트가 비매스커레이드 대상으로 전송된 패킷의 소스 포드 객체에 대한 IP 주소를 보존하도록 적절한 CIDR을 비매스커레이드 대상으로 지정하여 IP 매스커레이드 에이전트를 구성합니다.

다음 예시는 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 이그레스 상호작용

Public NAT 게이트웨이는 Direct VPC 이그레스로 구성된 Cloud Run 서비스 또는 작업에 대해 NAT를 수행할 수 있습니다. Direct VPC 이그레스 인스턴스에서 Public NAT 게이트웨이를 사용하도록 하려면 다음 설정으로 Public NAT 게이트웨이를 구성합니다.

  • 리전 내 모든 서브넷의 모든 IP 주소 범위에서 Public NAT 게이트웨이를 사용할 수 있도록 --nat-all-subnet-ip-ranges 플래그를 지정합니다.
  • --endpoint-types 플래그의 값을 ENDPOINT_TYPE_VM으로 설정합니다. 이 값을 사용하면 VM(Direct VPC 이그레스 VM 포함)만 Public NAT 게이트웨이를 사용할 수 있습니다.
  • 정적 포트 할당의 경우 --min-ports-per-vm 플래그의 값을 단일 Cloud Run 인스턴스에 필요한 포트 수의 4배로 설정합니다.
  • 수동 NAT IP 주소 할당의 경우 VPC 네트워크에 배포한 Google Cloud 인스턴스 수와 Direct VPC 이그레스 인스턴스 수의 합계를 고려하여 Public NAT 게이트웨이에 적절한 수의 IP 주소를 할당합니다.

게이트웨이 구성 외에도 Cloud Run 서비스 또는 작업에서 이그레스 트래픽을 전송하려면 서비스 또는 작업을 만들 때 --vpc-egress 플래그를 all-traffic으로 설정해야 합니다.

--vpc-egress 플래그가 private-ranges-only로 설정된 Cloud Run 서비스 또는 작업을 구성한 경우 해당 서비스 또는 작업은 내부 IP 주소로만 트래픽을 보냅니다. 트래픽을 내부 대상으로 라우팅하기 위해 Public NAT 게이트웨이가 필요하지 않습니다.

--vpc-egress 플래그가 private-ranges-only로 설정된 Cloud Run 서비스 또는 작업이 Public NAT 게이트웨이를 사용하지 못하게 하려면 다음을 수행합니다.

  • --nat-custom-subnet-ip-ranges 플래그를 사용하여 Public NAT 게이트웨이를 구성합니다.
  • --vpc-egress 플래그가 all-traffic으로 설정된 Cloud Run 서비스 또는 작업을 배포한 서브넷 이름으로 --nat-custom-subnet-ip-ranges 플래그의 값을 설정합니다.

Public NAT 게이트웨이를 사용하는 Cloud Run 서비스 및 작업에는 다음 제한사항이 적용됩니다.

  • Direct VPC 이그레스 엔드포인트의 Cloud NAT 측정항목을 Cloud Monitoring으로 내보내지 않습니다.
  • Direct VPC 이그레스의 Cloud NAT 로그에 Cloud Run 서비스, 버전 또는 작업의 이름이 표시되지 않습니다.

Private NAT 게이트웨이는 Direct VPC 이그레스 인스턴스에 사용할 수 없습니다.

연결 테스트 상호작용

연결 테스트를 사용하여 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 개요상태 확인 개요를 참조하세요.

다음 단계