Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

V eelmises vĂ€ljaandes ma kirjeldasin vĂ”rgu automatiseerimise raamistikku. Tagasiside pĂ”hjal on paljude jaoks isegi see esimene lĂ€henemine probleemile aidanud kĂŒsimusi selgemaks muuta. Ja see teeb mind vĂ€ga rÔÔmsaks, sest meie eesmĂ€rk selles tsĂŒklis ei ole katta Ansible'i Python'i skriptidega, vaid luua sĂŒsteem.

Sama raamistik seab sihi, mille jÀrgi me teemaga tegelema hakkame.
Ja veebivÔrgu virtualiseerimine, millele see vÀljaanne keskendub, ei sobi eriti ADSMi temaatikaga, kus me kÀsitleme automatiseerimist.

Aga vaatame sellele teisele nurga alt.

Paljud teenused kasutavad juba ammu ĂŒhte vĂ”rku. Sideoperaatori puhul on need 2G, 3G, LTE, kiudoptiline internet ja B2B, nĂ€iteks. Andmekeskuse puhul: ĂŒhenduvus erinevatele klientidele, internet, plokkhĂ€iring ja objektihĂ€iring.

Ja kĂ”ik teenused vajavad ĂŒksteisest isoleerimist. Nii tekkisid kihi vĂ”rguĂŒhendused.

Ja kÔik teenused ei soovi oodata, kuni inimene suudab neid kÀsitsi seadistada. Nii tekkisid orkestritorid ja SDN.

Esimene samm vĂ”rgu sĂŒsteemsetesse automatiseerimisse, tĂ€psemalt selle osasse, on ammu astutud ja paljudes kohtades ellu viidud: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.

Just sellest tÀna ka rÀÀgime.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Sisu

  • PĂ”hjused
  • Terminoloogia
  • Underlay — fĂŒĂŒsiline vĂ”rk
  • Overlay — virtuaalne vĂ”rk
    • Overlay ToR’ist
    • Overlay hostist
    • Tungsten Fabric'i nĂ€itel
      • Kommunikatsioon ĂŒhe fĂŒĂŒsilise masina sees
      • Kommunikatsioon erinevates fĂŒĂŒsilistes masinates paiknevate VM-ide vahel
      • VĂ€lismaailma pÀÀsemine

  • KKK
  • KokkuvĂ”te
  • Kasulikud lingid

PÔhjused

Ja kuna me sellest rÀÀkisime, tasub mainida ka vÔrgu virtualiseerimise eeltingimusi. Tegelikult algas see protsess mitte eile.

TĂ”enĂ€oliselt olete kuulnud, et vĂ”rk on alati olnud kĂ”ige inertsem osa igast sĂŒsteemist. Ja see on tĂ”si igas mĂ”ttes. VĂ”rk on alus, millele kĂ”ik toetub, ja muudatusi on seal suhteliselt keeruline teha — teenused ei talu, kui vĂ”rk on maas. Tihti vĂ”ib ĂŒhe sĂ”lme vĂ€ljakutsumine kokku varustada suure osa rakendustest ja mĂ”jutada paljusid kliente. Osaliselt seetĂ”ttu vĂ”ivad vĂ”rgu meeskonnad igasugustele muudatustele vastu seista — sest praegu töötab see kuidagi (me ei pruugi isegi teada, kuidas)), aga siia tuleb midagi uut seadistada ja pole teada, kuidas see vĂ”rku mĂ”jutab.

Kuna ei taha oodata, millal vĂ”rgu spetsialistid VLAN-i seadistavad, ja et igasuguseid teenuseid ei peaks iga vĂ”rgusĂ”lme peal registreerima, hakkasid inimesed kasutama overlay'sid — kattuvaid vĂ”rke — millel on suur mitmekesisus: GRE, IPinIP, MPLS, MPLS L2/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE jne.

Nende atraktiivsus seisneb kahes lihtsas asjas:

  • Seadistatakse ainult lĂ”pp-punktid — transiidipunkte ei pea muutma. See kiirendab protsessi mĂ€rkimisvÀÀrselt ja mĂ”nikord vĂ”imaldab isegi vĂ€listada vĂ”rgu infrastruktuuri osakonna uute teenuste sisestamise protsessist.
  • Koormus on peidetud sĂŒgavale pealkirjadesse — transiidipunktidel ei pea olema sellest midagi teadma, hostide aadressimisest, overlay-vĂ”rgu marsruutidest. See tĂ€hendab, et tuleb hoida vĂ€hem teavet tabelites, seega vĂ”iks kasutada lihtsamat/odavamat seadet.

Selles mitte tÀiesti tÀielikus vÀljaandes ei plaani ma kÀsitleda kÔiki vÔimalikke tehnoloogiaid, vaid pigem kirjeldada overlay-vÔrkude toimimise fookust andmekeskuses.

Kogu sari kirjeldab andmekeskust, mis koosneb ĂŒhesugustest rack'idest, kus on paigaldatud samasugune serveritehnika.

Sellel seadmel töötavad virtuaalmasinad/konteinerid/serversioonid, mis rakendavad teenuseid.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Terminoloogia

