Entwerfen virtueller Netzwerke mit NAT Gateway

NAT Gateway stellt für ein oder mehrere Subnetze eines virtuellen Netzwerks ausgehende Internetkonnektivität bereit. Nachdem NAT Gateway einem Subnetz zugeordnet wurde, stellt NAT die Übersetzung der Quellnetzwerkadresse (Source Network Address Translation, SNAT) für dieses Subnetz bereit. Von NAT Gateway wird angegeben, welche statischen IP-Adressen von virtuellen Computern beim Erstellen ausgehender Datenflüsse verwendet werden. Statische IP-Adressen stammen von öffentlichen IP-Adressen, von Präfixen für öffentliche IP-Adressen oder von beidem. Bei Verwendung eines Präfixes für öffentliche IP-Adressen werden von NAT Gateway alle IP-Adressen des gesamten Präfixes für öffentliche IP-Adressen genutzt. Für ein NAT-Gateway können für die beiden Quellen jeweils bis zu 16 statische IP-Adressen verwendet werden.

Diagramm einer NAT-Gatewayressource, die alle IP-Adressen für ein öffentliches IP-Präfix belegt und den eingehenden und ausgehenden Datenverkehr von zwei VM-Subnetzen und einer VM-Skalierungsgruppe weiterleitet

Abbildung: Virtual Network NAT für Internetverbindung in ausgehender Richtung

Bereitstellen von NAT

Die Konfiguration und Nutzung von NAT-Gateways wurde bewusst einfach gehalten:

NAT Gateway:

  • Erstellen Sie eine nicht zonale oder eine zonale NAT Gateway-Instanz.
  • Weisen Sie eine öffentliche IP-Adresse oder ein Präfix für öffentliche IP-Adressen zu.
  • Ändern des TCP-Leerlauftimeouts bei Bedarf (optional) Lesen Sie den Abschnitt Timer, bevor Sie die Standardeinstellung ändern.

Virtuelles Netzwerk:

  • Konfigurieren Sie das Subnetz des virtuellen Netzwerks so, dass ein NAT-Gateway verwendet wird.

Benutzerdefinierte Routen sind nicht erforderlich.

Entwurfsleitfäden

Lesen Sie diesen Abschnitt, um sich mit den Aspekten in Bezug auf das Entwerfen virtueller Netzwerke mit einem NAT-Gateway vertraut zu machen.

Das Herstellen einer Verbindung aus Ihrem virtuellen Azure-Netzwerk mit Azure PaaS-Diensten kann direkt über den Azure-Backbone erfolgen und das Internet umgehen. Wenn Sie das Internet umgehen, um sich mit anderen Azure PaaS-Diensten zu verbinden, geben Sie SNAT-Ports frei und verringern das Risiko einer SNAT-Porterschöpfung. Private Link sollte verwendet werden, wenn möglich, um eine Verbindung mit Azure PaaS-Diensten herzustellen, um den SNAT-Portbestand freizugeben.

Private Link verwendet die privaten IP-Adressen Ihrer VMs oder anderen Computeressourcen aus Ihrem Azure-Netzwerk, um direkt eine private und sichere Verbindung mit Azure PaaS-Diensten über den Azure-Backbone herzustellen. Zeigen Sie eine Liste der verfügbaren Azure-Dienste an, die von Private Link unterstützt werden.

Herstellen einer Internetverbindung mit NAT-Gateway

Das NAT-Gateway wird für alle Produktionsworkloads empfohlen, bei denen Sie eine Verbindung mit einem öffentlichen Endpunkt über das Internet herstellen müssen. Wenn das NAT-Gateway für Subnetze konfiguriert ist, werden alle vorherigen ausgehenden Konfigurationen wie öffentliche IP-Adressen auf Lastenausgleichs- oder Instanzebene (Instance-Level Public IPs, IL PIPs) durch das NAT-Gateway abgelöst. Ausgehender und zurückgegebener Datenverkehr durchläuft das NAT-Gateway. Nach dem Hinzufügen eines NAT-Gateways zu einem Subnetz mit vorhandenen ausgehenden Konfigurationen gibt es keine Ausfallzeit für ausgehende Konnektivität.

