AWS VPC - Internet Gateway vs. NAT [cerrado]

209

¿Qué es una puerta de enlace a Internet? ¿Qué es una instancia NAT? ¿Qué servicios ofrecen?

Al leer la documentación de AWS VPC, deduzco que ambos asignan direcciones IP privadas a direcciones que pueden enrutarse en Internet para las solicitudes salientes y enrutan las respuestas entrantes de Internet al solicitante en la subred.

Entonces, ¿cuáles son las diferencias entre ellos? ¿Qué escenarios uso una instancia NAT en lugar de (o además) una puerta de enlace a Internet? ¿Son esencialmente instancias EC2 que ejecutan algunas aplicaciones de red o son hardware especial como un enrutador?

En lugar de simplemente señalar los enlaces de documentación de AWS, ¿puede explicarlos agregando algunos antecedentes sobre lo que son las subredes públicas y privadas para que cualquier principiante con conocimiento limitado de redes pueda entenderlos fácilmente? Además, ¿cuándo debo usar una puerta de enlace NAT en lugar de una instancia NAT?

PD: Soy nuevo en AWS VPC, por lo que podría estar comparando manzanas con naranjas aquí.

HappyTown
fuente

Respuestas:

230

Internet Gateway

Una puerta de enlace de Internet es una conexión lógica entre una Amazon VPC e Internet . Es no un dispositivo físico. Solo se puede asociar uno con cada VPC. No , no limitar el ancho de banda de la conexión a Internet. (La única limitación en el ancho de banda es el tamaño de la instancia de Amazon EC2, y se aplica a todo el tráfico, interno a la VPC y a Internet).

Si una VPC no tiene una puerta de enlace a Internet, no se puede acceder a los recursos en la VPC desde Internet (a menos que el tráfico fluya a través de una red corporativa y VPN / Conexión directa).

Una subred se considera una subred pública si tiene una tabla de ruta que dirige el tráfico a la puerta de enlace de Internet.

Instancia NAT

Una instancia NAT es una instancia de Amazon EC2 configurada para reenviar el tráfico a Internet. Se puede iniciar desde una AMI existente, o se puede configurar a través de datos de usuario de esta manera:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF

Las instancias en una subred privada que desean acceder a Internet pueden reenviar su tráfico vinculado a Internet a la instancia NAT a través de una configuración de tabla de ruta. La instancia NAT realizará la solicitud a Internet (ya que está en una subred pública) y la respuesta se reenviará a la instancia privada.

El tráfico enviado a una instancia NAT generalmente se enviará a una dirección IP que no esté asociada con la instancia NAT en sí (se destinará a un servidor en Internet). Por lo tanto, es importante desactivar la opción Verificación de origen / destino en la instancia NAT; de lo contrario, se bloqueará el tráfico.

Puerta de enlace NAT

AWS introdujo un servicio de puerta de enlace NAT que puede tomar el lugar de una instancia NAT. Los beneficios de usar un servicio NAT Gateway son:

  • Es un servicio totalmente administrado: solo créelo y funciona automáticamente, incluida la conmutación por error
  • Puede explotar hasta 10 Gbps (una instancia NAT está limitada al ancho de banda asociado con el tipo de instancia EC2)

Sin embargo:

  • Los grupos de seguridad no pueden asociarse con una puerta de enlace NAT
  • Necesitará uno en cada AZ ya que solo operan en una sola AZ
John Rotenstein
fuente
44
¿Puedes agregar un punto más en tu nota? Las instancias de NAT funcionarán si tiene IGW en la subred pública. También restringen la búsqueda inversa desde Internet a su instancia en la subred.
Ameya
1
Ahora en 2019, NAT gw se puede usar solo en la VPC, asignando un EIP en la subred "pública" o subred con "puerta de enlace de Internet" y en las subredes internas, solo enrute a NAT gw.
Felipe Buccioni
¿Esta respuesta sigue siendo precisa? A partir de los documentos de AWS , veo: An internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows communication between instances in your VPC and the internet. It therefore imposes no availability risks or bandwidth constraints on your network traffic.. De la descripción me da la impresión de que es un dispositivo de hardware real, pero administrado por AWS. Por favor, corrígeme si no entiendo.
Abhishek Divekar
@AbhishekDivekar Nada ha cambiado. Cuando trabaje con AWS, concéntrese en lo que le gustaría lograr, en lugar de pensar en el hardware subyacente.
John Rotenstein
1
@Sandeep NAT Instances y NAT Gateways existen dentro de una VPC. Por lo tanto, cualquier tráfico que salga de él y viaje a Internet deberá pasar a través de Internet Gateway. Si no hay puerta de enlace a Internet, entonces no habrá acceso a Internet.
John Rotenstein
127

