Interacciones con productos de Cloud NAT

En esta página, se describen las interacciones importantes entre Cloud NAT y otros productos de Google Cloud.

Interacciones de rutas

Una puerta de enlace NAT pública solo puede usar rutas cuyos próximos saltos sean la puerta de enlace de Internet predeterminada. Cada red de nube privada virtual (VPC) comienza con una ruta predeterminada cuyo destino es 0.0.0.0/0 y cuyo siguiente salto es la puerta de enlace de Internet predeterminada. Para obtener información general importante, consulta la descripción general de las rutas.

En los siguientes ejemplos, se ilustran situaciones que podrían hacer que las puertas de enlace NAT públicas dejen de funcionar:

  • Si creas una ruta estática personalizada con los siguientes saltos establecidos en cualquier otro tipo de próximo salto de ruta estática personalizada, los paquetes con direcciones IP de destino que coinciden con el destino de la ruta se envían a ese siguiente salto en lugar de a la puerta de enlace de Internet predeterminada. Por ejemplo, si usas instancias de máquina virtual (VM) que ejecutan una puerta de enlace NAT, un firewall o un software de proxy, puedes crear rutas estáticas personalizadas para dirigir el tráfico a esas VM como el siguiente salto. Las VM de siguiente salto requieren direcciones IP externas. Por lo tanto, el tráfico de las VM que dependen de las VM del siguiente salto o del siguiente salto no puede usar las puertas de enlace NAT públicas.

  • Si creas una ruta estática personalizada cuyo siguiente salto es un túnel de Cloud VPN, la NAT pública no usa esa ruta. Por ejemplo, una ruta estática personalizada con destino 0.0.0.0/0 y un túnel de Cloud VPN de siguiente salto dirigen el tráfico a ese túnel, no a la puerta de enlace de Internet predeterminada. Por lo tanto, las puertas de enlace de NAT públicas no pueden usar esa ruta. Del mismo modo, las puertas de enlace NAT públicas no pueden usar rutas estáticas personalizadas con destinos más específicos, incluidos 0.0.0.0/1 y 128.0.0.0/1.

  • Si un router local anuncia una ruta dinámica personalizada a un Cloud Router que administra un túnel de Cloud VPN o un adjunto de VLAN, las puertas de enlace de NAT públicas no pueden usar esa ruta. Por ejemplo, si tu router local anuncia una ruta dinámica personalizada con el destino 0.0.0.0/0, 0.0.0.0/0 se dirigirá al túnel de Cloud VPN o al adjunto de VLAN. Este comportamiento se aplica incluso a destinos más específicos, como 0.0.0.0/1 y 128.0.0.0/1.

La NAT privada usa las siguientes rutas:

  • Para la NAT entre VPC, la NAT privada solo usa rutas de subred que se intercambian por dos radios de VPC de Network Connectivity Center que están conectados a un concentrador de Network Connectivity Center. Para obtener más información sobre los radios de VPC de Network Connectivity Center, consulta Descripción general de los radios de VPC.
  • Para la NAT híbrida (vista previa), la NAT privada usa las rutas dinámicas que aprendió Cloud Router a través de Cloud VPN.

Interacción con Acceso privado a Google

Una puerta de enlace NAT pública nunca ejecuta NAT para el tráfico enviado a las direcciones IP externas seleccionadas de las APIs y los servicios de Google. En su lugar, Google Cloud habilita de forma automática el Acceso privado a Google para un rango de direcciones IP de subred cuando configuras una puerta de enlace NAT pública para aplicarse a ese rango de subred, ya sea principal o secundario. Siempre que la puerta de enlace proporcione NAT para el rango de una subred, el Acceso privado a Google estará activo para ese rango y no se podrá inhabilitar de forma manual.

Una puerta de enlace NAT pública no cambia la forma en que funciona el Acceso privado a Google. Para obtener más información, consulta Acceso privado a Google.

Las puertas de enlace NAT privadas no se aplican al Acceso privado a Google.

Interacción de VPC compartida

La VPC compartida permite que varios proyectos de servicio de una misma organización usen una red compartida de VPC común en un proyecto host. A fin de proporcionar NAT para las VM en proyectos de servicio que usan una red de VPC compartida, debes crear puertas de enlace de Cloud NAT en el proyecto host.

Interacción de intercambio de tráfico entre redes de VPC

Las puertas de enlace de Cloud NAT están asociadas con rangos de direcciones IP de subred en una sola región y una sola red de VPC. Una puerta de enlace de Cloud NAT creada en una red de VPC no puede proporcionar NAT a las VM de otras redes de VPC que estén conectadas mediante el intercambio de tráfico entre redes de VPC o los radios de VPC de Network Connectivity Center, incluso si las VM en las redes con intercambio de tráfico están en la misma región que la puerta de enlace.