TsĂŒklis serveriga kutsun ma programmi, mis rakendab serveripoolset kliendiserveri suhtlust.

FĂŒĂŒsilisi masinaid riiulites nimetame serveriteks ei nii et teeme.

FĂŒĂŒsiline masin on x86-arvuti, mis on paigaldatud riiulisse. KĂ”ige sagedamini kasutame terminit host. Nii nimetame seda «masin» vĂ”i host.

HĂŒpervisor on rakendus, mis töötab fĂŒĂŒsilisel masinal ja emuleerib fĂŒĂŒsilisi ressursse, millel töötavad virtuaalmasinad. MĂ”nikord kasutatakse kirjanduses ja veebis sĂ”na «hĂŒpervisor» sĂŒnonĂŒĂŒmina «hostile».

Virtuaalne masin on operatsioonisĂŒsteem, mis töötab fĂŒĂŒsilisel masinal hĂŒpervisori kohal. Meie jaoks kĂ€esolevas tsĂŒklis ei ole vĂ€ga oluline, kas see on tĂ”eliselt virtuaalne masin vĂ”i lihtsalt konteiner. Nimetame seda «VM«

Tenant on lai mÔisted, mille ma selles artiklis defineerin kui eraldi teenuse vÔi eraldi kliendi.

MitmeĂŒĂŒrilisus vĂ”i multitenantsus — sama rakenduse kasutamine erinevate klientide/teenuste poolt. Sel juhul saavutatakse klientide isoleerimine ĂŒksteisest rakenduse arhitektuuri kaudu, mitte eraldi kĂ€ivitatud eksemplaride.

ToR — Racki ĂŒlaosa lĂŒliti — lĂŒliti, mis on paigaldatud riiulisse, kuhu on ĂŒhendatud kĂ”ik fĂŒĂŒsilised masinad.

Lisaks ToR-topoloogiale praktiseerivad erinevad teenusepakkujad End of Row (EoR) vĂ”i Middle of Row (kuigi viimane on haruldane ja lĂŒhendit MoR ma ei ole kohanud).

AlusvĂ”rk vĂ”i alusvĂ”rk vĂ”i underlay — fĂŒĂŒsiline vĂ”rgu infrastruktuur: lĂŒlitid, ruuterid, kaablid.

KihivĂ”rk vĂ”i kihivĂ”rk vĂ”i overlay — virtuaalne tunnelivĂ”rk, mis töötab fĂŒĂŒsilise ĂŒle.

L3-tehas vĂ”i IP-tehas — inimkonna hĂ€mmastav leiutis, mis vĂ”imaldab intervjuudes mitte korduda STP ja mitte Ă”ppida TRILL. Kontseptsioon, kus kogu vĂ”rk kuni juurdepÀÀsu tasemeni on rangelt L3, ilma VLAN-ideta ja seega tohutute ulatuslike levitamisdomaanideta. Kust see sĂ”na „tehas” siia tuleb, arutame jĂ€rgmises osas.

SDN — Tarkvaradefined Network. Sellel on keeruline tutvustus. See on lĂ€henemine vĂ”rguhaldusele, kus vĂ”rgumuudatused teostatakse mitte inimese, vaid programmi abil. See tĂ€hendab tavaliselt juhtimisplaani viimist lĂ”ppvĂ”rgu seadmete piiridest vĂ€lja kontrollerile.

NFV — Network Function Virtualization — vĂ”rguseadmete virtuaaliseerimine, mis eeldab, et osa vĂ”rgu funktsioone saab kĂ€ivitada virtuaalmasinate vĂ”i konteinerite kujul, et kiirendada uute teenuste juurutamist, korraldada teenuste kettamist ja vĂ”imaldada lihtsamat horisontaalset skaleeritavust.

VNF — Virtuaalne VĂ”rgufunktsioon. Konkreetselt virtuaalne seade: marsruuter, lĂŒliti, tulemĂŒĂŒr, NAT, IPS/IDS jne.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Ma praegu tahtlikult lihtsustan kirjeldust konkreetse rakenduse tasemele, et mitte lugejat liiga segadusse ajada. SĂŒgavamaks lugemiseks suunan teda jaotisse Lingid. Lisaks lubab Roma Gorge, kes kritiseerib seda artiklit ebatĂ€psuste tĂ”ttu, kirjutada eraldi vĂ€ljaande serverite ja vĂ”rkude virtuaaliseerimise tehnoloogiatest, mis oleks pĂ”hjalikum ja detailidele tĂ€helepanelikum.

Enamik tÀnapÀeva vÔrke saab selgelt jagada kaheks osaks:

Alus — fĂŒĂŒsiline vĂ”rk stabiilse konfigureerimisega.
Peal — abstraktsioon Underlay ĂŒle, et isoleerida rentnikke.

See kehtib nii DC (mida me selles artiklis arutame) kui ka ISP kohta (mida me ei arutata, kuna see on juba kajastatud SDSN). EttevÔttevÔrkude puhul on olukord muidugi mÔnevÔrra erinev.

Pilt, mis keskendub vÔrgule:

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Alus

