Cloud NAT-Regeln
Auf dieser Seite finden Sie eine Übersicht über Cloud NAT-Regeln für Public NAT. Mit diesen Regeln können Sie festlegen, wie Cloud NAT für die Verbindung zum Internet verwendet wird.
Cloud NAT-Regeln für Public NAT unterstützen die Quellnetzwerkadressübersetzung (SNAT) basierend auf der Quell- oder Zieladresse.
NAT-Regeln
Wenn Sie ein Cloud NAT-Gateway für Public NAT konfigurieren, verwenden Pakete, die von diesem NAT-Gateway übersetzt werden, standardmäßig denselben NAT-IP-Adressbereich, um alle Internetadressen zu erreichen. Wenn Sie mehr Kontrolle über Pakete benötigen, die von Cloud NAT übersetzt werden, können Sie NAT-Regeln hinzufügen.
Eine NAT-Regel definiert eine Übereinstimmungsbedingung und eine entsprechende Aktion. Nachdem Sie NAT-Regeln angegeben haben, wird jedes Paket mit jeder NAT-Regel abgeglichen. Wenn ein Paket die in einer Regel festgelegte Bedingung erfüllt, wird die entsprechende Aktion ausgeführt.
NAT-Regeln für Public NAT unterstützen sowohl den Abgleich von Quell- als auch von Zieladressen:
- Bei quellbasierten Regeln werden Pakete anhand ihrer Quell-IP-Adresse zugeordnet. Nur IPv4-Quelladressen werden unterstützt.
- Bei zielbasierten Regeln werden Pakete anhand ihrer Ziel-IP-Adresse abgeglichen. Es werden nur IPv4-Zieladressen unterstützt.
Das Kombinieren von quell- und zielbasierten Bedingungen in einer einzelnen NAT-Regel ist nicht zulässig. Weitere Informationen finden Sie unter NAT-Regeln – Spezifikationen.
Beispiele für die Konfiguration von Cloud NAT-Regeln
Dieser Abschnitt enthält Konfigurationsbeispiele für quell- und zielbasierte NAT-Regeln.
Quellbasierte Regeln
Das folgende Beispiel zeigt, wie Sie quellbasierte NAT-Regeln verwenden können.
Wenn ein Cloud NAT-Gateway für IPv4-Traffic in einem Subnetz konfiguriert ist, bietet das Gateway standardmäßig NAT für die primäre interne IP-Adresse und die Alias-IP-Bereiche aller VM-Instanzen in diesem Subnetz. Mit quellbasierten NAT-Regeln können Sie NAT auch für VM-Instanzen mit aktivierter IP-Weiterleitung konfigurieren.
In diesem Beispiel ist Cloud NAT in Subnet A konfiguriert. Im Subnetz sendet eine VM-Instanz mit der primären internen IP-Adresse 10.1.1.2 und dem Alias-IP-Bereich 10.2.1.0/24 Traffic an das Internet. Beachten Sie die folgenden Anforderungen für die VM-Instanz:
- Wenn ein Paket aus dem IP-Bereich
192.168.1.0/24stammt, muss die VM die NAT-IP-Adresse203.0.113.10verwenden, um Traffic an ein beliebiges Internetziel zu senden. - Wenn ein Paket aus dem IP-Bereich
192.168.2.0/24stammt, muss die VM die NAT-IP-Adresse203.0.113.20verwenden, um Traffic an ein beliebiges Internetziel zu senden. - Wenn ein Paket von der IP-Adresse
10.1.1.2oder dem IP-Bereich10.2.1.0/24stammt, muss die VM die NAT-IP-Adresse203.0.113.30verwenden, um Traffic an ein beliebiges Internetziel zu senden.
Um diese Anforderungen zu erfüllen, erstellen Sie zwei quellbasierte NAT-Regeln für weitergeleitete Pakete und die Standardregel für Pakete von der primären internen IP-Adresse und dem Alias-IP-Bereich der VM-Instanz:
- Quellbasierte Regel 1: Wenn die Quelladresse
192.168.1.0/24ist, verwenden Sie203.0.113.10, um Traffic an das Internet zu senden. - Quellbasierte Regel 2: Wenn die Quelladresse
192.168.2.0/24ist, verwenden Sie203.0.113.20, um Traffic an das Internet zu senden. - Die Standardregel: Verwenden Sie für alle anderen Pakete
203.0.113.30, um Traffic an das Internet zu senden.
Wenn die Quelladresse eines von der VM-Instanz weitergeleiteten Pakets nicht mit Regel 1 oder Regel 2 übereinstimmt, wird das Paket verworfen.
Ein weiteres Beispiel für die Verwendung von quellbasierten NAT-Regeln finden Sie unter Cloud WAN unter der Haube: ein genauerer Blick auf die verschiedenen Netzwerkfunktionen.
Zielortbasierte Regeln
Das folgende Beispiel zeigt, wie NAT-Regeln verwendet werden, wenn Ihr Ziel den Zugriff von nur wenigen IP-Adressen zulässt. Wir empfehlen, dass für Traffic von Ihren Google Cloud -VMs in privaten Subnetzen zu solchen Zielen Quell-NAT nur mit den zulässigen IP-Adressen durchgeführt wird. Ebenso empfehlen wir, diese IP-Adressen nicht für andere Ziele zu verwenden.
Beachten Sie die folgenden Anforderungen für VMs in Subnet-1 (10.10.10.0/24), die sich in Region A des VPC-Netzwerks test befinden:
- Die VMs müssen die NAT-IP-Adresse
203.0.113.20verwenden, um Traffic an das Ziel198.51.100.20/30zu senden. - Die VMs müssen die NAT-IP-Adresse
203.0.113.30verwenden, um Traffic an das Ziel198.51.100.30oder198.51.100.31zu senden. - Die VMs müssen die NAT-IP-Adresse
203.0.113.40verwenden, um Traffic an ein anderes Internetziel zu senden.
Dieses VPC-Netzwerk enthält außerdem zwei zusätzliche Subnetze in derselben Region. Diese VMs müssen die NAT-IP-Adresse 203.0.113.10 verwenden, um Traffic an ein beliebiges Ziel zu senden.
Sie können für dieses Beispiel NAT-Regeln verwenden, benötigen aber zwei NAT-Gateways, da Subnet-1 (10.10.10.0/24) NAT-Regeln hat, die sich von den anderen Subnetzen unterscheiden. Gehen Sie so vor, um diese Konfiguration zu erstellen:
- Erstellen Sie ein Gateway namens
Cloud NAT Gateway 1fürSubnet-1mit der NAT-IP-Adresse203.0.113.40und fügen Sie die folgenden Regeln hinzu:- NAT-Regel 1 in
Cloud NAT Gateway 1: Verwenden Sie203.0.113.20für NAT, wenn das Ziel198.51.100.20/30ist. - NAT-Regel 2 in
Cloud NAT Gateway 1: Verwenden Sie203.0.113.30für NAT, wenn das Ziel198.51.100.30oder198.51.100.31ist.
- NAT-Regel 1 in
- Erstellen Sie ein Gateway namens
Cloud NAT Gateway 2für die anderen Subnetze der Region und weisen Sie die NAT-IP-Adresse203.0.113.10zu. In diesem Schritt sind keine NAT-Regeln erforderlich.
Spezifikationen für NAT-Regeln
- Cloud NAT unterstützt quellen- und zielbasierte Regeln. Jede Regel definiert eine Bedingung, die auf der Quell- oder Zieladresse basiert, aber nicht auf beiden.
- Eine Regelpriorität identifiziert eine NAT-Regel eindeutig, von 0 (höchste Priorität) bis 65.000 (niedrigste Priorität). Zwei Regeln können nicht dieselbe Priorität haben.
- Jede NAT-Konfiguration hat eine Standardregel:
- Die Standardregel wird angewendet, wenn in derselben NAT-Konfiguration keine andere NAT-Regel übereinstimmt.
- Die Regelpriorität der Standardregel ist
65001. - Sowohl bei quell- als auch bei zielbasierten Regeln ist der IP-CIDR-Bereich der Standardregel
0.0.0.0/0. - Die Standardregel gilt nicht für weitergeleitete Pakete. Wenn Sie NAT für diese Pakete verwenden möchten, muss Ihre NAT-Konfiguration eine entsprechende quellbasierte Regel enthalten. Weitere Informationen finden Sie unter Quellbasierte Regeln.
- Cloud NAT-Regeln werden nur unterstützt, wenn der Wert der Option für die NAT-IP-Zuweisung
MANUAL_ONLYist. Alle in einer bestimmten Regel konfigurierten IP-Adressen müssen derselben Stufe angehören.
Sie können nicht IP-Adressen sowohl der Premium-Stufe als auch der Standardstufe in derselben Regel (einschließlich der Standardregel) verwenden.
IP-CIDR-Bereiche in Übereinstimmungsbedingungen dürfen sich nicht über NAT-Regeln hinweg überschneiden. Auf ein bestimmtes Paket kann höchstens eine Regel angewendet werden. Wenn ein Paket sowohl mit einer quell- als auch mit einer zielbasierten Regel übereinstimmt, wendet Cloud NAT die Regel mit der höheren Priorität an.
Sie können keine NAT-Regel mit
0.0.0.0/0als Quell- oder Zielbereich erstellen, da dieser Bereich von der Standardregel verwendet wird.NAT-IP-Adressen in NAT-Regeln dürfen sich nicht überschneiden.
Eine Regel muss entweder eine nicht leere
Active- oder eine nicht leereDrain-IP-Adresse haben. Wenn die Regel eine leereActive-IP-Adresse hat, werden neue Verbindungen, die der NAT-Regel entsprechen, beendet.NAT-Regeln können keinem NAT-Gateway hinzugefügt werden, für das die endpunktunabhängige Zuordnung aktiviert ist. Sie können die endpunktunabhängige Zuordnung nicht für ein NAT-Gateway aktivieren, das NAT-Regeln enthält.
Das NAT-Gateway verwendet den Konfigurationswert für die Mindestanzahl an Ports pro VM, um VMs für jede NAT-Regel Quellports zuzuweisen. Da pro NAT-IP-Adresse 64.512 Ports verfügbar sind,bestimmt dieser Konfigurationswert die Gesamtzahl der VMs, die von einer NAT-IP-Adresse unterstützt werden können. Wenn die einer VM über eine bestimmte Regel zugewiesenen Ports aufgebraucht sind, werden neue Verbindungen, die dieser Regel entsprechen, verworfen, auch wenn für andere Regeln Ports verfügbar sind.
Betrachten Sie beispielsweise ein Subnetz mit 16 VMs, in dem das NAT-Gateway mit 4.096 Ports pro VM konfiguriert ist. Das Gateway hat zwei NAT-Regeln (
rule-1mit einer NAT-IP-Adresse undrule-2mit zwei NAT-IP-Adressen) zusätzlich zur Standard-NAT-Regel mit zwei NAT-IP-Adressen. In diesem Beispiel haben die Standard- undrule-2-Bereiche genügend Kapazität, um die erforderliche Anzahl von Ports für alle VMs zuzuweisen.rule-1kann jedoch nicht die vollständige Zuweisung für alle 16 VMs (16 × 4.096) bereitstellen, da die einzelne IP-Adresse nur 64.512 Ports unterstützt. Daher kann Traffic, der mitrule-1übereinstimmt, für jede VM verworfen werden, die nicht die vollständige Portzuweisung erhält.Um die Zuweisung von inaktiven Ports bei Verwendung quellbasierter Regeln zu minimieren, weist Cloud NAT Ports nur dann einem VM-Endpunkt zu, wenn seine primäre interne oder Alias-IP-Adresse mit der in der NAT-Regel angegebenen Quelladresse übereinstimmt. Wenn in einer Regel beispielsweise
10.1.1.1angegeben ist, einer VM aber10.1.1.2zugewiesen ist, weist Cloud NAT dieser VM für diese bestimmte Regel keine Ports zu.Wenn für eine infrage kommende VM jedoch die IP-Weiterleitung aktiviert ist, werden immer Ports zugewiesen, da die VM Pakete für andere Quellen weiterleiten kann.
Regelausdruckssprache
NAT-Regeln werden in der Common Expression Language-Syntax geschrieben.
Ein Ausdruck erfordert zwei Komponenten:
- Attribute, die in Regelausdrücken geprüft werden können
- Vorgänge, die für die Attribute als Teil eines Ausdrucks ausgeführt werden können
Der folgende Ausdruck verwendet beispielsweise die Attribute destination.ip und 198.51.100.0/24 im Vorgang inIpRange(). In diesem Fall gibt der Ausdruck „true“ zurück, wenn destination.ip im IP-Adressbereich 198.51.100.0/24 liegt.
inIpRange(destination.ip, '198.51.100.0/24')
NAT-Regeln unterstützen nur die folgenden Attribute und Vorgänge:
Attribute
Attribute stellen Informationen aus einem ausgehenden Paket dar, z. B. die Quell- und Ziel-IP-Adresse.
| Attributname | Beschreibung |
|---|---|
source.ip |
Quell-IP-Adresse des Pakets |
destination.ip |
Ziel-IP-Adresse des Pakets |
Vorgänge
In der folgenden Referenz werden die Operatoren beschrieben, die Sie mit Attributen zum Definieren von Regelausdrücken verwenden können.
| Vorgang | Beschreibung |
|---|---|
inIpRange(string, string) -> bool |
inIpRange(x, y) gibt true zurück,
wenn der IP-CIDR-Bereich y die IP-Adresse x enthält. |
|| |
Logischer Operator. x || y gibt true zurück, wenn x oder y gleich true ist. |
== |
Gleichheitsoperator. x == y gibt true zurück, wenn x gleich y ist. |
Beispielausdrücke
Sie können Pakete entweder anhand der Quell- oder der Zieladresse abgleichen, aber nicht anhand beider.
Beispiele für den quellenbasierten Abgleich
Pakete mit der Quell-IP-Adresse 10.0.0.25 abgleichen:
"source.ip == '10.0.0.25'"
Pakete mit der Quell-IP-Adresse 10.0.0.25 oder 10.0.0.26 abgleichen:
"source.ip == '10.0.0.25' || source.ip == '10.0.0.26'"
Pakete mit dem Quell-IP-Adressbereich 10.0.2.0/24 abgleichen:
"inIpRange(source.ip, '10.0.2.0/24')"
Pakete mit der Quell-IP-Adresse 10.0.0.25 oder dem Quell-IP-Adressbereich 10.0.2.0/24 abgleichen:
"source.ip == '10.0.0.25' || inIpRange(source.ip, '10.0.2.0/24')"
Beispiele für den zielortbasierten Abgleich
Pakete mit der Ziel-IP-Adresse 198.51.100.20 abgleichen:
"destination.ip == '198.51.100.20'"
Pakete mit der Ziel-IP-Adresse 198.51.100.20 oder 198.51.100.21 abgleichen:
"destination.ip == '198.51.100.20' || destination.ip == '198.51.100.21'"
Pakete mit dem Ziel-IP-Adressbereich 198.51.100.10/30 abgleichen:
"inIpRange(destination.ip, '198.51.100.10/30')"
Pakete mit der Ziel-IP-Adresse 198.51.100.20 oder dem Ziel-IP-Adressbereich 198.51.100.10/30 abgleichen:
"destination.ip == '198.51.100.20' || inIpRange(destination.ip, '198.51.100.10/30')"