NAT pública

La NAT pública permite que las instancias de máquina virtual (VM) de Google Cloud que no tienen direcciones IP públicas se comuniquen con Internet mediante un conjunto de direcciones IP públicas compartidas. Cloud NAT usa una puerta de enlace NAT pública que asigna un conjunto de direcciones IP externas y puertos de origen a cada VM que usa la puerta de enlace para crear conexiones salientes a Internet.

Flujo de trabajo y configuración básica de la NAT pública

En el siguiente diagrama, se muestra una configuración de NAT pública básica:

Ejemplo de traducción de NAT pública.
Ejemplo de traducción de NAT pública (haz clic para ampliar).

En este ejemplo:

  • La puerta de enlace nat-gw-us-east está configurada para aplicarse al rango de direcciones IP principal de subnet-1 en la región us-east1. Una VM cuya interfaz de red no tiene una dirección IP externa puede enviar tráfico a Internet mediante su dirección IP interna principal o un rango de alias de IP del rango de direcciones IP principal de subnet-1, 10.240.0.0/16.

  • Una VM cuya interfaz de red no tiene una dirección IP externa y cuya dirección IP interna principal se encuentra en subnet-2 no puede acceder a Internet porque ninguna puerta de enlace NAT pública se aplica a ningún rango de direcciones IP de esa subred.

  • La puerta de enlace nat-gw-eu está configurada para aplicarse al rango de direcciones IP principal de subnet-3 en la región europe-west1. Una VM cuya interfaz de red no tiene una dirección IP externa puede enviar tráfico a Internet mediante su dirección IP interna principal o un rango de alias de IP del rango de direcciones IP principal de subnet-3, 192.168.1.0/24.

Ejemplo de flujo de trabajo de NAT pública

En el diagrama anterior, una VM con la dirección IP interna principal 10.240.0.4, sin una dirección IP externa, debe descargar una actualización desde la dirección IP externa 203.0.113.1. En el diagrama, la puerta de enlace nat-gw-us-east se configura de la siguiente manera:

  • Cantidad mínima de puertos por instancia: 64
  • Se asignaron de forma manual dos direcciones IP de traducción de direcciones de red (NAT): 192.0.2.50 y 192.0.2.60
  • Se proporcionó NAT para el rango de direcciones IP principal de subnet-1

La NAT pública sigue el procedimiento de reserva de puertos a fin de reservar la siguiente dirección IP de origen de NAT y las tuplas de puerto de origen para cada una de las VM de la red. Por ejemplo, la puerta de enlace NAT pública reserva 64 puertos de origen para la VM con la dirección IP interna 10.240.0.4. La dirección IP de NAT 192.0.2.50 tiene 64 puertos sin reservar, por lo que la puerta de enlace reserva el siguiente conjunto de 64 direcciones IP de origen de NAT y de tuplas de puerto de origen para esa VM:

  • Desde 192.0.2.50:34000 hasta 192.0.2.50:34063

Sucede lo siguiente cuando la VM envía un paquete al servidor de actualización 203.0.113.1 en el puerto de destino 80 con el protocolo TCP:

  • La VM envía un paquete de solicitud con estos atributos:

    • Dirección IP de origen: 10.240.0.4, la dirección IP interna principal de la VM
    • Puerto de origen: 24000, el puerto de origen efímero que elige el sistema operativo de la VM
    • Dirección de destino: 203.0.113.1, la dirección IP externa del servidor de actualizaciones
    • Puerto de destino: 80, el puerto de destino para el tráfico HTTP al servidor de actualización
    • Protocolo: TCP
  • La puerta de enlace nat-gw-us-east realiza la traducción de direcciones de red de origen (SNAT) en la salida y vuelve a escribir la dirección IP de origen de NAT y el puerto de origen del paquete de solicitud. El paquete modificado se envía a Internet si la red de nube privada virtual (VPC) tiene una ruta para el destino 203.0.113.1 cuyo siguiente salto es la puerta de enlace de Internet predeterminada. Por lo general, una ruta predeterminada cumple con este requisito.

    • Dirección IP de origen de NAT: 192.0.2.50, de una de las direcciones IP de origen de NAT y las tuplas de puerto de origen reservadas de la VM
    • Puerto de origen: 34022, un puerto de origen no utilizado de una de las tuplas de puertos de origen reservadas de la VM
    • Dirección de destino: 203.0.113.1, sin cambios
    • Puerto de destino: 80, sin cambios
    • Protocolo: TCP, sin cambios
  • Cuando el servidor de actualización envía un paquete de respuesta, ese paquete llega a la puerta de enlace nat-gw-us-east con estos atributos:

    • Dirección IP de origen: 203.0.113.1, la dirección IP externa del servidor de actualización
    • Puerto de origen: 80, la respuesta HTTP del servidor de actualización
    • Dirección de destino: 192.0.2.50, que coincide con la dirección IP de origen de NAT original del paquete de la solicitud
    • Puerto de destino: 34022, que coincide con el puerto de origen del paquete de solicitud
    • Protocolo: TCP, sin cambios
  • La puerta de enlace nat-gw-us-east realiza la traducción de direcciones de red de destino (DNAT) en el paquete de respuesta y reescribe la dirección de destino y el puerto de destino del paquete de respuesta para que el paquete se entregue a la VM:

    • Dirección IP de origen: 203.0.113.1, sin cambios
    • Puerto de origen: 80, sin cambios
    • Dirección de destino: 10.240.0.4, la dirección IP interna principal de la VM
    • Puerto de destino: 24000, que coincide con el puerto de origen efímero original del paquete de solicitud
    • Protocolo: TCP, sin cambios

Especificaciones

Especificaciones generales:

Puedes configurar una puerta de enlace NAT pública a fin de proporcionar NAT a Internet para los paquetes enviados desde lo siguiente:

  • La dirección IP interna principal de la interfaz de red de la VM, siempre y cuando la interfaz de red no tenga asignada una dirección IP externa. Si la interfaz de red tiene asignada una dirección IP externa, Google Cloud usará automáticamente NAT uno a uno en los paquetes cuyas fuentes coincidan con la dirección IP interna principal de la interfaz, porque la interfaz de red cumple con los requisitos de acceso a Internet de Google Cloud. La existencia de una dirección IP externa en una interfaz siempre tiene prioridad y siempre realiza NAT uno a uno, sin usar NAT pública.

  • Un rango de alias de IP asignado a la interfaz de red de la VM. Incluso si la interfaz de red tiene asignada una dirección IP externa, puedes configurar una puerta de enlace NAT pública para proporcionar NAT a los paquetes cuyas fuentes provengan de un rango de alias de IP de la interfaz. Una dirección IP externa en una interfaz nunca realiza NAT uno a uno para alias de direcciones IP.

  • Para los clústeres de Google Kubernetes Engine (GKE), la NAT pública puede proporcionar servicio incluso si el clúster tiene direcciones IP externas en ciertas circunstancias. Para obtener más información, consulta Interacción de GKE.

La NAT pública permite las conexiones salientes y las respuestas entrantes a esas conexiones. Cada puerta de enlace NAT pública realiza NAT de origen en la salida y NAT de destino para los paquetes de respuesta establecidos.

La NAT pública no permite solicitudes entrantes no solicitadas desde Internet, incluso si las reglas de firewall lo permitirían. Para obtener más información, consulta RFC aplicables.

Cada puerta de enlace NAT pública está asociada con una sola red de VPC, región y Cloud Router. La puerta de enlace NAT pública y el Cloud Router proporcionan un plano de control, ya que no están involucrados en el plano de datos, por lo que los paquetes no pasan a través de la puerta de enlace NAT pública ni de Cloud Router.

Rutas y reglas de firewall

La NAT pública se basa en rutas estáticas personalizadas cuyos próximos saltos son la puerta de enlace de Internet predeterminada. Para usar una puerta de enlace NAT pública por completo, tu red de nube privada virtual necesita una ruta predeterminada cuyo siguiente salto sea la puerta de enlace de Internet predeterminada. Para obtener más información, consulta interacciones entre rutas.

La NAT pública no tiene ningún requisito de regla de NGFW de Cloud. Las reglas de firewall se aplican directamente a las interfaces de red de las VMs de Compute Engine, no a las puertas de enlace NAT públicas.

No es necesario crear ninguna regla de firewall especial que permita conexiones desde o hacia direcciones IP de NAT. Cuando una puerta de enlace NAT pública proporciona NAT para la interfaz de red de una VM, las reglas de firewall de salida aplicables se evalúan como paquetes para esa interfaz de red antes que la NAT. Las reglas de firewall de entrada se evalúan después de que la NAT procesa los paquetes.

Aplicabilidad del rango de direcciones IP de la subred

Puedes configurar la puerta de enlace NAT pública para proporcionar NAT a la dirección IP interna principal de la interfaz de red de la VM, los rangos de alias de IP o ambos. Para realizar esta configuración, selecciona los rangos de direcciones IP de la subred a los que debe aplicarse la puerta de enlace.

Puedes configurar una puerta de enlace NAT pública para proporcionar NAT a los siguientes elementos:

  • Rangos de direcciones IP principales y secundarios de todas las subredes de la región. Una única puerta de enlace NAT pública proporciona NAT para las direcciones IP internas principales y todos los rangos de alias de IP de las VM aptas cuyas interfaces de red usan una subred en la región. En esta opción, se usa exactamente una puerta de enlace NAT por región.

  • Rangos de direcciones IP principales de todas las subredes de la región. Una única puerta de enlace NAT pública proporciona NAT para las direcciones IP internas principales y los rangos de alias de IP de los rangos de direcciones IP principales de la subred de las VM aptas cuyas interfaces de red usan una subred en la región. Puedes crear puertas de enlace de NAT públicas adicionales en la región a fin de proporcionar NAT para los rangos de alias de IP desde rangos de direcciones IP secundarios de la subred de las VMs aptas.

  • Lista de subredes personalizadas. Una única puerta de enlace NAT pública proporciona NAT para las direcciones IP internas principales y todos los rangos de alias de IP de las VM aptas cuyas interfaces de red usan una subred de una lista de subredes especificadas.

  • Rangos de direcciones IP de subred personalizados. Puedes crear tantas puertas de enlace de NAT públicas como sea necesario, sujetas a las cuotas y los límites de NAT pública. Tú eliges qué rangos de direcciones IP principales o secundarios de la subred se entregarán por cada puerta de enlace.

Varias puertas de enlace NAT públicas

Puedes tener varias puertas de enlace NAT públicas en la misma región de una red de VPC si se cumple una de las siguientes condiciones:

  • Cada puerta de enlace está configurada para una subred diferente.

  • Dentro de una sola subred, cada puerta de enlace está configurada para un rango de direcciones IP diferente. Puedes asignar una puerta de enlace NAT pública a una subred o un rango de direcciones IP específicos mediante una asignación personalizada de Cloud NAT.

Siempre que las puertas de enlace NAT asignadas no se superpongan, puedes crear tantas puertas de enlace NAT públicas como sea necesario, sujetas a las cuotas y los límites de NAT públicas. Para obtener más información, consulta Limitaciones de las puertas de enlace de Cloud NAT.

Ancho de banda

El uso de una puerta de enlace NAT pública no cambia la cantidad de ancho de banda saliente o entrante que puede usar una VM. Para conocer las especificaciones de ancho de banda, que varían según el tipo de máquina, consulta Ancho de banda de red en la documentación de Compute Engine.

VM con interfaces de red múltiples

Si configuras una VM para que tenga varias interfaces de red, cada interfaz debe estar en una red de VPC independiente. En consecuencia, se cumple lo siguiente:

  • Una puerta de enlace NAT pública solo puede aplicarse a una única interfaz de red de una VM. Las puertas de enlace NAT públicas independientes pueden proporcionar NAT a la misma VM, en la que cada puerta de enlace se aplica a una interfaz separada.
  • Una interfaz de una VM con varias interfaces de red puede tener una dirección IP externa, lo que hace que esa interfaz no sea apta para NAT pública, mientras que otra de sus interfaces puede ser apta para NAT si esa interfaz no tiene una dirección IP externa y configuraste una puerta de enlace NAT pública para aplicarla al rango de direcciones IP de subred correspondiente.

Direcciones IP y puertos NAT

Cuando creas una puerta de enlace NAT pública, puedes elegir que la puerta de enlace asigne de forma automática direcciones IP externas regionales. Como alternativa, puedes asignar de forma manual una cantidad fija de direcciones IP externas regionales a la puerta de enlace.

Para una puerta de enlace NAT pública con asignación automática de direcciones IP de NAT, considera lo siguiente:

  • Puedes seleccionar los Niveles de servicio de red (nivel Premium o Estándar) desde los que la puerta de enlace NAT pública asigna las direcciones IP.
  • Cuando cambias el nivel de una puerta de enlace NAT pública que asignó direcciones IP de NAT de forma automática, Google Cloud libera todas las direcciones IP asignadas para esa puerta de enlace y retira todas las asignaciones de puertos.

    Se asigna automáticamente un nuevo conjunto de direcciones IP del nuevo nivel seleccionado, y se proporcionan nuevas asignaciones de puertos a todos los extremos.

Para una puerta de enlace NAT pública determinada, también puedes asignar direcciones IP de forma manual del nivel Premium o del nivel Estándar, o de ambos, sujetas a ciertas conditions.

Para obtener detalles sobre la asignación de direcciones IP de NAT, consulta Direcciones IP de NAT públicas.

Puedes configurar la cantidad de puertos de origen que cada puerta de enlace NAT pública reserva en cada VM para la que proporciona servicios de NAT. Puedes configurar la asignación de puertos estáticos, en la que se reserva la misma cantidad de puertos para cada VM, o la asignación dinámica de puertos, en la que la cantidad de puertos reservados puede variar entre los límites mínimo y máximo que especifiques.

Los rangos de direcciones IP de la subred que la puerta de enlace está configurada para entregar determinan las VM a las que se debe proporcionar NAT.

Para obtener más información sobre los puertos, consulta Puertos.

RFC aplicables

La NAT pública admite el mapeo independiente de extremos y el filtrado dependiente del extremo, como se define en RFC 5128. Puedes habilitar o inhabilitar el mapeo independiente de extremos. De forma predeterminada, la asignación independiente de extremos está inhabilitado cuando creas una puerta de enlace NAT.

Mapeo independiente de extremos significa que, si una VM envía paquetes desde una dirección IP interna y un par de puertos a varios destinos, la puerta de enlace realizará un mapeo de todos esos paquetes a la misma dirección IP de NAT y par de puertos, independientemente del destino de los paquetes. Para conocer los detalles y los efectos del mapeo independiente de extremos, consulta Mapeo independiente de extremos y reutilización de puertos simultáneos.

Filtro dependiente del extremo significa que los paquetes de respuesta de Internet solo pueden ingresar si provienen de una dirección IP y un puerto al que una VM ya envió paquetes. El filtrado depende del extremo, independientemente del tipo de asignación de extremos. Esta función está habilitada siempre y el usuario no puede configurarla.

Para obtener más información sobre la relación entre puertos y conexiones, consulta Puertos y conexiones y el ejemplo de flujo de NAT.

La NAT pública es una NAT de cono con restricción de puerto, según se define en RFC 3489.

Recorrido de NAT

Si el mapeo independiente de extremos está habilitado, la NAT pública es compatible con los protocolos transversales de NAT comunes, como STUN y TURN, si implementas tus propios servidores STUN o TURN:

  • STUN (Session Transversal Utilities for NAT, RFC 5389) permite la comunicación directa entre VM detrás de NAT una vez que se establece un canal de comunicación.
  • TURN (Recorrido mediante relés en torno a NAT, RFC 5766) permite la comunicación entre VM detrás de NAT a través de un tercer servidor en el que ese servidor tiene una dirección IP externa. Cada VM se conecta a la dirección IP externa del servidor y ese servidor retransmite la comunicación entre las dos VM. TURN es más robusto, pero consume más ancho de banda y recursos.

Tiempo de espera de NAT

La NAT pública establece tiempos de espera para las conexiones de protocolo. Para obtener información sobre estos tiempos de espera y sus valores predeterminados, consulta Tiempos de espera de NAT.

¿Qué sigue?