vxlan overview and header
23.12 2019 | by massimilianovxlan overview and header VXLAN ENVIRONMENT: VXLAN (Vlan Extensible LAN) viene utilizzato per i seguenti ambienti: […]
https://www.ingegnerianetworking.com/wp-content/uploads/2019/12/vxlan-encapsulation-16b.png
vxlan overview and header
VXLAN ENVIRONMENT:
VXLAN (Vlan Extensible LAN) viene utilizzato per i seguenti ambienti:
– data centers
– VMware and Vshere virtualizzazation
– vmotion
– multi-tenant offrendo capacità di scalare la limitazione classica del 802.1q Vlans
VXLAN è un meccanismo che permette di aggregare e tunnellizzare (VTEP) multipli layer 2 subnetwork attraverso una infrastruttura layer 3 IP network:
– permette di collegare VMs server in differenti IP network come se fossero all’interno di una stesso dominio Layer 2
VXLAN IMPLEMENTATION:
VXLAN viene supportato da una infrastruttura:
– Multicast
– IGMP
– PIM
IP routing protocols:
– OSPF
– ISIS
– BGP
IP Gateway:
– VTEP (Vlan Tunnel End Point) provvede ad incapsulare e decapsulare servizi layer 2 to VXLAN.
– VTEP possono essere:
Virtual Bridges Hipervisor
VXLAN aware VM application
Router/Switch hardware
VXLAN PROTOCOL:
Ogni VXLAN segment è associato con un unico 24 bit VXLAN Network Identifier differente chiamato VNI.
Questo 24 bit VNI permette di scalare da il classico 4096 vlans con 802.1q a più di 16 milioni di possibili virtual networks
Le VMs servers all’interno di un dominio layer 2 utilizzano la stessa subnet IP e sono mappati con lo stesso valore VNI
VXLAN mantiene l’indentità di ciascuna VMs mappando il valore di MAC address della VM con il valore VNI (possiamo avere duplicate MAC address all’interno di un datacenters domain ma con il limite che non possono essere mappati con lo stesso VNI)
VMs appartenenti ad uno specifico VNI non richiedono speciali configurazioni a supporto perché il meccanisco di encapsulation/de-encapsulation subnets ed il mapping VNI viene gestito dal gateway VTEP
Il gateway VTEP deve essere configurato associando il dominio L2 or L3 al VNI network value e quest’ultimo ad un gruppo IP multicast; quest’ultima configurazione permette ai VTEP la costruzione di una forwarding table attraverso l’infrastruttura di rete
La sincronizzazione della configurazione VTEP può essere automatizzata grazie a strumenti di gestione quali Vmware Orchestrator, Open Vswitch, Rancid e/o altri.
VXLAN FRAME ENCAPSULATION AND FORWARDING:
Nel caso il MAC sorgente ed il MAC destinazione si trovino nella stesso host, il traffico viene performato all’interno del Vswitch e nessuna azione VXLAN (encapsulation/decapsulation) viene intrapresa
Se, invece, il MAC destinazione si trova su altro ESX host, le frames vengono encapsulate in una VXLAN header dal VTEP sorgente e trasmesse al VTEP destinazione, sulla base delle loro informazioni contenute nella forwarding table
Per traffico di tipo unknow unicast oppure broadcast/multicast, il VTEP sorgente encapsula il frames in un VXLAN header ed associa esso ad una VNI multicast address (questo include all ARPs request, Boot-p/DHCP request, etc..); i VTEP destinazione (residenti in altri ESX host) ricevono questo multicast frames e lo processano come se fosse un frames unicast.
VXLAN HEADER FORMAT:
VXLAN Header:
– Flag: composto da 8 bits dove il 5° bit (flag) indica un valido valore VNI (i restanti sette bits sono riservato e settati a zero)
– VNI: valore di 24 bits, provvede a rilasciare un unico identifier per segmento VXLAN; possiamo avere più di 16 milioni di VXLAN segments all’interno di un singolo dominio L2
UDP Header:
Outer UDP: si riferisce alla porta sorgente all’interno dell’ outer UDP Header ed è dinamicamente assegnata dal VTEP sorgente; la porta di destinazione è tipicamente la well-know UDP port 4789 (può comunque variare su base implementazione)
UDP Checksum: dovrebbe essere settato a zero (0x0000) dal VTP sorgente; nel caso il VTEP destinazione riceve un checksum non uguale a zero, la frame dovrebbe essere scartata
IP Header:
Protocol: settato al valore 0x11 ed indica un UDP packets
IP sorgente: è l’indirizzo IP del VTEP sorgente associato con la inner frame source
IP destinazione: è l’indirizzo IP del VTEP destinazione corrispondente alla inner frame destination
Ethernet Header:
Outer Ethernet: rappresenta l’indirizzo MAC del VTP sorgente associato con la inner frame source mentre il destination MAC address è l’indirizzo MAC del routing nexthop per raggiungere il VTEP destinazione (l’outer Ethernet header può essere taggato con un IEEE 802.1q per il trasporto in rete)
VLAN: default 802.1q tagged protocol identifier
Ethertype: settato a 0x0800 per identificare un pacchetto IPv4
VXLAN NETWORK EXAMPLE:
1. VM1 invia una richiesta ARP associata all’indirizzo IP 192.168.0.2
2. La richiesta ARP viene gestita dal VTEP1 ed incapsulata in un pacchetto multicast associato al gruppo multicast mappato con il VNI 800
3. Tutti i VTEP associati con il VNI 800 ricevono il pacchetto e aggiungono alla loro tabella il mapping VTEP1/VM1 MAC address
4. VTEP2 riceve il pacchetto multicast, decapsula il pacchetto e trasmette il frames su tutte le porte associate con il VNI 800
5. VM2 riceve la richiesta ARP e risponde alla VM1 con il suo MAC address
6. VM2 incapsula la risposta in un pacchetto IP unicast e lo trasmette verso VM1 (il pacchetto diventa unicast dal momento in cui VM2 ha imparato l’associazione VTEP1/VM1 MAC dal pacchetto sorgente che ha originato la richiesta ARP)
7. VTEP1 riceve la risposta, decapsula il pacchetto e lo invia alla VM1
A questo punto la connessione tra i due servers VM1 e VM2 è stabilita; il traffico unicast con sorgente il VTEP1 quindi seguirà il seguente path:
– IP Source: 192.168.0.1- – IP Destination: 192.168.0.2 e protocol ID settato su UDP oppure 0x0011
- – VXLAN VNI: 800
- – Standard UDP header con checksum settato a 0x0000 e la VXLAN destination port settato con la corretta IANA port based on vendor
- – Standard MAC header con l’indirizzo next-hop MAC address; in questo caso il next-hop è il router con l’indirizzo MAC address aa:aa:aa:aa:22:22
VTEP2 riceverà il pacchetto dal VTEP1, il processo di decapsulamento è fatto dal valore UDP header; quindi VTEP2 passerà il frame al virtual switch ed alle porte associate con il valore VNI 800
VXLAN CONSIDERATION:
VXLAN encapsulaton header aggiunge 50 byte ad un frame Ethernet; pertanto è richiesto l’uso di jumbo frame settato
VXLAN richiede una buona quantità di banda per supportare il traffico; è preferibile progettare una rete VXLAN con un troughput di almeno 10Gb
L’uso di IP standard aiuta VXLAN ad offrire opzioni di Vmotion VM su lunga distanza e alta affidabilità
Assicurare sempre che VXLAN Vmotion /HA heartbit round trip delay non superi la soglia di 10 msec (ad esempio nei casi di disaster recovery oppure mirrored data centers application)
IP multicast services è usato per pacchetti di tipo unknow unicast, broadcast/multicast all’interno di un dominio VXLAN
È da settare sempre un gruppo multicast per ogni VNI segment
PIM sparse, Dense sparse e BIDIR (Birectional PIM) provvedono servizi multicast per VXLAN
VXLAN vs VLAN: