VXLAN (англ. Virtual eXtensible Local Area Network) - це схема інкапсуляції кадрів мережевого протоколу другого рівня в пакетах протоколу третього рівня (тунелювання), з метою створити , і обійти деякі обмеження традиційної схеми VLAN. VXLAN працює поверх наявної мережевої інфраструктури, таким чином можна назвати її оверлейною мережею.
Завдання
В 2010-тих роках поширюються хмарні технології та віртуалізація серверів. Це створює додаткові виклики для мережевої інфраструктури. Ті з них які намагається розв’язати технологія VXLAN буде розглянуто нижче.
Якщо дата-центр використовує кілька користувачів, і кожен з них хоче мати свою окрему віртуальну мережу для з’єднання орендованих машин, то їх потрібно якось ізолювати одне від одного, як з метою безпеки, так і з метою продуктивності (наприклад щоб широкомовні кадри однієї мережі не заважали кадрам інших мереж (широкомовні кадри трапляються дуже часто при використанні ARP)). Традиційно це робили за допомогою технології VLAN, проте через те що VLAN намагається відповідати формату кадру стандарту Ethernet, ця технологія дозволяє створити лише 4096 віртуальних мереж. Ця кількість була достатньою раніше, коли дата-центри не обслуговували тисячі користувачів водночас. Окрім того, деякі користувачі самі потребуватимуть кількох VLAN.
Ще одною проблемою є розширення віртуальної мережі за межі фізичної мережі. Іноді користувач може орендувати сервери на кількох різних мережах дата-центру, і захотіти їх об’єднати. Він міг би вдатись до міжмережевого протоколу на рівні 3 (Internet Protocol), але це не враховує користувачів яким потрібні інші протоколи третього рівня, або прямий доступ до другого рівня.
Зі зростанням кількості віртуальних машин на фізичних серверах відповідно зростає кількість MAC-адрес присвоєних одному фізичному серверу. Це збільшує розмір таблиць маршрутизації у свічах. Якщо таблиця переповнюється - сервер перестає запам’ятовувати нові адреси, поки інформація про старі не застаріє і не буде видалена, що спричинить широкомовну трансляцію кадрів які призначені адресі яку свіч не знає, і падіння пропускної здатності мережі.
VXLAN також допомагає обійти деякі обмеження STP[].
Оверлейна мережа в Docker базується на основі технології VXLAN.
Опис
VXLAN розбиває мережу на кілька сегментів (англ. VXLAN Segments). Кожен сегмент має ідентифікатор - VNI (англ. VXLAN Network Identifier), розміром 24 біт. Це дозволяє максимальну кількість сегментів приблизно 16 мільйонів. Між собою можуть з’єднуватись лише машини всередині одного сегменту.
Віртуальна машина на хості може не знати (і не повинна знати), що вона знаходиться в певному сегменті. Вона просто відправляє кадр Ethernet, і якщо на гіпервізорі хоста налаштований VTEP (англ. VXLAN Tunnel End Point) (сутність з якої починаються або в якій закінчуються тунелі VXLAN), то цей VTEP спершу перевірить якому сегменту відповідає MAC-адреса призначення, і звірить його з VNI для машини відправника. Якщо вони однакові - кадр можна відправляти. Якщо машина призначення знаходить на тому самому хості - гіпервізор передасть кадр машині зразу, якщо на якомусь іншому - загорне наш кадр в набір заголовків VXLAN і відправить VTEP-у віддаленого хоста. IANA призначила для протоколу VXLAN окремий номер порту UDP - 4789
Формат заголовків VXLAN
VXLAN може працювати наприклад на тому ж Ethernet, і дуже часто так і є. Тому він може містити два заголовки Ehternet, почнемо розглядати його з зовнішнього:
Зміщення (Offsets) | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Біти | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Зовнішня MAC-адреса призначення | |||||||||||||||||||||||||||||||
4 | 32 | Зовнішня MAC-адреса призначення | Зовнішня MAC-адреса відправника | ||||||||||||||||||||||||||||||
8 | 64 | Зовнішня MAC-адреса відправника | |||||||||||||||||||||||||||||||
12 | 96 | OptnlEthtype = C-Tag 802.1Q | VLAN Tag | ||||||||||||||||||||||||||||||
16 | 128 | = 0x0800 (IPv4) |
Всередині кадру Ethernet міститься IPv4 пакет:
Зміщення (Offsets) | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Біти | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Версія | IHL | Тип сервісу | Загальна довжина | ||||||||||||||||||||||||||||
4 | 32 | Ідентифікація | Прапорці | Зміщення фрагментації | |||||||||||||||||||||||||||||
8 | 64 | TTL | Протокол=17 (UDP) | Контрольна сума заголовку | |||||||||||||||||||||||||||||
12 | 96 | Зовнішня IP-адреса призначення | |||||||||||||||||||||||||||||||
16 | 128 | Зовнішня IP-адреса відправника |
Який містить дейтаграму UDP:
Зміщення (Offsets) | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Біти | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Порт відправника | Порт призначення = порту VXLAN | ||||||||||||||||||||||||||||||
4 | 32 | Довжина UDP | Чексума UDP |
Всередині якої міститься заголовок VXLAN:
Зміщення (Offsets) | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Біти | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Р | Р | Р | Р | I | Р | Р | Р | Зарезервовано | |||||||||||||||||||||||
4 | 32 | VNI | Зарезервовано |
Після якого йдуть заголовки внутрішнього кадру Ethernet, і нарешті вміст кадру:
Зміщення (Offsets) | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Біти | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Внутрішня MAC-адреса призначення | |||||||||||||||||||||||||||||||
4 | 32 | Внутрішня MAC-адреса призначення | Внутрішня MAC-адреса відправника | ||||||||||||||||||||||||||||||
8 | 64 | Внутрішня MAC-адреса відправника | |||||||||||||||||||||||||||||||
12 | 96 | OptnlEthtype = C-Tag 802.1Q | Внутрішній VLAN Tag | ||||||||||||||||||||||||||||||
16 | 128 | вмісту що передається через VXLAN тунель | Вміст кадру | ||||||||||||||||||||||||||||||
20 | 160 | Вміст кадру (Зауважте що FCS оригінального кадру Ethernet не включаються) |
Зміщення (Offsets) | Октет | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Октет | Біти | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Нова FCS (Frame Check Sequence) для зовнішнього кадру Ethernet. |
Відправка широкомовних кадрів
Нехай віртуальна машина всередині VXLAN хоче поспілкуватись з іншою машиною, звернувшись до неї по IP. Якщо це IP в тій самій підмережі, то вона пошле широкомовний кадр ARP, щоб дізнатись фізичну адресу призначення. В середовищі без VXLAN, такий кадр було б послано з використанням широкомовної адреси FF:FF:FF:FF:FF:FF
, і був би переданий у всі порти свіча на який прийшов, або на всі порти свіча що належать тому самому VLAN, якщо свіч підтримує технологію VLAN.
У випадку з VXLAN, вміст кадру поміщається в VXLAN пакет, в полі якого встановлюється відповідне VNI, і вони загортаються в UDP та IP пакет. IP пакет відсилається IP мультикаст групі, яка пов’язана з даним VXLAN сегментом. Щоб це здійснити, потрібне відображення з VNI на потрібну IP мультикаст групу. Це відображення здійснюється на рівні керування мережею і надається кожному окремому VTEP через канал керування. Кожен VTEP може повідомляти свіч до якого він під’єднаний про приєднання чи вихід з мультикаст групи за допомогою IGMP.
Також для керування мультикаст деревами можуть використовуватись протоколи маршрутизації мультикаст повідомлень, на зразок Protocol Independent Multicast - Sparse-Mode PIM-SM (RFC 4601), або Bidirectional PIM (BIDIR-PIM, RFC 5015), так як VTEM може бути як відправником, так і приймачем широкомовних пакетів.
Мультикаст фрейми, і фрейми порт MAC-адреса призначення якої має невідомий порт також відсилаються через IP мультикаст.
Зноски
- Poulton, Nigel (12 жовтня 2016). . nigelpoulton.com. Архів оригіналу за 21 листопада 2018. Процитовано 21 листопада 2018.
- . Архів оригіналу за 25 вересня 2020. Процитовано 24 квітня 2020.
- зарезервовано
Посилання
- RFC 7348
- (англ.) VXLAN Series – How VTEP Learns and Creates Forwarding Table [ 12 жовтня 2015 у Wayback Machine.] VMware vSphere Blog
- (англ.) Five Functional Facts about VXLAN [ 22 жовтня 2016 у Wayback Machine.]
- (англ.) VXLAN Deep Dive [ 30 вересня 2015 у Wayback Machine.]
- (англ.) Fundamentals of VXLAN на YouTube
- (англ.) Application Centric Infrastructure / VxLAN на YouTube
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
VXLAN angl Virtual eXtensible Local Area Network ce shema inkapsulyaciyi kadriv merezhevogo protokolu drugogo rivnya v paketah protokolu tretogo rivnya tunelyuvannya z metoyu stvoriti i obijti deyaki obmezhennya tradicijnoyi shemi VLAN VXLAN pracyuye poverh nayavnoyi merezhevoyi infrastrukturi takim chinom mozhna nazvati yiyi overlejnoyu merezheyu ZavdannyaV 2010 tih rokah poshiryuyutsya hmarni tehnologiyi ta virtualizaciya serveriv Ce stvoryuye dodatkovi vikliki dlya merezhevoyi infrastrukturi Ti z nih yaki namagayetsya rozv yazati tehnologiya VXLAN bude rozglyanuto nizhche Yaksho data centr vikoristovuye kilka koristuvachiv i kozhen z nih hoche mati svoyu okremu virtualnu merezhu dlya z yednannya orendovanih mashin to yih potribno yakos izolyuvati odne vid odnogo yak z metoyu bezpeki tak i z metoyu produktivnosti napriklad shob shirokomovni kadri odniyeyi merezhi ne zavazhali kadram inshih merezh shirokomovni kadri traplyayutsya duzhe chasto pri vikoristanni ARP Tradicijno ce robili za dopomogoyu tehnologiyi VLAN prote cherez te sho VLAN namagayetsya vidpovidati formatu kadru standartu Ethernet cya tehnologiya dozvolyaye stvoriti lishe 4096 virtualnih merezh Cya kilkist bula dostatnoyu ranishe koli data centri ne obslugovuvali tisyachi koristuvachiv vodnochas Okrim togo deyaki koristuvachi sami potrebuvatimut kilkoh VLAN She odnoyu problemoyu ye rozshirennya virtualnoyi merezhi za mezhi fizichnoyi merezhi Inodi koristuvach mozhe orenduvati serveri na kilkoh riznih merezhah data centru i zahotiti yih ob yednati Vin mig bi vdatis do mizhmerezhevogo protokolu na rivni 3 Internet Protocol ale ce ne vrahovuye koristuvachiv yakim potribni inshi protokoli tretogo rivnya abo pryamij dostup do drugogo rivnya Zi zrostannyam kilkosti virtualnih mashin na fizichnih serverah vidpovidno zrostaye kilkist MAC adres prisvoyenih odnomu fizichnomu serveru Ce zbilshuye rozmir tablic marshrutizaciyi u svichah Yaksho tablicya perepovnyuyetsya server perestaye zapam yatovuvati novi adresi poki informaciya pro stari ne zastariye i ne bude vidalena sho sprichinit shirokomovnu translyaciyu kadriv yaki priznacheni adresi yaku svich ne znaye i padinnya propusknoyi zdatnosti merezhi VXLAN takozh dopomagaye obijti deyaki obmezhennya STP dzherelo Overlejna merezha v Docker bazuyetsya na osnovi tehnologiyi VXLAN OpisVXLAN rozbivaye merezhu na kilka segmentiv angl VXLAN Segments Kozhen segment maye identifikator VNI angl VXLAN Network Identifier rozmirom 24 bit Ce dozvolyaye maksimalnu kilkist segmentiv priblizno 16 miljoniv Mizh soboyu mozhut z yednuvatis lishe mashini vseredini odnogo segmentu Virtualna mashina na hosti mozhe ne znati i ne povinna znati sho vona znahoditsya v pevnomu segmenti Vona prosto vidpravlyaye kadr Ethernet i yaksho na gipervizori hosta nalashtovanij VTEP angl VXLAN Tunnel End Point sutnist z yakoyi pochinayutsya abo v yakij zakinchuyutsya tuneli VXLAN to cej VTEP spershu perevirit yakomu segmentu vidpovidaye MAC adresa priznachennya i zvirit jogo z VNI dlya mashini vidpravnika Yaksho voni odnakovi kadr mozhna vidpravlyati Yaksho mashina priznachennya znahodit na tomu samomu hosti gipervizor peredast kadr mashini zrazu yaksho na yakomus inshomu zagorne nash kadr v nabir zagolovkiv VXLAN i vidpravit VTEP u viddalenogo hosta IANA priznachila dlya protokolu VXLAN okremij nomer portu UDP 4789 Format zagolovkiv VXLAN VXLAN mozhe pracyuvati napriklad na tomu zh Ethernet i duzhe chasto tak i ye Tomu vin mozhe mistiti dva zagolovki Ehternet pochnemo rozglyadati jogo z zovnishnogo Zagolovok zovnishnogo Ethernet kadru Zmishennya Offsets Oktet 0 1 2 3 Oktet Biti 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 Zovnishnya MAC adresa priznachennya 4 32 Zovnishnya MAC adresa priznachennya Zovnishnya MAC adresa vidpravnika 8 64 Zovnishnya MAC adresa vidpravnika 12 96 OptnlEthtype C Tag 802 1Q VLAN Tag 16 128 0x0800 IPv4 Vseredini kadru Ethernet mistitsya IPv4 paket Zagolovok zovnishnogo IP paketu Zmishennya Offsets Oktet 0 1 2 3 Oktet Biti 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 Versiya IHL Tip servisu Zagalna dovzhina 4 32 Identifikaciya Praporci Zmishennya fragmentaciyi 8 64 TTL Protokol 17 UDP Kontrolna suma zagolovku 12 96 Zovnishnya IP adresa priznachennya 16 128 Zovnishnya IP adresa vidpravnika Yakij mistit dejtagramu UDP Zagolovki UDP Zmishennya Offsets Oktet 0 1 2 3 Oktet Biti 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 Port vidpravnika Port priznachennya portu VXLAN 4 32 Dovzhina UDP Cheksuma UDP Vseredini yakoyi mistitsya zagolovok VXLAN Zagolovok VXLAN Zmishennya Offsets Oktet 0 1 2 3 Oktet Biti 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 R R R R I R R R Zarezervovano 4 32 VNI Zarezervovano Pislya yakogo jdut zagolovki vnutrishnogo kadru Ethernet i nareshti vmist kadru Zagolovok vnutrishnogo Ethernet kadru Zmishennya Offsets Oktet 0 1 2 3 Oktet Biti 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 Vnutrishnya MAC adresa priznachennya 4 32 Vnutrishnya MAC adresa priznachennya Vnutrishnya MAC adresa vidpravnika 8 64 Vnutrishnya MAC adresa vidpravnika 12 96 OptnlEthtype C Tag 802 1Q Vnutrishnij VLAN Tag 16 128 vmistu sho peredayetsya cherez VXLAN tunel Vmist kadru 20 160 Vmist kadru Zauvazhte sho FCS originalnogo kadru Ethernet ne vklyuchayutsya Frame Check Sequence Zmishennya Offsets Oktet 0 1 2 3 Oktet Biti 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 Nova FCS Frame Check Sequence dlya zovnishnogo kadru Ethernet Vidpravka shirokomovnih kadriv Nehaj virtualna mashina vseredini VXLAN hoche pospilkuvatis z inshoyu mashinoyu zvernuvshis do neyi po IP Yaksho ce IP v tij samij pidmerezhi to vona poshle shirokomovnij kadr ARP shob diznatis fizichnu adresu priznachennya V seredovishi bez VXLAN takij kadr bulo b poslano z vikoristannyam shirokomovnoyi adresi FF FF FF FF FF FF i buv bi peredanij u vsi porti svicha na yakij prijshov abo na vsi porti svicha sho nalezhat tomu samomu VLAN yaksho svich pidtrimuye tehnologiyu VLAN U vipadku z VXLAN vmist kadru pomishayetsya v VXLAN paket v poli yakogo vstanovlyuyetsya vidpovidne VNI i voni zagortayutsya v UDP ta IP paket IP paket vidsilayetsya IP multikast grupi yaka pov yazana z danim VXLAN segmentom Shob ce zdijsniti potribne vidobrazhennya z VNI na potribnu IP multikast grupu Ce vidobrazhennya zdijsnyuyetsya na rivni keruvannya merezheyu i nadayetsya kozhnomu okremomu VTEP cherez kanal keruvannya Kozhen VTEP mozhe povidomlyati svich do yakogo vin pid yednanij pro priyednannya chi vihid z multikast grupi za dopomogoyu IGMP Takozh dlya keruvannya multikast derevami mozhut vikoristovuvatis protokoli marshrutizaciyi multikast povidomlen na zrazok Protocol Independent Multicast Sparse Mode PIM SM RFC 4601 abo Bidirectional PIM BIDIR PIM RFC 5015 tak yak VTEM mozhe buti yak vidpravnikom tak i prijmachem shirokomovnih paketiv Multikast frejmi i frejmi port MAC adresa priznachennya yakoyi maye nevidomij port takozh vidsilayutsya cherez IP multikast ZnoskiPoulton Nigel 12 zhovtnya 2016 nigelpoulton com Arhiv originalu za 21 listopada 2018 Procitovano 21 listopada 2018 Arhiv originalu za 25 veresnya 2020 Procitovano 24 kvitnya 2020 zarezervovanoPosilannyaRFC 7348 angl VXLAN Series How VTEP Learns and Creates Forwarding Table 12 zhovtnya 2015 u Wayback Machine VMware vSphere Blog angl Five Functional Facts about VXLAN 22 zhovtnya 2016 u Wayback Machine angl VXLAN Deep Dive 30 veresnya 2015 u Wayback Machine angl Fundamentals of VXLAN na YouTube angl Application Centric Infrastructure VxLAN na YouTube