Underlay on fĂŒĂŒsiline vĂ”rk: riistvaralised lĂŒlitid ja kaablid. Seadmed underlay's teavad, kuidas fĂŒĂŒsilistele masinatele ligi pÀÀseda.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

See tugineb standardsetele protokollidele ja tehnoloogiatele. Mitte vÀhem tÀhtis on see, et riistvaraseadmed töötavad endiselt patenteeritud tarkvaraga, mis ei vÔimalda ei kiipide programmeerimist ega oma protokollide rakendamist, seega on vajalik koostalitlusvÔime teiste tootjatega ja standardimine.

Aga keegi nagu Google vĂ”ib endale lubada oma lĂŒlitite arendamist ja ĂŒleĂŒldiselt kehtivatest protokollidest loobumist. Aga LAN_DC ei ole Google.

Underlay muutub vĂ”rreldes harva, kuna selle ĂŒlesanne on baasil IP-ĂŒhenduvus fĂŒĂŒsiliste masinate vahel. Underlay ei tea midagi teenustest, klientidest vĂ”i rentnikest, mis selle peal töötavad — see peab lihtsalt toimetama paketi ĂŒhest masinast teise.
Underlay vÔib olla nÀiteks selline:

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

Underlay vÔrgustik seadistatakse klassikaliselt: CLI/GUI/NETCONF.

KĂ€e otsas, skriptide abil, patentidega utiliitide kaudu.

JĂ€rgmine artikkel tsĂŒklist keskendub Underlay’le pĂ”hjalikumalt.

Peal

Overlay — virtuaalne tunnelite vĂ”rk, mis on venitatud ĂŒle Underlay, vĂ”imaldab ĂŒhel kliendil olevatel VM-del omavahel suhelda, samas tagades isolatsiooni teiste klientide eest.

Kliendi andmed kapseldatakse mingitesse tunnelite pealkirjadesse, et edastada neid ĂŒhise vĂ”rgu kaudu.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Seega saavad ĂŒhe kliendi (ĂŒhe teenuse) VM-d omavahel suhelda lĂ€bi Overlay, isegi mitte aimates, millist teed pakett tegelikult lĂ€bib.

Overlay vÔib nÀiteks olla selline, nagu juba varem mainisin:

  • GRE-tunnel
  • VXLAN
  • EVPN
  • L3VPN
  • GENEVE

Overlay’ne vĂ”rk seadistatakse ja hallatakse tavaliselt keskse kontrolleri kaudu. Sealt edastatakse konfiguratsioon, Control Plane ja Data Plane seadmetele, mis tegelevad klientide liikluse marsruutimise ja kapseldamisega. Natuke allpool kahelt nĂ€idiselt lahkame seda.

Jah, see on puhtaim SDN.

On kaks pÔhimÔtteliselt erinevat lÀhenemist Overlay-vÔrgu korraldamiseks:

  1. Overlay ToR’ist
  2. Overlay hostist

Overlay ToR’ist

Overlay vĂ”ib alata juurdepÀÀsu lĂŒlitilt (ToR), mis asub rack'is, nagu nĂ€iteks VXLAN-fabriku puhul.

See on aja jooksul tÔestatud mehhanism ISP-vÔrkudes ning kÔik vÔrguvarustuse tarnijad toetavad seda.

Kuid sel juhul peab ToR-lĂŒliti suutma eristada erinevaid teenuseid, mistĂ”ttu peab vĂ”rguadministraator teatud mÀÀral koostööd tegema virtuaalmasinate administraatoritega ning tegema seadmete konfiguratsioonis muudatusi (kuigi automaatselt).

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Siin suunan lugeja artikli juurde VxLAN Habrisse meie vanale sÔbrale @bormoglotx.
Selles ENOG esitlus kus on pÔhjalikult kirjeldatud andmekeskuse vÔrgu ehitamise lÀhenemisviise EVPN VXLAN fabriku abil.

Ja pÔhjalikumaks sukeldumiseks reaalsusesse, vÔib lugeda Ciscose raamatut A Modern, Open, and Scalable Fabric: VXLAN EVPN.

TÀhendan, et VXLAN on vaid kapseldamismeetod ja tunnelite terminatsioon vÔib toimuda mitte ToR'il, vaid hostis, nagu nÀiteks OpenStacki puhul.

Siiski, VXLAN-fabrika, kus overlay algab ToR'il, on ĂŒks rajatud ooperiverkko disainide seas.

Overlay hostist

Teine lÀhenemine on alustada ja terminiseerida tunnelid lÔpp-hostidel.
Sel juhul jÀÀb vÔrk (Underlay) vÔimalikult lihtsaks ja statiiliseks.
Ja host teeb kÔik vajalikud kapseldamised ise.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Selleks tuleb kindlasti kÀivitada spetsiaalne rakendus hostides, kuid see on seda vÀÀrt.

Esiteks on kliendi kĂ€ivitamine Linuxi masinas lihtsam vĂ”i, ĂŒtleme nii, — tegelikult vĂ”imalik — samas, kui lĂŒlitil tuleb tĂ”enĂ€oliselt veel kasutada patentitud SDN-lahendusi, mis rikub mitme mĂŒĂŒja ideed.

Teiseks saab ToR-lĂŒliti jĂ€tta sel juhul maksimaalselt lihtsaks, nii Control Plane’i kui ka Data Plane’i vaatenurgast. TĂ”epoolest — SDN-kontrolleriga ei pea ta siis suhtlema, ja kĂ”ikide ĂŒhendatud klientide vĂ”rgud/ARP-d hoidmine ei ole samuti vajalik — piisab fĂŒĂŒsilise masina IP-aadressist, mis lihtsustab mĂ€rkimisvÀÀrselt teeliste jaotustabelit.

ADSMi seerias valin hostist lĂ€htuva overlay lĂ€henemise — edaspidi rÀÀgime ainult sellest ja ei naase VXLAN-fabriku juurde.

KĂ”ige lihtsam on vaadata nĂ€idete kaudu. Ja katsealuseks vĂ”tame OpenSource SDN platvormi OpenContrail, mis on nĂŒĂŒd tuntud kui Tungsten Fabric.

Artikulu lÔpus jagan mÔningaid mÔtteid OpenFlow'i ja OpenvSwitch'i analoogia kohta.

Tungsten Fabric'i nÀitel

Igal fĂŒĂŒsilisel masinal on vRouter — virtuaalne marsruuter, mis teab sellest, millised vĂ”rgud on sellele ĂŒhendatud ja kellele need kuuluvad — pĂ”himĂ”tteliselt PE-marsruuter. Iga kliendi jaoks haldab ta isoleeritud marsruutimistabelit (loe: VRF). Ja just vRouter teeb Overlay tunnelimise.

TĂ€psemalt vRouter'i kohta — artikli lĂ”pus.

Iga VM, mis asub hĂŒpervisoril, ĂŒhendub selle masina vRouter'iga lĂ€bi TAP-liidese.

TAP — Terminal Access Point — virtuaalne liides Linux'i tuumas, mis vĂ”imaldab vĂ”rguside loomist.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Kui vRouter'i taga on mitu vĂ”rku, siis igale neist luuakse virtuaalne liides, millele mÀÀratakse IP-aadress — see on vaikimisi vĂ€rava aadress.
KĂ”ik ĂŒhe kliendi vĂ”rgud paigutatakse ĂŒhte VRF (ĂŒks tabel), erinevad — erinevatesse.
Tee siia tÀiendav mÀrkus, et kÔik pole nii lihtne, ja suunan uudishimu teatav lugeja artikli lÔppu..

Kuna vRouter’id saaksid omavahel suhelda ning seega ka nende taga olevad VM’id, vahetavad nad marsruudiinfot lĂ€bi SDN-kontroller.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Et vĂ€lja maailmale pÀÀseda, on olemas vĂ€ljumispunkt - virtuaalvĂ”rgu vĂ€rav VNGW — VirtuaalvĂ”rgu vĂ€rav (termin mu kĂ€es).

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Vaadakem nĂŒĂŒd suhtluse nĂ€iteid — ja siis on kĂ”ik selge.

Kommunikatsioon ĂŒhe fĂŒĂŒsilise masina sees

VM0 soovib saata paketti VM2-le. Eeldame, et need on ĂŒhe kliendi VM-id.

Andmeplaneet

  1. VM-0-l on mÀÀratud vaike marsruut oma liidesele eth0. Pakett saadetakse sinna.
    See liides eth0 on tegelikult virtuaalselt ĂŒhendatud virtuaalruuteriga vRouter TAP-liidese tap0 kaudu.
  2. vRouter analĂŒĂŒsib, millisele liidesele pakett saabus, s.t. kellele (VRF) see kuulub, ja kontrollib saaja aadressi selle kliendi marsruuditabelist.
  3. Leides, et saaja on samal masinal teisel pordil, saadab vRouter paketi sinna ilma tĂ€iendavate pealkirjadeta — selle jaoks on vRouter’il juba olemas ARP-kirje.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Sel juhul ei jĂ”ua pakett fĂŒĂŒsilisse vĂ”rku — see marsruutitakse vRouter’i sees.

Kontrolli kĂŒngas

HĂŒperviisor teatab virtuaalmasinale selle kĂ€ivitamisel:

  • Tema oma IP-aadress.
  • Vaikimisi marsruut on lĂ€bi vRouteri IP-aadressi selles vĂ”rgus.

vRouterile edastab hĂŒperviisor spetsiaalse API kaudu:

  • Et luua virtuaalne liides.
  • Millist Virtuaalset VĂ”rku tuleb tal (VM) luua.
  • Millise VRF-iga selle (VN) seondada.
  • Statiline ARP-kirje selle VM-i jaoks — millise liidese taga on tema IP-aadress ja millisele MAC-aadressile see on seotud.

Ja taas, tegelik interaktsiooni protseduur on lihtsustatud, et mÔista kontseptsiooni.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Nii nĂ€eb kĂ”ikide kliendi VM-id sama masina vRouteris otseselt ĂŒhendatud vĂ”rkudena ning saab ise nende vahel marsruuti muuta.

