Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Π’ oldingi masala Men tarmoqni avtomatlashtirish tizimini tasvirlab berdim. Ba'zi odamlarning fikriga ko'ra, muammoga birinchi yondashuv ham ba'zi savollarni hal qilgan. Va bu meni juda xursand qiladi, chunki tsikldagi maqsadimiz Ansibleni Python skriptlari bilan qoplash emas, balki tizim yaratishdir.

Xuddi shu ramka biz savolni ko'rib chiqish tartibini belgilaydi.
Va bu masala bag'ishlangan tarmoq virtualizatsiyasi biz avtomatlashtirishni tahlil qiladigan ADSM mavzusiga unchalik mos kelmaydi.

Ammo keling, buni boshqa tomondan ko'rib chiqaylik.

Ko'pgina xizmatlar bir xil tarmoqdan uzoq vaqtdan beri foydalanmoqda. Telekommunikatsiya operatori bo'lsa, bu, masalan, 2G, 3G, LTE, keng polosali va B2B. DC holatida: turli mijozlar uchun ulanish, Internet, blokli saqlash, ob'ektni saqlash.

Va barcha xizmatlar bir-biridan izolyatsiyani talab qiladi. Overlay tarmoqlari shunday paydo bo'ldi.

Va barcha xizmatlar odam ularni qo'lda sozlashini kutishni xohlamaydi. Orkestrlar va SDN shunday paydo bo'ldi.

Tarmoqni tizimli avtomatlashtirishga birinchi yondashuv, aniqrog'i uning bir qismi ko'p joylarda uzoq vaqtdan beri qo'llanilgan va joriy qilingan: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.

Bugun biz shu bilan shug'ullanamiz.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Mundarija

  • sabablari
  • Terminologiya
  • Astar - jismoniy tarmoq
  • Overlay - virtual tarmoq
    • ToR bilan qoplash
    • Xostdan ustki qatlam
    • Misol sifatida volfram matosidan foydalanish
      • Yagona jismoniy mashina ichida aloqa
      • Turli jismoniy mashinalarda joylashgan VMlar o'rtasidagi aloqa
      • Tashqi dunyoga chiqish

  • FAQ
  • xulosa
  • Foydali havolalar

sabablari

Va biz bu haqda gapirayotganimiz sababli, tarmoqni virtualizatsiya qilish uchun zarur shartlarni eslatib o'tish kerak. Aslida bu jarayon kecha boshlangani yoβ€˜q.

Tarmoq har doim har qanday tizimning eng inert qismi bo'lganini bir necha bor eshitgan bo'lsangiz kerak. Va bu har jihatdan to'g'ri. Tarmoq hamma narsa tayanadigan asos bo'lib, unga o'zgartirishlar kiritish juda qiyin - tarmoq ishlamay qolganda xizmatlar bunga toqat qilmaydi. Ko'pincha, bitta tugunni o'chirish ilovalarning katta qismini olib tashlashi va ko'plab mijozlarga ta'sir qilishi mumkin. Bu qisman nima uchun tarmoq jamoasi har qanday o'zgarishlarga qarshi turishi mumkin - chunki endi u qandaydir tarzda ishlaydi (qanday qilib bilmasligimiz ham mumkin), lekin bu erda siz yangi narsalarni sozlashingiz kerak va bu tarmoqqa qanday ta'sir qilishi noma'lum.

Tarmoqchilarning VLAN-larni kiritishini kutmaslik va har bir tarmoq tugunida hech qanday xizmatlarni ro'yxatdan o'tkazmaslik uchun odamlar juda xilma-xil bo'lgan qoplamali tarmoqlardan foydalanish g'oyasini o'ylab topdilar: GRE, IPinIP, MPLS, MPLS L2/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE va boshqalar.

Ularning jozibadorligi ikkita oddiy narsada yotadi:

  • Faqat oxirgi tugunlar sozlangan - tranzit tugunlariga teginish shart emas. Bu jarayonni sezilarli darajada tezlashtiradi va ba'zida tarmoq infratuzilmasi bo'limini yangi xizmatlarni joriy etish jarayonidan butunlay chiqarib tashlashga imkon beradi.
  • Yuk sarlavhalar ichida chuqur yashiringan - tranzit tugunlari bu haqda, xostlardagi manzillar yoki overlay tarmog'ining marshrutlari haqida hech narsa bilishlari shart emas. Bu shuni anglatadiki, jadvallarda kamroq ma'lumot saqlashingiz kerak, ya'ni oddiyroq/arzonroq qurilmadan foydalanish.

Ushbu to'liq to'liq bo'lmagan masalada men barcha mumkin bo'lgan texnologiyalarni tahlil qilishni rejalashtirmayman, balki DClarda ustki tarmoqlarning ishlashi uchun asoslarni tasvirlab beraman.

Butun seriya bir xil server uskunalari o'rnatilgan bir xil raftlar qatorlaridan iborat ma'lumotlar markazini tavsiflaydi.

Ushbu uskuna xizmatlarni amalga oshiradigan virtual mashinalar/konteynerlar/serversiz ishlaydi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Terminologiya

Bir halqada server Men mijoz-server aloqasining server tomonini amalga oshiradigan dasturni nomlayman.

