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 próximos saltos configurados como 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, debes 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 de las VM del siguiente salto no puede usar 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 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 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 intercambiadas 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 la Descripción general de los radios de VPC.
  • Para la NAT híbrida (versión preliminar), 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 lleva a cabo NAT para el tráfico enviado a las direcciones IP externas seleccionadas de los servicios y las APIs 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 con el objetivo de aplicar a ese rango de subred, ya sea principal o secundaria. 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 en otras redes de VPC que están conectadas mediante el intercambio de tráfico entre redes de VPC o mediante rayos de VPC de Network Connectivity Center, incluso si las VM de 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 los 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 para 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 a todo un clúster privado es configurar una puerta de enlace NAT pública para que se aplique a todos los rangos de direcciones IP de 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 una puerta de enlace NAT pública se configura a fin de proporcionar NAT para un clúster privado, 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 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 las direcciones de red de origen (NAT de origen o SNAT) con 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 la VPC no privados. Debido a que los nodos de un clúster no privado tienen direcciones IP externas, Cloud NAT nunca procesa los paquetes enviados 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 que proporciona una puerta de enlace NAT pública, haz lo siguiente:

  • Configura la puerta de enlace 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 del Pod de origen de los paquetes que se envían a Internet.
  • Configura tu agente de enmascaramiento de IP mediante la especificación de CIDR adecuados como los destinos sin enmascaramiento, de modo que el agente conserve las direcciones IP para los objetos del Pod de origen de los paquetes que se envían a los destinos sin enmascaramiento.

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

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

En este ejemplo, deseas que tus contenedores sean traducidos 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 los Pods: 10.0.0.0/16

No es posible habilitar NAT solo para Pod1 o Pod2.

Una puerta de enlace NAT privada puede realizar NAT para los nodos y pods de un clúster privado y uno que no sea 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 NAT públicas pueden realizar NAT para los servicios o trabajos de Cloud Run que están configurados con salida directa de VPC. Si deseas permitir que tus instancias de salida de VPC directa usen una puerta de enlace NAT pública, configura la puerta de enlace NAT pública con la siguiente configuración:

  • Especifica la marca --nat-all-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.
  • Establece el valor de la marca --endpoint-types en ENDPOINT_TYPE_VM. Este valor garantiza que solo las VM (incluidas las VM de salida de VPC directa) puedan usar la puerta de enlace NAT pública.
  • En el 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 NAT pública para considerar la suma de la cantidad de instancias de Google Cloud y la cantidad de instancias de salida de VPC directa que implementaste 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 crees el servicio o el trabajo.

Si configuraste un servicio o trabajo de Cloud Run con la marca --vpc-egress configurada como private-ranges-only, el servicio o trabajo envía tráfico solo a 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 como 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 los 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 directa de VPC no muestran el nombre de un servicio, una revisión o un trabajo de Cloud Run.

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

Interacciones con pruebas de conectividad

Puedes usar pruebas de conectividad para verificar la conectividad entre 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 (NEG) regionales de Internet. Mediante la configuración de las puertas de enlace de Cloud NAT para los NEG regionales de Internet, puedes asignar tu propio conjunto de rangos de direcciones IP externas desde la ubicación en la que debe originarse el tráfico de Google Cloud. Las verificaciones de estado y el tráfico del plano de datos se obtienen 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, ni 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?