Öffentliche NAT

Mit einer öffentlichen NAT können Ihre VM-Instanzen in Google Cloud, die keine öffentlichen IP-Adressen haben, über einen Satz freigegebener öffentlicher IP-Adressen mit dem Internet kommunizieren. Cloud NAT verwendet ein öffentliches NAT-Gateway, das jeder VM, die das Gateway zum Erstellen ausgehender Verbindungen zum Internet verwendet, eine Reihe externer IP-Adressen und Quellports zuweist.

Grundlegende Konfiguration und Workflow für öffentliche NAT

Das folgende Diagramm zeigt eine grundlegende Konfiguration für öffentliche NAT:

Beispiel für eine öffentliche NAT-Übersetzung.
Beispiel für eine öffentliche NAT-Übersetzung (zum Vergrößern klicken).

In diesem Fall gilt Folgendes:

  • Das Gateway nat-gw-us-east ist so konfiguriert, dass es auf den primären IP-Adressbereich von subnet-1 in der Region us-east1 angewendet wird. Eine VM, deren Netzwerkschnittstelle keine externe IP-Adresse hat, kann Traffic über die primäre interne IP-Adresse oder einen Alias-IP-Bereich aus dem primären IP-Adressbereich von subnet-1, 10.240.0.0/16, an das Internet senden.

  • Eine VM, deren Netzwerkschnittstelle keine externe IP-Adresse hat und deren primäre interne IP-Adresse sich in subnet-2 befindet, kann nicht auf das Internet zugreifen, da kein öffentliches NAT-Gateway für einen IP-Adressbereich dieses Subnetzes gilt.

  • Das Gateway nat-gw-eu ist so konfiguriert, dass es auf den primären IP-Adressbereich von subnet-3 in der Region europe-west1 angewendet wird. Eine VM, deren Netzwerkschnittstelle keine externe IP-Adresse hat, kann Traffic über die primäre interne IP-Adresse oder einen Alias-IP-Bereich aus dem primären IP-Adressbereich von subnet-3, 192.168.1.0/24, an das Internet senden.

Beispiel für einen öffentlichen NAT-Workflow

Im obigen Diagramm muss eine VM mit der primären internen IP-Adresse 10.240.0.4 ohne externe IP-Adresse ein Update von der externen IP-Adresse 203.0.113.1 herunterladen. Im Diagramm ist das Gateway nat-gw-us-east so konfiguriert:

  • Mindestanzahl an Ports pro Instanz: 64
  • Zwei NAT-IP-Adressen (Network Address Translation) wurden manuell zugewiesen: 192.0.2.50 und 192.0.2.60.
  • NAT für den primären IP-Adressbereich von subnet-1 bereitgestellt

Öffentliche NAT folgt dem Portreservierungsverfahren, um die folgenden Tupel aus NAT-Quell-IP-Adresse und Quellport für jede der VMs im Netzwerk zu reservieren. Das öffentliche NAT-Gateway reserviert beispielsweise 64 Quellports für die VM mit der internen IP-Adresse 10.240.0.4. Die NAT-IP-Adresse 192.0.2.50 hat 64 nicht reservierte Ports. Deshalb reserviert das Gateway die folgenden 64 Tupel aus NAT-Quell-IP-Adresse und Quellport für diese VM:

  • 192.0.2.50:34000 bis 192.0.2.50:34063

Wenn die VM ein Paket mit dem TCP-Protokoll an den Update-Server 203.0.113.1 auf dem Zielport 80 sendet, geschieht Folgendes:

  • Die VM sendet ein Anfragepaket mit folgenden Attributen:

    • Quell-IP-Adresse: 10.240.0.4, die primäre interne IP-Adresse der VM
    • Quellport: 24000, der sitzungsspezifische Quellport, der vom Betriebssystem der VM ausgewählt wurde
    • Zieladresse: 203.0.113.1, die externe IP-Adresse des Update-Servers
    • Zielport: 80, der Zielport für HTTP-Traffic zum Update-Server
    • Protokoll: TCP
  • Das Gateway nat-gw-us-east führt für ausgehenden Traffic eine Quellnetzwerkadressübersetzung (Source Network Address Translation, SNAT) durch und schreibt die NAT-Quell-IP-Adresse und den Quellport des Anfragepakets um. Das geänderte Paket wird an das Internet gesendet, wenn das VPC-Netzwerk (Virtual Private Cloud) eine Route für das Ziel 203.0.113.1 hat, dessen nächster Hop das Standard-Internetgateway ist. Eine Standardroute erfüllt diese Anforderung in der Regel.

    • NAT-Quell-IP-Adresse: 192.0.2.50 von einem der reservierten Tupel aus NAT-Quell-IP-Adresse und Quellport
    • Quellport: 34022, ein nicht verwendeter Quellport aus einem der reservierten Quellport-Tupel der VM
    • Zieladresse: 203.0.113.1, unverändert
    • Zielport: 80, unverändert
    • Protokoll: TCP, unverändert
  • Wenn der Update-Server ein Antwortpaket sendet, kommt dieses Paket mit folgenden Attributen am nat-gw-us-east Gateway an:

    • Quell-IP-Adresse: 203.0.113.1, die externe IP-Adresse des Update-Servers
    • Quellport: 80, die HTTP-Antwort vom Update-Server
    • Zieladresse: 192.0.2.50, entspricht der ursprünglichen NAT-Quell-IP-Adresse des Anfragepakets
    • Zielport: 34022, entspricht dem Quellport des Anfragepakets
    • Protokoll: TCP, unverändert
  • Das Gateway nat-gw-us-east führt DNAT für das Antwortpaket aus und schreibt die Zieladresse und den Zielport des Antwortpakets um, damit das Paket an die VM gesendet wird:

    • Quell-IP-Adresse: 203.0.113.1, unverändert
    • Quellport: 80, unverändert
    • Zieladresse: 10.240.0.4, die primäre interne IP-Adresse der VM
    • Zielport: 24000, entspricht dem ursprünglichen sitzungsspezifischen Quellport des Anfragepakets
    • Protokoll: TCP, unverändert

Spezifikationen

Allgemeine Spezifikationen

Sie können ein öffentliches NAT-Gateway so konfigurieren, dass dem Internet NAT für Pakete bereitgestellt wird, die von folgenden Absendern gesendet werden:

  • Die primäre interne IP-Adresse der Compute Engine VM-Schnittstelle, sofern der Netzwerkschnittstelle keine externe IP-Adresse zugewiesen ist. Wenn der Netzwerkschnittstelle eine externe IP-Adresse zugewiesen ist, führt Google Cloud automatisch eine 1:1-NAT für Pakete aus, deren Quellen mit der primären internen IP-Adresse der Schnittstelle übereinstimmen, da die Netzwerkschnittstelle die Anforderungen für den Internetzugriff von Google Cloud erfüllt. Das Vorhandensein einer externen IP-Adresse in einer Schnittstelle hat immer Vorrang und führt immer eine 1:1-NAT ohne öffentliche NAT aus.

  • Ein Alias-IP-Bereich, der der Netzwerkschnittstelle der VM zugewiesen ist. Auch wenn der Netzwerkschnittstelle eine externe IP-Adresse zugewiesen ist, können Sie ein öffentliches NAT-Gateway so konfigurieren, dass NAT für Pakete bereitgestellt wird, deren Quellen aus einem Alias-IP-Bereich der Schnittstelle stammen. Wenn eine externe IP-Adresse einer Schnittstelle zugewiesen ist, wird für Alias-IP-Adressen nie 1:1-NAT ausgeführt.

  • Bei GKE-Clustern (Google Kubernetes Engine) kann die öffentliche NAT einen Dienst bereitstellen, auch wenn der Cluster unter bestimmten Umständen externe IP-Adressen hat. Weitere Informationen finden Sie unter GKE-Interaktion.

Die öffentliche NAT erlaubt ausgehende Verbindungen und die eingehenden Antworten auf diese Verbindungen. Jedes öffentliche NAT-Gateway führt Quell-NAT für ausgehenden Traffic und Ziel-NAT für erstellte Antwortpakete aus.

Öffentliche NAT erlaubt keine unerwünschten eingehenden Anfragen aus dem Internet, auch wenn die Firewallregeln diese Anfragen sonst zulassen würden. Weitere Informationen finden Sie unter Anwendbare RFCs.

Jedes öffentliche NAT-Gateway ist einem einzelnen VPC-Netzwerk, einer Region und einem Cloud Router zugeordnet. Das öffentliche NAT-Gateway und der Cloud Router stellen eine Steuerungsebene bereit. Sie sind nicht an der Datenebene beteiligt, sodass Pakete nicht über das öffentliche NAT-Gateway oder den Cloud Router weitergeleitet werden.

Routen und Firewallregeln

Öffentliche NAT basiert auf benutzerdefinierten statischen Routen, deren nächster Hop das Standard-Internetgateway ist. Zur vollständigen Nutzung eines öffentlichen NAT-Gateways benötigt Ihr Virtual Private Cloud-Netzwerk eine Standardroute, deren nächster Hop das Standard-Internetgateway ist. Weitere Informationen finden Sie unter Interaktionen mit Routen.

Für die öffentliche NAT gibt es keine Cloud NGFW-Regelanforderungen. Firewallregeln werden direkt auf die Netzwerkschnittstellen von Compute Engine-VMs angewendet, nicht auf öffentliche NAT-Gateways.

Sie müssen keine speziellen Firewallregeln erstellen, die Verbindungen zu oder von NAT-IP-Adressen zulassen. Wenn ein öffentliches NAT-Gateway NAT für die Netzwerkschnittstelle einer VM bereitstellt, werden anwendbare Firewallregeln für ausgehenden Traffic als Pakete für diese Netzwerkschnittstelle vor NAT ausgewertet. Firewallregeln für eingehenden Traffic werden ausgewertet, nachdem Pakete von NAT verarbeitet wurden.

Anwendbarkeit des Subnetz-IP-Adressbereichs

Sie können das öffentliche NAT-Gateway so konfigurieren, dass NAT für die primäre interne IP-Adresse der VM-Netzwerkschnittstelle, Alias-IP-Bereiche oder beides bereitgestellt wird. Für diese Konfiguration wählen Sie die Subnetz-IP-Adressbereiche aus, auf die das Gateway angewendet werden soll.

Sie können ein öffentliches NAT-Gateway konfigurieren, um NAT für Folgendes bereitzustellen:

  • Primäre und sekundäre IP-Adressbereiche aller Subnetze in der Region. Ein einzelnes öffentliches NAT-Gateway bietet NAT für die primären internen IP-Adressen und alle Alias-IP-Bereiche zulässiger VMs, deren Netzwerkschnittstellen ein Subnetz in der Region verwenden. Diese Option verwendet genau ein NAT-Gateway pro Region.

  • Primäre IP-Adressbereiche aller Subnetze in der Region. Ein einzelnes öffentliches NAT-Gateway bietet NAT für die primären internen IP-Adressen und Alias-IP-Bereiche aus den primären IP-Adressbereichen des Subnetzes geeigneter VMs, deren Netzwerkschnittstellen ein Subnetz in der Region verwenden. Sie können zusätzliche öffentliche NAT-Gateways in der Region erstellen, um NAT für Alias-IP-Bereiche aus sekundären Subnetz-IP-Adressbereichen zulässiger VMs bereitzustellen.

  • Liste der benutzerdefinierten Subnetze: Ein einzelnes öffentliches NAT-Gateway bietet NAT für die primären internen IP-Adressen und alle Alias-IP-Bereiche zulässiger VMs, deren Netzwerkschnittstellen ein Subnetz aus einer Liste bestimmter Subnetze verwenden.

  • Benutzerdefinierte IP-Adressbereiche des Subnetzes: Sie können im Rahmen der öffentlichen NAT-Kontingente und -Limits beliebig viele öffentliche NAT-Gateways erstellen. Sie wählen aus, welche primären oder sekundären IP-Adressbereiche des Subnetzes von jedem Gateway bereitgestellt werden sollen.

Mehrere öffentliche NAT-Gateways

Sie können mehrere öffentliche NAT-Gateways in derselben Region eines VPC-Netzwerk haben, wenn eine der folgenden Bedingungen erfüllt ist:

  • Jedes Gateway ist für ein anderes Subnetz konfiguriert.

  • Innerhalb eines einzelnen Subnetzes ist jedes Gateway für einen anderen IP-Adressbereich konfiguriert. Mithilfe einer benutzerdefinierten Cloud NAT-Zuordnung können Sie ein öffentliches NAT-Gateway einem bestimmten Subnetz oder IP-Adressbereich zuordnen.

Solange sich die zugeordneten NAT-Gateways nicht überschneiden, können Sie im Rahmen von Kontingenten und Limits für öffentliche NAT so viele öffentliche NAT-Gateways wie nötig erstellen. Weitere Informationen finden Sie unter Einschränkungen für Cloud NAT-Gateways.

Bandbreite

Durch die Verwendung eines öffentlichen NAT-Gateways ändert sich nicht die Bandbreite für ausgehenden oder eingehenden Traffic, die eine VM verwenden kann. Informationen zu Bandbreitenspezifikationen, die je nach Maschinentyp variieren, finden Sie unter Netzwerkbandbreite in der Compute Engine-Dokumentation.

VMs mit mehreren Netzwerkschnittstellen

Wenn Sie eine VM mit mehreren Netzwerkschnittstellen konfigurieren, muss sich jede Schnittstelle in einem separaten VPC-Netzwerk befinden. Daher gilt Folgendes:

  • Ein öffentliches NAT-Gateway kann nur auf eine einzelne Netzwerkschnittstelle einer VM angewendet werden. Separate öffentliche NAT-Gateways können NAT für dieselbe VM bereitstellen, wobei jedes Gateway für eine separate Schnittstelle gilt.
  • Eine Schnittstelle einer VM mit mehreren Netzwerkschnittstellen kann eine externe IP-Adresse haben, sodass diese Schnittstelle nicht für öffentliche NAT infrage kommt. Eine andere Schnittstelle kann jedoch für NAT infrage kommen, wenn diese Schnittstelle keine externe IP-Adresse hat und Sie ein öffentliches NAT-Gateway für den entsprechenden Subnetz-IP-Adressbereich konfiguriert haben.

NAT-IP-Adressen und -Ports

Wenn Sie ein öffentliches NAT-Gateway erstellen, können Sie festlegen, dass das Gateway automatisch regionale externe IP-Adressen zuweist. Alternativ können Sie dem Gateway manuell eine feste Anzahl regionaler externer IP-Adressen zuweisen.

Prüfen Sie für ein öffentliches NAT-Gateway mit automatischer NAT-IP-Adresszuweisung Folgendes:

  • Sie können die Netzwerkdienststufen (Premium-Stufe- oder Standardstufe) auswählen, über die das öffentliche NAT-Gateway die IP-Adressen zuweist.
  • Wenn Sie die Stufe für ein öffentliches NAT-Gateway mit automatisch zugewiesenen NAT-IP-Adressen ändern, gibt Google Cloud alle zugewiesenen IP-Adressen für dieses Gateway frei und hebt alle Portzuweisungen auf.

    Ein neuer Satz von IP-Adressen der neu ausgewählten Stufe wird automatisch zugewiesen und allen Endpunkten werden neue Portzuweisungen bereitgestellt.