Kuid VM0 ja VM1 kuuluvad erinevatele klientidele, seega on need erinevates vRouteri tabelites.

Kas nad saavad omavahel otse suhelda, sÔltub vRouteri seadistustest ja vÔrgu disainist.
NÀiteks, kui mÔlemad kliendi VM-id kasutavad avalikke aadresse, vÔi NAT toimub vRouteril endal, on vÔimalik teha ka otsene marsruutimine vRouterile.

Teises olukorras vĂ”ib aadressiruumi ĂŒlekandumine juhtuda — on vajalik minna NAT-serveri kaudu, et saada avalik aadress — see sarnaneb vĂ€listele vĂ”rkudele, millele allpool viidatakse.

Kommunikatsioon erinevates fĂŒĂŒsilistes masinates paiknevate VM-ide vahel

Andmeplaneet

  1. Algus on sama: VM-0 saadab paketi adressaadile VM-7 (172.17.3.2) oma vaikeseade kaudu.
  2. vRouter saab selle ja nÀeb, et adressaat asub teisel masinal ning on saadaval Tunnel0 kaudu.
  3. Esmalt kÀtkeb ta MPLS-mÀrki, mis identifitseerib kaugliidese, et vRouter saaks vastaspoolel mÀÀrata, kuhu see pakett paigutada, ilma tÀiendavate vÀÀnamisteta.

    Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

  4. Tunnel0-l on allikaaadress 10.0.0.2 ja sihtkoht: 10.0.1.2.
    vRouter lisab algsele paketile GRE (vÔi UDP) pÀised ja uue IP.
  5. vRouteri marsruutimistabelis on vaike marsruut ToR1 aadressi kaudu 10.0.0.1. Just sinna ta saadab.

    Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

  6. ToR1, kui Underlay vĂ”rgu osaleja, teab (nĂ€iteks OSPF-i kaudu), kuidas jĂ”uda aadressini 10.0.1.2, ja saadab paketi marsruudile. Pange tĂ€hele, et siin aktiveeritakse ECMP. Illustratsioonil on kaks jĂ€rgmise hĂŒppena, ja erinevad vood jaotuvad nendesse vastavalt hĂ€kkimisele. TĂ”elise tehase puhul oleks siin pigem 4 jĂ€rgmise hĂŒppena.

    Samas ei pea ta teadma, mis asub vÀlise IP-pealkirja all. Tegelikult vÔib IP all olla segu IPv6-st MPLS-i kaudu Ethernet'i kaudu MPLS-i kaudu GRE kaudu.

  7. Seega vastuvÔtupooles vRouter eemaldab GRE ja MPLS-mÀrgistuse pÔhjal mÔistab, millisele liidesele see pakett suunata, eraldab selle ja saadab algses vormis adressaadile.

Kontrolli kĂŒngas

Masina töötamise kÀivitamisel toimub kÔik see, mis on eelnevalt kirjeldatud.

Ja lisaks veel jÀrgmine:

  • Iga kliendi jaoks eraldab vRouter MPLS-mĂ€rgistuse. See on L3VPN teenusmĂ€rgis, mille alusel kliendid jagunetakse ĂŒhe fĂŒĂŒsilise masina piires.

    Tegelikult eraldab vRouter MPLS-mĂ€rgistuse alati — kuna ei ole ette teada, et masin suhtleb ainult teiste masinatega sama vRouter'i taga ning tĂ”enĂ€oliselt see ei olegi nii.

  • vRouter loob ĂŒhenduse SDN-kontrolleriga BGP protokolli (vĂ”i samalaadse — TF korral on see XMPP 0_o) kaudu.
  • Selle sessiooni kaudu edastab vRouter SDN-kontrollerile marsruudid ĂŒhendatud vĂ”rkudeni:
    • VĂ”rgu aadress
    • Inkaptsuleerimismeetod (MPLSoGRE, MPLSoUDP, VXLAN)
    • Kliendi MPLS-mĂ€rgistus
    • Oma IP-aadress nexthop'ina

  • SDN-kontroller saab sellised marsruudid kĂ”igilt ĂŒhendatud vRouter'itelt ja peegeldab need teistele. TeisisĂ”nu toimib ta Route Reflector'ina.

Sama toimub ka vastupidises suunas.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Overlay vĂ”ib muutuda iga minuti jĂ€rel. Just nii see avalikes pilvkeskkondades toimub, kui kliendid pidevalt oma virtuaalseid masinaid sisse ja vĂ€lja lĂŒlitavad.

Keskne kontroller vÔtab enda kanda kÔik configuuri ja switching/routing tabelite haldamise keerukused vRouteris.

RÀÀkides jÀmedalt, siis kontroller suhtleb kÔigi vRouteritega BGP (vÔi sarnase protokolli) kaudu ja edastab lihtsalt marsruutimise teavet. BGP-l on nÀiteks juba olemas Address-Family, et edastada kapseldusmeetodi. MPLS-in-GRE vÔi MPLS-in-UDP.

