AWS VPC - Internet Gateway vs. NAT [fermé]

209

Qu'est-ce qu'une passerelle Internet? Qu'est-ce qu'une instance NAT? Quels services offrent-ils?

En lisant la documentation d'AWS VPC, je constate qu'ils mappent à la fois des adresses IP privées et des adresses routables Internet pour les demandes sortantes et acheminent les réponses entrantes d'Internet vers le demandeur sur le sous-réseau.

Alors, quelles sont les différences entre eux? Quels scénarios dois-je utiliser une instance NAT au lieu (ou en plus) d'une passerelle Internet? S'agit-il essentiellement d'instances EC2 exécutant certaines applications réseau ou s'agit-il d'un matériel spécial comme un routeur?

Au lieu de simplement pointer vers des liens de documentation AWS, pouvez-vous les expliquer en ajoutant quelques informations sur les sous-réseaux publics et privés afin que tout débutant ayant une connaissance limitée du réseau puisse les comprendre facilement? Aussi quand dois-je utiliser une passerelle NAT au lieu d'une instance NAT?

PS Je suis nouveau sur AWS VPC, donc je pourrais comparer les pommes et les oranges ici.

HappyTown
la source

Réponses:

230

Passerelle Internet

Une passerelle Internet est une connexion logique entre un Amazon VPC et Internet . Ce n'est pas un appareil physique. Un seul peut être associé à chaque VPC. Il ne limite pas la bande passante de la connectivité Internet. (La seule limitation de la bande passante est la taille de l'instance Amazon EC2, et elle s'applique à tout le trafic - interne au VPC et sortant vers Internet.)

Si un VPC ne possède pas de passerelle Internet, les ressources du VPC ne sont pas accessibles depuis Internet (sauf si le trafic circule via un réseau d'entreprise et VPN / Direct Connect).

Un sous-réseau est considéré comme un sous - réseau public s'il possède une table de routage qui dirige le trafic vers la passerelle Internet.

Instance NAT

Une instance NAT est une instance Amazon EC2 configurée pour transférer le trafic vers Internet. Il peut être lancé à partir d'une AMI existante, ou peut être configuré via les données utilisateur comme ceci:

#!/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

Les instances d'un sous-réseau privé qui souhaitent accéder à Internet peuvent voir leur trafic lié à Internet transmis à l'instance NAT via une configuration de table de routage. L'instance NAT fera ensuite la demande à Internet (car elle se trouve dans un sous-réseau public) et la réponse sera retransmise à l'instance privée.

Le trafic envoyé à une instance NAT sera généralement envoyé à une adresse IP qui n'est pas associée à l'instance NAT elle-même (il sera destiné à un serveur sur Internet). Par conséquent, il est important de désactiver l' option de vérification de la source / destination sur l'instance NAT, sinon le trafic sera bloqué.

Passerelle NAT

AWS a introduit un service de passerelle NAT qui peut remplacer une instance NAT. Les avantages de l'utilisation d'un service NAT Gateway sont les suivants:

  • Il s'agit d'un service entièrement géré - il suffit de le créer et il fonctionne automatiquement, y compris le basculement
  • Il peut exploser jusqu'à 10 Gbit / s (une instance NAT est limitée à la bande passante associée au type d'instance EC2)

Toutefois:

  • Les groupes de sécurité ne peuvent pas être associés à une passerelle NAT
  • Vous aurez besoin d'un dans chaque AZ car ils ne fonctionnent que dans un seul AZ
John Rotenstein
la source
4
Pouvez-vous ajouter un point de plus dans votre note? Les instances NAT fonctionneront si vous avez IGW sur le sous-réseau public. Ils limitent également la recherche inversée depuis Internet à votre instance dans le sous-réseau.
Ameya
1
Maintenant, en 2019, NAT gw peut être utilisé uniquement dans le VPC, en allouant un EIP dans le sous-réseau "public" ou un sous-réseau avec "passerelle Internet" et dans les sous-réseaux internes, il suffit de router vers le NAT gw.
Felipe Buccioni
Cette réponse est-elle toujours exacte? Des docs AWS , je vois: 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.. D'après la description, j'ai l'impression qu'il s'agit d'un périphérique matériel réel, mais géré par AWS. Veuillez me corriger si ma compréhension est mauvaise.
Abhishek Divekar
@AbhishekDivekar Rien n'a changé. Lorsque vous travaillez avec AWS, concentrez-vous sur ce que vous souhaitez réaliser, plutôt que de penser au matériel sous-jacent.
John Rotenstein
1
Les instances NAT @Sandeep et les passerelles NAT existent au sein d'un VPC. Par conséquent, tout trafic sortant et voyageant vers Internet devra toujours passer par la passerelle Internet. S'il n'y a pas de passerelle Internet, il n'y aura pas d'accès à Internet.
John Rotenstein du
127

