Casos de uso de puerta de enlace NAT - Amazon Virtual Private Cloud

Casos de uso de puerta de enlace NAT

Los siguientes son ejemplos de casos de uso de gateways NAT públicas y privadas.

Acceso a Internet desde una subred privada

Puede utilizar una puerta de enlace NAT pública para permitir que las instancias de una subred privada envíen tráfico de salida a Internet, además de evitar que Internet establezca conexiones a dichas instancias.

Información general

El siguiente diagrama ilustra este caso de uso. Hay dos zonas de disponibilidad, con dos subredes en cada zona de disponibilidad. La tabla de enrutamiento de cada subred determina cómo se dirige el tráfico. En la zona de disponibilidad A, las instancias de la subred pública pueden conectarse a Internet a través de una ruta a la puerta de enlace de Internet, mientras que las instancias de la subred privada no tienen ruta a Internet. En la zona de disponibilidad B, la subred pública contiene una puerta de enlace NAT y las instancias de la subred privada pueden conectarse a Internet a través de una ruta a la puerta de enlace NAT de la subred pública. Tanto las puertas de enlace NAT privadas como las públicas asignan la dirección IPv4 privada de origen de las instancias a la dirección IPv4 privada de la puerta de enlace NAT privada, pero en el caso de una puerta de enlace NAT pública, la puerta de enlace de Internet asigna la dirección IPv4 privada de la puerta de enlace NAT pública a la dirección IP elástica asociada a la puerta de enlace NAT. Cuando envía tráfico de respuesta a las instancias, ya sea una puerta de enlace NAT pública o privada, la puerta de enlace NAT traduce la dirección a la dirección IP de origen.

Una VPC con subredes públicas y privadas, una puerta de enlace NAT y una puerta de enlace de Internet.

Tenga en cuenta que, si las instancias de la subred privada de la zona de disponibilidad A también necesitan acceder a Internet, puede crear una ruta desde esta subred hasta la puerta de enlace NAT en la zona de disponibilidad B. También, puede mejorar la resiliencia al crear una puerta de enlace NAT en cada zona de disponibilidad que contenga recursos que requieren acceso a Internet. Para ver un diagrama de ejemplo, consulte Ejemplo: una VPC con servidores en subredes privadas y NAT.

Enrutamiento

La siguiente es la tabla de enrutamiento asociada a la subred pública en la zona de disponibilidad A. La primera entrada es la ruta local. Esta permite a las instancias de la subred comunicarse con otras instancias de la VPC mediante las direcciones IP privadas. La segunda entrada envía el resto del tráfico de la subred a la puerta de enlace de Internet, lo que permite a las instancias de la subred acceder a Internet.

Destino Objetivo
CIDR DE VPC local
0.0.0.0/0 internet-puerta de enlace -id

La siguiente es la tabla de enrutamiento asociada a la subred privada de la zona de disponibilidad A. La entrada es la ruta local que permite a las instancias de la subred comunicarse con otras instancias de la VPC mediante las direcciones IP privadas. Las instancias de esta subred no tienen acceso a Internet.

Destino Objetivo
CIDR DE VPC local

La siguiente es la tabla de enrutamiento asociada a la subred pública en la zona de disponibilidad B. La primera entrada es la ruta local que permite a las instancias de la subred comunicarse con otras instancias de la VPC mediante las direcciones IP privadas. La segunda entrada envía el resto del tráfico de la subred a la puerta de enlace de Internet, lo que permite a la puerta de enlace de NAT de la subred acceder a Internet.

Destino Objetivo
CIDR DE VPC local
0.0.0.0/0 internet-puerta de enlace -id

La siguiente es la tabla de enrutamiento asociada a la subred privada en la zona de disponibilidad B. La primera entrada es la ruta local. Esta permite a las instancias de la subred comunicarse con otras instancias de la VPC mediante las direcciones IP privadas. La segunda entrada envía el resto del tráfico de subred a la gateway NAT.

Destino Objetivo
CIDR DE VPC local
0.0.0.0/0 nat-gateway-id

Para obtener más información, consulte Trabajar con tablas de ruteo.

Prueba de la gateway NAT pública

Una vez que ha creado su gateway NAT y ha actualizado sus tablas de enrutamiento, puede hacer ping a direcciones remotas de Internet desde una instancia de su subred privada para comprobar si puede conectarse a Internet. Para ver un ejemplo práctico, consulte Comprobación de la conexión a Internet.