Raflardagi jismoniy mashinalar serverlar deb ataladi yo'q Biz .. qilamiz.

Jismoniy mashina β€” x86 kompyuter tokchaga o'rnatilgan. Eng ko'p ishlatiladigan atama mezbon. Biz buni shunday deb ataymiz"машина"yoki mezbon.

Gipervisor - virtual mashinalar ishlaydigan jismoniy resurslarga taqlid qiluvchi jismoniy mashinada ishlaydigan dastur. Ba'zan adabiyotda va Internetda "gipervisor" so'zi "xost" so'zining sinonimi sifatida ishlatiladi.

Virtual mashina - gipervisor ustidagi jismoniy mashinada ishlaydigan operatsion tizim. Ushbu tsiklda biz uchun bu virtual mashinami yoki shunchaki konteynermi, muhim emas. Keling, uni chaqiramiz "VMΒ«

Ijarachi keng tushuncha bo'lib, men ushbu maqolada alohida xizmat yoki alohida mijoz sifatida belgilayman.

Ko'p ijara yoki ko'p ijaraga olish - turli mijozlar/xizmatlar tomonidan bir xil dasturdan foydalanish. Shu bilan birga, mijozlarni bir-biridan izolyatsiya qilish alohida ishlaydigan misollar orqali emas, balki dastur arxitekturasi tufayli erishiladi.

ToR - Rafning yuqori qismidagi kalit - barcha jismoniy mashinalar ulangan rafga o'rnatilgan kalit.

ToR topologiyasiga qo'shimcha ravishda, turli provayderlar End of Row (EoR) yoki Middle of Row (ikkinchisi kamdan-kam uchraydigan narsa bo'lsa-da va men MoR qisqartmasini ko'rmaganman).

Pastki tarmoq yoki asosiy tarmoq yoki pastki qatlam jismoniy tarmoq infratuzilmasi: kalitlar, marshrutizatorlar, kabellar.

Overlay tarmog'i yoki overlay tarmoq yoki overlay - jismoniy tunnel ustida ishlaydigan virtual tunnel tarmog'i.

L3 mato yoki IP mato - insoniyatning ajoyib ixtirosi, bu sizga STPni takrorlamaslik va intervyu uchun TRILL-ni o'rganish imkonini beradi. Kirish darajasigacha bo'lgan butun tarmoq faqat L3 bo'lib, VLAN va shunga mos ravishda katta kengaytirilgan eshittirish domenlarisiz kontseptsiya. Keyingi qismda "zavod" so'zi qaerdan kelganini aniqlaymiz.

SDN - Dasturiy ta'minot bilan belgilangan tarmoq. Kirish shart emas. Tarmoqni boshqarishga yondashuv, bunda tarmoqdagi o'zgarishlar shaxs tomonidan emas, balki dastur tomonidan amalga oshiriladi. Odatda boshqaruv tekisligini so'nggi tarmoq qurilmalaridan tashqari nazoratchiga o'tkazishni anglatadi.

NFV - Tarmoq funksiyalarini virtualizatsiya qilish - tarmoq qurilmalarini virtualizatsiya qilish, yangi xizmatlarni amalga oshirishni tezlashtirish, xizmatlar zanjirini tashkil etish va gorizontal o'lchovni soddalashtirish uchun ba'zi tarmoq funktsiyalarini virtual mashinalar yoki konteynerlar shaklida ishga tushirish mumkinligini ko'rsatadi.

VNF - Virtual tarmoq funksiyasi. Maxsus virtual qurilma: router, kalit, xavfsizlik devori, NAT, IPS/IDS va boshqalar.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

O'quvchini ortiqcha chalkashtirib yubormaslik uchun men hozir tavsifni ataylab soddalashtiryapman. Aniqroq o'qish uchun men uni bo'limga havola qilaman Manbalar. Bundan tashqari, ushbu maqolani noto'g'riligi uchun tanqid qilgan Roma Gorge, server va tarmoqni virtualizatsiya texnologiyalari haqida alohida son yozishni va'da qilmoqda, batafsilroq va batafsilroq.

Bugungi kunda ko'pgina tarmoqlarni ikki qismga bo'lish mumkin:

Astar β€” barqaror konfiguratsiyaga ega jismoniy tarmoq.
Overlay - ijarachilarni izolyatsiya qilish uchun Underlay over abstraction.