En cuanto a la puerta de enlace NAT frente a la instancia NAT, cualquiera funcionará. Una instancia de NAT puede ser un poco más barata, pero AWS administra completamente la puerta de enlace de NAT, por lo que tiene la ventaja de no necesitar mantener una instancia de EC2 solo para NATing.

Sin embargo, para las instancias que necesitan estar disponibles en Internet, las pasarelas / instancias NAT no son lo que está buscando. Un NAT permitirá que las instancias privadas (sin una IP pública) accedan a Internet, pero no al revés. Por lo tanto, para las instancias EC2 que deben estar disponibles en Internet, debe asignar una IP pública. Existe una solución alternativa si realmente necesita mantener privadas las instancias de EC2: puede usar un equilibrador de carga elástico para representar las solicitudes.

Pasarelas de internet

Internet Gateway es cómo su VPC se conecta a internet. Utiliza una puerta de enlace de Internet con una tabla de rutas para decirle a la VPC cómo el tráfico de Internet llega a Internet.

Una puerta de enlace de Internet aparece en la VPC como solo un nombre. Amazon administra la puerta de enlace y no hay nada en lo que realmente tenga algo que decir (aparte de usarlo o no; recuerde que es posible que desee una subred completamente segmentada que no pueda acceder a Internet en absoluto).

Una subred pública significa una subred que tiene tráfico de Internet enrutado a través de la pasarela de Internet de AWS. Cualquier instancia dentro de una subred pública puede tener asignada una IP pública (por ejemplo, una instancia EC2 con "dirección IP pública asociada" habilitada).

Una subred privada significa que las instancias no son accesibles públicamente desde Internet. NO tienen una dirección IP pública. Por ejemplo, no puede acceder a ellos directamente a través de SSH. Sin embargo, las instancias en subredes privadas aún pueden acceder a Internet (es decir, utilizando una puerta de enlace NAT).

error2007s
fuente
23
La mejor respuesta en términos de NAT vs Internet Gateway.
Tagar
Gran respuesta. Solo una pregunta de seguimiento: cuando una instancia de EC2 en una subred pública tiene una IP pública, lógicamente es autosuficiente recibir solicitudes entrantes de Internet o hacer solicitudes salientes a Internet, ya que su IP es enrutable y accesible. Entonces, ¿qué trabajo adicional hace el Internet Gateway aquí?
Sandeep
La instancia de @Sandeep EC2 no tiene ninguna IP pública real, pero detrás de escena, se asigna a una dirección IP privada. Una puerta de enlace de Internet tiene dos propósitos: proporcionar un objetivo en las tablas de rutas de VPC para el tráfico enrutable por Internet y realizar la traducción de direcciones de red (NAT) para las instancias a las que se han asignado direcciones IPv4 públicas
Omar Faroque Anik
11

La puerta de enlace de Internet se usa para conectar un vpc a Internet y la puerta de enlace NAT se usa para conectar la subred privada a Internet (lo que significa cualquier tráfico que llegue a la instancia de subred privada que reenviará a la puerta de enlace NAT). necesita reenviar el tráfico en la tabla de ruta a NAT

Tabla de ruta 0.0.0.0/0

GNK
fuente
Gracias por el ejemplo, ¡me ayudó a salir de apuros!
Chris
Hay un diagrama en esta página: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html que aclara el propósito de NAT gateway e IGW. Ambas son necesarias para que las subredes privadas puedan obtener acceso a Internet
Maruthi,