Die Generic Network Virtualization Encapsulation (GENEVE) ist ein Netzwerk-Encapsulation-Protokoll, das das ursprüngliche Paket mit zusätzlichen Metadaten kapselt. Diese zusätzlichen Metadaten ermöglichen eine flexible und erweiterbare Netzwerkvirtualisierung.
Das folgende Diagramm zeigt das Headerformat eines GENEVE-Pakets.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Ver| Opt len |O|C| Rsvd. | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In der folgenden Tabelle werden die im vorherigen Diagramm dargestellten GENEVE-Headerfelder beschrieben:
| Feld | Beschreibung | Feldlänge |
|---|---|---|
| Ver | Die Version des GENEVE-Protokolls. Die einzige unterstützte Version ist null (0). Weitere Informationen finden Sie unter Tunnel-Header-Felder. | 2 Bit |
| Opt len | Die Länge der Optionsfelder, ausgedrückt in 4-Byte-Vielfachen, ohne den 8-Byte-Tunnelheader. Weitere Informationen finden Sie unter Tunnel-Header-Felder. | 6 Bit |
| O | Das Kontrollpaketbit. Weitere Informationen finden Sie unter Tunnel-Header-Felder. | 1 Bit |
| C | Das Bit für kritische Optionen. Weitere Informationen finden Sie unter Tunnel-Header-Felder. | 1 Bit |
| Rsvd | Reserviertes Feld, das bei der Übertragung null (0) sein muss und beim Empfang ignoriert werden muss. Weitere Informationen finden Sie unter Tunnel-Header-Felder. | 6 Bit |
| Protokolltyp | Der Protokolltyp lässt jeden Ethertype zu. Die Netzwerksicherheitsintegration lässt jedoch nur IPv4 (0x0800) oder IPv6 (0x86DD) zu. |
16 Bit |
| Virtual Network Identifier (VNI) | Eine eindeutige Kennung für ein virtuelles Netzwerkelement. Bei der Integration der Netzwerksicherheit wird dieses Feld nicht ausgefüllt. Das bedeutet, dass der VNI auf null (0) gesetzt ist. Weitere Informationen finden Sie unter Out-of-Band-Integration GENEVE. | 24 Bit |
| Rsvd | Reserviertes Feld, das bei der Übertragung null (0) sein muss und beim Empfang ignoriert werden muss. Weitere Informationen finden Sie unter Tunnel-Header-Felder. | 8 Bit |
Google Cloud-spezifische GENEVE-Optionen
Der GENEVE-Header verwendet für seine Optionen das TLV-Format (Type-Length-Value). Das bedeutet, dass jede Option mit einer Typ-ID, einem Längenfeld, das die Größe des Werts angibt, und dem Wert selbst codiert wird. Dieses Format bietet Flexibilität und Erweiterbarkeit, da neue Optionen hinzugefügt werden können, ohne bestehende Implementierungen zu beeinträchtigen. In den folgenden Abschnitten werden die Reihenfolge und Anzahl der Optionen beschrieben. Die Anzahl und Reihenfolge der Optionen können sich im Laufe der Zeit ändern. Um die Vorwärtskompatibilität für Ihre Geräteimplementierung zu gewährleisten, sollten Sie den GENEVE-Header anhand der TLV-Felder parsen.
Die GENEVE-Optionen, die für Google Cloud spezifisch sind, lauten so:
- Netzwerk-ID (Netzwerk-Cookie)
- Endpunkt-ID (Endpunkt-Cookie)
- Profil-ID
- Zeitstempel (Vorschau)
- Stabile Netzwerk-ID (Vorschau)
Netzwerk-ID
Die Netzwerk-ID-Option, auch als „Netzwerk-Cookie“ bezeichnet, identifiziert das virtuelle Netzwerk, das mit GENEVE-gekapseltem Traffic in Google Cloudverknüpft ist. Diese Option wird durch die Optionsklasse 0x0132 (Google) und den Typ 0x01 (Network ID) identifiziert. Die Optionsdaten enthalten 32 Bit, von denen die ersten 28 eine undurchsichtige Netzwerk-ID darstellen. Der Zweck der verbleibenden 4 Bits wird im folgenden Diagramm und in der folgenden Tabelle beschrieben.
Das folgende Diagramm zeigt das Optionsformat im GENEVE-Paket.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x01 R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In der folgenden Tabelle werden die im vorherigen Diagramm gezeigten Optionsfelder beschrieben:
| Feld | Beschreibung | Feldlänge |
|---|---|---|
| Optionsklasse | Gibt die Organisation oder Einheit an, die die Option definiert hat.
Der Wert 0x0132 gibt Google als definierende Einheit an. |
16 Bit |
| Typ | Gibt den Typ der Option innerhalb einer Klasse an. Der Wert
0x01 gibt die Option „Network ID“ an.
Weitere Informationen finden Sie unter Tunneloptionen. |
8 Bit |
| R | Die Option „control“ ist für die zukünftige Verwendung reserviert. Diese Bits müssen bei der Übertragung null (0) sein und beim Empfang ignoriert werden. | 3 Bit |
| Len | Die Länge der Nutzlast der Option in 4‑Byte-Schritten. Die Nutzlast der Netzwerk-ID ist 32 Bit (4 Byte) lang. Die Länge für diese Option ist also auf 1 festgelegt. | 5 Bits |
| Netzwerk-Cookie | Das intransparente Netzwerk-Cookie, das ein virtuelles Netzwerk identifiziert. | 28 Bit |
| R | Reserviert für zukünftige Implementierung. Muss bei der Übertragung auf null (0) gesetzt und beim Empfang ignoriert werden. | 2 Bit |
| T | Gibt die TLS-Auslagerung für das gekapselte Paket an. Nicht verwendet. | 1 Bit |
| D | Gibt die Richtung des Pakets an. Ein Wert von null (0) steht für ein eingehendes Paket und ein Wert von eins (1) für ein ausgehendes Paket auf der gespiegelten virtuellen Maschine (VM). Bei Antworten mit direktem Internet-Egress ändert die Netzwerk-Appliance dieses Bit von 1 zu 0. |
1 Bit |
Endpunkt-ID
Die Option „Endpunkt-ID“, auch als „Endpunkt-Cookie“ bezeichnet, identifiziert den Erfassungspunkt eindeutig. Das ist ein Netzwerk-Interface-Controller auf einer Google Cloud-VM. Diese Option wird durch die Optionsklasse 0x0132 (Google) und den Typ 0x02 (Endpoint ID) identifiziert. Die Optionsdaten sind ein 128‑Bit-Wert.
Das folgende Diagramm zeigt das Optionsformat im GENEVE-Paket.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In der folgenden Tabelle werden die im vorherigen Diagramm gezeigten Optionsfelder beschrieben:
| Feld | Beschreibung | Feldlänge |
|---|---|---|
| Optionsklasse | Gibt die Organisation oder Einheit an, die die Option definiert hat.
Der Wert 0x0132 gibt Google als definierende Einheit an. |
16 Bit |
| Typ | Gibt den Typ der Option innerhalb einer Klasse an. Der Wert 0x02 gibt die Option „Endpunkt-ID“ an.
Weitere Informationen finden Sie unter Tunneloptionen. |
8 Bit |
| R | Die Option „control“ ist für die zukünftige Verwendung reserviert. Diese Bits müssen bei der Übertragung null (0) sein und beim Empfang ignoriert werden. | 3 Bit |
| Len | Die Länge der Nutzlast in 4‑Byte-Schritten. Die Nutzlast der Endpunkt-ID ist 128 Bit (16 Byte), daher wird die Länge für diese Option auf 4 festgelegt. | 5 Bits |
| Endpunkt-Cookie | Eine intransparente Kennung für den Erfassungspunkt (eine VM-NIC). | 128 Bit |
Profil-ID
Mit der Option „Profil-ID“ wird die Sicherheitsprofilgruppe für die Spiegelung angegeben, die auf den Traffic angewendet wird. Diese Option wird durch die Optionsklasse 0x0132 (Google) und den Typ 0x03 (Profil-ID) identifiziert. Die Optionsdaten sind eine 64‑Bit-Kennung, die dem Feld data_path_id in der Sicherheitsprofilgruppe entspricht. Auf dem Zielgerät können Sicherheitsrichtlinien basierend auf der Profilgruppen-ID erzwungen werden.
Das folgende Diagramm zeigt das Optionsformat im GENEVE-Paket.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In der folgenden Tabelle werden die im vorherigen Diagramm gezeigten Optionsfelder beschrieben:
| Feld | Beschreibung | Feldlänge |
|---|---|---|
| Optionsklasse | Gibt die Organisation oder Einheit an, die die Option definiert hat.
Der Wert 0x0132 gibt Google als definierende Einheit an. |
16 Bit |
| Typ | Gibt den Typ der Option innerhalb einer Klasse an. Der Wert
0x03 gibt die Option „Profil-ID“ an.
Weitere Informationen finden Sie unter Tunneloptionen. |
8 Bit |
| R | Die Option „control“ ist für die zukünftige Verwendung reserviert. Diese Bits müssen bei der Übertragung null (0) sein und beim Empfang ignoriert werden. | 3 Bit |
| Len | Die Länge der Nutzlast der Option in 4‑Byte-Schritten. Die Nutzlast der Profil-ID hat eine Länge von 64 Bit (8 Byte). Die Länge für diese Option ist also auf „2“ festgelegt. | 5 Bits |
| Profil-ID | Die Kennung der Sicherheitsprofilgruppe für die Spiegelung. | 64 Bit |
Zeitstempel
Die Zeitstempeloption gibt die Erfassungszeit des ursprünglichen Pakets auf der Quell-VM an. Diese Option wird durch die Optionsklasse 0x0132 (Google) und den Typ 0x0f (Zeitstempel) identifiziert.
Das folgende Diagramm zeigt das Optionsformat im GENEVE-Paket.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x0f |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Timestamp +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In der folgenden Tabelle werden die im vorherigen Diagramm gezeigten Optionsfelder beschrieben:
| Feld | Beschreibung | Feldlänge |
|---|---|---|
| Optionsklasse | Gibt die Organisation oder Einheit an, die die Option definiert hat.
Der Wert 0x0132 gibt Google als definierende Einheit an. |
16 Bit |
| Typ | Gibt den Typ der Option innerhalb einer Klasse an. Der Wert 0x0f gibt die Zeitstempeloption an.
Weitere Informationen finden Sie unter Tunneloptionen. |
8 Bit |
| R | Die Option „control“ ist für die zukünftige Verwendung reserviert. Diese Bits müssen bei der Übertragung null (0) sein und beim Empfang ignoriert werden. | 3 Bit |
| Len | Die Länge der Nutzlast der Option in 4‑Byte-Schritten. Die Zeitstempel-Payload ist 64 Bit (8 Byte) lang. Die Länge für diese Option ist also auf 2 festgelegt. | 5 Bits |
| Zeitstempel | Die Erfassungszeit des ursprünglichen Pakets, dargestellt als Nanosekunden seit der Epoche. Die Granularität auf Nanosekundenebene ist keine Garantie für eine Genauigkeit auf Nanosekundenebene. Das spezifische SLO für die Genauigkeit finden Sie in der Dokumentation des Produkts. | 64 Bit |
Stabile Netzwerk-ID
Mit der Option „Network Stable ID“ wird das Netzwerk der gespiegelten VM identifiziert. Diese Option wird durch die Optionsklasse 0x0132 (Google) und den Typ 0x10 (Network Stable ID) identifiziert.
Das folgende Diagramm zeigt das Optionsformat im GENEVE-Paket. Die stabile ID des Netzwerks besteht aus der Projektnummer und der Netzwerk-ID.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x10 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Project Number +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Network ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In der folgenden Tabelle werden die im vorherigen Diagramm gezeigten Optionsfelder beschrieben:
| Feld | Beschreibung | Feldlänge |
|---|---|---|
| Optionsklasse | Gibt die Organisation oder Einheit an, die die Option definiert hat.
Der Wert 0x0132 gibt Google als definierende Einheit an. |
16 Bit |
| Typ | Gibt den Typ der Option innerhalb einer Klasse an. Der Wert 0x10 gibt die Option „Network Stable ID“ an.
Weitere Informationen finden Sie unter Tunneloptionen. |
8 Bit |
| R | Die Option „control“ ist für die zukünftige Verwendung reserviert. Diese Bits müssen bei der Übertragung null sein und beim Empfang ignoriert werden. | 3 Bit |
| Len | Die Länge der Nutzlast der Option in 4‑Byte-Schritten. Die Nutzlast der Netzwerk-ID hat eine Länge von 128 Bit (16 Byte). Die Länge für diese Option wird daher auf 4 festgelegt. | 5 Bits |
| Stabile Netzwerk-ID | Das Netzwerk der gespiegelten VM. | 128 Bit (64 Bit für die Projektnummer und 64 Bit für die Netzwerk-ID) |
GENEVE-Header-Formate für die Netzwerksicherheitsintegration
In diesem Abschnitt werden die GENEVE-Headerformate beschrieben, die von Diensten zur Integration der Netzwerksicherheit verwendet werden.
GENEVE-Paketformat über IPv4
Das GENEVE-Paketformat kapselt einen kompakten Tunnel-Header in UDP über IPv4. Ein kleiner, fester Tunnelheader bietet Steuerinformationen sowie grundlegende Funktionen und Interoperabilität.
Das folgende Diagramm zeigt das GENEVE-Paketformat über IPv4.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of service| Total length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to live | Proto=17 (UDP)| Header checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In der folgenden Tabelle werden die IPv4-Headerfelder beschrieben, die im vorherigen Diagramm dargestellt sind:
| Feld | Beschreibung |
|---|---|
| Proto=17 (immer UDP für GENEVE) | Gibt an, dass für die gekapselte Nutzlast das UDP-Protokoll verwendet wird. |
| Quelladresse | Die Gateway-IP-Adresse des lokalen Subnetzes. |
| Zieladresse | Die virtuelle IP-Adresse des vom Kunden bereitgestellten Load Balancers. |
UDP-Header
Der UDP-Header RFC 0768 kapselt Daten und behält die verbindungslosen Semantiken von Ethernet und IP-Adresse bei. Außerdem wird für Router, die Equal Cost Multipath (ECMP) ausführen, Entropie bereitgestellt.
Das folgende Diagramm zeigt das Headerformat für ein Geneve-Paket, das in einem UDP-Paket gekapselt ist.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source port = <hash> | Dest port = 6081 (Geneve)|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UDP length | UDP checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In der folgenden Tabelle werden die UDP-Headerfelder beschrieben, die im vorherigen Diagramm dargestellt sind:
| Felder | Beschreibung |
|---|---|
| Quellport | Ein undurchsichtiger Hash über den gesamten 16-Bit-Bereich. Der Wert ist für alle Pakete, die zu einem einzelnen gekapselten Flow gehören (beide Richtungen), gleich. |
| Zielport | Die angegebene Zielportnummer für GENEVE-Traffic, die auf 6081 festgelegt ist. |
| UDP-Länge | Die Gesamtlänge des UDP-Datagramms, einschließlich des UDP-Headers und des gekapselten GENEVE-Pakets. |
| UDP-Prüfsumme | Der Prüfsummenwert für das UDP-Datagramm, der zur Fehlererkennung verwendet wird. |
Out-of-Band-Integration
Bei der Out-of-Band-Integration wird ein GENEVE-Tunnel verwendet, um gespiegelte Pakete zu kapseln und zu übertragen. Die virtuelle IP-Adresse (VIP) des internen Load-Balancers des Collectors empfängt die Pakete, die mit Google Cloud-spezifischen Metadaten wie dem Netzwerk-Cookie versehen sind.
Bei der Out-of-Band-Integration werden die folgenden Google Cloud-spezifischen GENEVE-Optionen verwendet: Netzwerk-Cookie, Endpunkt-Cookie und Profil-ID. Weitere Informationen finden Sie unter GENEVE-Optionen fürGoogle Cloud.
Das folgende Diagramm zeigt, wie bei der Out-of-Band-Integration Google Cloud-spezifische GENEVE-Optionen für den direkten Spiegelungsmodus verwendet werden.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Das folgende Diagramm zeigt, wie bei der Out-of-Band-Integration Google Cloud-spezifische GENEVE-Optionen für den Broker-Modus der Spiegelung verwendet werden (Vorschau).
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x0f |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Timestamp +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=0x10 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Project Number +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Network ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In-Band-Integration
Bei der In-Band-Integration wird ein GENEVE-Tunnel verwendet, um abgefangene Pakete zu kapseln und zu übertragen. Die virtuelle IP-Adresse (VIP) des internen Load Balancers des Erstellers empfängt die Pakete, die mit Google Cloud-spezifischen Metadaten wie dem Netzwerk-Cookie versehen sind.
Bei der In-Band-Integration werden die folgenden Google Cloud-spezifischen GENEVE-Optionen verwendet: Netzwerk-Cookie, Endpunkt-Cookie und Profil-ID. Weitere Informationen finden Sie unter GENEVE-Optionen fürGoogle Cloud.
Die In-Band-Integration unterstützt die erneute Einfügung von Paketen in den ursprünglichen Endpunkt über einen logischen bidirektionalen GENEVE-Tunnel, der aus zwei unidirektionalen GENEVE-Tunneln besteht. Nachdem die Appliance des Produzentennetzwerks ein Paket abgefangen und geprüft hat, kann sie es entweder verwerfen oder wieder einfügen.
Das Verhalten beim erneuten Einfügen hängt vom Bereitstellungsmodell der Integration ab:
Standardmäßige In-Band-Wiedereinspeisung:
Bei internem und eingehendem Traffic prüft die Netzwerk-Appliance das Originalpaket und fügt es wieder in das Nutzernetzwerk ein. Während der erneuten Injektion führt die Appliance folgende Schritte aus:
- Das ursprüngliche Paket wird mit dem ursprünglichen GENEVE-Header (mit denselben Optionen) neu gekapselt.
- Das Direction-Bit (
D) in der Option „Network ID“ wird beibehalten, wie es empfangen wurde. - Tauscht die Quell- und Zieladressen im äußeren IP-Header.
- Prüft, ob die Paketprüfsummen korrekt sind.
Direkte Re-Injektion der Antwort auf ausgehenden Internettraffic:
Wenn die Netzwerk-Appliance für direkten Internet-Egress konfiguriert ist, sendet sie das geprüfte ausgehende Paket direkt an das Internet und fügt das Internet-Antwortpaket wieder in die Consumer-VM ein. Während der erneuten Injektion führt die Appliance folgende Schritte aus:
- Kapselt das Antwortpaket, das über GENEVE aus dem Internet empfangen wurde, einschließlich der options aus dem ursprünglichen ausgehenden Paket.
- Kehrt das Richtung-Bit (
D) in der Netzwerk-ID-Option von1(ausgehend) zu0(eingehend) um. - Prüft, ob die Paketprüfsummen korrekt sind.
Das folgende Diagramm zeigt, wie Google Cloud-spezifische GENEVE-Optionen bei der In-Band-Integration verwendet werden.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|V=0| Opt len |O|C| Rsvd | Protocol type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual network identifier (VNI) = 0 | Rsvd. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=0x01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=0x02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint Cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=0x03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
GENEVE-Kapselung und MTU-Anforderungen
Die maximale Übertragungseinheit (MTU) gibt die Bytezahl des größten IP-Pakets an, einschließlich IP-Header, Layer-4-Protokoll-Header und Daten der Layer 4, die in einen Ethernet-Frame passen. Weitere Informationen finden Sie unter Maximale Übertragungseinheit.
In Google Cloud Netzwerken beträgt die zulässige MTU 8.588 Byte. Bei der Netzwerksicherheits-Integration müssen jedoch 308 Bytes für den Aufwand für die GENEVE-Datenkapselung reserviert werden. Diese Anforderung hat Auswirkungen auf Verbraucher- und Erstellernetzwerke:
MTU des Verbrauchernetzwerks: Die MTU für das Verbrauchernetzwerk darf maximal 8.588 Byte betragen. Dieses Limit sorgt dafür, dass genügend Platz für den GENEVE-Overhead vorhanden ist, ohne die maximale MTU zu überschreiten.
MTU des Produzentennetzwerks: Die MTU für das Produzentennetzwerk muss mindestens 396 Byte mehr als die MTU des Konsumentennetzwerks betragen. Dieser Spielraum berücksichtigt die zusätzliche GENEVE-Kapselung.
Wenn nicht genügend MTU-Limits für die GENEVE-Datenkapselung vorhanden sind, kann das Paket verworfen werden. Dies kann entweder auf der Ebene des virtuellen Netzwerks oder im Betriebssystem der VM erfolgen.
Nächste Schritte
- Netzwerksicherheits-Integration – Übersicht
- Übersicht über die Out-of-Band-Integration
- Out-of-Band-Integration überwachen