Sellega ei muutu kuidagi Underlay-vÔrgu konfiguratsioon, mida muide on automatiseerida oluliselt keerulisem ning purustada on lihtsam vale liigutusega.

VÀlismaailma pÀÀsemine

Kusagil peab simulatsioon lÔppema ja virtuaalsest maailmast tuleb astuda reaalsesse. Ja vajalik on telefonigateway.

Kasutatakse kahte lÀhenemist:

  1. Paigaldatakse riistvararuuter.
  2. KÀivitakse mÔni seade, mis rakendab ruuteri funktsioone (jah, jah, koos SDN-iga kohtasime me ka VNF-i). Nimetame seda virtuaalseks gateway'ks.

Teise lĂ€henemise eelis on odav horisontaalne skaleeritavus — jĂ”udlusest puudus — kĂ€ivitasime veel ĂŒhe virtuaalmasina vĂ€rava. Igas fĂŒĂŒsilises masinas, ilma vajaduseta otsida vabu riiuleid, ĂŒhikuid, toiteĂŒhendusi, osta rauda, toimetada see kohale, paigaldada, ĂŒhendada, seadistada ning seejĂ€rel veel ka rikkis komponente vahetada.

Kuid virtuaalse vĂ€rava miinused on need, et fĂŒĂŒsilise ruuteri vĂ”imekus on mĂ€rkimisvÀÀrselt suurem kui mitme sĂŒdamiku virtuaalsel masinal, ja selle tarkvara, mis on kohandatud enda riistvara alusele, töötab oluliselt stabiilsemalt (ei). Raskesti on vaielda ka asjaolu ĂŒle, et tarkvaraliselt-riistvaraline kompleks töötab lihtsalt, nĂ”udes vaid seadistamist, samas kui virtuaalse vĂ€rava kĂ€ivitamine ja hooldamine on tugevate inseneride töö.

Ühe jala abil vaatab vĂ€rav virtuaalvĂ”rku Overlay nagu tavaline virtuaalmasin ja saab suhelda kĂ”igi teiste virtuaalmasinatega. Samal ajal vĂ”ib see klientide vĂ”rke enda peal lĂ”petada ning seega teostada ka nende vahel marsruutimist.

Teise jalaga vaadata, kuidas pÀÀs veebivÔrku ja teab, kuidas Internetti pÀÀseda.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Andmeplaneet

Protsess nÀeb vÀlja jÀrgmine:

  1. VM-0, millel on vaikimisi kÔik sama vRouter, saadab paketi vÀlismaailma (185.147.83.177) eth0 liidese kaudu.
  2. vRouter saab selle paketi ja teeb sihtadressi otsingu marsruutimistabelis — leiab vaikimisi marsruudi lĂ€bi VNGW1 lĂ€bi Tunnel 1.
    Samuti nÀeb ta, et tegemist on GRE tunneliga, mille SIP on 10.0.0.2 ja DIP 10.0.255.2, ning peab kÔigepealt andma hoolduseks MPLS-mÀrgi, mida VNGW1 ootab.
  3. vRouter paneb algse paketi MPLS, GRE ja uue IP pealkirjade alla ning saadab selle aadressile ToR1 10.0.0.1 vaikimisi.
  4. AlusvÔrk toimetab paketi VNGW1 pÀÀsule.
  5. VNGW1 pÀÀs eemaldab GRE ja MPLS tunneli pĂ€ised, nĂ€eb sihtaadressi, konsulteerib oma marsruutimistabeliga ja mĂ”istab, et see on suunatud Internetti — seega Full View vĂ”i Default kaudu. Kui on vajalik, teeb NAT-muundamise.
  6. VNGW ja piiri vahel vÔib olla tavapÀrane IP-vÔrk, mis on ebatÔenÀoline.
    VĂ”ib olla klassikaline MPLS-vĂ”rk (IGP+LDP/Rsvp TE), vĂ”ib olla ka tagasitehas BGP LU vĂ”i GRE tunnel VNGW-st piirini ĂŒle IP-vĂ”rgu.
    VNGW1 teostab vajalikud kapseldamised ja saadab algse paketi suunas piirile.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Tagasipöörduv liiklus lÀbib samu samme vastupidises jÀrjekorras.

  1. Piir toimetab paketi VNGW1 juurde.
  2. See avab selle, vaatab sihtaadressi ja nÀeb, et see on kergesti ligipÀÀsetav Tunnel1 (MPLSoGRE vÔi MPLSoUDP) kaudu.
  3. SeetÔttu lisab ta MPLS-mÀrgi, GRE/UDP pÀise ja uue IP-aadressi ning saadab selle oma ToR3 10.0.255.1.
    Tunnelite sihtaadress on vRouteri IP-aadress, mis toetab siht-VM-i — 10.0.0.2.
  4. AlusvÔrk toimetab paketi vajaliku vRouterini.
  5. Siht-vRouter eemaldab GRE/UDP, mÀÀrab MPLS-mĂ€rgi jĂ€rgi liidest ja saadab toore IP-paketi oma TAP-liidese kaudu, mis on ĂŒhendatud eth0 VM-iga.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

Kontrolli kĂŒngas