Koexistenz von ausgehender und eingehender Konnektivität

Das NAT-Gateway, der Lastenausgleich und öffentliche IP-Adressen auf Instanzenebene erkennen die Flussrichtung. Das NAT-Gateway kann in demselben virtuellen Netzwerk wie der Lastenausgleich und IL PIPs vorhanden sein, um ausgehende und eingehende Konnektivität nahtlos bereitzustellen. Eingehender Datenverkehr über öffentliche IP-Adresse auf Lastenausgleichs- oder Instanzebene wird separat vom ausgehenden Datenverkehr über das NAT-Gateway übersetzt.

Die folgenden Szenarien sind Beispiele für die Koexistenz von öffentlichen IP-Adressen auf Lastenausgleichs- oder Instanzebene (für eingehenden Datenverkehr) und dem NAT-Gateway (für ausgehenden Datenverkehr).

NAT und VM mit öffentlicher IP-Adresse auf Instanzebene

Abbildung: NAT-Gatewayressource, die alle IP-Adressen für ein öffentliches IP-Präfix belegt und diesen Datenverkehr in und aus zwei Subnetzen weiterleitet, die VMs und eine VM-Skalierungsgruppe enthalten.

Abbildung: Virtual Network NAT und virtueller Computer mit öffentlicher IP-Adresse auf Instanzebene

Direction Resource
Eingehend VM mit öffentlicher IP-Adresse auf Instanzebene
Ausgehend NAT Gateway

Von der VM wird das NAT-Gateway für ausgehenden Datenverkehr genutzt. Ursprünglich eingehender Datenverkehr ist nicht betroffen.

NAT und virtueller Computer mit öffentlichem Standard Load Balancer

Diagramm eines NAT-Gateways, das ausgehenden Datenverkehr an das Internet über ein VNet und eingehenden Datenverkehr über einen öffentlichen Lastenausgleich unterstützt

Abbildung: Virtual Network NAT und virtueller Computer mit öffentlicher Load Balancer-Instanz im Tarif „Standard“

Direction Resource
Eingehend Öffentliche Instanz von Load Balancer Standard
Ausgehend NAT Gateway

Alle Ausgangskonfigurationen einer Lastenausgleichsregel oder von Ausgangsregeln werden durch das NAT-Gateway ersetzt. Ursprünglich eingehender Datenverkehr ist nicht betroffen.

NAT und virtueller Computer mit öffentlicher IP-Adresse auf Instanzebene und öffentlichem Standard Load Balancer

Diagramm eines NAT-Gateways, das ausgehenden Datenverkehr an das Internet über ein VNet und eingehenden Datenverkehr über eine öffentliche IP-Adresse auf Instanzebene und einen öffentlichen Lastenausgleich unterstützt

Abbildung: Virtual Network NAT und virtueller Computer mit öffentlicher IP-Adresse auf Instanzebene und öffentlicher Load Balancer-Instanz im Tarif „Standard“

Direction Resource
Eingehend Virtueller Computer mit öffentlicher IP-Adresse auf Instanzebene und öffentlicher Load Balancer-Instanz im Tarif „Standard“
Ausgehend NAT Gateway

Alle Ausgangskonfigurationen einer Lastenausgleichsregel oder von Ausgangsregeln werden durch das NAT-Gateway ersetzt. Die VM nutzt auch das NAT-Gateway für ausgehenden Datenverkehr. Ursprünglich eingehender Datenverkehr ist nicht betroffen.

Überwachen des ausgehenden Netzwerkdatenverkehrs mit NSG-Flussprotokollen

Mithilfe einer Netzwerksicherheitsgruppe können Sie ein- und ausgehenden Datenverkehr für einen virtuellen Computer filtern. Um ausgehenden Datenverkehr von NAT zu überwachen, können Sie NSG-Datenflussprotokolle aktivieren.

Weitere Informationen zu NSG-Datenflussprotokollen finden Sie in der Einführung in die Datenflussprotokollierung für Netzwerksicherheitsgruppen.

Anleitungen zum Aktivieren von NSG-Datenflussprotokollen finden Sie unter Aktivieren von NSG-Flussprotokollen.

Leistung

Jede NAT Gateway-Instanz kann einen Durchsatz von bis zu 50 GBit/s bereitstellen. Dieser Datendurchsatz umfasst Daten, die sowohl ausgehend als auch eingehend über eine NAT-Gatewayressource verarbeitet werden. Zum Aufskalieren können Sie Ihre Bereitstellungen in mehrere Subnetze unterteilen und jedem Subnetz oder jeder Gruppe von Subnetzen eine NAT Gateway-Instanz zuweisen.

Das NAT-Gateway kann bis zu 50.000 gleichzeitige Verbindungen pro öffentlicher IP-Adresse mit demselben Zielendpunkt über das Internet für TCP und UDP unterstützen. Die Gesamtzahl der Verbindungen, die NAT-Gateway jederzeit unterstützen kann, beträgt bis zu 2 Millionen. Ein NAT-Gateway kann 1 Mio. Pakete pro Sekunde verarbeiten und auf bis zu 5 Mio. Pakete pro Sekunde skaliert werden.

Im folgenden Abschnitt finden Sie weitere Details hierzu. Spezifische Problemlösungen finden Sie im Artikel zur Problembehandlung.

Skalierbarkeit

Die Skalierung des NAT-Gateways ist hauptsächlich eine Funktion, bei der es um die Verwaltung des freigegebenen verfügbaren SNAT-Portbestands geht. Für die NAT ist ein ausreichender Bestand an SNAT-Ports erforderlich, um für alle Subnetze einer NAT Gateway-Instanz die erwartete Spitzenlast für ausgehende Datenflüsse abdecken zu können. Sie können öffentliche IP-Adressen, Präfixe für öffentliche IP-Adressen oder beides verwenden, um einen Bestand an SNAT-Ports zu erstellen.

Eine einzelne NAT Gateway-Instanz kann auf bis zu 16 IP-Adressen hochskaliert werden. Jede öffentliche IP-Adresse des NAT-Gateways bietet 64.512 SNAT-Ports für das Herstellen ausgehender Verbindungen. Das NAT-Gateway kann bis auf über 1 Million SNAT-Ports skaliert werden. Bei TCP und UDP handelt es sich um separate SNAT-Portbestände, und sie hängen nicht mit NAT Gateway zusammen.

Hinweis

Wenn Sie ein Präfix für öffentliche IP-Adressen zuweisen, wird dieses vollständig verwendet. Sie können kein Präfix für öffentliche IP-Adressen zuweisen und dann einzelne IP-Adressen anderen Ressourcen zuweisen. Wenn Sie einzelne IP-Adressen aus einem Präfix für öffentliche IP-Adressen mehreren Ressourcen zuweisen möchten, müssen Sie einzelne öffentliche IP-Adressen erstellen und sie nach Bedarf zuweisen, anstatt das Präfix für öffentliche IP-Adressen zu verwenden.

Gehen Sie beim Skalieren Ihrer Workload davon aus, dass für jeden Datenfluss ein neuer SNAT-Port benötigt wird, und skalieren Sie die Gesamtanzahl verfügbarer IP-Adressen für ausgehenden Datenverkehr entsprechend. Ordnen Sie unter Berücksichtigung der vorgesehenen Skalierung eine entsprechende Anzahl von IP-Adressen zu.

