AWS VPC - Internet Gateway vs. NAT [geschlossen]

209

Was ist ein Internet-Gateway? Was ist eine NAT-Instanz? Welche Dienstleistungen bieten sie an?

Beim Lesen der AWS VPC-Dokumentation stelle ich fest, dass beide private IP-Adressen für die ausgehenden Anforderungen internetfähigen Adressen zuordnen und die eingehenden Antworten aus dem Internet an den Anforderer im Subnetz weiterleiten.

Was sind die Unterschiede zwischen ihnen? In welchen Szenarien verwende ich eine NAT-Instanz anstelle (oder neben) einem Internet-Gateway? Handelt es sich im Wesentlichen um EC2-Instanzen, auf denen einige Netzwerkanwendungen ausgeführt werden, oder handelt es sich um spezielle Hardware wie einen Router?

Können Sie diese erläutern, anstatt nur auf Links zur AWS-Dokumentation zu verweisen, indem Sie Hintergrundinformationen zu öffentlichen und privaten Subnetzen hinzufügen, damit Anfänger mit begrenzten Netzwerkkenntnissen diese leicht verstehen können? Auch wann sollte ich ein NAT-Gateway anstelle einer NAT-Instanz verwenden?

PS Ich bin neu in AWS VPC, daher vergleiche ich hier möglicherweise Äpfel mit Orangen.

Glückliche Stadt
quelle

Antworten:

230

Internet Gateway

Ein Internet-Gateway ist eine logische Verbindung zwischen einer Amazon VPC und dem Internet . Es ist kein physisches Gerät. Jeder VPC kann nur eine zugeordnet werden. Die Bandbreite der Internetverbindung wird dadurch nicht begrenzt. (Die einzige Einschränkung der Bandbreite ist die Größe der Amazon EC2-Instanz und gilt für den gesamten Datenverkehr - innerhalb der VPC und außerhalb des Internets.)

Wenn eine VPC kein Internet-Gateway hat, kann nicht über das Internet auf die Ressourcen in der VPC zugegriffen werden (es sei denn, der Datenverkehr fließt über ein Unternehmensnetzwerk und VPN / Direct Connect).

Ein Subnetz gilt als öffentliches Subnetz, wenn es über eine Routentabelle verfügt, die den Datenverkehr zum Internet-Gateway leitet.

NAT-Instanz

Eine NAT-Instanz ist eine Amazon EC2-Instanz, die zum Weiterleiten von Datenverkehr an das Internet konfiguriert ist. Es kann von einem vorhandenen AMI aus gestartet oder über Benutzerdaten wie folgt konfiguriert werden:

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

Instanzen in einem privaten Subnetz, die auf das Internet zugreifen möchten, können ihren internetgebundenen Datenverkehr über eine Routentabellenkonfiguration an die NAT-Instanz weiterleiten. Die NAT-Instanz sendet dann die Anforderung an das Internet (da sie sich in einem öffentlichen Subnetz befindet) und die Antwort wird an die private Instanz zurückgeleitet.

An eine NAT-Instanz gesendeter Datenverkehr wird normalerweise an eine IP-Adresse gesendet, die nicht mit der NAT-Instanz selbst verknüpft ist (sie ist für einen Server im Internet bestimmt). Daher ist es wichtig, die Option Quell- / Zielprüfung auf der NAT-Instanz zu deaktivieren, da sonst der Datenverkehr blockiert wird.

NAT Gateway

AWS hat einen NAT-Gateway-Dienst eingeführt , der die Stelle einer NAT-Instanz einnehmen kann. Die Verwendung eines NAT-Gateway-Dienstes bietet folgende Vorteile:

  • Es ist ein vollständig verwalteter Dienst - erstellen Sie ihn einfach und er funktioniert automatisch, einschließlich Failover
  • Es kann bis zu 10 Gbit / s platzen (eine NAT-Instanz ist auf die dem EC2-Instanztyp zugeordnete Bandbreite begrenzt).

Jedoch:

  • Sicherheitsgruppen können keinem NAT-Gateway zugeordnet werden
  • Sie benötigen eine in jeder AZ, da sie nur in einer einzigen AZ arbeiten
John Rotenstein
quelle
4
Können Sie Ihrer Notiz noch einen Punkt hinzufügen? NAT-Instanzen funktionieren, wenn Sie IGW im öffentlichen Subnetz haben. Sie beschränken auch die umgekehrte Suche aus dem Internet auf Ihre Instanz im Subnetz.
Ameya
1
Ab 2019 kann NAT gw nur in der VPC verwendet werden, wobei eine EIP im "öffentlichen" Subnetz oder Subnetz mit "Internet-Gateway" und in den internen Subnetzen zugewiesen wird. Führen Sie einfach eine Route zum NAT gw.
Felipe Buccioni
Ist diese Antwort noch richtig? Aus den AWS-Dokumenten sehe ich : 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.. Aus der Beschreibung habe ich den Eindruck, dass es sich um ein tatsächliches Hardwaregerät handelt, das jedoch von AWS verwaltet wird. Bitte korrigieren Sie mich, wenn mein Verständnis nicht stimmt.
Abhishek Divekar
@AbhishekDivekar Nichts hat sich geändert. Konzentrieren Sie sich bei der Arbeit mit AWS auf das, was Sie erreichen möchten, anstatt über die zugrunde liegende Hardware nachzudenken.
John Rotenstein
1
@ Sandep NAT-Instanzen und NAT-Gateways sind in einer VPC vorhanden. Daher muss der Datenverkehr, der aus dem Internet austritt und ins Internet gelangt, weiterhin über das Internet-Gateway geleitet werden. Wenn kein Internet-Gateway vorhanden ist, besteht kein Zugang zum Internet.
John Rotenstein
127