En ce qui concerne la passerelle NAT contre l'instance NAT, l'une ou l'autre fonctionnera. Une instance NAT peut être un peu moins chère, mais la passerelle NAT est entièrement gérée par AWS, elle a donc l'avantage de ne pas avoir besoin de maintenir une instance EC2 uniquement pour le NATing.

Cependant, pour les instances qui doivent être disponibles sur Internet, les passerelles / instances NAT ne sont pas ce que vous recherchez. Un NAT permettra aux instances privées (sans IP publique) d'accéder à Internet, mais pas l'inverse. Ainsi, pour les instances EC2 qui doivent être disponibles sur Internet, vous devez attribuer une adresse IP publique. Il existe une solution de contournement si vous devez vraiment garder les instances EC2 privées - vous pouvez utiliser un équilibreur de charge élastique pour proxy les demandes.

Passerelles Internet

La passerelle Internet est la façon dont votre VPC se connecte à Internet. Vous utilisez une passerelle Internet avec une table de routage pour indiquer au VPC comment le trafic Internet parvient à Internet.

Une passerelle Internet apparaît dans le VPC comme un simple nom. Amazon gère la passerelle et vous n'avez rien à dire (à part l'utiliser ou non; rappelez-vous que vous voudrez peut-être un sous-réseau complètement segmenté qui ne peut pas du tout accéder à Internet).

Un sous-réseau public signifie un sous-réseau dont le trafic Internet est acheminé via la passerelle Internet d'AWS. Toute instance d'un sous-réseau public peut se voir attribuer une adresse IP publique (par exemple, une instance EC2 avec "adresse IP publique associée" activée).

Un sous-réseau privé signifie que les instances ne sont pas accessibles au public depuis Internet. Ils n'ont PAS d'adresse IP publique. Par exemple, vous ne pouvez pas y accéder directement via SSH. Cependant, les instances sur des sous-réseaux privés peuvent toujours accéder à Internet elles-mêmes (par exemple en utilisant une passerelle NAT).

error2007s
la source
23
Meilleure réponse en termes de passerelle NAT vs Internet.
Tagar
Très bonne réponse. Juste une question de suivi: lorsqu'une instance EC2 sur un sous-réseau public a une IP publique, il est logiquement suffisant de recevoir des demandes entrantes d'Internet ou de faire des demandes sortantes vers Internet car son IP est routable et accessible. Alors, quel travail supplémentaire la passerelle Internet fait-elle ici?
Sandeep
L'instance @Sandeep EC2 n'a pas de véritable adresse IP publique, mais en arrière-plan, elle est mappée sur une adresse IP privée. Une passerelle Internet a deux objectifs: fournir une cible dans vos tables de routage VPC pour le trafic routable sur Internet et effectuer la traduction d'adresses réseau (NAT) pour les instances auxquelles des adresses IPv4 publiques ont été attribuées
Omar Faroque Anik
11

La passerelle Internet est utilisée pour connecter un vpc à Internet et la passerelle NAT est utilisée pour connecter le sous-réseau privé à Internet (ce qui signifie quel que soit le trafic provenant de l'instance de sous-réseau privé qui sera transmis à la passerelle NAT). vous devez transférer le trafic de la table de routage vers NAT

Table de routage 0.0.0.0/0

GNK
la source
Merci pour l'exemple - m'a aidé à sortir d'une impasse!
Chris
Il y a un diagramme sur cette page: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html qui clarifie le but de la passerelle NAT et IGW. Les deux sont nécessaires pour que les sous-réseaux privés puissent avoir accès à Internet
Maruthi