Virtuální rozšiřitelná LAN
VXLAN ( Virtual Extensible Local Area Network ) je síťový překryvný protokol navržený k přenášení provozu Data Link Layer přes Síťovou vrstvu , konkrétně Ethernetového provozu přes IP sítě pomocí zapouzdření MAC-in-UDP . Původně byla navržena tak, aby poskytovala stejné služby jako běžná síť VLAN , čímž se zvýšila omezená rozšiřitelnost a flexibilita tohoto typu sítě.
V současné době je dokumentován IETF v RFC 7348 ve stavu „Informational“ .
Úvod
VXLAN vznikl jako návrh různých výrobců, jako jsou Cisco , Arista Networks , Broadcom , Intel , VMware [ 1 ] [ 2 ] a dalších, aby se vyhnuli některým problémům, které se vyskytly v datových centrech odvozených z použití virtualizace na serverech , což v některých případech vyžaduje práci v prostředí se stovkami tisíc virtuálních strojů. Práce s tolika stroji generuje problémy související s velikostí tabulek MAC adres a v případě použití VLAN k seskupování těchto strojů a jejich izolování do skupin vzniká problém s omezeným počtem VLAN, které lze generovat kvůli VLAN ID 12 bitů, což umožňuje maximálně 4094 různých sítí.
Dalším důležitým problémem datových center je použití STP (Spanning Tree Protocol) k zamezení smyček v linkové vrstvě , což vede k zneužívání velkého počtu dostupných linek (někdy i více než poloviny) při Generování topologie ve tvaru stromu.
Všechny tyto problémy podnítily vývoj síťové technologie, která by umožnila použití IP sítě pro propojení fyzických serverů, což by znamenalo použití směrovacích protokolů vrstvy 3 . Tímto způsobem by byly eliminovány problémy se zastaráváním spojení způsobené STP a smyčkami vrstvy 2 a mohly by být použity směrovací " strategie ", jako je Equal-cost multi-path routing (ECMP), které pomáhají rozložit zatížení sítě mezi všechny odkazy. [ 3 ] Navzdory tomu všemu by bylo stále nutné používat síť vrstvy 2 pro přímou komunikaci mezi virtuálními stroji.
To konečně podpořilo vzhled VXLAN, který nám umožňuje eliminovat problémy se škálovatelností sítě odvozené z používání VLAN pomocí 24bitového síťového identifikátoru ( VNI ), čímž jsme schopni vytvořit více než 16 milionů virtuálních sítí, které koexistují ve stejné síti. administrativní doména. [ 3 ] VXLAN využívá směrování na 3. vrstvě, což eliminuje dříve zmíněné problémy s ukončením podpory a umožňuje efektivnější využití těchto odkazů. Použití směrovacích protokolů síťové vrstvy také odstraňuje problémy s předimenzovanými tabulkami MAC adres na přepínačích propojujících síť vrstvy 2 v datovém centru, které musely ukládat MAC adresy všech virtuálních strojů nainstalovaných na serverech, které byly propojeny přes tento přepínač.
Formát paketů VXLAN a zapouzdření
VXLAN používá zapouzdření MAC Address-in-User Datagram Protocol (MAC-in-UDP). K původně odeslanému paketu Link Layer je přidána hlavička VXLAN , která obsahuje MAC adresy zdrojového hostitele a cílového hostitele. Výše uvedená sada je vložena do datového pole UDP datagramu a IP se používá jako protokol Network Layer . Nakonec paket odeslaný do IP sítě má jako zdrojové a cílové MAC adresy ty, které odpovídají VTEP, po kterých jsou nalezeni zdrojoví a cíloví hostitelé. Tímto způsobem je možné směrovat počáteční paket přes IP síť, takže se může dostat ke všem hostitelům VXLAN stejným způsobem, jako kdyby byli ve stejné LAN.
Komponenty VXLAN
- Hlavička VXLAN: Má délku 8 bajtů a skládá se ze čtyř polí:
- Příznaky: 8bitové pole, které obsahuje sekvenci příznaků „RRRRIRRR“. Příznak nazvaný „I“ musí obsahovat hodnotu „1“, která označuje platný VNI. Zbytek bitů („R“) musí obsahovat hodnotu „0“ při vysílání rámce a jsou při příjmu ignorovány.
- Identifikátor sítě VXLAN ( VNI nebo VNID ): Jedná se o 24bitové pole, podle kterého je identifikována každá „ překryvná “ síť, což nám umožňuje vytvořit více než 16 milionů segmentů VXLAN ve stejné administrativní doméně. Každá VXLAN má jiné VNI a každý stroj patřící do VXLAN je identifikován svou MAC a svým VNI, takže je možné mít stroje s duplicitními MAC adresami v různých sítích VXLAN.
- Vyhrazená pole: V hlavičce VXLAN jsou dvě vyhrazená pole. Jeden z nich je umístěn mezi polem flags a polem VNI a druhý je umístěn na konci hlavičky VXLAN. Tato pole mají délku 24 a 8 bitů, obě musí být odeslána s hodnotou "0" a jsou při příjmu paketu ignorována. [ 4 ] [ 5 ]
- VXLAN Tunnel End Point (VTEP): Toto je entita, která vytváří a ukončuje VXLAN „tunely“ a má na starosti zapouzdření ethernetových rámců každé fyzické sítě patřící k VXLAN, aby je přenesla přes IP síť do zbytku síť VXLAN VTEP patřící do skupiny multicast virtuální sítě. Podobně zodpovídá za dekapsulaci přijatých IP paketů a ukládá směrovací tabulky nezbytné pro komunikaci mezi hostiteli připojenými k danému VTEP a zbytkem hostitelů ve virtuální síti.
Každý VTEP má alespoň dvě rozhraní: Jedno z nich je rozhraním pro segment místní oblasti a je odpovědné za poskytování služeb koncovým systémům, které jsou přímo připojeny k VTEP. Druhým je IP rozhraní, které je zodpovědné za zapouzdření rámců segmentu místní oblasti, aby je bylo možné přenášet přes IP síť do zbytku VTEP patřících do virtuální sítě. To vyžaduje, aby se všechna zařízení VTEP ve stejné VXLAN připojila ke skupině vícesměrového vysílání pomocí protokolu IGMP (Internet Group Management Protocol). Použitím směrování na základě externí IP adresy každého VTEP jsou různé fyzické místní sítě, které tvoří síť VXLAN, nezávislé na topologii, která je spojuje, a mohou spolu komunikovat, jako by byly ve stejné fyzické síti. [ 6 ]
- Brány VXLAN: Jedná se o zařízení VTEP, které umožňuje komunikaci mezi uzly, které podporují a nepodporují protokol VXLAN. Tímto způsobem mohou zařízení, která nepodporují tuto technologii, zůstat na klasických VLAN segmentech a používat VXLAN Gateway k vytvoření společné domény linkové vrstvy se sítí VXLAN. Brána VXLAN může také nabízet pokročilé služby připojení a zabezpečení k síti VXLAN, jako je poskytování funkcí NAT (poskytování přístupu k vnější síti), funkce brány firewall, serveru DHCP a DNS, mimo jiné. [ 7 ]
K vytvoření paketu VXLAN jsou také nutné následující hlavičky:
- Externí hlavička UDP , která obsahuje zdrojový port VTEP a cílový port (definovaný organizací IANA jako port 4789 jako výchozí port UDP ve VXLAN). [ 8 ]
- Externí IP hlavička, která obsahuje IP adresy zdrojového VTEP a cílového VTEP nezbytné pro směrování paketu přes IP síť. Cílová IP adresa může být adresa unicast nebo multicast v závislosti na tom, zda zdrojový VTEP zná adresu VTEP, ke kterému patří zařízení, kterému je paket adresován.
- Externí ethernetová hlavička , která obsahuje zdrojové a cílové MAC adresy VTEP, aby spolu mohly komunikovat. [ 9 ]
Hlavička UDP i IP navíc poskytují pole kontrolního součtu pro ověření integrity dat paketu.
A konečně, pro vytvoření sítě VXLAN je nutné, aby síť IP, přes kterou jsou pakety směrovány, podporovala funkce směrování vícesměrového vysílání, jako je IGMP a PIM , směrovací protokoly, jako jsou OSPF a BGP , a protokoly stavu spojení, jako je IS-IS .
Provoz VXLAN
Provoz VXLAN je založen hlavně na zapouzdření provozu na linkové vrstvě místní sítě a jeho přenosu přes IP síť do jiné fyzické LAN, čímž je zajištěno, že hostitelé obou sítí mohou komunikovat stejným způsobem, jako kdyby byli připojeni. jsou ve stejné místní síti. K dosažení tohoto cíle se používají "tunely" mezi různými VTEP, přes které je přenášen "překryvný" provoz , takže se dostane na druhý konec ve stejném stavu, v jakém byl ve zdrojové síti LAN.
V každé síti LAN jsou hostitelé patřící do VXLAN připojeni k VTEP. Toto zařízení bude mít na starosti zapouzdření rámců hostitelů segmentu VXLAN a jejich směrování přes síť IP tak, aby dosáhly ke zbytku zařízení VXLAN.
Každý segment VXLAN je identifikován svým VNI (VXLAN Network Identifier). Na základě tohoto VNI VTEP zajistí, že pakety budou odeslány pouze hostitelům, kteří patří do stejného segmentu VXLAN. K tomu se používá protokol IGMP , všechny VTEP stejného segmentu VXLAN se přihlásí k multicastové skupině , takže jsou si navzájem posílány pouze pakety související s tímto segmentem VXLAN.
Pokaždé, když hostitel VXLAN odešle rámec, jehož cílem je jiný hostitel na stejném segmentu VXLAN, VTEP zapouzdří rámec přidáním odpovídajících hlaviček a odešle jej přes síť IP tak, aby dosáhl VTEP, za kterým se nachází cílový hostitel. .
Pro provádění směrování přes IP síť si každý VTEP ukládá do svých směrovacích tabulek shodu každé MAC hostitele s IP VTEP, na kterou musí poslat paket, pokud chce dosáhnout uvedeného hostitele. To znamená, že když chcete odeslat paket hostiteli, mohou nastat dvě různé situace:
- VTEP má ve svých tabulkách uloženy IP VTEP a MAC cílového hostitele: V tomto případě je komunikace unicastová , a proto zdrojový VTEP posílá rámec přímo do cílového VTEP.
- VTEP nezná shodu MAC adresy cílového hostitele s IP cílového VTEP: V tomto případě se provádí vícesměrový přenos , takže VTEP odešle paket všem VTEP, které patří k této VXLAN. segment s cílem konečně dosáhnout cílového hostitele.
V případě použití multicastové komunikace bude každý VTEP zapojený do komunikace ukládat do svých tabulek adresy odpovídající této výměně paketů, takže další pakety mohou být odeslány pomocí unicast komunikace. [ 10 ]
Jednosměrná komunikace: [ 11 ] [ 12 ] [ 13 ]
Příklad unicast komunikace ve VXLAN
Na základě schématu, jako je to na obrázku 1 , ve kterém jsou dva hostitelé ve stejném segmentu VXLAN, tito jsou v různých lokálních sítích a za předpokladu, že oba stroje předem znají adresy druhého stroje a každý VTEP ví jak komunikovat s druhým VTEP. Pokud by se jeden z hostitelů pokusil komunikovat s druhým, následovalo by následující pořadí:
- Hostitel-A odešle přes místní síť rámec MAC, jehož cílová adresa MAC je adresa hostitele-B, stejně jako v normálním scénáři LAN.
- VTEP-1 přijímá rámec a kontroluje VNI spojené s hostitelem-A. Poté se určí, zda je cílová MAC adresa ve stejném segmentu sítě nebo zda existuje záznam ve směrovacích tabulkách, který spojuje tuto MAC adresu s adresou jiného VTEP, v jehož fyzické síti se cílový stroj nachází.
- VTEP-1 ve svých tabulkách zjistí, že adresa hostitele-B je mapována na adresu IP VTEP-2. Proto do původního rámce přidá hlavičku VXLAN s VNI virtuální sítě, ke které hostitelé patří, hlavičku IP s externími IP adresami VTEP-1 a VTEP-2 jako zdroj a cíl a hlavičku External MAC, která obsahuje zdrojové a cílové MAC adresy VTEP. Nakonec předá rámec přes IP síť do VTEP-2.
- VTEP-2 přijme rámec a zkontroluje, zda je platný VNI hlavičky VXLAN a zda je v jeho fyzické síti nějaký hostitel, který patří do této VXLAN a má jako MAC adresu cílovou adresu paketu zapouzdřeného v přijatém rámci.
- VTEP-2 zjistí, že hostitel-B odpovídá těmto datům, a proto dekapsuluje přijatý rámec odstraněním vnějších hlaviček a předá paket hostiteli-B.
- Kromě toho se VTEP-2 naučí vztah mezi interní zdrojovou MAC adresou (Host-A Address) a externí IP adresou (VTEP-1 Address) a uloží je do své směrovací tabulky. Tímto způsobem, když hostitel-B odpoví na zprávu, nebude nutné zjišťovat shodu hostitele-A s VTEP-1.
Během procesu si ani jeden hostitel nemusí být vědom toho, že komunikuje se strojem, který není v jeho fyzické síti. Hostitelé také nemusí vědět, že jsou součástí VXLAN. VTEP ukládá VNI odpovídající každému hostiteli, ke kterému je připojen, a je tedy schopen posílat pakety z konkrétního hostitele na jiného ve virtuální síti, ke které patří, aniž by kterýkoli z koncových bodů musel provádět jiné chování, než by měl. mít v klasické LAN síti.
Multicastová komunikace: [ 14 ] [ 15 ]
V tomto případě budeme uvažovat, že stroj, který se pokouší komunikovat s jiným, nezná MAC shodu s cílovou IP a že VTEP, který má na starosti směrování IP paketu, nemá ve svých směrovacích tabulkách potřebné informace, aby věděl, do kterého VTEP musí přeposlat paketový rámec tak, aby dosáhl cílového zařízení. Aby nedocházelo k zahlcení IP sítě přenosem všesměrového vysílání, používá se vícesměrový provoz , tímto způsobem se do VTEP posílají pouze pakety, které patří do určité skupiny vícesměrového vysílání.
Protože zdrojové zařízení nezná cílovou MAC, odešle rámec požadavku ARP pomocí broadcast adresy jako cílové MAC adresy. VTEP přijme rámec, přidá hlavičku VXLAN obsahující VNI odpovídající síti spolu s hlavičkami IP a UDP a předá rámec skupině multicast , do které síť VXLAN patří.
VTEP patřící do skupiny multicast přijmou rámec a přepošlou jej do svých místních sítí, takže se nakonec dostane k cílovému hostiteli. V průběhu celého procesu budou mít různá zprostředkující zařízení ve svých směrovacích tabulkách uloženy všechny adresy nezbytné pro komunikaci se zdrojovým hostitelem, proto se při směrování odpovědi ( odpověď ARP ) použije jako cíl unicastová IP adresa.
Aby toto vše fungovalo, je nutné, aby každý VTEP znal vztah VNI se skupinou multicast, do které patří, čehož je dosaženo konfigurací každého VTEP samostatně prostřednictvím administračního kanálu. Tímto způsobem může VTEP informovat svůj výstupní router do IP sítě o připojení k nové skupině multicast nebo opuštění skupiny pomocí protokolu IGMP , což může být zajímavé v prostředí, ve kterém VTEP připojuje a často odpojuje stroje patřící do různých segmentů VXLAN. . Praktickým příkladem je mobilita virtuálních strojů v datovém centru.
PIM (Protocol Independent Multicast) se používá jako směrovací protokol mezi členy skupiny multicast . Stojí za zmínku, že některé implementace VXLAN umožňují, aby VTEP patřily do několika různých skupin multicast současně.
Příklad multicastové komunikace ve VXLAN
Ve schématu na obrázku 2 lze vidět tři VTEP patřící do stejné skupiny multicastu , což omezí zahlcení rámců na zařízení patřící do stejného segmentu VXLAN, čímž se zabrání přetížení ve zbytku sítě.
Sekvence multicastové komunikace, ve které chce hostitel-A komunikovat s hostitelem-B na základě schématu na obrázku 2 :
- Host-A chce komunikovat s hostitelem-B, ale nezná jeho MAC adresu. Proto odešle požadavek ARP s cílovou adresou IP-B přes svou síť VXLAN druhé vrstvy, aby obdržel odpověď ARP od hostitele-B, ze kterého může zjistit svou MAC adresu.
- VTEP-1 přijme rámec a zkontroluje, zda zná shodu IP-B s IP VTEP, po kterém je tato adresa nalezena. Protože to nezná, zapouzdří požadavek ARP do paketu IP multicast a odešle jej do skupiny multicast sítě VXLAN. Multicast IP paket má jako zdrojovou IP adresu VTEP-1 a jako cílovou adresu skupinu multicast, do které VXLAN patří.
- Paket dosáhne všech VTEP, které patří do skupiny multicast. Všichni dekapsulují paket a zkontrolují VNI z hlavičky VXLAN. Protože VNI odpovídá jejich VXLAN segmentu, VTEP přeposílají požadavek ARP do svých lokálních sítí. Během procesu se každý VTEP ve skupině vícesměrového vysílání dozví IP adresu VTEP-1, která obsahuje vnější IP hlavičku, a zkontroluje vnitřní hlavičku, aby zjistil MAC adresu hostitele-A. Nakonec si tuto korespondenci uloží do svých adresních tabulek.
- Host-B přijme požadavek ARP , který mu zašle VTEP-2, a odpoví na požadavek ARP odpovědí obsahující jeho MAC adresu. V tomto procesu hostitel-B zjistil MAC adresu hostitele-A, takže cílová MAC adresa již není vysílaná.
- VTEP-2 obdrží odpověď od hostitele-B. Nyní zná mapování MAC hostitele-A na IP VTEP-1, takže paket z hostitele-B zapouzdří a předá jej jako unicast paket do VTEP-1. Tento paket má jako zdrojovou IP adresu VTEP-2.
- VTEP-1 přijme zapouzdřenou odpověď ARP odeslanou VTEP-2 a zjistí její IP adresu z externí IP hlavičky. Dekapsuluje paket a předá odpověď ARP hostiteli-A.
- Host-A obdrží odpověď ARP a zjistí MAC adresu hostitele-B, takže nyní může komunikovat s tímto hostitelem.
Následující pakety, které jsou odesílány mezi hostiteli A a B, budou VTEP 1 a 2 předány jako unicast pakety, protože se naučili potřebné adresy, aby nemuseli znovu používat vícesměrové předávání. Volitelně, protože VTEP 1 a 2 zjistily MAC adresy hostitelů B a A, mohou fungovat jako proxy ARP , čímž se vyhnou novým požadavkům MAC od těchto dvou hostitelů.
Bezpečnostní aspekty
Obecným pravidlem je, že síť místní spojové vrstvy může být napadena pouze škodlivým uzlem, který je uvnitř sítě. V případě sítě VXLAN je skutečnost, že se provoz druhé vrstvy přenáší přes síť IP, náchylná k napadení škodlivými uzly, které nepatří do místní sítě.
Možným nebezpečím je, že se útočník přihlásí ke skupině vícesměrového vysílání segmentu VXLAN, a proto může přijímat vícesměrový provoz odesílaný sítí nebo vkládat pakety určené pro tuto skupinu vícesměrového vysílání do přenosové sítě.
Pro zvýšení bezpečnosti transportní sítě jsou navržena opatření, jako je použití IPsec v paketech, které jsou odesílány sítí, což umožňuje autentizaci a šifrování provozu VXLAN, čímž se předchází výše zmíněným problémům.
Dalším doporučením pro zvýšení bezpečnosti na místní úrovni VXLAN je určit VLAN , přes kterou je odesílán provoz VXLAN generovaný mezi VTEP a hostiteli v místní síti. Tímto způsobem budou mít přístup k provozu VXLAN místní sítě pouze hostitelé nakonfigurovaní tak, aby patřili do VLAN, na rozdíl od klasické sítě LAN. Rovněž by bylo nutné mít dobrou kontrolu nad hostiteli, kteří patří do sítě LAN, ze strany administrativní jednotky. [ 16 ]
Reference
- ↑ Timothy Prickett Morgan (30. srpna 2011). „VMware, Cisco roztahují virtuální sítě LAN po nebesích“ . Registr . Staženo 20. listopadu 2016 .
- ^ „Arista a VMware jsou spoluautory nového standardu v cloudových sítích: Virtual eXtensible LAN (VXLAN)“ . Staženo 20. listopadu 2016 .
- ^ a b „Bílá kniha o osvědčených postupech virtuální rozšiřitelné LAN (VXLAN)“ . Staženo 20. listopadu 2016 .
- ↑ "VXLAN: koncepty, provoz a implementace (1/2)" . Staženo 26. listopadu 2016 .
- ^ "VXLAN zapouzdření a formát paketů" . Staženo 26. listopadu 2016 .
- ^ "Porozumění VXLAN" . Archivováno z originálu 27. listopadu 2016 . Staženo 26. listopadu 2016 .
- ^ M. Mahalingam, D. Dutt, K. Duda, P. Agarwal, L. Kreeger, T. Sridhar, M. Bursell, C. Wright (srpen 2014). "RFC7348: Část 6: Scénáře nasazení VXLAN" . Staženo 26. listopadu 2016 .
- ^ M. Mahalingam, D. Dutt, K. Duda, P. Agarwal, L. Kreeger, T. Sridhar, M. Bursell, C. Wright (srpen 2014). "RFC7348: Virtual eXtensible Local Area Network (VXLAN): Rámec pro překrývání virtualizovaných sítí vrstvy 2 přes sítě vrstvy 3" . Staženo 26. listopadu 2016 .
- ^ M. Mahalingam, D. Dutt, K. Duda, P. Agarwal, L. Kreeger, T. Sridhar, M. Bursell, C. Wright (srpen 2014). "RFC7348: Část 5: Formát rámce VXLAN" . Staženo 26. listopadu 2016 .
- ^ M. Mahalingam, D. Dutt, K. Duda, P. Agarwal, L. Kreeger, T. Sridhar, M. Bursell, C. Wright (srpen 2014). "RFC7348: Část 4: VXLAN" . Staženo 3. prosince 2016 .
- ↑ Arista Networks,. "Přehled VXLAN" . Staženo 27. listopadu 2016 .
- ↑ Patricio Cerda (9. listopadu 2016). "NSX: Režimy replikace VXLAN" . Archivováno z originálu 2. prosince 2016 . Staženo 27. listopadu 2016 .
- ^ M. Mahalingam, D. Dutt, K. Duda, P. Agarwal, L. Kreeger, T. Sridhar, M. Bursell, C. Wright (srpen 2014). "RFC7348: Část 4.1: Komunikace mezi virtuálním počítačem a virtuálním počítačem Unicast" . Staženo 27. listopadu 2016 .
- ↑ Cisco. „Mechanismy vrstvy 2 pro vysílání, neznámé jednosměrové vysílání a vícesměrový provoz“ . Staženo 2. prosince 2016 .
- ^ M. Mahalingam, D. Dutt, K. Duda, P. Agarwal, L. Kreeger, T. Sridhar, M. Bursell, C. Wright (srpen 2014). "RFC7348: Část 4.2: Broadcastová komunikace a mapování na Multicast" . Staženo 2. prosince 2016 .
- ^ M. Mahalingam, D. Dutt, K. Duda, P. Agarwal, L. Kreeger, T. Sridhar, M. Bursell, C. Wright (srpen 2014). "RFC7348: Část 7: Bezpečnostní aspekty" . Staženo 3. prosince 2016 .
Externí odkazy
- Technický přehled Arista VXLAN
- NSX: Úvod do VXLAN
- NSX: Režimy replikace VXLAN
- RFC7348 (v angličtině)
- Arista Design Guide DCI s VXLAN
- White Paper Design VMware & Arista
- Bílá kniha o doporučených postupech virtuální rozšiřitelné LAN (VXLAN).