SNAT ordnet private Adressen in Ihrem Subnetz einer oder mehreren öffentlichen IP-Adressen zu, die an ein NAT-Gateway angefügt sind, und schreibt dabei die Quelladresse und den Quellport um. An verschiedene Ziele gesendete SNAT-Ports werden höchstwahrscheinlich nach Möglichkeit wiederverwendet. Wenn die SNAT-Ports nahezu ausgelastet sind, tritt für die Datenflüsse möglicherweise ein Fehler auf.

Ein SNAT-Beispiel finden Sie in den SNAT-Grundlagen.

Protokolle

NAT Gateway interagiert mit IP- und IP-Transportheadern von UDP- und TCP-Datenflüssen. NAT Gateway ist gegenüber Nutzlasten auf Anwendungsebene agnostisch. Andere IP-Protokolle werden nicht unterstützt.

Übersetzung der Quellnetzwerkadresse (Source Network Address Translation, SNAT)

Grundlagen

Bei der Übersetzung der Quellnetzwerkadresse (Source Network Address Translation, SNAT) wird die Quelle eines Datenflusses so umgeschrieben, dass dieser von einer anderen IP-Adresse und/oder von einem anderen Port ausgeht. SNAT wird üblicherweise verwendet, wenn ein privates Netzwerk über das Internet mit einem öffentlichen Host verbunden werden muss. Mit SNAT können mehrere VM-Instanzen innerhalb des privaten VNet die gleiche öffentliche IP-Adresse oder die gleiche Gruppe von IP-Adressen (Präfix) verwenden, um eine Verbindung mit dem Internet herzustellen.

NAT Gateway wandelt mit SNAT die private IP-Adresse und den Port einer VM vor dem Ausgang aus einem virtuellen Netzwerk in das Internet in eine statische öffentliche IP-Adresse und einen SNAT-Port um. Jede neue Verbindung mit demselben Zielendpunkt verwendet einen anderen SNAT-Port, sodass Verbindungen voneinander unterschieden werden können. Eine Überlastung der SNAT-Ports tritt auf, wenn einem Quellendpunkt die verfügbaren SNAT-Ports ausgehen, um zwischen neuen Verbindungen zu unterscheiden.

Beispiel für SNAT-Flows für das NAT-Gateway

Die folgenden Flows verdeutlichen das grundlegende Konzept der SNAT und ihrer Verwendung mit NAT Gateway.

In der folgenden Tabelle stellt die VM von den folgenden Quelltupeln (IP-Adressen und Ports) aus Verbindungen mit der Ziel-IP-Adresse 65.52.0.1 her:

Flow Quelltupel Zieltupel
1 192.168.0.16:4283 65.52.0.1:80
2 192.168.0.16:4284 65.52.0.1:80
3 192.168.0.17.5768 65.52.0.1:80

Wenn das NAT-Gateway mit der öffentlichen IP-Adresse 65.52.1.1 konfiguriert ist, werden die Quell-IP-Adressen wie folgt mittels SNAT in die öffentliche IP-Adresse des NAT-Gateways und einen SNAT-Port umgewandelt:

Flow Quelltupel Quelltupel nach SNAT Zieltupel
1 192.168.0.16:4283 65.52.1.1:1234 65.52.0.1:80
2 192.168.0.16:4284 65.52.1.1:1235 65.52.0.1:80
3 192.168.0.17.5768 65.52.1.1:1236 65.52.0.1:80

„IP-Maskierung“ oder „Portmaskierung“ bedeutet das Ersetzen der privaten IP-Adresse und des Ports durch die öffentliche IP-Adresse und den öffentlichen Port, bevor eine Verbindung mit dem Internet hergestellt wird. Mehrere private Ressourcen können hinter derselben öffentlichen IP-Adresse des NAT-Gateways maskiert werden.

Das NAT-Gateway weist SNAT-Ports dynamisch zu.