VNGW1 loob BGP-systeemisuhte SDN-kontrolleriga, kellelt ta saab kogu marsruutimise teabe klientide kohta: millise IP-aadressi (vRouteriga) taga milline klient asub ja millise MPLS-mÀrgiga ta tuvastatakse.

Sarnaselt edastab ta SDN-kontrollerile vaikimisi marsruudi selle kliendi mĂ€rgiga, mÀÀrates end jĂ€rgmise hĂŒppena. Edasi jĂ”uab see vaikimisi marsruut vRouteritesse.

VNGW-s toimub tavaliselt marsruutide kogumine vÔi NAT-muundamine.

Ja teises suunas, koos piiride vĂ”i Route Reflector’itega, edastab ta just selle koondatud marsruudi. Ning nendelt saab ta kas vaikimisi marsruudi vĂ”i Full-View, vĂ”i midagi muud.

Inkubatsiooni ja liikluse vahetamise osas ei erine VNGW vRouterist.
Kui veidi laiemalt mĂ”elda, siis VNGW ja vRouter’itega saab lisada ka teisi vĂ”rgu seadmeid, nagu tulemĂŒĂŒrid, liikluse puhastuse vĂ”i rikastamise farmid, IPS, jne.

Ja jÀrjestikuste VRF-ide loomise ning marsruutide Ôige avaldamisega saab liiklust sundida keerlema just nii, nagu soovite, mida nimetatakse teenuse ahelaks.

Seega, ka siin toimib SDN-kontroller Route Reflector’ina VNGW, vRouter’ite ja teiste vĂ”rgu seadmete vahel.

Kuid tegelikult edastab kontroller ka informatsiooni ACL-i ja PBR-i (Policy Based Routing) kohta, sundides eri liiklusvooge liikuma mitte nii, nagu marsruut ette nÀeb.

Automaatika kÔige vÀiksematele. Esimene osa (see, mis tuleb nullist pÀrast). VeebivÔrgu virtualiseerimine

KKK

Miks sa pidevalt teed mÀrkuse GRE/UDP kohta?

Tegelikult on see, vĂ”iks öelda, spetsiifiline Tungsten Fabric’i jaoks — sellest vĂ”ib isegi mitte rÀÀkida.

Aga kui rÀÀkida, siis TF, olles veel OpenContrail, toetas mÔlemat inkapsuleerimist: MPLS in GRE ja MPLS in UDP.

UDP on hea, et Source Port'i tema pealkirjas on vÀga lihtne kodeerida hash-funktsioon algsetest IP+Proto+Port kombinatsioonidest, mis vÔimaldab tÔhusat koormuse jaotamist.

GRE puhul, kahjuks, on ainult vĂ€lised IP ja GRE pealkirjad, mis on kĂ”ikide kapseldatud andmete jaoks ĂŒhesugused, seega koormuse jaotamisest rÀÀkida ei saa — vĂ€he inimesi suudab nii sĂŒgavale paketti sisse vaadata.

Teatud aja jooksul suudsid ruuterid, kui nad ĂŒldse oskasid dĂŒnaamilisi tunnelite teha, vaid MPLSoGRE kaudu ja alles hiljuti Ă”ppisid nad MPLSoUDP-d kasutama. SeetĂ”ttu on alati vajalik mĂ€rkus kahe erineva kapseldamise vĂ”imaluse kohta.

Õiguse nimel tuleb mĂ€rkida, et TF toetab tĂ€iesti L2-ĂŒhenduvust VXLAN-i kaudu.

Sa lubasid siduda paralleele OpenFlow'ga.
Need tÔepoolest mÔjuvad. vSwitch samas OpenStack'is teeb vÀga sarnaseid asju, kasutades VXLAN-i, millel, muide, on samuti UDP pealkiri.

Andmekihis töötavad nad umbkaudu ĂŒhtemoodi, kuid juhtimiskihis on oluliselt erinevusi. Tungsten Fabric kasutab marsruutide teabe edastamiseks XMPP-d, samas kui OpenStack'is toimib OpenFlow.

Kas sa saaksid rÀÀkida rohkem vRouter'ist?
See jaguneb kaheks osaks: vRouter Agent ja vRouter Forwarder.

Esimene töötab User Space'i host-operatsioonisĂŒsteemis ja suhtleb SDN-kontrolleriga, vahetades teavet marsruutide, VRF-i ja ACL-i kohta.

Teine rakendab Data Plane'i — tavaliselt Kernel Space'is, kuid vĂ”ib töötada ka SmartNIC-ides — vĂ”rgukaartides, millel on CPU ja eraldi programmeeritav lĂŒlitusiip, mis vĂ”imaldab kanda koormust host-masina CPU-lt Ă€ra ning muudab vĂ”rgu kiiremaks ja prognoositavamaks.

On ka vÔimalus, et vRouter on DPDK-rakendus User Space'is.

vRouter Agent edastab seaded vRouter Forwarderile.

