Public NAT
NAT público permite que tus instancias de máquina virtual (VM) de Compute Engine se comuniquen con Internet asignando un conjunto de direcciones IPv4 externas y puertos de origen compartidos a cada VM que use NAT público para crear conexiones salientes a Internet.
Con NAT público, las instancias de VM que no tienen direcciones IPv4 externas pueden comunicarse con destinos IPv4 en Internet. NAT pública también permite que tus instancias de VM con direcciones IPv6 externas o internas se conecten a destinos IPv4 en Internet.
Especificaciones
NAT público 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úblico.
De IPv6 a IPv4 o NAT64. NAT64 está disponible para las instancias de máquina virtual de Compute Engine. En el caso de los nodos de Google Kubernetes Engine (GKE), los endpoints sin servidor y los grupos de endpoints de red de Internet regionales, NAT público solo traduce direcciones IPv4. Para obtener más información, consulta NAT64 en NAT pública.
Especificaciones generales
-
La NAT pública permite las conexiones salientes y las respuestas entrantes a esas conexiones. Cada pasarela de Cloud NAT para Public NAT realiza la NAT de origen en el tráfico de salida y la NAT de destino en los paquetes de respuesta establecidos.
-
NAT público no permite solicitudes entrantes no solicitadas de Internet, aunque las reglas de cortafuegos permitan esas solicitudes. Para obtener más información, consulta las RFCs aplicables.
-
Cada pasarela de Cloud NAT para NAT pública está asociada a una sola red de VPC, región y Cloud Router. La puerta de enlace Cloud NAT y Cloud Router proporcionan un plano de control, pero no participan en el plano de datos, por lo que los paquetes no pasan por la puerta de enlace Cloud NAT ni por Cloud Router.
Aunque una pasarela Cloud NAT para Public NAT esté gestionada por un Cloud Router, Public NAT no usa ni depende del protocolo de pasarela de frontera.
En el caso de NAT44, la NAT pública puede proporcionar NAT para los paquetes de salida enviados desde lo siguiente:
La dirección IP interna principal de la interfaz de red de la VM, siempre que 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 la NAT de uno a uno para los paquetes cuyo origen coincida con la dirección IP interna principal de la interfaz, porque la interfaz de red cumple 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 de uno a uno, sin usar NAT público.
Un intervalo de IPs de alias asignado a lainterfaz de red de la VM: aunque la interfaz de red tenga asignada una dirección IP externa, puedes configurar una pasarela de Cloud NAT para NAT pública con el fin de proporcionar NAT a los paquetes cuyo origen proceda de un intervalo de IPs de alias de la interfaz. Una dirección IP externa de una interfaz nunca realiza NAT de uno a uno para direcciones IP de alias.
Clústeres de GKE: NAT público puede proporcionar servicio aunque el clúster tenga direcciones IP externas en determinadas circunstancias. Para obtener más información, consulta Interacción con GKE.
En el caso de NAT64, la NAT pública puede proporcionar NAT para los paquetes salientes enviados desde lo siguiente:
- Intervalo de direcciones /96 internas de la interfaz de red solo IPv6 de la máquina virtual.
- El intervalo de direcciones /96 externas de la interfaz de red solo IPv6 de la VM.
Rutas y reglas de cortafuegos
Public NAT se basa en rutas estáticas locales cuyo siguiente salto es la pasarela de Internet predeterminada. Una ruta predeterminada suele cumplir este requisito. Para obtener más información, consulta interacciones de rutas.
Las reglas de cortafuegos de Cloud NGFW se aplican directamente a las interfaces de red de las VMs de Compute Engine, no a las pasarelas de Cloud NAT para NAT pública.
Cuando una pasarela Cloud NAT para NAT pública proporciona NAT a la interfaz de red de una VM, las reglas de cortafuegos de salida aplicables se evalúan como paquetes de esa interfaz de red antes de NAT. Las reglas de cortafuegos de entrada se evalúan después de que NAT haya procesado los paquetes. No es necesario crear reglas de cortafuegos específicas para NAT.
Sin embargo, si quieres habilitar NAT64 en una red de VPC que tenga una regla de cortafuegos de denegación de salida para un destino IPv4, te recomendamos que crees una regla de cortafuegos de denegación de salida adicional para la dirección IPv6 insertada en IPv4 del destino. De esta forma, el tráfico de las VMs que usan NAT64 no puede saltarse la regla de cortafuegos IPv4. Por ejemplo, si el destino de tu regla IPv4 es 1.2.3.4/32
, el destino de la regla IPv6 debe ser 64:ff9b:0102:0304/128
. Para obtener más información sobre las direcciones IPv6 insertadas en IPv4, consulta NAT64.
Aplicabilidad del intervalo de direcciones IP de la subred
NAT público puede proporcionar NAT para intervalos de subredes IPv4, intervalos de subredes IPv6 o ambos:
En el caso de los intervalos de subredes IPv4, puede usar las siguientes opciones para configurar la NAT en los intervalos de direcciones IP principales, los intervalos de IP de alias o ambos:
-
Intervalos de direcciones IPv4 principales y secundarias de todas las subredes de la región: una única pasarela Cloud NAT proporciona NAT para las direcciones IP internas principales y todos los intervalos de IP de alias de las VMs aptas cuyas interfaces de red usen una subred IPv4 de la región.
-
Intervalos de direcciones IPv4 principales de todas las subredes de la región: una única pasarela Cloud NAT proporciona NAT para las direcciones IP internas principales y los intervalos de IP de alias de las máquinas virtuales aptas cuyas interfaces de red usan una subred IPv4 en la región. Puedes crear pasarelas de Cloud NAT adicionales para NAT público en la región para proporcionar NAT a intervalos de IP de alias de intervalos de direcciones IP secundarias de subredes de VMs aptas.
-
Lista de subredes personalizadas: una única pasarela de Cloud NAT proporciona NAT para las direcciones IP internas principales y todos los intervalos de IP de alias de las VMs aptas cuyas interfaces de red usen una subred de una lista de subredes especificadas.
-
Intervalos de direcciones IPv4 de subredes personalizadas: puedes crear tantas pasarelas Cloud NAT para NAT pública como necesites, de acuerdo con las cuotas y los límites de NAT pública. Tú eliges qué intervalos de direcciones IP principales o secundarias de la subred debe atender cada pasarela.
-
En el caso de los intervalos de subredes IPv6, puede usar las siguientes opciones para configurar NAT en intervalos de direcciones IP internas, intervalos de direcciones IP externas o ambos:
- Intervalos de direcciones IPv6 internas y externas de todas las subredes de la región: una sola pasarela de Cloud NAT proporciona NAT a todos los intervalos de direcciones IP internas y externas de la región.
- Lista de subredes personalizadas: una sola pasarela de Cloud NAT proporciona NAT para los intervalos de direcciones IP internas y externas de las VMs aptas cuyas interfaces de red usan una subred de una lista de subredes especificadas.
Varias pasarelas de Cloud NAT
Puedes tener varias pasarelas de Cloud NAT para NAT pública en la misma región de una red de VPC si se cumple una de las siguientes condiciones:
Cada pasarela está configurada para una subred diferente.
En una misma subred, cada pasarela se configura para un intervalo de direcciones IP diferente. Puedes asignar una pasarela Cloud NAT para NAT público a una subred o un intervalo de direcciones IP específicos mediante una asignación de Cloud NAT personalizada.
Siempre que las pasarelas NAT asignadas no se solapen, puedes crear tantas pasarelas Cloud NAT para NAT pública como necesites, de acuerdo con las cuotas y los límites de NAT pública. Para obtener más información, consulta las limitaciones de las pasarelas Cloud NAT.
Ancho de banda
Usar una pasarela Cloud NAT para Public NAT no cambia la cantidad de ancho de banda saliente o entrante que puede usar una VM. Para consultar las especificaciones del 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.
VMs con varias interfaces de red
Si configuras una VM para que tenga varias interfaces de red, cada interfaz debe estar en una red de VPC independiente. Por lo tanto, se cumple lo siguiente:
- Una pasarela de Cloud NAT para NAT pública solo se puede aplicar a una interfaz de red de una VM. Las pasarelas de Cloud NAT independientes para NAT pública pueden proporcionar NAT a la misma VM, donde cada pasarela 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 NAT público, mientras que otra de sus interfaces puede ser apta para NAT si no tiene una dirección IPv4 externa y has configurado una pasarela Cloud NAT para que NAT público se aplique al intervalo de direcciones IP de la subred adecuada. En el caso de IPv6, se admiten direcciones IPv6 internas y externas.
Direcciones IP y puertos de NAT
Cuando creas una pasarela Cloud NAT para Public NAT, puedes hacer que la pasarela asigne automáticamente direcciones IP externas regionales. También puedes asignar manualmente un número fijo de direcciones IP externas regionales a la pasarela.
En el caso de una pasarela Cloud NAT para NAT pública con asignación automática de direcciones IP de NAT, ten en cuenta lo siguiente:
- Puede seleccionar los niveles de servicio de red (nivel Premium o nivel Estándar) desde los que la puerta de enlace Cloud NAT asigna las direcciones IP.
Cuando cambias el nivel de una pasarela Cloud NAT para NAT pública que tiene direcciones IP de NAT asignadas automáticamente, Google Cloud se liberan todas las direcciones IP asignadas a esa pasarela y se retiran 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 endpoints.
En una pasarela NAT de Cloud determinada para Public NAT, también puedes asignar manualmente direcciones IP de los niveles Premium o Estándar, o de ambos, en función de ciertas condiciones.
Para obtener información sobre la asignación de direcciones IP de NAT, consulta Direcciones IP de NAT públicas.
Puedes configurar el número de puertos de origen que reserva cada pasarela de Cloud NAT para NAT pública en cada VM en la que vaya a proporcionar servicios de NAT. Puedes configurar la asignación de puertos estática, en la que se reserva el mismo número de puertos para cada VM, o la asignación de puertos dinámica, en la que el número de puertos reservados puede variar entre los límites mínimo y máximo que especifiques.
Las VMs a las que se debe proporcionar NAT se determinan mediante los intervalos de direcciones IP de subred que la pasarela está configurada para servir.
Para obtener más información sobre los puertos, consulta Puertos.
RFCs aplicables
NAT público admite asignación independiente del endpoint y filtrado dependiente del endpoint, tal como se define en RFC 5128. Puedes habilitar o inhabilitar la asignación independiente de puntos finales. De forma predeterminada, la asignación independiente de puntos finales está inhabilitada cuando creas una pasarela NAT.
La asignación independiente del endpoint significa que, si una VM envía paquetes desde un par de puerto y dirección IP interna determinado a varios destinos diferentes, la puerta de enlace asigna todos esos paquetes al mismo par de puerto y dirección IP de NAT, independientemente del destino de los paquetes. Para obtener información detallada sobre las implicaciones de la asignación independiente de puntos finales, consulta Reutilización simultánea de puertos y asignación independiente de puntos finales.
Filtrado dependiente del endpoint: los paquetes de respuesta de Internet solo pueden entrar si proceden de una dirección IP y un puerto a los que una máquina virtual ya ha enviado paquetes. El filtrado depende del endpoint, independientemente del tipo de asignación de endpoints. Esta función siempre está activada y no se puede configurar.
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.
Public NAT es un NAT de cono restringido por puertos, tal como se define en RFC 3489.
Salto de NAT
Si la asignación independiente de puntos finales está habilitada, la NAT pública es compatible con protocolos de salto de NAT habituales, como STUN y TURN, si implementas tus propios servidores STUN o TURN:
- STUN (Session Traversal Utilities for NAT, RFC 5389) permite la comunicación directa entre máquinas virtuales que están detrás de NAT cuando se establece un canal de comunicación.
- TURN (Traversal Using Relays around NAT, RFC 5766) permite la comunicación entre VMs que están detrás de NAT mediante un tercer servidor que 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 VMs. TURN es más robusto, pero consume más ancho de banda y recursos.
Tiempos de espera de NAT
NAT público define los tiempos de espera de las conexiones de protocolos. Para obtener información sobre estos tiempos de espera y sus valores predeterminados, consulta Tiempos de espera de NAT.
NAT44 en Public NAT
En el siguiente diagrama se muestra una configuración básica de NAT público para el tráfico IPv4:
En este ejemplo:
La puerta de enlace
nat-gw-us-east
está configurada para aplicarse al intervalo de direcciones IP principal desubnet-1
en la regiónus-east1
. Una máquina virtual cuya interfaz de red no tenga una dirección IP externa puede enviar tráfico a Internet usando su dirección IP interna principal o un intervalo de IPs de alias del intervalo 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 no se aplica ninguna pasarela Cloud NAT a ningún intervalo de direcciones IP de esa subred.La puerta de enlace
nat-gw-eu
está configurada para aplicarse al intervalo de direcciones IP principal desubnet-3
en la regióneurope-west1
. Una máquina virtual cuya interfaz de red no tenga una dirección IP externa puede enviar tráfico a Internet usando su dirección IP interna principal o un intervalo de IPs de alias del intervalo de direcciones IP principal desubnet-3
, 192.168.1.0/24.
Ejemplo de flujo de trabajo
En el diagrama anterior, una máquina virtual con la dirección IP interna principal 10.240.0.4, sin una dirección IP externa, necesita descargar una actualización de la dirección IP externa 203.0.113.1. En el diagrama, la pasarela nat-gw-us-east
se configura de la siguiente manera:
- Número mínimo de puertos por instancia: 64
- Se han asignado manualmente dos direcciones IP de NAT: 192.0.2.50 y 192.0.2.60.
- Se ha proporcionado NAT para el intervalo de direcciones IP principal de
subnet-1
La NAT pública sigue el procedimiento de reserva de puertos para reservar las siguientes tuplas de dirección IP de origen y puerto de origen de NAT para cada una de las VMs de la red. Por ejemplo, la pasarela Cloud NAT para NAT pública reserva 64 puertos de origen para la máquina virtual con la dirección IP interna 10.240.0.4. La dirección IP de NAT 192.0.2.50 tiene 64 puertos no reservados, por lo que la pasarela reserva el siguiente conjunto de 64 tuplas de dirección IP de origen y puerto de origen de NAT para esa VM:
- 192.0.2.50:34000 a 192.0.2.50:34063
Cuando la VM envía un paquete al servidor de actualizaciones 203.0.113.1 en el puerto de destino 80, mediante el protocolo TCP, ocurre lo siguiente:
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 elegido por 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 del tráfico HTTP al servidor de actualizaciones
- Protocolo: TCP
La pasarela
nat-gw-us-east
realiza la traducción de direcciones de red de origen (SNAT) en la salida, reescribiendo 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 pasarela de Internet predeterminada. Una ruta predeterminada suele cumplir este requisito.- Dirección IP de origen de NAT: 192.0.2.50, de una de las tuplas de puerto de origen y dirección IP de origen de NAT 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 actualizaciones envía un paquete de respuesta, este 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 actualizaciones
- Puerto de origen: 80, la respuesta HTTP del servidor de actualizaciones
- Dirección de destino: 192.0.2.50, que coincide con la dirección IP de origen NAT original del paquete de solicitud
- Puerto de destino: 34022, que coincide con el puerto de origen del paquete de solicitud
- Protocolo: TCP, sin cambios
La pasarela
nat-gw-us-east
realiza la traducción de direcciones de red de destino (DNAT) en el paquete de respuesta, reescribiendo la dirección de destino y el puerto de destino del paquete de respuesta para que 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
NAT64 en Public NAT
NAT64 permite que las instancias de VM con interfaces de red solo IPv6 se comuniquen con destinos IPv4 en Internet. NAT público admite NAT64 para direcciones IPv6 externas e internas. Si quieres configurar NAT64, también debes configurar DNS64.
Al configurar DNS64 en Cloud DNS, se habilita el siguiente comportamiento:
- Cuando una instancia de VM solo con IPv6 inicia una solicitud para resolver el nombre de un destino de Internet que solo tiene una dirección IPv4, el servidor DNS64 busca registros
A
. Si se encuentra un registro
A
, el servidor DNS64 sintetiza una dirección IPv6 insertada en IPv4 añadiendo el prefijo64:ff9b::/96
a la dirección IPv4 de destino obtenida del registroA
. Por ejemplo, si la dirección IPv4 de destino es 203.0.113.1, el servidor devuelve 64:ff9b::cb00:7101, dondecb00:7101
es la representación hexadecimal de 203.0.113.1.Para obtener más información, consulta DNS64.
Cuando la solicitud llega a la pasarela de Cloud NAT con NAT64 habilitado, la pasarela realiza SNAT de la siguiente manera:
- Sustituye la dirección y el puerto IPv6 de origen por una de las direcciones y puertos IPv4 externos asignados a la pasarela.
Traduce la dirección IPv6 de destino sintetizada (por ejemplo, 64:ff9b::cb00:7101) a la dirección IPv4 original mediante los últimos 32 bits de la dirección sintetizada.
La pasarela 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 con IPv6 envía un paquete a un destino con el prefijo
64:ff9b::/96
, la puerta de enlace aplica la tabla de enrutamiento IPv4 de la red 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 pasarela de Internet predeterminada, el paquete modificado se envía a Internet.
Cuando se recibe la respuesta, la pasarela Cloud NAT realiza la DNAT de la siguiente manera:
- Añadiendo 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.
Antes de configurar NAT64, consulta las rutas y las reglas de cortafuegos.
Siguientes pasos
- Consulta información sobre las interacciones de los productos de Cloud NAT.
- Consulta información sobre las direcciones y los puertos de Cloud NAT.
- Consulta información sobre las reglas de Cloud NAT.
- Configura NAT pública.