Das NAT-Gateway weist SNAT-Ports dynamisch ressourcenübergreifend in einem Subnetz zu, z. B. VMs. Der SNAT-Portbestand wird durch Anfügen öffentlicher IP-Adressen an das NAT-Gateway verfügbar gemacht. Alle verfügbaren SNAT-Ports können bei Bedarf von allen VMs in Subnetzen genutzt werden, die mit einem NAT-Gateway konfiguriert sind:

Diagramm des Bestands aller verfügbaren SNAT-Ports, die von einer VM in Subnetzen verwendet werden, die mit NAT konfiguriert sind

Abbildung: Virtual Network NAT: Bedarfsgesteuerte SNAT in ausgehender Richtung

Die Vorabzuweisung von SNAT-Ports zu den einzelnen virtuellen Computern ist nicht erforderlich. Dadurch sind keine ungenutzten SNAT-Ports vorhanden, die von VMs nicht aktiv benötigen werden.

Diagramm des Bestands aller verfügbaren SNAT-Ports, die von einer VM in Subnetzen verwendet werden, die mit NAT und Auslastungsschwellenwert konfiguriert sind

Abbildung: Unterschiede bei Auslastungsszenarien

Nachdem ein SNAT-Port freigegeben wurde, kann er von allen virtuellen Computern in Subnetzen verwendet werden, die mit NAT konfiguriert sind. Bei der bedarfsgesteuerten Zuteilung können SNAT-Ports von dynamischen und divergenten Workloads in Subnetzen je nach Bedarf genutzt werden. Solange SNAT-Ports verfügbar sind, sind SNAT-Datenströme erfolgreich.

Wiederverwendung von (SNAT-)Quellports

Von NAT Gateway wird nach dem Zufallsprinzip ein Port aus dem Bestand der verfügbaren Ports ausgewählt, um neue ausgehende Verbindungen herzustellen. Wenn NAT Gateway keine verfügbaren SNAT-Ports findet, wird ein SNAT-Port wiederverwendet. Ein SNAT-Port kann beim Herstellen einer Verbindung mit einer anderen Ziel-IP und einem anderen Port wie unten gezeigt mit diesem zusätzlichen Flow wiederverwendet werden.

Flow Quelltupel Zieltupel
4 192.168.0.16:4285 65.52.0.2:80

Ein NAT-Gateway übersetzt Flow 4 in einen SNAT-Port, der unter Umständen auch bereits für andere Ziele verwendet wird (siehe Flow 1 in der Tabelle oben). Weitere Informationen zur richtigen Dimensionierung Ihrer IP-Adressbereitstellung finden Sie unter Skalieren der NAT.

Flow Quelltupel Quelltupel nach SNAT Zieltupel
4 192.168.0.16:4285 65.52.1.1:1234 65.52.0.2:80

Die Umsetzung der Zuweisung von Quellports im obigen Beispiel ist nicht verbindlich. Die obige Abbildung enthält nur eine Darstellung des grundlegenden Konzepts.

Timer

Timer für die Wiederverwendung von Ports

Timer für die Wiederverwendung von Ports bestimmen die Zeitspanne, die ein Quellport nach dem Schließen einer Verbindung gesperrt ist, bevor er vom NAT-Gateway wiederverwendet werden kann, um zum selben Zielendpunkt zu navigieren.

Die folgende Tabelle enthält Informationen dazu, wann ein TCP-Port für die Wiederverwendung für denselben Zielendpunkt durch das NAT-Gateway verfügbar wird.

Timer Beschreibung Wert
TCP FIN (TCP-Beendigung) Nachdem eine Verbindung durch ein TCP FIN-Paket geschlossen wurde, wird ein 65-Sekunden-Timer aktiviert, der den SNAT-Port sperrt. Der SNAT-Port steht nach Ablauf des Timers zur Wiederverwendung zur Verfügung. 65 Sekunden
TCP RST (TCP-Zurücksetzung) Nachdem eine Verbindung durch ein TCP RST-Paket (Zurücksetzen) geschlossen wurde, wird ein 20-Sekunden-Timer aktiviert, der den SNAT-Port sperrt. Der Port steht nach Ablauf des Timers zur Wiederverwendung zur Verfügung. 20 Sekunden
TCP half open (TCP halb geöffnet) Während der Verbindungseinrichtung, bei der ein Verbindungsendpunkt auf die Bestätigung des anderen Endpunkts wartet, wird ein 25-Sekunden-Timer aktiviert. Wird kein Datenverkehr erkannt, wird die Verbindung geschlossen. Nachdem die Verbindung geschlossen wurde, ist der Quellport zur Wiederverwendung für denselben Zielendpunkt verfügbar. 25 Sekunden