Mis on Virtuaalne VÔrk?
Mainisin artikli alguses VRF-i, et iga ĂŒĂŒrnik on seotud oma VRF-iga. Ja kuigi selleks, et mĂ”ista ĂŒlekattevĂ”rgu toimimist, oli see piisav, tuleb juba jĂ€rgmises iteratsioonis selgitusi anda.

Tavaliselt virtuaalmasinate virtualiseerimise mehhanismides tuuakse Virtual Network (seda vĂ”ib pidada omaette nimeks) eraldi klientidest/tenantidest/virtuaalmasinatest — see on tĂ€iesti iseseisev element. Ja seda Virtual Network'i saab liidestuse kaudu ĂŒhendada ĂŒhte tenant'i, teise, kahega, jah, kuhu iganes. NĂ€iteks teostatakse Service Chaining'i, kui liiklust tuleb suunata lĂ€bi kindlate node'ide soovitud jĂ€rjekorras, lihtsalt loomise ja Virtual Network'ide Ă”ige jĂ€rjekorra sidumisega.

SeetÔttu ei ole Virtual Network'i ja tenant'i vahel otsest vastavust.

KokkuvÔte

See on ĂŒsna pinnapealne kirjeldus virtuaalse vĂ”rgu töö kohta overlay's hostilt ja SDN-kontrollerilt. Kuid sĂ”ltumata sellest, millist virtualiseerimisplatvormi te tĂ€na kasutate, töötab see sarnasel viisil, olgu see siis VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric vĂ”i Juniper Contrail. Need eristuvad kapseldatuse ja pĂ€iste tĂŒĂŒpide, lĂ”ppvĂ”rguseadmete teabe edastamise protokollide poolest, kuid programmiga juhitava overlay-vĂ”rguharu pĂ”himĂ”te, mis töötab suhteliselt lihtsa ja staatilise allvĂ”rgu kohal, jÀÀb samaks.
VĂ”ib öelda, et tĂ€napĂ€evases privaatse pilve loomise valdkonnas on overlay-vĂ”rgupĂ”hine SDN vĂ”itnud. See ei tĂ€henda siiski, et OpenFlow ei leiduks tĂ€napĂ€eva maailmas — seda kasutatakse OpenStackis ning ka VMWare NSX-is, ning nii palju kui ma tean, kasutab seda Google oma all-juhitud vĂ”rgu seadistamiseks.

Allpool leiate lingid ĂŒksikasjalikumatele materjalidele, kui soovite teemat sĂŒgavamalt uurida.

Aga mis meie all-kihis toimub?

Ega seal suurt midagi ei toimu. See on kogu aeg muutumatu. KÔik, mida tal on vaja teha overlay puhul, on uuendada marsruute ja ARP-e vastavalt vRouteri/VNGW de olemasolule ja kadumisele ning edastada pakette nende vahel.

KÀime lÀbi nÔudmiste loetelu all-kihi vÔrgule.

  1. Tuleb osata mingit marsruutimisprotokolli, meie olukorras — BGP.
  2. Omada suurt lĂ€bilaskevĂ”imet, eelistatult ilma ĂŒlealustamiseta, et pakette ei kaduks ĂŒlekoormuse tĂ”ttu.
  3. Toetada ECMP-d — see on lahenduse lahutamatu osa.
  4. Osata pakkuda QoS-i, sealhulgas keerulisi asju, nagu ECN.
  5. Toetada NETCONF-i — tuleviku tarbeks.

Underlay-vĂ”rgu tööle olen siin vĂ€ga vĂ€he aega pĂŒhendanud. See on sellepĂ€rast, et edasisetes osades keskendun ma just sellele, samas kui Overlay'd puudutame vaid pĂ”gusalt.

Ilmselt piirangud, mida ma kÔigile seades rakendan, tulenevad tÔsiasjast, et kasutame nÀitena Clozi tehases ehitatud DC-vÔrku, millel on puhas IP-routed ja overlay hostilt.

Kuid ma olen kindel, et igasugust vĂ”rku, millel on disain, saab kirjeldada formaalsetes terminites ja automatiseerida. Lihtsalt ma pĂŒĂŒan siin mĂ”ista automatiseerimisviise, mitte segadusse ajada, lahendades ĂŒlesande ĂŒldiselt.

ADSMe raames kavatseme koos Roman Gorgiga avaldada erivÀljaanne arvutusvÔimsuse virtualiseerimise ja selle koostöö kohta vÔrgu virtualiseerimisega. JÀlgige meid.

Kasulikud lingid

AitÀh

  • Roman Gorgile — endine linkmeup'i podkasti juht, praegu pilvetehnoloogia ekspert. Kommentaaride ja paranduste eest. Ootame varsti tema pĂ”hjalikumat artiklit virtualiseerimisest.
  • Aleksandr Ć alimov — minu kolleeg ja virtuaalsete vĂ”rkude arendamise ekspert. Kommentaaride ja paranduste eest.
  • Valentin Sinitsyn — minu kolleeg ja Tungsten Fabrici ekspert. Kommentaaride ja paranduste eest.
  • Artiom TĆĄernobai — linkmeup'i illustraator. KDPV eest.
  • Aleksandr Limonov. Memi «automato» eest.

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster