Passa al contenuto principale

5. VXLAN Frame Format (Formato frame VXLAN)

Il formato del frame VXLAN è mostrato di seguito. Analizzando dal basso del frame -- sopra la Frame Check Sequence (FCS) esterna, c'è un frame MAC interno con la propria intestazione Ethernet con indirizzi MAC sorgente e destinazione insieme al tipo Ethernet, più una VLAN opzionale. Vedere la Sezione 6 per ulteriori dettagli sulla gestione dei tag VLAN interni.

Il frame MAC interno è incapsulato con le seguenti quattro intestazioni (partendo dall'intestazione più interna):

VXLAN Header (Intestazione VXLAN): Questo è un campo di 8 byte che contiene:

  • Flags (Flag, 8 bit): dove il flag I deve (MUST) essere impostato a 1 per un ID di rete VXLAN (VNI) valido. Gli altri 7 bit (designati "R") sono campi riservati e devono (MUST) essere impostati a zero durante la trasmissione e ignorati alla ricezione.

  • VXLAN Segment ID/VXLAN Network Identifier (VNI) (ID segmento VXLAN/Identificatore di rete VXLAN): questo è un valore a 24 bit utilizzato per designare la singola rete overlay VXLAN su cui sono situate le VM comunicanti. Le VM in diverse reti overlay VXLAN non possono comunicare tra loro.

  • Reserved fields (Campi riservati, 24 bit e 8 bit): devono (MUST) essere impostati a zero durante la trasmissione e ignorati alla ricezione.

Outer UDP Header (Intestazione UDP esterna): Questa è l'intestazione UDP esterna con una porta sorgente fornita dal VTEP e la porta di destinazione che è una porta UDP ben nota.

  • Destination Port (Porta di destinazione): IANA ha assegnato il valore 4789 per la porta UDP VXLAN, e questo valore dovrebbe (SHOULD) essere utilizzato per impostazione predefinita come porta UDP di destinazione. Alcune implementazioni iniziali di VXLAN hanno utilizzato altri valori per la porta di destinazione. Per abilitare l'interoperabilità con queste implementazioni, la porta di destinazione dovrebbe (SHOULD) essere configurabile.

  • Source Port (Porta sorgente): Si raccomanda (RECOMMENDED) che il numero di porta sorgente UDP sia calcolato utilizzando un hash dei campi dal pacchetto interno -- un esempio è un hash delle intestazioni del frame Ethernet interno. Questo è per consentire un livello di entropia per l'ECMP/bilanciamento del carico del traffico VM-a-VM attraverso l'overlay VXLAN. Quando si calcola il numero di porta sorgente UDP in questo modo, si raccomanda (RECOMMENDED) che il valore sia nell'intervallo di porte dinamiche/private 49152-65535 [RFC6335].

  • UDP Checksum (Checksum UDP): Dovrebbe (SHOULD) essere trasmesso come zero. Quando viene ricevuto un pacchetto con un checksum UDP di zero, deve (MUST) essere accettato per la decapsulazione. Opzionalmente, se il punto terminale di incapsulamento include un checksum UDP non zero, deve (MUST) essere calcolato correttamente sull'intero pacchetto includendo l'intestazione IP, l'intestazione UDP, l'intestazione VXLAN e il frame MAC incapsulato. Quando un punto terminale di decapsulamento riceve un pacchetto con un checksum non zero, può (MAY) scegliere di verificare il valore del checksum. Se sceglie di eseguire tale verifica e la verifica fallisce, il pacchetto deve (MUST) essere scartato. Se la destinazione di decapsulamento sceglie di non eseguire la verifica, o la esegue con successo, il pacchetto deve (MUST) essere accettato per la decapsulazione.

Outer IP Header (Intestazione IP esterna): Questa è l'intestazione IP esterna con l'indirizzo IP sorgente che indica l'indirizzo IP del VTEP su cui la VM comunicante (rappresentata dall'indirizzo MAC sorgente interno) è in esecuzione. L'indirizzo IP di destinazione può essere un indirizzo IP unicast o multicast (vedere Sezioni 4.1 e 4.2). Quando è un indirizzo IP unicast, rappresenta l'indirizzo IP del VTEP che collega la VM comunicante come rappresentata dall'indirizzo MAC di destinazione interno. Per gli indirizzi IP di destinazione multicast, fare riferimento agli scenari dettagliati nella Sezione 4.2.

Outer Ethernet Header (Intestazione Ethernet esterna, esempio): La Figura 1 è un esempio di un frame Ethernet interno incapsulato all'interno di un'intestazione Ethernet + IP + UDP + VXLAN esterna. L'indirizzo MAC di destinazione esterno in questo frame può essere l'indirizzo del VTEP di destinazione o di un router di Livello 3 intermedio. Il tag VLAN esterno è opzionale. Se presente, può essere utilizzato per delineare il traffico VXLAN sulla LAN.

 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

Outer Ethernet Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Outer Destination MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Outer Destination MAC Address | Outer Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Outer Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|OptnlEthtype = C-Tag 802.1Q | Outer.VLAN Tag Information |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype = 0x0800 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Outer IPv4 Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live |Protocl=17(UDP)| Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Outer Source IPv4 Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Outer Destination IPv4 Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Outer UDP Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Dest Port = VXLAN Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UDP Length | UDP Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

VXLAN Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|R|R|R|I|R|R|R| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VXLAN Network Identifier (VNI) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Inner Ethernet Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Inner Destination MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Inner Destination MAC Address | Inner Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Inner Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|OptnlEthtype = C-Tag 802.1Q | Inner.VLAN Tag Information |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Payload:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype of Original Payload | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Original Ethernet Payload |
| |
|(Note that the original Ethernet Frame's FCS is not included) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Frame Check Sequence:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| New FCS (Frame Check Sequence) for Outer Ethernet Frame |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 1: Formato frame VXLAN con intestazione esterna IPv4

Il formato del frame sopra mostra il tunneling dei frame Ethernet utilizzando IPv4 per il trasporto. L'uso di VXLAN con trasporto IPv6 è dettagliato di seguito.

 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

Outer Ethernet Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Outer Destination MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Outer Destination MAC Address | Outer Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Outer Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|OptnlEthtype = C-Tag 802.1Q | Outer.VLAN Tag Information |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype = 0x86DD |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Outer IPv6 Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | NxtHdr=17(UDP)| Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Outer Source IPv6 Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Outer Destination IPv6 Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Outer UDP Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Dest Port = VXLAN Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| UDP Length | UDP Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

VXLAN Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|R|R|R|R|I|R|R|R| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VXLAN Network Identifier (VNI) | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Inner Ethernet Header:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Inner Destination MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Inner Destination MAC Address | Inner Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Inner Source MAC Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|OptnlEthtype = C-Tag 802.1Q | Inner.VLAN Tag Information |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Payload:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype of Original Payload | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Original Ethernet Payload |
| |
|(Note that the original Ethernet Frame's FCS is not included) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Frame Check Sequence:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| New FCS (Frame Check Sequence) for Outer Ethernet Frame |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 2: Formato frame VXLAN con intestazione esterna IPv6