Si puede conectarse a Internet, también podrá probar si el tráfico de Internet se dirige a través de la gateway NAT:

  • Trace la ruta de tráfico desde una instancia de su subred privada. Para ello, ejecute el comando traceroute desde una instancia de Linux en su subred privada. En el resultado, debería ver la dirección IP privada de la gateway NAT en uno de los saltos (suele ser el primero).

  • Puede utilizar un sitio web o una herramienta de terceros que muestre la dirección IP de origen al conectarse desde una instancia de su subred privada. La dirección IP de origen debería ser la dirección IP elástica de la gateway NAT.

Si estas pruebas no son satisfactorias, consulte Solucionar problemas de las gateways NAT.

Comprobación de la conexión a Internet

En el siguiente ejemplo se muestra cómo comprobar si una instancia en una subred privada se puede conectar a Internet.

  1. Lance una instancia en su subred pública (la usará como host bastión). En el asistente de lanzamiento, asegúrese de seleccionar una AMI de Amazon Linux y de asignar una dirección IP pública a la instancia. Asegúrese de que las reglas de su grupo de seguridad admiten el tráfico SSH entrante del rango de direcciones IP de su red local y el tráfico SSH saliente al rango de direcciones IP de su subred privada (también puede utilizar 0.0.0.0/0 para el tráfico SSH tanto entrante como saliente en esta prueba).

  2. Lance una instancia en su subred privada. En el asistente de lanzamiento, asegúrese de seleccionar una AMI de Amazon Linux. No asigne una dirección IP pública a su instancia. Asegúrese de que las reglas de su grupo de seguridad admiten el tráfico SSH entrante de la dirección IP privada de la instancia que lanzó en la subred pública, así como todo el tráfico ICMP saliente. Debe elegir el mismo par de claves que utilizó para lanzar su instancia en la subred pública.

  3. Configure el reenvío de agentes SSH en su equipo local, y conéctese a su host bastión en la subred pública. Para obtener más información, consulte Para configurar el reenvío de agentes SSH para Linux o macOS o Para configurar el reenvío de agentes SSH para Windows.

  4. Desde el host bastión, conéctese a su instancia en la subred privada y, a continuación, compruebe la conexión a Internet desde su instancia en la subred privada. Para obtener más información, consulte Para comprobar la conexión a Internet.

Para configurar el reenvío de agentes SSH para Linux o macOS
  1. Desde su equipo local, añada su clave privada al agente de autenticación.

    Para Linux, utilice el siguiente comando.

    ssh-add -c mykeypair.pem

    Para macOS, utilice el siguiente comando.

    ssh-add -K mykeypair.pem
  2. Conéctese a su instancia en la subred pública utilizando la opción -A para habilitar el reenvío de agentes SSH y utilice la dirección pública de la instancia, como se muestra en el ejemplo siguiente.

    ssh -A ec2-user@54.0.0.123
Para configurar el reenvío de agentes SSH para Windows

Puede usar el cliente OpenSSH disponible en Windows o instalar el cliente SSH que prefiera (por ejemplo, PuTTY).

OpenSSH

Instale OpenSSH para Windows como se describe en este artículo: Introducción a OpenSSH para Windows. A continuación, agregue su clave al agente de autenticación. Para obtener más información, consulte Autenticación basada en claves en OpenSSH para Windows.

PuTTY
  1. Descargue e instale Pageant desde la página de descargas de PuTTY, si aún no lo tiene instalado.

  2. Convierta su clave privada al formato .ppk. Para obtener más información, consulte Conversión de la clave privada mediante PuTTYgen en la Guía del usuario de Amazon EC2.

  3. Inicie Pageant, haga clic con el botón derecho en el icono de Pageant de la barra de tareas (puede estar oculto) y elija Add Key. Seleccione el archivo .ppk que ha creado, escriba la frase de contraseña si es necesario y elija Open (Abrir).

  4. Inicie una sesión de PuTTY y conéctese a su instancia en la subred pública utilizando su dirección IP pública. Para obtener más información, consulte Conexión a la instancia de Linux. En la categoría Auth, asegúrese de seleccionar la opción Allow agent forwarding y deje el cuadro Private key file for authentication en blanco.

Para comprobar la conexión a Internet
  1. Desde su instancia en la subred pública, conéctese a su instancia en la subred privada utilizando su dirección IP privada, como se muestra en el ejemplo siguiente.

    ssh ec2-user@10.0.1.123
  2. Desde su instancia privada, compruebe que puede conectarse a Internet ejecutando el comando ping para un sitio web que tenga ICMP habilitado.

    ping ietf.org
    PING ietf.org (4.31.198.44) 56(84) bytes of data. 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=1 ttl=47 time=86.0 ms 64 bytes from mail.ietf.org (4.31.198.44): icmp_seq=2 ttl=47 time=75.6 ms ...

    Pulse Ctrl+C en su teclado para cancelar el comando ping. Si el comando ping da error, consulte Las instancias no pueden obtener acceso a Internet.

  3. (Opcional) Si ya no necesita las instancias, termínelas. Para obtener más información, consulte Terminar una instancia en la Guía del usuario de Amazon EC2.

Acceso a la red mediante las direcciones IP permitidas

Puede utilizar una puerta de enlace NAT privada para habilitar la comunicación desde las VPC a su red en las instalaciones mediante un grupo de direcciones permitidas. En lugar de asignar a cada instancia una dirección IP independiente del rango de direcciones IP permitidas, puede dirigir el tráfico desde la subred destinada a la red en las instalaciones a través de una puerta de enlace NAT privada con una dirección IP del rango de direcciones IP permitidas.

Información general

En el siguiente diagrama se muestra cómo las instancias pueden acceder a los recursos en las instalaciones mediante AWS VPN. El tráfico de las instancias se dirige a una puerta de enlace privada virtual, a través de la conexión VPN, a la puerta de enlace de cliente y, a continuación, al destino de las redes en las instalaciones. Sin embargo, supongamos que el destino permite tráfico solo desde un rango de direcciones IP específico, como 100.64.1.0/28. Esto evitaría que el tráfico de estas instancias llegue a la red en las instalaciones.

Acceda a la red en las instalaciones mediante una conexión AWS VPN.

El siguiente diagrama muestra los componentes clave de la configuración de este escenario. La VPC tiene su rango de direcciones IP original más el rango de direcciones IP permitido. La VPC tiene una subred del rango de direcciones IP permitido con una puerta de enlace NAT privada. El tráfico de las instancias destinadas a la red en las instalaciones se envía a la puerta de enlace NAT antes de dirigirse a la conexión VPN. La red en las instalaciones recibe el tráfico de las instancias con la dirección IP de origen de la puerta de enlace NAT, que proviene del rango de direcciones IP permitido.

El tráfico de la subred de la VPC se dirige a través de una puerta de enlace NAT privada mediante la dirección IP de la puerta de enlace NAT como dirección de origen.

Recursos

Cree o actualice recursos de la siguiente manera:

  • Asocie el rango de direcciones IP permitido a la VPC.

  • Cree una subred en la VPC a partir del rango de direcciones IP permitido.

  • Cree una puerta de enlace NAT privada en la nueva subred.

  • Actualice la tabla de enrutamiento de la subred con las instancias para enviar el tráfico destinado a la red en las instalaciones hacia la puerta de enlace NAT. Agregue una ruta a la tabla de enrutamiento de la subred con la puerta de enlace NAT privada que envía tráfico destinado a la red en las instalaciones hacia la puerta de enlace privada virtual.

Enrutamiento

La siguiente es la tabla de enrutamiento principal asociada a la primera subred. Hay una ruta local para cada CIDR de VPC. Las rutas locales permiten a los recursos de la subred comunicarse con otros recursos de la VPC mediante direcciones IP privadas. La tercera entrada envía el tráfico destinado a la red en las instalaciones a la puerta de enlace NAT privada.

Destino Objetivo
10.0.0.0/16 local
100.64.1.0/24 local
192.168.0.0/16 nat-gateway-id

La siguiente es la tabla de enrutamiento principal asociada a la segunda subred. Hay una ruta local para cada CIDR de VPC. Las rutas locales permiten a los recursos de la subred comunicarse con otros recursos de la VPC mediante direcciones IP privadas. La tercera entrada envía el tráfico destinado a la red en las instalaciones a la puerta de enlace privada virtual.

Destino Objetivo
10.0.0.0/16 local
100.64.1.0/24 local
192.168.0.0/16 vgw-id

Habilitar la comunicación entre redes superpuestas

Puede utilizar una puerta de enlace NAT privada para habilitar la comunicación entre redes incluso si tienen rangos de CIDR superpuestos. Por ejemplo, supongamos que las instancias de la VPC A necesitan acceder a los servicios proporcionados por las instancias de la VPC B.

Dos VPC con rangos CIDR superpuestos.

Información general

El siguiente diagrama muestra los componentes clave de la configuración de este escenario. En primer lugar, su equipo de administración de IP determina qué rangos de direcciones pueden superponerse (rangos de direcciones no enrutables) y cuáles no (rangos de direcciones enrutables). El equipo de administración de IP asigna rangos de direcciones desde el grupo de rangos de direcciones enrutables a proyectos por petición.

Cada VPC tiene su rango de direcciones IP original, que no es enrutable, más el rango de direcciones IP enrutable que le ha asignado el equipo de administración de IP. La VPC A tiene una subred de su rango enrutable con una puerta de enlace NAT privada. La puerta de enlace NAT privada obtiene su dirección IP de su subred. La VPC B tiene una subred de su rango enrutable con un Application Load Balancer. El Application Load Balancer obtiene las direcciones IP de sus subredes.

El tráfico de una instancia de la subred no enrutable de la VPC A destinada a las instancias de la subred no enrutable de la VPC B se envía a través de la puerta de enlace NAT privada y, a continuación, se dirige a la puerta de enlace de tránsito. La puerta de enlace de tránsito envía el tráfico al equilibrador de carga de aplicación, que dirige el tráfico a una de las instancias de destino de la subred no enrutable de la VPC B. Este tráfico de puerta de enlace de tráfico al equilibrador de carga de aplicación tiene la dirección IP de origen de la puerta de enlace NAT privada. Por lo tanto, el tráfico de respuesta del equilibrador de carga utiliza la dirección de la puerta de enlace NAT privada como destino. El tráfico de respuesta se envía a la puerta de enlace de tránsito y, luego, se dirige a la puerta de enlace NAT privada, lo que traduce el destino a la instancia de la subred no enrutable de la VPC A.

Una VPC con una puerta de enlace NAT privada y una puerta de enlace de tránsito para permitir la comunicación entre las VPC con un CIDR superpuesto.

Recursos

Cree o actualice recursos de la siguiente manera:

  • Asocie los rangos de direcciones IP enrutables asignados a sus respectivas VPC.

  • Cree una subred en la VPC A a partir de su rango de direcciones IP enrutable y cree una puerta de enlace NAT privada en esta nueva subred.

  • Cree una subred en la VPC B a partir de su rango de direcciones IP enrutable y cree un Application Load Balancer en esta nueva subred. Registre las instancias en la subred no enrutable con el grupo de destino del equilibrador de carga.

  • Cree una puerta de enlace de tránsito para conectar las VPC. Asegúrese de desactivar la propagación de rutas. Cuando adjunte cada VPC a la puerta de enlace de tránsito, utilice el rango de direcciones enrutables de la VPC.

  • Actualice la tabla de enrutamiento de la subred no enrutable de la VPC A para enviar todo el tráfico destinado al rango de direcciones enrutables de la VPC B hacia la puerta de enlace NAT privada. Actualice la tabla de enrutamiento de la subred enrutable de la VPC A para enviar todo el tráfico destinado al rango de direcciones enrutables de la VPC B hacia la puerta de enlace de tránsito.

  • Actualice la tabla de enrutamiento de la subred enrutable de la VPC B para enviar todo el tráfico destinado al rango de direcciones enrutables de la VPC A hacia la puerta de enlace de tránsito.

Enrutamiento

La siguiente es la tabla de enrutamiento de la subred no enrutable de la VPC A.

Destino Objetivo
10.0.0.0/16 local
100.64.1.0/24 local
100.64.2.0/24 nat-gateway-id

La siguiente es la tabla de enrutamiento de la subred enrutable de la VPC A.

Destino Objetivo
10.0.0.0/16 local
100.64.1.0/24 local
100.64.2.0/24 transit-gateway-id

La siguiente es la tabla de enrutamiento de la subred no enrutable de la VPC B.

Destino Objetivo
10.0.0.0/16 local
100.64.2.0/24 local

La siguiente es la tabla de enrutamiento de la subred enrutable de la VPC B.

Destino Objetivo
10.0.0.0/16 local
100.64.2.0/24 local
100.64.1.0/24 transit-gateway-id

A continuación, se muestra la tabla de enrutamiento de la puerta de enlace de tránsito.

CIDR Conexión Tipo de ruta
100.64.1.0/24 Vinculación de la VPC A Estático
100.64.2.0/24 Vinculación de la VPC B Estático