NAT pública
La NAT pública permite que las Google Cloud instancias de máquina virtual (VM) se comuniquen con Internet asignando un conjunto de direcciones IPv4 externas compartidas y puertos de origen a cada VM que usa NAT pública para crear conexiones salientes a Internet.
Con la NAT pública, las instancias de VM que no tienen direcciones IPv4 externas pueden comunicarse con destinos IPv4 en Internet. La NAT pública también permite que las instancias de VM con direcciones IPv6 internas o externas se conecten a destinos IPv4 en Internet (versión preliminar).
Especificaciones
La NAT pública admite la traducción de direcciones de red (NAT) para lo siguiente:
De IPv4 a IPv4 o NAT44. Para obtener más información, consulta NAT44 en NAT pública.
De IPv6 a IPv4 o NAT64 (versión preliminar). La NAT pública admite NAT64 para instancias de VM de Compute Engine. En el caso de los nodos de GKE, el tráfico sin servidores y los NEG de Internet regionales, la NAT pública solo traduce el tráfico IPv4. Para obtener más información, consulta NAT64 en NAT pública.
Especificaciones generales:
En el caso de los paquetes de origen IPv4, puedes configurar la NAT pública para proporcionar NAT a los paquetes enviados desde las siguientes direcciones:
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 realiza automáticamente NAT uno a uno en los paquetes cuyas fuentes coinciden con la dirección IP interna principal de la interfaz, porque la interfaz de red cumple con los Google Cloud requisitos de acceso a Internet. 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úblico.
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 de Cloud NAT para NAT público 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), Public NAT puede proporcionar un servicio incluso si el clúster tiene direcciones IP externas en ciertas circunstancias. Para obtener más información, consulta Interacción de GKE.
En el caso de los paquetes de origen IPv6, puedes configurar la NAT pública para proporcionar NAT a los paquetes que se envían desde el rango de direcciones /96
externo o interno de la interfaz de red solo IPv6 de la VM (versión preliminar).
La NAT pública permite las conexiones salientes y las respuestas entrantes a esas conexiones. Cada puerta de enlace de Cloud NAT para NAT público realiza NAT de origen en la salida y NAT de destino para los paquetes de respuesta establecidos.
La NAT pública no permite solicitudes de entrada no solicitadas desde Internet, incluso si las reglas de firewall permitieran esas solicitudes. Para obtener más información, consulta RFC aplicables.
Cada puerta de enlace de Cloud NAT para la NAT pública está asociada con una sola red de VPC, una región y un Cloud Router. La puerta de enlace de Cloud NAT 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 por la puerta de enlace de Cloud NAT ni el Cloud Router.
Rutas y reglas de firewall
La NAT pública depende de las rutas cuyos próximos saltos son la puerta de enlace de Internet predeterminada. Por lo general, una ruta predeterminada cumple con este requisito. Para obtener más información, consulta interacciones entre rutas.
La NAT pública no tiene ningún requisito de regla de Cloud NGFW. Las reglas de firewall se aplican directamente a las interfaces de red de las VMs de Compute Engine, no a las puertas de enlace de Cloud NAT para NAT pública.
No es necesario crear ninguna regla de firewall especial que permita conexiones a direcciones IP de NAT o desde ellas. Cuando una puerta de enlace de Cloud NAT para 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 de interfaz de red antes de NAT. Las reglas de firewall de entrada se evalúan después de que NAT haya procesado los paquetes.
Aplicabilidad del rango de direcciones IP de la subred
Puedes configurar una puerta de enlace de Cloud NAT para NAT público para proporcionar NAT para rangos de direcciones de subred IPv4, rangos de direcciones de subred IPv6 o ambos. Para los rangos de direcciones de subred IPv4, la puerta de enlace traduce el tráfico de la dirección IP interna principal de la interfaz de red de la VM, los rangos de IP de alias o ambos. Para los rangos de direcciones de subred IPv6, la puerta de enlace traduce el tráfico del rango de direcciones IPv6 /96
externo o interno de la interfaz de red (Versión preliminar).
En el caso de los rangos de direcciones de subred IPv4, puedes configurar la puerta de enlace de Cloud NAT para proporcionar NAT para lo siguiente:
-
Rangos de direcciones IPv4 principales y secundarios de todas las subredes de la región. Una única puerta de enlace de Cloud NAT proporciona NAT para las direcciones IP internas principales y todos los rangos de alias de IP de las VMs aptas cuyas interfaces de red usan una subred IPv4 en la región.
-
Rangos de direcciones IPv4 principales de todas las subredes de la región. Una única puerta de enlace de Cloud NAT proporciona NAT para las direcciones IP internas principales y los rangos de alias de IP de los rangos de direcciones IP principales de subred de las VMs aptas cuyas interfaces de red usan una subred IPv4 en la región. Puedes crear puertas de enlace de Cloud NAT adicionales para NAT pública en la región para proporcionar NAT para los rangos de alias de IP de los rangos de direcciones IP secundarios de la subred de las VMs aptas.
-
Lista de subredes personalizadas. Una única puerta de enlace de Cloud NAT proporciona NAT para las direcciones IP internas principales y todos los rangos de alias de IP de las VMs aptas cuyas interfaces de red usan una subred IPv4 de una lista de subredes especificadas.
-
Rangos de direcciones IPv4 de subred personalizados. Puedes crear tantas puertas de enlace de Cloud NAT para la NAT pública como sea necesario, sujetas a las cuotas y límites de la NAT pública. Tú eliges qué rangos de direcciones IP principales o secundarios de la subred se deben entregar por cada puerta de enlace.
En el caso de los rangos de direcciones de subred IPv6, puedes configurar la puerta de enlace de Cloud NAT para proporcionar NAT para lo siguiente (versión preliminar):
- Rangos de direcciones IPv6 externos e internos de todas las subredes de la región. Una sola puerta de enlace de Cloud NAT proporciona NAT para todos los rangos de direcciones IPv6 externos e internos de la región.
- Lista de subredes personalizadas. Una sola puerta de enlace de Cloud NAT proporciona NAT para los rangos de direcciones IPv6 externos e internos de las subredes que especifiques.
Varias puertas de enlace de Cloud NAT
Puedes tener varias puertas de enlace de Cloud NAT para NAT público 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 de Cloud NAT para NAT pública a una subred o un rango de direcciones IP específicos mediante una asignación personalizada de Cloud NAT.
Siempre que tus puertas de enlace NAT asignadas no se superpongan, puedes crear tantas puertas de enlace de Cloud NAT para la NAT pública como sea necesario, sujetas a las cuotas y límites de la NAT pública. Para obtener más información, consulta las limitaciones de las puertas de enlace de Cloud NAT.
Ancho de banda
El uso de una puerta de enlace de Cloud NAT para la NAT pública no cambia la cantidad de ancho de banda de salida o de entrada 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 de Cloud NAT para NAT pública solo se puede aplicar a una sola interfaz de red de una VM. Las puertas de enlace independientes de Cloud NAT para NAT pública pueden proporcionar NAT a la misma VM, donde cada puerta de enlace se aplica a una interfaz independiente.
- Una interfaz de una VM con varias interfaces de red puede tener una dirección IPv4 externa, lo que hace que esa interfaz no sea apta para la NAT pública, mientras que otra de sus interfaces puede ser apta para la NAT si no tiene una dirección IPv4 externa y configuraste una puerta de enlace de Cloud NAT para que la NAT pública se aplique al rango de direcciones IP de subred adecuado. En el caso de IPv6, se admiten direcciones IPv6 externas e internas (versión preliminar).
Direcciones IP y puertos NAT
Cuando creas una puerta de enlace de Cloud NAT para NAT pública, puedes elegir que la puerta de enlace asigne direcciones IP externas regionales automáticamente. 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 de Cloud NAT para NAT pública con asignación automática de direcciones IP de NAT, ten en cuenta lo siguiente:
- Puedes seleccionar los niveles de servicio de red (nivel Premium o Estándar) desde los que la puerta de enlace de Cloud NAT asigna las direcciones IP.
Cuando cambias el nivel de una puerta de enlace de Cloud NAT a la NAT pública que tiene direcciones IP de NAT asignadas automáticamente, 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 nivel recién seleccionado, y se proporcionan nuevas asignaciones de puertos a todos los extremos.
Para una puerta de enlace de Cloud NAT determinada para NAT público, también puedes asignar direcciones IP de forma manual desde el nivel Premium, el nivel Estándar o ambos, sujetas a ciertas condiciones.
Para obtener detalles sobre la asignación de direcciones IP de NAT, consulta Direcciones IP públicas de NAT.
Puedes configurar la cantidad de puertos de origen que cada puerta de enlace de Cloud NAT para NAT público reserva en cada VM para la que debe proporcionar servicios de NAT. Puedes configurar la asignación de puerto estático, en la que la misma cantidad de puertos está reservada para cada VM, o la asignación de puerto dinámica, en la que la cantidad de puertos reservados puede variar entre los límites mínimos y máximos que especifiques.
Las VM para las que se debe proporcionar NAT están determinadas por los rangos de direcciones IP de la subred que la puerta de enlace está configurada para entregar.
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 filtro dependiente del extremo, según 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 mapeo 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 un NAT de cono con restricción de puerto, como 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 de transferencia 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.
NAT44 en NAT pública
En el siguiente diagrama, se muestra una configuración básica de NAT pública para el tráfico IPv4:
En este ejemplo:
La puerta de enlace
nat-gw-us-east
está configurada para aplicarse al rango de direcciones IP principal desubnet-1
en la regiónus-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 desubnet-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 de Cloud NAT se aplica a rangos de direcciones IP de esa subred.La puerta de enlace
nat-gw-eu
está configurada para aplicarse al rango de direcciones IP principal desubnet-3
en la regióneurope-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 desubnet-3
,192.168.1.0/24
.
Ejemplo de flujo de trabajo
En el diagrama anterior, una VM con la dirección IP interna principal 10.240.0.4
, sin 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 NAT:
192.0.2.50
y192.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 para reservar la siguiente dirección IP de origen de NAT y las tuplas de puerto de origen para cada una de las VMs de la red. Por ejemplo, la puerta de enlace de Cloud NAT para la 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
hasta192.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
- Dirección IP de origen:
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 destino203.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
- Dirección IP de origen de NAT:
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
- Dirección IP de origen:
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
- Dirección IP de origen:
NAT64 en NAT pública
NAT64 permite que las instancias de VM solo IPv6 se comuniquen con destinos IPv4 en Internet. La NAT pública admite NAT64 para direcciones IPv6 internas y externas. Si quieres configurar NAT64, también debes configurar DNS64.
La configuración de DNS64 en Cloud DNS habilita el siguiente comportamiento:
- Cuando una instancia de VM solo IPv6 realiza una solicitud a Internet,
Cloud DNS verifica si existe un registro
AAAA
para el destino de la solicitud. Si el registro existe, se muestra una dirección IPv6 y la instancia de VM solo IPv6 puede conectarse al destino IPv6. Si DNS64 está habilitado y no se encuentra el registro
AAAA
, el servidor DNS64 busca registrosA
. Después de encontrar un registroA
, el servidor DNS64 sintetiza una dirección IPv6 anteponiendo el prefijo64:ff9b::/96
a la dirección IPv4 obtenida del registroA
.Por ejemplo, si la dirección IPv4 de destino es
203.0.113.1
, el servidor muestra64:ff9b::cb00:7101
, dondecb00:7101
es la representación hexadecimal de203.0.113.1
.
Cuando la solicitud llega a la puerta de enlace de Cloud NAT con NAT64 habilitado, esta realiza la SNAT de la siguiente manera:
- Reemplaza la dirección IPv6 y el puerto de origen por una de las direcciones IPv4 y los puertos externos que se asignan a la puerta de enlace.
Traduce la dirección IPv6 de destino sintetizada, por ejemplo,
64:ff9b::cb00:7101
, a la dirección IPv4 original con los últimos 32 bits de la dirección sintetizada.La puerta de enlace de Cloud NAT también usa los últimos 32 bits de la dirección IPv6 sintetizada para determinar cómo se enruta el paquete de solicitud a Internet. Cuando una instancia de VM solo IPv6 envía un paquete a un destino que comienza con el prefijo
64:ff9b::/96
, la puerta de enlace aplica la tabla de enrutamiento IPv4 de la red de VPC a la dirección IPv4 de destino. Si la tabla de enrutamiento IPv4 tiene una ruta para la dirección IPv4 de destino cuyo siguiente salto es la puerta de enlace de Internet predeterminada, el paquete modificado se envía a Internet.
Cuando se recibe la respuesta, la puerta de enlace de Cloud NAT realiza la DNAT de la siguiente manera:
- Agrega el prefijo
64:ff9b::/96
a la dirección IP de origen del paquete de respuesta. - Reescribir la dirección de destino y el puerto de destino del paquete de respuesta para que el paquete se entregue a la VM
¿Qué sigue?
- Obtén información sobre las interacciones de los productos de Cloud NAT.
- Obtén más información sobre los puertos y las direcciones de Cloud NAT.
- Configura NAT pública.
- Obtén información sobre las reglas de Cloud NAT.
- Crea un ejemplo de configuración de Compute Engine.
- Crea una configuración de ejemplo de Google Kubernetes Engine.
- Soluciona los problemas comunes.