Bu DC ishi uchun ham (biz ushbu maqolada tahlil qilamiz) va ISP uchun (biz buni tahlil qilmaymiz, chunki u allaqachon bo'lgan. SDSM). Korxona tarmoqlari bilan, albatta, vaziyat biroz boshqacha.

Tarmoqqa qaratilgan rasm:

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Astar

Underlay - bu jismoniy tarmoq: apparat kalitlari va kabellar. Er osti qurilmalari jismoniy mashinalarga qanday etib borishni biladi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

U standart protokollar va texnologiyalarga tayanadi. Bugungi kunga qadar apparat qurilmalari chipni dasturlash yoki o'z protokollarini amalga oshirishga imkon bermaydigan xususiy dasturiy ta'minotda ishlayotganligi sababli, shuning uchun boshqa ishlab chiqaruvchilar bilan muvofiqlik va standartlashtirish zarur.

Ammo Google kabi kimdir o'z kalitlarini ishlab chiqishga va umumiy qabul qilingan protokollardan voz kechishga qodir. Lekin LAN_DC Google emas.

Astar kamdan-kam hollarda o'zgaradi, chunki uning vazifasi jismoniy mashinalar orasidagi asosiy IP ulanishidir. Underlay uning ustida ishlaydigan xizmatlar, mijozlar yoki ijarachilar haqida hech narsa bilmaydi - u faqat paketni bir mashinadan boshqasiga etkazib berishi kerak.
Astar quyidagicha bo'lishi mumkin:

  • IPv4+OSPF
  • IPv6+ISIS+BGP+L3VPN
  • L2+TRILL
  • L2+STP

Underlay tarmog'i klassik tarzda sozlangan: CLI/GUI/NETCONF.

Qo'lda, skriptlar, xususiy yordamchi dasturlar.

Seriyadagi keyingi maqola batafsilroq taglikka bag'ishlanadi.

Overlay

Overlay - bu Underlay tepasida joylashgan tunnellarning virtual tarmog'i bo'lib, u bitta mijozning VM-lariga boshqa mijozlardan izolyatsiyani ta'minlagan holda bir-biri bilan aloqa qilish imkonini beradi.

Mijoz ma'lumotlari umumiy tarmoq orqali uzatish uchun ba'zi tunnel sarlavhalariga kiritilgan.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Shunday qilib, bitta mijozning (bitta xizmat) VM'lari paketning aslida qaysi yo'lni bosib o'tishini bilmasdan ham, Overlay orqali bir-biri bilan bog'lanishi mumkin.

Yuqorida aytib o'tganimdek, qoplama, masalan:

  • GRE tunneli
  • VXLAN
  • EVPN
  • L3VPN
  • JENEV

Overlay tarmog'i odatda markaziy kontroller orqali sozlanadi va saqlanadi. Undan konfiguratsiya, boshqaruv tekisligi va ma'lumotlar tekisligi mijoz trafigini yo'naltiruvchi va qamrab oluvchi qurilmalarga yetkaziladi. Ozgina quyida ko'rsatilgan Keling, buni misollar bilan ko'rib chiqaylik.

Ha, bu sof shaklda SDN.

Overlay tarmog'ini tashkil qilishda ikkita tubdan farq qiladigan yondashuvlar mavjud:

  1. ToR bilan qoplash
  2. Xostdan ustki qatlam

ToR bilan qoplash

Qoplama, masalan, VXLAN matosida bo'lgani kabi, tokchada turgan kirish tugmasidan (ToR) boshlanishi mumkin.

Bu ISP tarmoqlarida vaqt sinovidan o'tgan mexanizm va barcha tarmoq uskunalari sotuvchilari uni qo'llab-quvvatlaydi.

Biroq, bu holda, ToR kommutatori mos ravishda turli xizmatlarni ajrata olishi kerak va tarmoq ma'muri ma'lum darajada virtual mashina ma'murlari bilan hamkorlik qilishi va qurilmalar konfiguratsiyasiga o'zgartirishlar kiritishi kerak (avtomatik bo'lsa ham) .

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Bu erda men o'quvchini maqolaga havola qilaman HabrΓ©-da VxLAN bizning eski do'stimiz @bormoglotx.
Bunda ENOG bilan taqdimotlar EVPN VXLAN to'qimasi bilan DC tarmog'ini qurish yondashuvlari batafsil tavsiflangan.

Va haqiqatga to'liqroq kirish uchun siz Tsiskaning kitobini o'qishingiz mumkin Zamonaviy, ochiq va kengaytiriladigan mato: VXLAN EVPN.

Shuni ta'kidlaymanki, VXLAN bu faqat inkapsulyatsiya usulidir va tunnellarning tugatilishi, masalan, OpenStack-da bo'lgani kabi ToR-da emas, balki xostda sodir bo'lishi mumkin.

Biroq, qoplama ToR da boshlanadigan VXLAN matosi o'rnatilgan overlay tarmoq dizaynlaridan biridir.

Xostdan ustki qatlam

Yana bir yondashuv - oxirgi hostlarda tunnellarni ishga tushirish va tugatish.
Bunday holda, tarmoq (Underlay) iloji boricha sodda va statik bo'lib qoladi.
Va uy egasining o'zi barcha kerakli inkapsulyatsiyani amalga oshiradi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Bu, albatta, xostlarda maxsus dasturni ishga tushirishni talab qiladi, ammo bunga arziydi.

Birinchidan, mijozni Linux mashinasida ishga tushirish osonroq yoki aytaylik, hatto mumkin, kommutatorda siz ko'p sotuvchi g'oyasini o'ldiradigan xususiy SDN echimlariga murojaat qilishingiz kerak bo'ladi.

Ikkinchidan, bu holda ToR kaliti boshqaruv tekisligi va ma'lumotlar tekisligi nuqtai nazaridan imkon qadar sodda qoldirilishi mumkin. Haqiqatan ham, u holda SDN kontroller bilan bog'lanishning hojati yo'q, shuningdek, barcha ulangan mijozlarning tarmoqlarini/ARPlarini saqlashga hojat yo'q - jismoniy mashinaning IP-manzilini bilish kifoya, bu kommutatsiyani sezilarli darajada osonlashtiradi/ marshrutlash jadvallari.

ADSM seriyasida men xostdan qoplamali yondashuvni tanlayman - keyin biz bu haqda faqat gaplashamiz va biz VXLAN zavodiga qaytmaymiz.

Misollarni ko'rib chiqish eng oson. Va sinov mavzusi sifatida biz hozirda nomi bilan tanilgan OpenContrail OpenSource SDN platformasini olamiz Volfram mato.

Maqolaning oxirida men OpenFlow va OpenvSwitch bilan o'xshashlik haqida ba'zi fikrlarni beraman.

Misol sifatida volfram matosidan foydalanish

Har bir jismoniy mashina mavjud vRouter - unga ulangan tarmoqlar va ular qaysi mijozlarga tegishli ekanligini biladigan virtual router - asosan PE router. Har bir mijoz uchun u alohida marshrutlash jadvalini saqlaydi (VRF o'qing). Va vRouter aslida Overlay tunnelini amalga oshiradi.

vRouter haqida bir oz ko'proq ma'lumot maqolaning oxirida.

Gipervisorda joylashgan har bir VM ushbu mashinaning vRouter-ga orqali ulanadi TAP interfeysi.

tAP - Terminal kirish nuqtasi - tarmoq o'zaro ta'sirini ta'minlaydigan Linux yadrosidagi virtual interfeys.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Agar vRouter orqasida bir nechta tarmoqlar mavjud bo'lsa, ularning har biri uchun virtual interfeys yaratiladi, unga IP-manzil tayinlanadi - bu standart shlyuz manzili bo'ladi.
Bitta mijozning barcha tarmoqlari bittasiga joylashtirilgan VRF (bitta stol), har xil - har xillarga.
Men bu erda hamma narsa unchalik oddiy emasligini rad etaman va qiziquvchan o'quvchini maqolaning oxiriga yuboraman..

vRouterlar bir-biri bilan va shunga mos ravishda ularning orqasida joylashgan VM-lar bilan bog'lanishi uchun ular marshrutlash ma'lumotlarini almashishadi. SDN boshqaruvchisi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Tashqi dunyoga chiqish uchun matritsadan chiqish nuqtasi - virtual tarmoq shlyuzi mavjud VNGW - Virtual tarmoq shlyuzi (mening muddatim).

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Endi aloqa misollarini ko'rib chiqaylik - va aniqlik bo'ladi.

Yagona jismoniy mashina ichida aloqa

VM0 VM2 ga paket yubormoqchi. Hozircha bu bitta mijoz VM deb faraz qilaylik.

Ma'lumotlar tekisligi

  1. VM-0 o'zining eth0 interfeysiga sukut bo'yicha marshrutga ega. Paket u erga yuboriladi.
    Ushbu eth0 interfeysi virtual virtual router vRouterga TAP interfeysi tap0 orqali ulangan.
  2. vRouter paket qaysi interfeysga kelganini, ya'ni qaysi mijozga (VRF) tegishli ekanligini tahlil qiladi va ushbu mijozning marshrutlash jadvali bilan qabul qiluvchining manzilini tekshiradi.
  3. Xuddi shu mashinadagi qabul qiluvchi boshqa portda ekanligini aniqlab, vRouter unga paketni qo'shimcha sarlavhalarsiz yuboradi - bu holda vRouter allaqachon ARP yozuviga ega.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Bunday holda, paket jismoniy tarmoqqa kirmaydi - u vRouter ichida yo'naltiriladi.

Boshqaruv tekisligi

Virtual mashina ishga tushganda, gipervisor unga aytadi:

  • Uning shaxsiy IP manzili.
  • Standart marshrut ushbu tarmoqdagi vRouter IP-manzilidan o'tadi.

Gipervizor vRouter-ga maxsus API orqali hisobot beradi:

  • Virtual interfeys yaratish uchun nima kerak.
  • U (VM) qanday virtual tarmoqni yaratishi kerak?
  • Qaysi VRF (VN) ga bog'lanadi.
  • Ushbu VM uchun statik ARP yozuvi - uning IP manzili ortida qaysi interfeys va u qaysi MAC manzili bilan bog'langan.

Shunga qaramay, kontseptsiyani tushunish uchun haqiqiy o'zaro ta'sir qilish tartibi soddalashtirilgan.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Shunday qilib, vRouter ma'lum bir mashinada bitta mijozning barcha VM-larini to'g'ridan-to'g'ri ulangan tarmoqlar sifatida ko'radi va ular o'rtasida o'zi yo'naltirishi mumkin.

Ammo VM0 va VM1 turli mijozlarga tegishli va shunga mos ravishda turli vRouter jadvallarida joylashgan.

Ularning bir-biri bilan bog'lana olishi to'g'ridan-to'g'ri vRouter sozlamalari va tarmoq dizayniga bog'liq.
Misol uchun, agar ikkala mijozning VMlari umumiy manzillardan foydalansa yoki NAT vRouter-ning o'zida sodir bo'lsa, u holda vRouter-ga to'g'ridan-to'g'ri yo'naltirish amalga oshirilishi mumkin.

Qarama-qarshi holatda, manzil bo'shliqlarini kesib o'tish mumkin - umumiy manzilni olish uchun NAT serveridan o'tishingiz kerak - bu quyida muhokama qilinadigan tashqi tarmoqlarga kirishga o'xshaydi.

Turli jismoniy mashinalarda joylashgan VMlar o'rtasidagi aloqa

Ma'lumotlar tekisligi

  1. Boshlanish aynan bir xil: VM-0 standart bo'yicha VM-7 (172.17.3.2) bo'lgan paketni yuboradi.
  2. vRouter uni qabul qiladi va bu safar maqsad boshqa mashinada ekanligini va Tunnel0 orqali kirish mumkinligini ko'radi.
  3. Birinchidan, u masofaviy interfeysni aniqlaydigan MPLS yorlig'ini osib qo'yadi, shunda vRouter teskari tomonda ushbu paketni qaerga joylashtirishni qo'shimcha qidiruvlarsiz aniqlay oladi.

    Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

  4. Tunnel0 10.0.0.2 manbasiga ega, maqsad: 10.0.1.2.
    vRouter asl paketga GRE (yoki UDP) sarlavhalari va yangi IP qo'shadi.
  5. vRouter marshrutlash jadvalida ToR1 manzili 10.0.0.1 orqali standart marshrut mavjud. Oβ€˜sha yerga joβ€˜natadi.

    Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

  6. ToR1, Underlay tarmog'ining a'zosi sifatida, (masalan, OSPF orqali) 10.0.1.2 ga qanday borishni biladi va paketni marshrut bo'ylab jo'natadi. Bu yerda ECMP yoqilganligini unutmang. Rasmda ikkita keyingi qism mavjud va turli mavzular ularga xesh bo'yicha saralanadi. Haqiqiy zavod bo'lsa, 4 ta keyingi ish joyi bo'lishi mumkin.

    Shu bilan birga, u tashqi IP sarlavhasi ostida nima borligini bilishi shart emas. Ya'ni, aslida IP ostida MPLS orqali Ethernet orqali MPLS orqali GRE orqali yunoncha orqali IPv6 sendvichi bo'lishi mumkin.

  7. Shunga ko'ra, qabul qiluvchi tomonda vRouter GRE-ni olib tashlaydi va MPLS tegidan foydalanib, ushbu paket qaysi interfeysga yuborilishi kerakligini tushunadi, uni ajratib oladi va uni asl shaklida qabul qiluvchiga yuboradi.

Boshqaruv tekisligi

Mashinani ishga tushirganingizda, xuddi shu narsa yuqorida tavsiflanganidek sodir bo'ladi.

Va yana quyidagilar:

  • Har bir mijoz uchun vRouter MPLS tegini ajratadi. Bu L3VPN xizmat yorlig'i bo'lib, u orqali mijozlar bir xil jismoniy mashina ichida ajratiladi.

    Aslida, MPLS yorlig'i har doim vRouter tomonidan so'zsiz taqsimlanadi - axir, mashina faqat bir xil vRouter orqasidagi boshqa mashinalar bilan o'zaro aloqada bo'lishi oldindan ma'lum emas va bu, ehtimol, to'g'ri emas.

  • vRouter BGP protokoli (yoki unga o'xshash - TF bo'lsa, bu XMPP 0_o) yordamida SDN kontroller bilan aloqa o'rnatadi.
  • Ushbu seans orqali vRouter ulangan tarmoqlarga marshrutlarni SDN kontrollerga xabar qiladi:
    • Tarmoq manzili
    • KapsΓΌlleme usuli (MPLSoGRE, MPLSoUDP, VXLAN)
    • MPLS mijoz yorlig'i
    • Keyingi ish sifatida sizning IP manzilingiz

  • SDN tekshirgichi barcha ulangan vRouterlardan bunday marshrutlarni oladi va ularni boshqalarga aks ettiradi. Ya'ni, u Route Reflector vazifasini bajaradi.

Xuddi shu narsa teskari yo'nalishda sodir bo'ladi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Overlay kamida har daqiqada o'zgarishi mumkin. Bu taxminan ommaviy bulutlarda sodir bo'ladi, bu erda mijozlar muntazam ravishda virtual mashinalarini ishga tushiradilar va o'chiradilar.

Markaziy boshqaruvchi vRouter-da konfiguratsiyani saqlash va kommutatsiya/marshrutlash jadvallarini kuzatishning barcha murakkabliklarini hal qiladi.

Taxminan aytganda, kontroller BGP (yoki shunga o'xshash protokol) orqali barcha vRouterlar bilan bog'lanadi va oddiygina marshrutlash ma'lumotlarini uzatadi. BGP, masalan, inkapsulyatsiya usulini etkazish uchun allaqachon Manzil-Oilaga ega MPLS-in-GRE yoki MPLS-in-UDP.

Shu bilan birga, Underlay tarmog'ining konfiguratsiyasi hech qanday tarzda o'zgarmaydi, aytmoqchi, uni avtomatlashtirish ancha qiyin va noqulay harakat bilan sindirish osonroq.

Tashqi dunyoga chiqish

Biror joyda simulyatsiya tugashi kerak va siz virtual dunyodan haqiqiy dunyoga chiqishingiz kerak. Va sizga taksofon shlyuzi kerak.

Ikki yondashuv qo'llaniladi:

  1. Uskuna router o'rnatilgan.
  2. Routerning funktsiyalarini amalga oshiradigan qurilma ishga tushirildi (ha, SDN-dan keyin biz VNF bilan ham duch keldik). Keling, uni virtual shlyuz deb ataymiz.

Ikkinchi yondashuvning afzalligi arzon gorizontal o'lchovdir - quvvat etarli emas - biz shlyuzli boshqa virtual mashinani ishga tushirdik. Har qanday jismoniy mashinada, bepul tokchalar, bloklar, quvvat chiqishini izlamasdan, uskunani o'zi sotib oling, uni tashish, o'rnatish, almashtirish, sozlash, so'ngra undagi noto'g'ri komponentlarni o'zgartirish.

Virtual shlyuzning kamchiliklari shundaki, jismoniy yo'riqnoma birligi hali ham ko'p yadroli virtual mashinadan ko'ra kuchliroqdir va uning dasturiy ta'minoti o'zining apparat bazasiga moslashtirilgan holda ancha barqaror ishlaydi (yo'q). Uskuna-dasturiy kompleks oddiygina ishlashini, faqat konfiguratsiyani talab qilishini inkor etish ham qiyin, virtual shlyuzni ishga tushirish va unga xizmat koβ€˜rsatish kuchli muhandislar uchun vazifadir.

Bir oyoq bilan shlyuz oddiy Virtual Mashina kabi Overlay virtual tarmog'iga qaraydi va boshqa barcha VMlar bilan o'zaro aloqada bo'lishi mumkin. Shu bilan birga, u barcha mijozlarning tarmoqlarini to'xtatishi va shunga mos ravishda ular o'rtasida marshrutlashni amalga oshirishi mumkin.

Boshqa oyog'i bilan shlyuz magistral tarmoqqa qaraydi va Internetga qanday kirishni biladi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Ma'lumotlar tekisligi

Ya'ni, jarayon quyidagicha ko'rinadi:

  1. VM-0 bir xil vRouter-ga sukut bo'yicha o'rnatgan holda, eth185.147.83.177 interfeysiga tashqi dunyoda (0) maqsadli paketni yuboradi.
  2. vRouter ushbu paketni oladi va marshrutlash jadvalidagi maqsad manzilini qidiradi - 1-tunnel orqali VNGW1 shlyuzi orqali standart marshrutni topadi.
    U shuningdek, bu SIP 10.0.0.2 va DIP 10.0.255.2 bilan GRE tunneli ekanligini ko'radi va u avvalo VNGW1 kutgan ushbu mijozning MPLS yorlig'ini biriktirishi kerak.
  3. vRouter dastlabki paketni MPLS, GRE va yangi IP sarlavhalari bilan to'playdi va uni sukut bo'yicha ToR1 10.0.0.1 ga yuboradi.
  4. Asosiy tarmoq paketni VNGW1 shlyuziga yetkazadi.
  5. VNGW1 shlyuzi GRE va MPLS tunnel sarlavhalarini olib tashlaydi, maqsad manzilini ko'radi, uning marshrutlash jadvaliga murojaat qiladi va u Internetga yo'naltirilganligini tushunadi - ya'ni To'liq ko'rish yoki Standart orqali. Agar kerak bo'lsa, NAT tarjimasini amalga oshiradi.
  6. VNGW dan chegaragacha oddiy IP tarmog'i bo'lishi mumkin, bu dargumon.
    Klassik MPLS tarmog'i (IGP+LDP/RSVP TE) bo'lishi mumkin, BGP LU bilan orqa mato yoki VNGW dan IP tarmog'i orqali chegaraga GRE tunnel bo'lishi mumkin.
    Qanday bo'lmasin, VNGW1 kerakli inkapsulyatsiyalarni amalga oshiradi va dastlabki paketni chegara tomon yuboradi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Qarama-qarshi yo'nalishda harakat bir xil bosqichlardan o'tadi.

  1. Chegara paketni VNGW1 ga tushiradi
  2. U uni yechintiradi, qabul qiluvchining manziliga qaraydi va unga Tunnel1 tunnel (MPLSoGRE yoki MPLSoUDP) orqali kirish mumkinligini ko'radi.
  3. Shunga ko'ra, u MPLS yorlig'i, GRE/UDP sarlavhasi va yangi IP-ni biriktiradi va uni ToR3 10.0.255.1 ga yuboradi.
    Tunnel manzili maqsadli VM joylashgan vRouterning IP manzili - 10.0.0.2.
  4. Asosiy tarmoq paketni kerakli vRouterga yetkazib beradi.
  5. Maqsadli vRouter GRE/UDP ni o'qiydi, MPLS yorlig'i yordamida interfeysni aniqlaydi va VM ning eth0 bilan bog'langan TAP interfeysiga yalang'och IP paketini yuboradi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

Boshqaruv tekisligi

VNGW1 SDN kontrolleri bilan BGP mahallasini o'rnatadi, undan mijozlar haqidagi barcha marshrutlash ma'lumotlarini oladi: qaysi IP-manzil (vRouter) qaysi mijozning orqasida va qaysi MPLS yorlig'i bilan aniqlangan.

Xuddi shunday, uning o'zi ham SDN boshqaruvchisiga ushbu mijozning yorlig'i bilan sukut bo'yicha marshrutni ma'lum qiladi va o'zini keyingi bosqich sifatida ko'rsatadi. Va keyin bu standart vRouters-ga keladi.

VNGW da odatda marshrutni yig'ish yoki NAT tarjimasi sodir bo'ladi.

Boshqa yo'nalishda esa aynan shu jamlangan marshrutni chegaralar yoki Marshrut reflektorlari bilan sessiyaga yuboradi. Va ulardan u standart marshrutni yoki To'liq ko'rinishni yoki boshqa narsalarni oladi.

Inkapsulyatsiya va trafik almashinuvi nuqtai nazaridan VNGW vRouter-dan farq qilmaydi.
Agar siz qamrovni biroz kengaytirsangiz, VNGW va vRouter-larga boshqa tarmoq qurilmalarini qo'shishingiz mumkin, masalan, xavfsizlik devorlari, trafikni tozalash yoki boyitish fermalari, IPS va boshqalar.

VRF-larni ketma-ket yaratish va marshrutlarni to'g'ri e'lon qilish yordamida siz trafikni o'zingiz xohlagan tarzda aylanishga majburlashingiz mumkin, bu xizmat zanjiri deb ataladi.

Ya'ni, bu erda ham SDN kontroller VNGWs, vRouters va boshqa tarmoq qurilmalari o'rtasida Marshrut-reflektor vazifasini bajaradi.

Lekin, aslida, boshqaruvchi ACL va PBR (Siyosatga asoslangan marshrutlash) haqidagi ma'lumotlarni ham chiqaradi, bu esa individual trafik oqimlarining marshrut ularga ko'rsatganidan boshqacha ketishiga olib keladi.

Kichkintoylar uchun avtomatlashtirish. Birinchi qism (noldan keyin). Tarmoqni virtualizatsiya qilish

FAQ

Nega siz doimo GRE/UDP izohini qilasiz?

Umuman olganda, buni volfram matosiga xos deb aytish mumkin - siz buni umuman hisobga olishingiz shart emas.

Ammo, agar biz buni oladigan bo'lsak, TFning o'zi hali ham OpenContrail bo'lsa-da, ikkala inkapsulatsiyani ham qo'llab-quvvatladi: GREda MPLS va UDPda MPLS.

UDP yaxshi, chunki Manba portida uning sarlavhasidagi asl IP+Proto+Portdan xesh funksiyasini kodlash juda oson, bu sizga balanslash imkonini beradi.

GRE holatida, afsuski, faqat tashqi IP va GRE sarlavhalari mavjud bo'lib, ular barcha kapsulalangan trafik uchun bir xil bo'ladi va muvozanat haqida gap bo'lmaydi - kam sonli odamlar paketning ichiga chuqur qarashlari mumkin.

Bir muncha vaqtgacha marshrutizatorlar, agar dinamik tunnellardan qanday foydalanishni bilsalar, buni faqat MPLSoGRE-da qilishgan va faqat yaqinda MPLSoUDP-dan foydalanishni o'rganishgan. Shuning uchun, biz har doim ikki xil inkapsulatsiya qilish imkoniyati haqida eslatma qilishimiz kerak.

Adolat uchun shuni ta'kidlash kerakki, TF VXLAN yordamida L2 ulanishini to'liq qo'llab-quvvatlaydi.

Siz OpenFlow bilan parallellar chizishga va'da bergansiz.
Ular haqiqatan ham buni so'rashadi. Xuddi shu OpenStack-dagi vSwitch, VXLAN-dan foydalanib, juda o'xshash narsalarni qiladi, aytmoqchi, UDP sarlavhasiga ega.

Ma'lumotlar tekisligida ular taxminan bir xil ishlaydi; Boshqarish tekisligi sezilarli darajada farq qiladi. Tungsten Fabric vRouter-ga marshrutlash ma'lumotlarini etkazish uchun XMPP-dan foydalanadi, OpenStack esa Openflow-ni ishga tushiradi.

vRouter haqida bir oz ko'proq ma'lumot bera olasizmi?
U ikki qismga bo'lingan: vRouter Agent va vRouter Forwarder.

Birinchisi asosiy operatsion tizimning foydalanuvchi maydonida ishlaydi va SDN kontroller bilan bog'lanib, marshrutlar, VRFlar va ACLlar haqida ma'lumot almashadi.

Ikkinchisi Data Plane-ni qo'llaydi - odatda yadro bo'shlig'ida, lekin SmartNIC-larda ham ishlashi mumkin - protsessor va alohida dasturlashtiriladigan kommutatsiya chipiga ega tarmoq kartalari, bu sizga xost-mashina protsessoridan yukni olib tashlash va tarmoqni tezroq va ko'proq qilish imkonini beradi. bashorat qilish mumkin.

Boshqa mumkin bo'lgan stsenariy - vRouter foydalanuvchi maydonidagi DPDK ilovasi.

vRouter Agent sozlamalarni vRouter Forwarder-ga yuboradi.

Virtual tarmoq nima?
Men VRF haqidagi maqolaning boshida har bir ijarachi o'zining VRF-ga bog'langanligini eslatib o'tdim. Va agar bu overlay tarmog'ining ishlashini yuzaki tushunish uchun etarli bo'lsa, keyingi iteratsiyada aniqlik kiritish kerak bo'ladi.

Odatda, virtualizatsiya mexanizmlarida Virtual tarmoq ob'ekti (siz buni to'g'ri nom deb hisoblashingiz mumkin) mijozlar / ijarachilar / virtual mashinalardan alohida kiritiladi - bu mutlaqo mustaqil narsa. Va bu Virtual tarmoq allaqachon interfeyslar orqali bitta ijarachiga, boshqasiga, ikkitaga yoki istalgan joyga ulanishi mumkin. Shunday qilib, masalan, Xizmat zanjiri ma'lum tugunlar orqali kerakli ketma-ketlikda trafikni o'tkazish kerak bo'lganda, virtual tarmoqlarni to'g'ri ketma-ketlikda yaratish va ulash orqali amalga oshiriladi.

Shunday qilib, Virtual tarmoq va ijarachi o'rtasida to'g'ridan-to'g'ri yozishmalar mavjud emas.

xulosa

Bu xost va SDN boshqaruvchisining qoplamasi bilan virtual tarmoqning ishlashining juda yuzaki tavsifi. Ammo bugungi kunda qaysi virtualizatsiya platformasini tanlamasligingizdan qat'iy nazar, u VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric yoki Juniper Contrail bo'ladimi, shunga o'xshash tarzda ishlaydi. Ular inkapsulatsiyalar va sarlavhalar turlari, so'nggi tarmoq qurilmalariga ma'lumot etkazib berish protokollari bilan farqlanadi, ammo nisbatan oddiy va statik pastki tarmoq ustida ishlaydigan dasturiy ta'minot bilan sozlanishi mumkin bo'lgan qatlamli tarmoq printsipi bir xil bo'lib qoladi.
Aytishimiz mumkinki, bugungi kunda qoplamali tarmoqqa asoslangan SDN xususiy bulutni yaratish sohasida g'olib chiqdi. Biroq, bu Openflow-ga zamonaviy dunyoda o'rin yo'q degani emas - u OpenStacke-da va o'sha VMWare NSX-da qo'llaniladi, bilishimcha, Google undan yer osti tarmog'ini o'rnatish uchun foydalanadi.

Agar siz masalani chuqurroq o'rganmoqchi bo'lsangiz, quyida men batafsilroq materiallarga havolalar berdim.

Va bizning pastki qavatimiz haqida nima deyish mumkin?

Ammo umuman olganda, hech narsa. U butunlay o'zgarmadi. Xost tomonidan qo'shilgan holda, u qilish kerak bo'lgan yagona narsa, vRouter/VNGW paydo bo'lishi va yo'qolishi va ular o'rtasida paketlarni olib o'tishi uchun marshrutlar va ARP-larni yangilashdir.

Keling, Underlay tarmog'iga qo'yiladigan talablar ro'yxatini tuzamiz.

  1. Qandaydir marshrutlash protokolidan foydalana olish, bizning vaziyatimizda - BGP.
  2. Haddan tashqari yuklanish tufayli paketlar yo'qolmasligi uchun keng tarmoqli kengligiga ega bo'ling, afzalroq obunasiz.
  3. ECMP ni qo'llab-quvvatlash matoning ajralmas qismidir.
  4. QoS, shu jumladan ECN kabi murakkab narsalarni taqdim eta olish.
  5. NETCONF-ni qo'llab-quvvatlash kelajak uchun asosdir.

Men bu erda Underlay tarmog'ining o'zi ishiga juda oz vaqt ajratdim. Buning sababi, keyingi seriyalarda men bunga e'tibor qarataman va biz faqat o'tishda Overlayga tegamiz.

Shubhasiz, men Cloz zavodida sof IP-marshrutlash va xostning qoplamasi bilan qurilgan DC tarmog'idan misol qilib, barchamizni jiddiy cheklayapman.

Biroq, ishonchim komilki, dizaynga ega bo'lgan har qanday tarmoq rasmiy ravishda tavsiflanishi va avtomatlashtirilishi mumkin. Bu erda mening maqsadim avtomatlashtirishga yondashuvlarni tushunish va muammoni umumiy shaklda hal qilish orqali hammani chalg'itmaslikdir.

ADSM doirasida, Roman Gorge va men hisoblash quvvatini virtualizatsiya qilish va uning tarmoq virtualizatsiyasi bilan o'zaro ta'siri haqida alohida nashrni nashr etishni rejalashtirmoqdamiz. Aloqada bo'l.

Foydali havolalar

rahmat

  • Roman Gorga - linkmeup podkastining sobiq boshlovchisi va hozirda bulutli platformalar sohasidagi mutaxassis. Fikrlar va tahrirlar uchun. Xo'sh, biz yaqin kelajakda uning virtualizatsiya bo'yicha yanada chuqurroq maqolasini kutamiz.
  • Aleksandr Shalimov - mening hamkasbim va virtual tarmoqni rivojlantirish sohasidagi mutaxassis. Fikrlar va tahrirlar uchun.
  • Valentin Sinitsyn - mening hamkasbim va volfram matosi sohasidagi mutaxassis. Fikrlar va tahrirlar uchun.
  • Artyom Chernobay β€” illustrator havolasi. KDPV uchun.
  • Aleksandr Limonov. "Avtomat" mem uchun.

Manba: www.habr.com

a Izoh qo'shish