Interacción con GKE

Una puerta de enlace NAT pública puede realizar NAT para nodos y Pods en un clúster privado, que es un tipo de clúster nativo de la VPC. La puerta de enlace NAT pública debe configurarse para aplicarse al menos a los siguientes rangos de direcciones IP de subred en la subred que usa tu clúster:

  • Rango de direcciones IP principal de la subred (para los nodos)
  • Rango de direcciones IP secundario de la subred utilizado para los Pods del clúster
  • Rango de direcciones IP secundario de la subred utilizado para los servicios del clúster

La forma más sencilla de proporcionar NAT para todo un clúster privado es configurar una puerta de enlace de NAT pública con el fin de que se aplique a todos los rangos de direcciones IP de la subred de la subred del clúster.

Si deseas obtener información general sobre cómo los clústeres nativos de la VPC usan rangos de direcciones IP de subred, consulta Rangos de IP para clústeres nativos de la VPC.

Cuando se configura una puerta de enlace NAT pública para proporcionar NAT a un clúster privado, esta reserva direcciones IP de origen de NAT y puertos de origen para cada VM de nodo. Los Pods pueden usar esas direcciones IP y puertos de origen porque sus direcciones IP se implementan como rangos de alias de IP que se asignan a cada VM de nodo.

Los clústeres nativos de la VPC de Google Kubernetes Engine (GKE) siempre le asignan a cada nodo un rango de alias de IP que contiene más de una dirección IP (máscara de red menor que /32).

  • Si se configura la asignación de puertos estáticos, el procedimiento de reserva de puertos de NAT pública reserva al menos 1,024 puertos de origen por nodo. Si el valor especificado para la cantidad mínima de puertos por VM es superior a 1,024, se usa ese valor.

  • Si se configura la asignación dinámica de puertos, el valor especificado para los puertos mínimos por VM se asigna inicialmente por nodo. La cantidad de puertos asignados varía de forma posterior entre los valores especificados para la cantidad mínima y máxima de puertos por VM, según la demanda.

Para obtener información sobre los rangos de direcciones IP de Pod y los clústeres nativos de la VPC, consulta Rango de direcciones IP secundario de la subred para Pods.

Independientemente de la NAT pública, Google Kubernetes Engine realiza la traducción de la dirección de red de origen (NAT de origen o SNAT) mediante el uso de software que se ejecuta en cada nodo cuando los Pods envían paquetes a Internet, a menos que hayas cambiado la configuración de enmascaramiento de IP del clúster. Si necesitas un control detallado sobre el tráfico de salida desde los Pods, puedes usar una política de red.

En ciertas circunstancias, la NAT pública también puede ser útil para los clústeres nativos de VPC no privados. Debido a que los nodos de un clúster no privado tienen direcciones IP externas, Cloud NAT nunca procesa los paquetes que se envían desde la dirección IP interna principal del nodo. Sin embargo, si deseas que tu clúster público use direcciones IP externas estáticas proporcionadas por una puerta de enlace de NAT pública, haz lo siguiente:

  • Configura la puerta de enlace de NAT pública para que se aplique solo al rango de direcciones IP secundario de los objetos de Pod del clúster.
  • Configura tu clúster para inhabilitar la SNAT predeterminada, de modo que GKE conserve las direcciones IP de los objetos de Pod de origen de los paquetes que se envían a Internet.
  • Configura tu agente de enmascaramiento de IP especificando CIDR apropiados como destinos sin enmascaramiento, de modo que el agente conserve las direcciones IP para los objetos de Pod de origen de los paquetes que se envían a destinos sin enmascaramiento.

En el siguiente ejemplo, se muestra una interacción típica de una NAT pública con GKE:

NAT pública con GKE.
NAT pública con GKE (haz clic para ampliar).

En este ejemplo, quieres que tus contenedores se traduzcan con NAT. A fin de habilitar NAT para todos los contenedores y el nodo de GKE, debes elegir todos los rangos de direcciones IP de Subnet 1 como candidato de NAT:

  • Rango de direcciones IP principal de la subred: 10.240.0.0/24
  • Rango de direcciones IP secundario de la subred usado para Pods: 10.0.0.0/16

No se puede habilitar NAT solo para Pod1 o Pod2.

Una puerta de enlace NAT privada puede realizar una NAT para los nodos y Pods en un clúster privado y en un clúster no privado. La puerta de enlace NAT privada se aplica de forma automática a todos los rangos de direcciones IP de subred para la subred privada que usa tu clúster.

Interacciones directas de salida de VPC

Las puertas de enlace de NAT públicas pueden realizar NAT para servicios o trabajos de Cloud Run configurados con salida de VPC directa. Para permitir que Cloud Run use una puerta de enlace de NAT pública, configura la puerta de enlace de NAT pública con la siguiente configuración:

  • Para configurar qué subredes y rangos de direcciones IP de subredes asociados con tus instancias de Cloud Run pueden usar la puerta de enlace NAT pública, especifica la marca --nat-all-subnet-ip-ranges o --nat-custom-subnet-ip-ranges:
    • Para permitir que todos los rangos de direcciones IP de todas las subredes de la región usen la puerta de enlace NAT pública, especifica la marca --nat-all-subnet-ip-ranges.
    • Para permitir que solo subredes y rangos de direcciones IP de subredes específicos usen la puerta de enlace NAT pública, especifícalos con la marca --nat-custom-subnet-ip-ranges.
  • Establece el valor de la marca --endpoint-types en ENDPOINT_TYPE_VM. Este valor garantiza que solo las VM y los extremos de VM de salida de VPC directa puedan usar la puerta de enlace NAT pública.
  • En caso de la asignación de puertos estáticos, establece el valor de la marca --min-ports-per-vm en cuatro veces la cantidad de puertos que requiere una sola instancia de Cloud Run.
  • En el caso de la asignación manual de direcciones IP de NAT, asigna una cantidad adecuada de direcciones IP a tu puerta de enlace de NAT pública para tener en cuenta la suma de la cantidad de instancias de Google Cloud y la cantidad de instancias de Cloud Run implementadas en tu red de VPC.

Además de la configuración de la puerta de enlace, para enviar tráfico de salida desde un servicio o trabajo de Cloud Run, debes establecer la marca --vpc-egress en all-traffic cuando creas el servicio o el trabajo.

Si configuraste un servicio o trabajo de Cloud Run con la marca --vpc-egress establecida en private-ranges-only, el servicio o trabajo envía tráfico solo a las direcciones IP internas. No necesitas una puerta de enlace NAT pública para enrutar el tráfico a destinos internos.

Para evitar que los servicios o trabajos de Cloud Run que tienen la marca --vpc-egress configurada en private-ranges-only usen una puerta de enlace NAT pública, haz lo siguiente:

  • Configura la puerta de enlace NAT pública con la marca --nat-custom-subnet-ip-ranges.
  • Establece el valor de la marca --nat-custom-subnet-ip-ranges en los nombres de las subredes en las que implementaste servicios o trabajos de Cloud Run con la marca --vpc-egress establecida en all-traffic.

Las siguientes limitaciones se aplican a los servicios y trabajos de Cloud Run que usan puertas de enlace NAT públicas:

  • Las métricas de Cloud NAT para los extremos de salida de VPC directa no se exportan a Cloud Monitoring.
  • Los registros de Cloud NAT para la salida de VPC directa no muestran el nombre de un servicio, una revisión o un trabajo de Cloud Run.

No puedes usar puertas de enlace de NAT privadas con extremos de salida de VPC directa.

Interacciones de las pruebas de conectividad

Puedes usar pruebas de conectividad para verificar la conectividad entre los extremos de red que usan configuraciones de Cloud NAT. Puedes ejecutar pruebas de conectividad en redes que usan puertas de enlace NAT públicas o puertas de enlace NAT privadas, o ambas.

Puedes ver los detalles de configuración de NAT en el panel Seguimiento del análisis de configuración en la página Detalles de la prueba de conectividad.

Interacciones con Cloud Load Balancing

Los balanceadores de cargas de aplicaciones internos regionales y los balanceadores de cargas de aplicaciones externos regionales de Google Cloud se comunican con varios backends de grupos de extremos de red de Internet (NEG) regionales. Mediante la configuración de puertas de enlace de Cloud NAT para los NEG regionales de Internet, puedes asignar tu propio conjunto de rangos de direcciones IP externas desde donde debe originarse el tráfico de Google Cloud. Las verificaciones de estado y el tráfico del plano de datos se originan de las direcciones IP de NAT que asignas.

Otros balanceadores de cargas externos y sistemas de verificación de estado de Google Cloud se comunican con las VM mediante rutas especiales. Las VM de backend no requieren direcciones IP externas y una puerta de enlace de Cloud NAT administra la comunicación para los balanceadores de cargas y las verificaciones de estado. Para obtener más información, consulta Descripción general de Cloud Load Balancing y Descripción general de las verificaciones de estado.

¿Qué sigue?