Sie können für ein bestimmtes öffentliches NAT-Gateway unter bestimmten conditions auch manuell IP-Adressen der Premium-Stufe, der Standardstufe oder von beiden zuweisen.

Weitere Informationen zur Zuweisung von NAT-IP-Adressen finden Sie unter Öffentliche NAT-IP-Adressen.

Sie können die Anzahl der Quellports konfigurieren, die jedes öffentliche NAT-Gateway auf jeder VM reserviert, für die es NAT-Dienste bereitstellen soll. Sie können eine statische Portzuweisung konfigurieren, bei der für jede VM die gleiche Anzahl von Ports reserviert ist, oder die dynamische Portzuweisung, bei der die Anzahl der reservierten Ports zwischen dem von Ihnen angegebenen Mindest- und Höchstwert variieren kann.

Die VMs, für die NAT bereitgestellt werden soll, werden durch die Subnetz-IP-Adressbereiche bestimmt, für die das Gateway konfiguriert ist.

Weitere Informationen zu Ports finden Sie unter Ports.

Anwendbare RFCs

Öffentliche NAT unterstützt die endpunktunabhängige Zuordnung und die endpunktabhängige Filterung gemäß RFC 5128. Sie können die endpunktunabhängige Zuordnung aktivieren oder deaktivieren. Standardmäßig ist die endpunktunabhängige Zuordnung deaktiviert, wenn Sie ein NAT-Gateway erstellen.

Endpunktunabhängige Zuordnung bedeutet Folgendes: Wenn eine VM Pakete über ein bestimmtes Paar aus interner IP-Adresse und Port an verschiedene Ziele sendet, ordnet das Gateway alle diese Pakete demselben Paar aus NAT-IP-Adresse und Port zu, unabhängig vom Ziel der Pakete. Weitere Informationen und Auswirkungen auf die endpunktunabhängige Zuordnung finden Sie unter Gleichzeitige Portwiederverwendung und endpunktunabhängige Zuordnung.

Endpunktabhängige Filterung bedeutet, dass Antwortpakete aus dem Internet nur dann eingehen dürfen, wenn sie von einer IP-Adresse und einem Port stammen, an die eine VM bereits Pakete gesendet hat. Die Filterung ist endpunktabhängig, unabhängig vom Typ der Endpunktzuordnung. Dieses Feature ist immer aktiviert und kann vom Nutzer nicht konfiguriert werden.

Weitere Informationen zur Beziehung zwischen Ports und Verbindungen finden Sie unter Ports und Verbindungen sowie im Beispiel für NAT-Ablauf.

Öffentliche NAT ist eine Port-eingeschränkte Cone-NAT gemäß RFC 3489.

NAT-Durchlauf

Wenn die endpunktunabhängige Zuordnung aktiviert ist, ist die öffentliche NAT mit gängigen NAT-Traversal-Protokollen wie STUN und turn kompatibel, wenn Sie Ihre eigenen STUN- oder Turn-Server bereitstellen:

  • STUN (Session Traversal Utilities for NAT, RFC 5389) ermöglicht die direkte Kommunikation zwischen VMs hinter NAT, wenn ein Kommunikationskanal eingerichtet wurde.
  • TURN (Traversal Using Relays around NAT, RFC 5766) ermöglicht die Kommunikation zwischen VMs hinter NAT über einen Drittanbieter-Server, auf dem dieser Server eine externe IP-Adresse hat. Jede VM stellt eine Verbindung zur externen IP-Adresse des Servers her und dieser Server leitet die Kommunikation zwischen den beiden VMs weiter. TURN ist robuster, verbraucht jedoch mehr Bandbreite und Ressourcen.

NAT-Zeitlimits

Öffentliche NAT legt Zeitlimits für Protokollverbindungen fest. Informationen zu diesen Zeitüberschreitungen und ihren Standardwerten finden Sie unter NAT-Zeitlimits.

Nächste Schritte