L'incapsulamento di rete virtuale generico (GENEVE) è un protocollo di incapsulamento di rete che incapsula il pacchetto originale con metadati aggiuntivi. Questi metadati aggiuntivi consentono di attivare la virtualizzazione di rete flessibile ed estensibile.
Il seguente diagramma mostra il formato dell'intestazione di un pacchetto GENEVE.
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. |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
La tabella seguente descrive i campi dell'intestazione GENEVE mostrati nel diagramma precedente:
| Campo | Descrizione | Lunghezza campo |
|---|---|---|
| Ver | La versione del protocollo GENEVE. L'unica versione supportata è zero (0). Per ulteriori informazioni, vedi Campi dell'intestazione del tunnel. | 2 bit |
| Opt len | La lunghezza dei campi delle opzioni, espressa in multipli di 4 byte, esclusa l'intestazione del tunnel fissa di 8 byte. Per ulteriori informazioni, vedi Campi dell'intestazione del tunnel. | 6 bit |
| O | Il bit del pacchetto di controllo. Per ulteriori informazioni, vedi Campi dell'intestazione del tunnel. | 1 bit |
| C | Il bit delle opzioni critiche. Per ulteriori informazioni, vedi Campi dell'intestazione del tunnel. | 1 bit |
| Rsvd | Campo riservato, che deve essere zero (0) durante la trasmissione e deve essere ignorato durante la ricezione. Per ulteriori informazioni, vedi Campi dell'intestazione del tunnel. | 6 bit |
| Tipo di protocollo | Il tipo di protocollo consente qualsiasi tipo di Ethernet, tuttavia,
Network Security Integration consente solo IPv4
(0x0800) o IPv6 (0x86DD). |
16 bit |
| Identificatore di rete virtuale (VNI) | Un identificatore univoco per un elemento di rete virtuale. Network Security Integration non popola questo campo, il che significa che il VNI è impostato su zero (0). Per ulteriori informazioni, vedi GENEVE di integrazione fuori banda. | 24 bit |
| Rsvd | Campo riservato, che deve essere zero (0) durante la trasmissione e deve essere ignorato durante la ricezione. Per ulteriori informazioni, vedi Campi dell'intestazione del tunnel. | 8 bit |
Google CloudOpzioni GENEVE specifiche di
L'intestazione GENEVE utilizza un formato TLV (Type-Length-Value) per le opzioni. Ciò significa che ogni opzione viene codificata con un identificatore di tipo, un campo di lunghezza che indica la dimensione del valore e il valore stesso. Questo formato consente flessibilità ed estensibilità, poiché è possibile aggiungere nuove opzioni senza interrompere le implementazioni esistenti. Le sezioni seguenti descrivono l'ordine e il numero di opzioni. Tieni presente che il numero e l'ordine delle opzioni variano man mano che il prodotto si evolve. Pertanto, per garantire la compatibilità con le versioni precedenti per l'implementazione del dispositivo, analizza l'intestazione GENEVE in base ai campi TLV.
Le opzioni GENEVE specifiche di Google Cloud sono le seguenti:
- ID rete (cookie di rete)
- ID endpoint (cookie endpoint)
- ID profilo
ID rete
L'opzione ID rete, nota anche come "cookie di rete", identifica la rete virtuale
associata al traffico incapsulato GENEVE in Google Cloud.
Questa opzione è identificata dalla classe di opzioni 0x0132 (Google) e dal tipo 1 (ID rete).
I dati dell'opzione contengono 32 bit, di cui i primi 28 rappresentano un ID rete opaco. Lo scopo dei 4 bit rimanenti è descritto nel seguente diagramma e nella seguente tabella.
Il seguente diagramma mostra il formato dell'opzione nel pacchetto GENEVE.
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=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
La tabella seguente descrive i campi delle opzioni mostrati nel diagramma precedente:
| Campo | Descrizione | Lunghezza campo |
|---|---|---|
| Classe di opzioni | Identifica l'organizzazione o l'entità che ha definito l'opzione.
Il valore 0x0132 designa Google come entità di definizione. |
16 bit |
| Tipo | Identifica il tipo di opzione all'interno di una classe. Il valore
0x1 designa l'opzione ID rete.
Per ulteriori informazioni,
vedi Opzioni del tunnel. |
8 bit |
| R | I flag di controllo delle opzioni riservati per un utilizzo futuro. Questi bit devono essere zero (0) durante la trasmissione e devono essere ignorati durante la ricezione. | 3 bit |
| Len | La lunghezza del payload dell'opzione in incrementi di 4 byte. Il payload dell'ID rete è di 32 bit (4 byte), quindi la lunghezza di questa opzione è impostata su 1. | 5 bit |
| Cookie di rete | Il cookie di rete opaco, che identifica una rete virtuale. | 28 bit |
| R | Riservato per l'implementazione futura. Deve essere impostato su zero (0) durante la trasmissione e deve essere ignorato durante la ricezione. | 2 bit |
| T | Indica l'offload TLS per il pacchetto incapsulato. Non utilizzato. | 1 bit |
| D | Indica la direzione del pacchetto originale. Zero (0) indica un pacchetto in entrata e uno (1) indica un pacchetto in uscita nella macchina virtuale (VM) originale con mirroring . | 1 bit |
ID endpoint
L'opzione ID endpoint, nota anche come "cookie endpoint", identifica in modo univoco il
punto di acquisizione, ovvero un controller di interfaccia di rete su una Google Cloud
VM. Questa opzione è identificata dalla classe di opzioni 0x0132 (Google) e dal tipo
2 (ID endpoint). I dati dell'opzione sono un valore opaco di 128 bit.
Il seguente diagramma mostra il formato dell'opzione nel pacchetto GENEVE.
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=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
La tabella seguente descrive i campi delle opzioni mostrati nel diagramma precedente:
| Campo | Descrizione | Lunghezza campo |
|---|---|---|
| Classe di opzioni | Identifica l'organizzazione o l'entità che ha definito l'opzione.
Il valore 0x0132 designa Google come entità di definizione. |
16 bit |
| Tipo | Identifica il tipo di opzione all'interno di una classe. Il valore
0x2 designa l'opzione ID endpoint.
Per ulteriori informazioni,
vedi Opzioni del tunnel. |
8 bit |
| R | I flag di controllo delle opzioni riservati per un utilizzo futuro. Questi bit devono essere zero (0) durante la trasmissione e devono essere ignorati durante la ricezione. | 3 bit |
| Len | La lunghezza del payload in incrementi di 4 byte. Il payload dell'ID endpoint è di 128 bit (16 byte), quindi la lunghezza di questa opzione è impostata su 4. | 5 bit |
| Cookie endpoint | Un identificatore opaco per il punto di acquisizione (una scheda di interfaccia di rete VM). | 128 bit |
ID profilo
L'opzione ID profilo identifica il gruppo di profili di sicurezza con mirroring
applicato al traffico. Questa opzione è identificata dalla
classe di opzioni 0x0132 (Google) e dal tipo 3 (ID profilo). I dati dell'opzione sono un identificatore di 64 bit che corrisponde al campo data_path_id nel gruppo di profili di sicurezza. Il dispositivo di destinazione può applicare criteri di sicurezza in base all'identificatore del gruppo di profili.
Il seguente diagramma mostra il formato dell'opzione nel pacchetto GENEVE.
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=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
La tabella seguente descrive i campi delle opzioni mostrati nel diagramma precedente:
| Campo | Descrizione | Lunghezza campo |
|---|---|---|
| Classe di opzioni | Identifica l'organizzazione o l'entità che ha definito l'opzione.
Il valore 0x0132 designa Google come entità di definizione. |
16 bit |
| Tipo | Identifica il tipo di opzione all'interno di una classe. Il valore
0x3 designa l'opzione ID profilo.
Per ulteriori informazioni,
vedi Opzioni del tunnel. |
8 bit |
| R | I flag di controllo delle opzioni riservati per un utilizzo futuro. Questi bit devono essere zero durante la trasmissione e devono essere ignorati durante la ricezione. | 3 bit |
| Len | La lunghezza del payload dell'opzione in incrementi di 4 byte. Il payload dell'ID profilo è di 64 bit (8 byte), quindi la lunghezza di questa opzione è impostata su 2. | 5 bit |
| ID profilo | L'identificatore del gruppo di profili di sicurezza con mirroring. | 64 bit |
Formati dell'intestazione GENEVE per Network Security Integration
Questa sezione descrive i formati dell'intestazione GENEVE utilizzati dai servizi Network Security Integration.
Intestazione IPv4
Il formato del pacchetto GENEVE incapsula un'intestazione del tunnel compatta in UDP su IPv4. Una piccola intestazione del tunnel fissa fornisce informazioni di controllo e funzionalità e interoperabilità di base.
Il seguente diagramma mostra i campi dell'intestazione IPv4 per il pacchetto GENEVE.
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
La tabella seguente descrive i campi dell'intestazione IPv4 mostrati nel diagramma precedente:
| Campo | Descrizione |
|---|---|
| Proto=17 (sempre UDP per GENEVE) | Indica che il payload incapsulato utilizza il protocollo UDP. |
| Indirizzo di origine | L'indirizzo IP del gateway della subnet locale. |
| Indirizzo di destinazione | Il VIP del bilanciatore del carico di proprietà del cliente. |
Intestazione UDP
L'intestazione UDP RFC 0768 incapsula i dati, mantenendo la semantica senza connessione di Ethernet e dell'indirizzo IP. Fornisce inoltre entropia ai router che eseguono il routing ECMP (Equal-cost multipath).
Il seguente diagramma mostra il formato dell'intestazione di un pacchetto Geneve incapsulato in un pacchetto UDP.
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
La tabella seguente descrive i campi dell'intestazione UDP mostrati nel diagramma precedente:
| Campi | Descrizione |
|---|---|
| Porta di origine | Un hash opaco sull'intero intervallo di 16 bit. Il valore è lo stesso per tutti i pacchetti appartenenti a un singolo flusso incapsulato (in entrambe le direzioni). |
| Porta di destinazione | Il numero di porta di destinazione designato per il traffico GENEVE, impostato su 6081. |
| Lunghezza UDP | La lunghezza totale del datagramma UDP, inclusa l'intestazione UDP e il pacchetto GENEVE incapsulato. |
| Checksum UDP | Il valore del checksum per il datagramma UDP, utilizzato per il rilevamento degli errori. |
GENEVE di integrazione fuori banda
Questa sezione descrive i formati dell'intestazione GENEVE utilizzati dai servizi Network Security Integration, in particolare l'integrazione fuori banda. L'integrazione fuori banda utilizza un tunnel GENEVE per incapsulare e distribuire i pacchetti con mirroring. I pacchetti sono indirizzati all'indirizzo IP virtuale (VIP) del bilanciatore del carico interno del collettore e sono annotati con Google Cloud-specifici metadati come il cookie di rete.
Le Google Cloudopzioni GENEVE specifiche di utilizzate nell'integrazione fuori banda sono cookie di rete, cookie endpoint e ID profilo. Per ulteriori informazioni, vedi Google CloudOpzioni GENEVE specifiche di.
Il seguente diagramma mostra come Google Cloudvengono utilizzate le opzioni GENEVE specifiche di nell'integrazione fuori banda.
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=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option class=0x0132 (Google) | Type=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
GENEVE di integrazione in banda
L'integrazione in banda utilizza un tunnel GENEVE per incapsulare e distribuire i pacchetti intercettati. L'indirizzo IP virtuale (VIP) del bilanciatore del carico interno del producer riceve i pacchetti annotati con Google Cloud-metadati specifici di, come il cookie di rete.
L'integrazione in banda utilizza le seguenti Google Cloud-opzioni GENEVE specifiche di: cookie di rete, cookie endpoint e ID profilo. Per ulteriori informazioni, vedi Google CloudOpzioni GENEVE specifiche di.
L'integrazione in banda supporta la reiniezione dei pacchetti all'endpoint originale utilizzando un tunnel GENEVE bidirezionale logico, costituito da due tunnel GENEVE unidirezionali. Dopo che l'appliance di rete del producer intercetta e ispeziona un pacchetto, può eliminarlo o reiniezione. Per reiniezione il pacchetto, l'appliance esegue le seguenti operazioni:
- Incapsula di nuovo il pacchetto utilizzando l'intestazione GENEVE originale (stesse opzioni).
- Scambia gli indirizzi di origine e di destinazione nell'intestazione IP esterna.
- Assicurati che i checksum siano corretti.
Il seguente diagramma mostra come Google Cloudvengono utilizzate le opzioni GENEVE specifiche di nell'integrazione in banda.
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=01 |R|R|R| Len=1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Cookie |R|R|T|D|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=02 |R|R|R| Len=4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Endpoint Cookie +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Class=0x0132 (Google) | Type=03 |R|R|R| Len=2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Profile ID +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Requisiti di incapsulamento GENEVE e MTU
L'unità massima di trasmissione (MTU) è la dimensione in byte del pacchetto IP più grande possibile che può essere inserito in un frame Ethernet, incluse le intestazioni IP, le intestazioni del protocollo di livello 4 e i dati di livello 4. Per ulteriori informazioni, vedi Unità massima di trasmissione.
Nelle reti, l'MTU consentito è di 8896 byte. Google Cloud Tuttavia, per Network Security Integration, è necessario conservare 308 byte per l'overhead di incapsulamento GENEVE. Questa necessità di conservazione ha implicazioni sia per le reti consumer sia per le reti producer:
MTU della rete consumer: l'MTU della rete consumer non deve superare gli 8588 byte. Questo limite garantisce che ci sia spazio sufficiente per l'overhead GENEVE senza superare l'MTU massimo.
MTU della rete producer: l'MTU della rete producer deve essere di almeno 308 byte in più rispetto all'MTU della rete consumer. Questa allocazione ospita l'incapsulamento GENEVE aggiuntivo.
Se non sono presenti limiti MTU sufficienti per ospitare l'incapsulamento GENEVE, il pacchetto può essere eliminato. Questo può accadere a livello di rete virtuale o nel sistema operativo della VM.
Passaggi successivi
- Panoramica di Network Security Integration
- Panoramica dell'integrazione fuori banda
- Monitorare l'integrazione fuori banda