In Bezug auf NAT-Gateway und NAT-Instanz funktioniert beides. Eine NAT-Instanz kann etwas billiger sein, aber das NAT-Gateway wird vollständig von AWS verwaltet, sodass es den Vorteil hat, dass keine EC2-Instanz nur für NATing verwaltet werden muss.

Für die Instanzen, die für das Internet verfügbar sein müssen, sind NAT-Gateways / -Instanzen jedoch nicht das, wonach Sie suchen. Ein NAT ermöglicht privaten Instanzen (ohne öffentliche IP) den Zugriff auf das Internet, jedoch nicht umgekehrt. Für die EC2-Instanzen, die für das Internet verfügbar sein müssen, müssen Sie eine öffentliche IP-Adresse zuweisen. Es gibt eine Problemumgehung, wenn Sie die EC2-Instanzen wirklich privat halten müssen. Sie können einen elastischen Load Balancer verwenden, um die Anforderungen zu vertreten.

Internet-Gateways

Über das Internet-Gateway stellt Ihre VPC eine Verbindung zum Internet her. Sie verwenden ein Internet-Gateway mit einer Routentabelle, um der VPC mitzuteilen, wie der Internetverkehr ins Internet gelangt.

Ein Internet-Gateway wird in der VPC nur als Name angezeigt. Amazon verwaltet das Gateway und es gibt nichts, bei dem Sie wirklich mitreden können (außer es zu verwenden oder nicht; denken Sie daran, dass Sie möglicherweise ein vollständig segmentiertes Subnetz wünschen, das überhaupt nicht auf das Internet zugreifen kann).

Ein öffentliches Subnetz ist ein Subnetz, in dem der Internetverkehr über das Internet Gateway von AWS geleitet wird. Jeder Instanz innerhalb eines öffentlichen Subnetzes kann eine öffentliche IP zugewiesen werden (z. B. eine EC2-Instanz mit aktivierter Option "Öffentliche IP-Adresse zuordnen").

Ein privates Subnetz bedeutet, dass die Instanzen über das Internet nicht öffentlich zugänglich sind. Sie haben KEINE öffentliche IP-Adresse. Sie können beispielsweise nicht direkt über SSH darauf zugreifen. Instanzen in privaten Subnetzen können jedoch weiterhin selbst auf das Internet zugreifen (dh mithilfe eines NAT-Gateways).

error2007s
quelle
23
Beste Antwort in Bezug auf NAT vs Internet Gateway.
Tagar
Gute Antwort. Nur eine Folgefrage: Wenn eine EC2-Instanz in einem öffentlichen Subnetz eine öffentliche IP hat, ist es logischerweise autark, entweder eingehende Anfragen aus dem Internet zu empfangen oder ausgehende Anfragen an das Internet zu stellen, da ihre IP routbar und erreichbar ist. Welche zusätzliche Aufgabe erledigt das Internet Gateway hier?
Sandeep
Die @ Sandep EC2-Instanz hat keine echte öffentliche IP-Adresse, wird jedoch hinter den Kulissen einer privaten IP-Adresse zugeordnet. Ein Internet-Gateway dient zwei Zwecken: Bereitstellung eines Ziels in Ihren VPC-Routentabellen für internetfähigen Datenverkehr und Durchführung einer Netzwerkadressübersetzung (NAT) für Instanzen, denen öffentliche IPv4-Adressen zugewiesen wurden
Omar Faroque Anik
11

Das Internet-Gateway wird verwendet, um einen VPC mit dem Internet zu verbinden, und das NAT-Gateway wird verwendet, um das private Subnetz mit dem Internet zu verbinden (was bedeutet, dass der gesamte Datenverkehr zur privaten Subnetzinstanz kommt, die an das NAT-Gateway weitergeleitet wird). Sie müssen den Verkehr in der Routentabelle an NAT weiterleiten

Routentabelle 0.0.0.0/0

GNK
quelle
Vielen Dank für das Beispiel - hat mir aus der Klemme geholfen!
Chris
Auf dieser Seite befindet sich ein Diagramm: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html , das den Zweck von NAT-Gateway und IGW verdeutlicht. Beide werden benötigt, damit private Subnetze Zugang zum Internet erhalten
Maruthi,