Bei UDP-Datenverkehr ist der Port nach dem Schließen einer Verbindung 65 Sekunden lang gesperrt, bevor er für die Wiederverwendung verfügbar ist.

Timer für Leerlauftimeouts

Timer Beschreibung Wert
TCP-Leerlauftimeout TCP-Verbindungen können sich in einem Leerlaufzustand befinden, wenn zwischen beiden Endpunkten für längere Zeit keine Daten übertragen werden. Ein Timer kann auf einen Wert zwischen vier Minuten (Standard) und 120 Minuten (zwei Stunden) festgelegt werden, um für Verbindungen im Leerlauf ein Timeout auszulösen. Durch Datenverkehr im Datenfluss wird der Timer für das Leerlauftimeout zurückgesetzt. Konfigurierbar zwischen vier Minuten (Standardwert) und 120 Minuten
UDP-Leerlauftimeout UDP-Verbindungen können sich in einem Leerlaufzustand befinden, wenn zwischen beiden Endpunkten für längere Zeit keine Daten übertragen werden. Timer für UDP-Timeouts betragen vier Minuten und können nicht konfiguriert werden. Durch Datenverkehr im Datenfluss wird der Timer für das Leerlauftimeout zurückgesetzt. Nicht konfigurierbar; vier Minuten

Hinweis

Diese Zeitgebereinstellungen können sich ändern. Die Werte sind hier als Unterstützung bei der Problembehandlung angegeben, und Sie sollten noch keine Abhängigkeit von bestimmten Zeitgebern einrichten.

Überlegungen im Zusammenhang mit Timern

Entwurfsempfehlungen für die Konfiguration von Timern:

  • In einem Szenario mit im Leerlauf befindlicher Verbindung werden die SNAT-Ports vom NAT-Gateway bis zum Ablauf des Leerlauftimeouts der Verbindung beibehalten. Da lange Timer für Leerlauftimeouts die Wahrscheinlichkeit einer SNAT-Portauslastung unnötig erhöhen können, wird nicht empfohlen, die Dauer des TCP-Leerlauftimeouts auf einen Wert zu erhöhen, der über dem Standardwert von vier Minuten liegt. Auf Datenflüsse, die sich niemals im Leerlauf befinden, hat der Leerlauftimer keine Auswirkungen.

  • TCP-Keepalives können als Muster für die Aktualisierung von Verbindungen mit langer Leerlaufzeit sowie für die Erkennung des Livezustands von Endpunkten verwendet werden. TCP-Keep-Alives werden als doppelte ACK-Vorgänge für die Endpunkte angezeigt und sind mit geringem Aufwand verbunden und für die Anwendungsschicht unsichtbar.

  • Da Timer für UDP-Timeouts nicht konfigurierbar sind, sollten UDP-Keepalives verwendet werden, um sicherzustellen, dass der Wert des Leerlauftimeouts nicht erreicht und die Verbindung aufrechterhalten wird. Im Gegensatz zu TCP-Verbindungen gilt ein UDP-Keepalive, das auf einer Seite der Verbindung aktiviert wurde, nur für den Datenverkehrsfluss in eine Richtung. UDP-Keepalives müssen auf beiden Seiten des Datenverkehrsflusses aktiviert werden, um den Datenverkehrsfluss aktiv zu halten.

Einschränkungen

Nächste Schritte