Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Uues vÀljaandel Olen kirjeldanud verkkoautomaatioframeworkia. Joidenkin palautteiden mukaan tÀmÀ ensimmÀinen lÀhestymistapa ongelmaan on jo selventÀnyt joitakin kysymyksiÀ. TÀmÀ ilahduttaa minua, koska tavoitteemme sykliin ei ole vain peittÀÀ Ansiblea Python-skripteillÀ, vaan rakentaa jÀrjestelmÀ.

TÀmÀ framework mÀÀrittÀÀ jÀrjestyksen, jonka mukaan kÀsittelemme kysymystÀ.
Ja verkkovirtualisointi, jolle tÀmÀ julkaisu on omistettu, ei erityisesti sovi ADSMin aiheeseen, jossa kÀsittelemme automaatiota.

Mutta katsotaanpa sitÀ toisesta kulmasta.

Monet palvelut ovat jo pitkÀÀn kÀyttÀneet yhtÀ verkkoa. Esimerkiksi teleoperaattorilla se on 2G, 3G, LTE, laajakaista ja B2B. Datakeskuksissa: yhteydet eri asiakkaille, Internet, lohkotallennus, objektilaatikko.

Ja kaikki palvelut vaativat eristyksen toisistaan. NÀin syntyivÀt overlay-verkot.

EikÀ kaikki palvelut halua odottaa, kun ihminen mÀÀrittÀÀ ne manuaalisesti. NÀin syntyivÀt orkestroijat ja SDN.

EnsimmÀinen lÀhestymistapa verkon jÀrjestelmÀlliseen automatisointiin, tarkemmin sanottuna sen osan automatisointiin, on pitkÀÀn ollut yrittÀjÀnÀ ja monilla alueilla toteutettu: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.

TÀmÀn kanssa kÀymme tÀnÀÀn lÀpi.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Sisukord

  • Syyt
  • Terminoloogia
  • Underlay — fyysinen verkko
  • Overlay — virtuaaliverkko
    • Overlay ToR:sta
    • Overlay isĂ€ntĂ€koneelta
    • Esimerkiksi Tungsten Fabricin osalta
      • ViestintĂ€ yhden fyysisen koneen sisĂ€llĂ€
      • ViestintĂ€ VM:ien vĂ€lillĂ€, jotka sijaitsevat eri fyysisillĂ€ koneilla
      • Ulkomaailmaan ulospÀÀsy

  • KKK
  • KokkuvĂ”te
  • Kasulikud lingid

Syyt

Ja kun kerran olemme tÀstÀ puhuneet, on syytÀ mainita verkkovirtualisoinnin edellytykset. Itse asiassa tÀmÀ prosessi alkoi ei eilen.

Olet luultavasti kuullut useaan otteeseen, ettĂ€ verkko on aina ollut systeemin kaikkein inertialisin osa. Ja tĂ€mĂ€ on totta kaikessa merkityksessĂ€. Verkko on perusta, johon kaikki perustuu, ja sen muuttaminen on melko vaikeaa — palvelut eivĂ€t kestĂ€, kun verkko on alhaalla. Usein yhden solmun poistaminen kĂ€ytöstĂ€ voi kaatua suuren osan sovelluksista ja vaikuttaa moniin asiakkaille. Osittain siksi verkko-tiimi voi vastustaa muutoksia — koska se toimii nyt jotenkin (me emme ehkĂ€ tiedĂ€ miten), ja nyt on tarpeen mÀÀrittÀÀ jotain uutta, eikĂ€ ole selvÀÀ, miten se vaikuttaa verkkoon.

Ette ei peaks ootama, et vĂ”rguoperaatorid VLAN-i konfigureerivad ning kĂ”iki teenuseid igas vĂ”rgu sĂ”lmes mÀÀravad, on inimesed leiutanud kasutada overlay-d — kattuvate vĂ”rkude sĂŒsteeme, mille mitmekesisus on suur: GRE, IPinIP, MPLS, MPLS L2/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE jne.

Nende atraktiivsus seisneb kahes lihtsas asjaolus:

  • Configureeritakse ainult lĂ”pp-sĂ”lmed — transit-sĂ”lmedesse puutuda ei ole vaja. See kiirendab oluliselt protsessi ning mĂ”nikord vĂ”imaldab tĂ€ielikult vĂ€listada vĂ”rguinfrastruktuuri osakonna uute teenuste lisamisest.
  • Koormus on peidetud sĂŒgavale pealkirjadesse — transit-sĂ”lmed ei pea sellest midagi teadma, ei hostide aadressimisest ega kattuvate vĂ”rkude marsruutidest. See tĂ€hendab, et tabelites tuleb hoida vĂ€hem teavet, seega vĂ”ib kasutada lihtsamaid/odavamaid seadmeid.

Selles mitte eriti pÔhjalikus vÀljaandes ei plaani ma kÔiki vÔimalikke tehnoloogiaid kÀsitleda, vaid pigem kirjeldada overlay-vÔrkude töö raamistiku andmekeskuses.

Kogu sari kirjeldab andmekeskust, mis koosneb ĂŒksteise kĂŒlge paigutatud identsetest riiulitest, kuhu on paigaldatud sama tĂŒĂŒpi serveriseade.

Sellel varustusel kÀivitatakse virtuaalsed masinad/konteinerid/serverless, mis rakendavad teenuseid.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Terminoloogia

TsĂŒklis serverilt nimetan ma programmi, mis rakendab serveri poole kliendi-serveri kommunikatsioonist.

FĂŒĂŒsilisi masinaid riiulites nimetame serveriteks ei meie.

FĂŒĂŒsiline masin on x86-arvuti, mis on paigaldatud riiulisse. KĂ”ige sagedamini kasutatav termin on host. Nii nimetame teda "masin" vĂ”i host.

HĂŒperviisor — rakendus, mis on kĂ€ivitatud fĂŒĂŒsilise masina peal ja emuleerib fĂŒĂŒsilisi ressursse, millel töötavad Virtuaalsed Masinad. MĂ”nikord kasutatakse kirjanduses ja vĂ”rgus sĂ”na „hĂŒpervisor” sĂŒnonĂŒĂŒmina „hostile”.

Virtuaalne masin — operatsioonisĂŒsteem, mis on kĂ€ivitatud fĂŒĂŒsilise masina peal hĂŒperviisoril. Meie jaoks ei ole sel tsĂŒklil tegelikult oluline, kas see on tĂ”eline virtuaalne masin vĂ”i lihtsalt konteiner. Nimetame seda "VM«

Tenant on lai mÔisted, mida selles artiklis mÀÀratlen kui eraldi teenuse vÔi eraldi kliendi.

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

ToR — Racki ĂŒlaosa lĂŒliti — rack switch, to which all physical machines are connected.

Besides ToR topology, different providers practice End of Row (EoR) or Middle of Row (although the latter is a rarely used term and I have not encountered the abbreviation MoR).

Underlay network or underlay network — the physical network infrastructure: switches, routers, cables.

Overlay network or overlay network — a virtual network of tunnels operating over the physical layer.

L3 fabric or IP fabric — an amazing human invention that allows for not repeating STP and not learning TRILL during meetings. A concept where the entire network down to the access level is exclusively L3, without VLAN and consequently huge stretched broadcast domains. We will discuss the origin of the term 'fabric' in the next part.

SDN — Software Defined Network. Hardly needs an introduction. An approach to network management where changes in the network are performed not by a person but by a program. Typically means moving the Control Plane outside the end network devices to a controller.

NFV — Network Function Virtualization — virtualization of network devices that assumes that some network functions can run as virtual machines or containers to accelerate the introduction of new services, organize Service Chaining, and facilitate easier horizontal scalability.

VNF — Virtual Network Function. A specific virtual device: router, switch, firewall, NAT, IPS/IDS, etc.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

I am intentionally simplifying the description to a specific implementation to avoid confusing the reader too much. For more thoughtful reading, I refer them to the section Viidatud lingid. Additionally, Roma Gorge, who criticizes this article for inaccuracies, promises to write a separate issue on server and network virtualization technologies, more in-depth and detail-oriented.

Most networks today can clearly be divided into two parts:

Underlay — a physical network with a stable configuration.
Overlay — an abstraction over Underlay for tenant isolation.

This is true for both the case of DC (which we will discuss in this article) and ISP (which we will not cover, as it has already been discussed in SDN). With enterprise networks, of course, the situation is somewhat different.

An image focusing on the network:

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Underlay

Underlay on fĂŒĂŒsiline vĂ”rk: riistvaralised lĂŒlitid ja kaablid. Seadmed underlay's teavad, kuidas jĂ”uda fĂŒĂŒsiliste masinatega.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

See tugineb standardsetele protokollidele ja tehnoloogiatele. Mitte viimase asjana seepĂ€rast, et riistvarasesked töötavad siiani patenteeritud tarkvaral, mis ei luba ei kiibi programmeerimist, ei omade protokollide rakendamist; seega on vajalik ĂŒhilduvus teiste tarnijatega ja standardimine.

Kuid keegi nagu Google suudab endale lubada oma lĂŒlitite arendamist ja tavatĂ€ringute protokollidest loobumist. Kuid LAN_DC ei ole Google.

Underlay vahetub suhteliselt harva, sest selle ĂŒlesanne on pĂ”hivĂ”rgu IP-ĂŒhendus fĂŒĂŒsiliste masinate vahel. Underlay ei tea midagi tema peal kĂ€ivitatud teenustest, klientidest, tenantidest — tal on vaja ainult paketti ĂŒhest masinast teise edastada.
Underlay vÔib olla nÀiteks jÀrgmine:

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

Underlay vÔrk seadistatakse klassikalisel viisil: CLI/G/NETCONF.

KÀsitsi, skriptide, patenteeritud tööriistade kaudu.

Underlay’le pĂŒhendatakse jĂ€rgmises artiklis rohkem tĂ€helepanu.

Overlay

Overlay on virtuaalne tunneli vĂ”rk, mis on ĂŒle Underlay's, see vĂ”imaldab ĂŒhe kliendi VM-del omavahel suhelda, samal ajal tagades isolatsiooni teiste klientide eest.

Kliendi andmed kapseldatakse mingitesse tunneliseerimispealkirjadesse, et edastada neid ĂŒhisesse vĂ”rku.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Nii vĂ”ivad ĂŒhe kliendi VM-id (ĂŒhe teenuse) omavahel suhelda lĂ€bi Overlay, isegi teadmata, mis tegelikult tee su paketid jĂ€rgivad.

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

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

Overlay vĂ”rk seadistatakse ja toetatakse tavaliselt keskse kontrolleri kaudu. Sealt edastatakse konfiguratsioon, Control Plane ja Data Plane seadmetele, mis tegelevad klienditrafiku marsruutimise ja kapseldamisega. Veidi allpool kĂŒll arutame seda nĂ€idete abil.

Jah, see on puhas SDN.

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

  1. Overlay ToR:sta
  2. Overlay isÀntÀkoneelta

Overlay ToR:sta

Overlay vÔib alata juurdepÀÀsuswitch'ilt (ToR), mis on seadistatud rack'i, nagu see juhtub nÀiteks VXLAN tehases.

See on ajaproovile vastu pidanud mehhanism ISP vÔrkudes ja kÔik vÔrgu riistvaratootjad toetavad seda.

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

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Siinkohal suunan lugeja artikli juurde VxLAN Habr'is meie vana sÔbra @bormoglotx.
Selles esitlusele ENOG on pÔhjalikult kirjeldatud lÀhenemisviise andmekeskuse vÔrgu ehitamiseks EVPN VXLAN-fabriku abil.

Kuna teemasse sĂŒvenemiseks vĂ”ib lugeda Ciscolt raamatut A Modern, Open, and Scalable Fabric: VXLAN EVPN.

TÔin vÀlja, et VXLAN on ainult kapseldamismeetod ja tunnelite lÔpetamine vÔib toimuda mitte ToR-is, vaid masina peal, nagu toimub nÀiteks OpenStackis.

Kuid VXLAN-fabrika, kus overlay algab ToR-ist, on ĂŒks juurdunud ĂŒlekattevĂ”rgu disaine.

Overlay isÀntÀkoneelta

Teine lÀhenemine on tunnelite alustamine ja lÔpetamine lÔppmasinates.
Sellisel juhul jÀÀb vÔrk (Underlay) maksimaalselt lihtsaks ja staatiliseks.
Ja masin teeb kÔik vajalikud kapseldamised ise.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Selleks on muidugi vaja kÀivitada spetsiaalne rakendus masinatel, kuid see on seda vÀÀrt.

Esiteks, kliendi kĂ€ivitamine linux-masinal on lihtsam vĂ”i, ĂŒtleme, — ĂŒldse vĂ”imalik — samas kui lĂŒlitil tuleb tĂ”enĂ€oliselt veel kasutada omandi SDN-lahendusi, mis tapab mitme tarnija idee.

Teiseks, ToR-lĂŒlitit saab jĂ€tta maksimaalselt lihtsaks nii Control Plane'i kui ka Data Plane'i seisukohalt. TĂ”epoolest — SDN-kontrolleriga suhtlemiseks pole tal siis vaja, ja kĂ”igi ĂŒhendatud klientide vĂ”rke/ARP-sid hoidma ei pea — piisab, kui teada fĂŒĂŒsilise masina IP-aadressi, mis kergendab mĂ€rkimisvÀÀrselt kommutatsiooni/routing tabelite haldamist.

ADSMi seerias valin lĂ€henemise, kus overlay tuleb masinast — edasine arutelu keskendub ainult sellele ja VXLAN-fabriku juurde me ei naase enam.

Lihtsaim on vaadata nÀidete kaudu. Ja katseobjektiks vÔtame OpenSource SDN platvormi OpenContrail, mis on tuntud kui Tungsten Fabric.

Artikli lÔpus toon vÀlja mÔned mÔtted OpenFlow ja OpenvSwitch'i sarnasuse teemal.

Esimerkiksi Tungsten Fabricin osalta

Igal fĂŒĂŒsilisel masinal on vRouter — virtuaalne marsruuter, mis teab, millised vĂ”rgud on sellega ĂŒhendatud ja kellele need kuuluvad — sisuliselt PE-marsruuter. Iga kliendi jaoks toetab see isoleeritud marsruutimistabelit (loe: VRF). Ja vRouter teostab Overlay tunneldamise.

Natuke lĂ€hemalt vRouterist — artikli lĂ”pus.

Iga VM, mis asub hĂŒperviisoril, ĂŒhendatakse selle masina vRouteriga lĂ€bi TAP-liidese.

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

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Kui vRouteri taga on mitu vĂ”rku, siis igale neist luuakse virtuaalne liides, millele mÀÀratakse IP-aadress — see on vaikimisi marsruutija aadress.
KĂ”ik ĂŒhe kliendi vĂ”rgud paigutatakse ĂŒhte VRF (ĂŒhes tabelis), erinevad — erinevatesse.
Teen seda siin mÀrkuse, et asjad ei ole nii lihtsad, ja saadan uudishimuliku lugeja artikli lÔppu..

Kuna vRouterid peavad omavahel suhtlema ja seega ka neile vÀljasolevad VM-id, vahetavad nad marsruuditeavet lÀbi SDN-kontrolleri.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

VĂ€lismaailma pÀÀsemiseks on olemas vĂ€ljapÀÀs, mis on virtuaalne vĂ”rgu vĂ€rav VNGW — Virtuaalne VĂ”rgu VĂ€rav (see termin on minu enda.).

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

NĂŒĂŒd vaatame suhtluse nĂ€iteid — ja asi saab selgeks.

ViestintÀ yhden fyysisen koneen sisÀllÀ

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

Andmeplaan

  1. VM-0-l on vaikimisi marsruut oma liideses eth0. Pakett saadetakse sinna.
    See liides eth0 on tegelikult virtuaalselt ĂŒhendatud virtuaalse marsruutija vRouteriga lĂ€bi TAP-liidese tap0.
  2. vRouter analĂŒĂŒsib, millisele liidesele pakett tuli, st kellele (VRF) see kuulub, ja vĂ”rdleb saaja aadressi kliendi marsruutimistabeliga.
  3. Tuvastades, et saaja on sellel samal masinal teisel pordil, saadab vRouter paketi lihtsalt sinna ilma igasuguste lisapealkirjadeta — sellisel juhul on vRouteris juba olemas ARP-kirje.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Pakett ei jĂ”ua sellisel juhul fĂŒĂŒsilisse vĂ”rku — see marsruutis end vRouteris.

Kontrollplaan

HĂŒperviisor teavitab virtuaalmasina kĂ€ivitamisel seda:

  • tema enda IP-aadress.
  • Vaikimisi marsruut — lĂ€bi vRouteri IP-aadressi selles vĂ”rgus.

vRouterile edastab hĂŒperviisor lĂ€bi erilise API:

  • et virtuaalne liides tuleb luua.
  • Mida peab (VM) looma virtuaalne vĂ”rk.
  • Kellele VRF-i tema (VN) siduda.
  • Statistiline ARP-kirje selle VM jaoks - millise liidese taga on selle IP-aadress ja millise MAC-aadressiga see on seotud.

Ja taas on tegelik suhtlemisprotseduur lihtsustatud arusaamaks kontseptsiooni.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Seega nĂ€eb kĂ”iki ĂŒhe kliendi VM-e antud seadmes vRouter otse ĂŒhendatud vĂ”rkudena ja suudab nende vahel marsruuti suunata.

Kuid VM0 ja VM1 kuuluvad erinevatele klientidele, seega on nad erinevates vRouter’i tabelites.

Kas nad saavad omavahel otse suhelda, sĂ”ltub vRouter’i seadetest ja vĂ”rgu kujundusest.
NĂ€iteks, kui mĂ”lema kliendi VM-id kasutavad avalikke aadresse, vĂ”i NAT toimub vRouter’il, siis saab teha ka otsemarsruutimist vRouter’is.

Teisel juhul vĂ”ib aadressiruumide kattumine esineda - tuleb minna NAT-serverisse, et saada avalik aadress - see on sarnane vĂ€lisse ĐŸĐ±ŃĐ»ŃƒĐ¶ĐžĐČала, millest allpool.

ViestintÀ VM:ien vÀlillÀ, jotka sijaitsevat eri fyysisillÀ koneilla

Andmeplaan

  1. Algus on tÀpselt sama: VM-0 saadab paketi adressaadile VM-7 (172.17.3.2) oma vaikimisi kaudu.
  2. vRouter saab selle ja seekord nÀeb, et adressaat asub teisel seadmel ja on saadaval Tunnel0 kaudu.
  3. Esmalt lisab ta MPLS-i sildi, mis tuvastab kaugliidese, et vastaspoolel vRouter saaks mÀÀrata, kuhu see paket paigutada ilma lisateedeta.

    Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

  4. Tunnel0 allikas on 10.0.0.2, saaja: 10.0.1.2.
    vRouter lisab algsele paketile GRE (vÔi UDP) pealkirjad ja uue IP.
  5. vRouter’i marsruudi tabelis on vaikimisi marsruut aadressi ToR1 10.0.0.1 kaudu. Sinna see saadetakse.

    Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

  6. ToR1, kui Underlay vÔrgu osaline, teab (nt OSPF-i kaudu), kuidas jÔuda 10.0.1.2 ni ja saadab paketi marsruudi kaudu. MÀrkus: siin rakendatakse ECMP-d. Illustratsioonil on kaks next hop ja erinevad voolud jagunevad nende vahel hÀshtimisel. TÔelise tehasemudeli puhul oleks siin tÔenÀoliselt 4 next hop.

    Samuti ei pea ta teadma, mis asub vĂ€list IP-pealkirja all. TĂ”eliselt vĂ”ib IP all olla kihiline struktuur IPv6 ĂŒle MPLS ĂŒle Ethernet ĂŒle MPLS ĂŒle GRE ĂŒle ĂŒle GRE.

  7. Seega eemaldab vastuvÔtva poole vRouter GRE ja MPLS-i sildi jÀrgi mÔistab ta, millisele liidesele see pakett edastada, vabastab selle ja saadab algses vormis adressaadile.

Kontrollplaan

Masina kÀivitamisel toimub kÔik sama, nagu eespool kirjeldatud.

Ja lisaks veel jÀrgmine:

  • Iga kliendi jaoks mÀÀrab vRouter MPLS-sildi. See on teenusesilt L3VPN, mille alusel jagatakse kliente ĂŒhe fĂŒĂŒsilise masina piires.

    Tegelikult mÀÀratakse MPLS-silt vRouter'i poolt alati, kuna ei ole ette teada, et masin suhtleb ainult teiste masinatega sama vRouter'i taga, ja see on tÔenÀoliselt isegi nii.

  • vRouter loob ĂŒhenduse SDN-kontrolleriga BGP protokolli (vĂ”i sarnase protokolli abil — TF puhul on see XMPP 0_o).
  • Selle seansi kaudu teatab vRouter SDN-kontrollerile marsruudid ĂŒhendatud vĂ”rkudeni:
    • VĂ”rgu aadress
    • Inkapseldusmeetod (MPLSoGRE, MPLSoUDP, VXLAN)
    • Kliendi MPLS-silt
    • Oma IP-aadress nexthop'ina

  • SDN-kontroller saab selliseid marsruute kĂ”igilt ĂŒhendatud vRouter'itelt ja edastab need teistele. Seega toimib ta marsruudi peegeldujana.

Sama toimub ka vastupidises suunas.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Overlay vÔib muutuda iga minuti tagant. Just nii see toimib avalikes pilvetes, kui kliendid kÀivitatakse ja vÀljastatakse oma virtuaalmasinaid regulaarselt.

Keskne kontroller vÔtab endale kÔik keerukused konfiguratsiooni sÀilitamisel ja marsruudimis-/kommutatsioonitabelite kontrollimisel vRouter'il.

Rohkem tĂ€iustatud viisil öeldes ĂŒhendub kontroller kĂ”igi vRouter'itega BGP (vĂ”i sarnase protokolli) kaudu ja edastab lihtsalt marsruutinfot. BGP-l on nĂ€iteks juba Address-Family inkapseldusmeetodi edastamiseks. MPLS-in-GRE vĂ”i MPLS-in-UDP.

Samuti ei muutu kuidagi Underlay-vĂ”rgu konfiguratsioon, mis on muide automaatikas oluliselt keerulisem, samas kui ĂŒlesande vale teostamine on lihtne.

Ulkomaailmaan ulospÀÀsy

Kusagil peab simuleerimine lÔppema ja virtuaalsest maailmast peab vÀlja minema reaalsesse. Ja on vaja taksofoniga gateway'd.

Praktiseeritakse kahte lÀhenemist:

  1. Paigaldatakse riistvaraline marsruuter.
  2. KÀivitatakse mÔni appliance, mis teostab marsruutimise funktsioone (jah, jÀrgides SDN-i, oleme ka VNF-iga silmitsi selle saanud). Kutsume seda virtuaalseks vÀravaks.

Teise lĂ€henemise eelis odava horisontaalse skaleeritavuse osas — kui vĂ”imsus on puudulik, kĂ€ivitasime veel ĂŒhe virtuaalmasina vĂ€ravaga. Iga fĂŒĂŒsilise masina peal, ilma vajaduseta otsida vabu racke, ĂŒksusi, toiteallikaid, osta ise riistvara, transportida, paigaldada, ĂŒhendada, seadistada, ja siis veel vahetada rikki lĂ€inud komponente.

Virtuaalsel vĂ€raval on siiski miinuseid, kuna fĂŒĂŒsiline ruuter on palju vĂ”imsam kui palju sĂŒdamikke omav virtuaalmasin ning tema tarkvara, mis on kohandatud vastavasse riistvarasse, töötab oluliselt stabiiliumalt (ei). Raskem on eitada ka seda fakti, et tarkvara-riistvara kompleks lihtsalt töötab, nĂ”udes vaid seadistamist, samas kui virtuaalse vĂ€rava kĂ€ivitamine ja hooldamine on tugevate inseneride tegevus.

Ühe jalaga vaatab vĂ€rav virtuaalsesse Overlay-vĂ”rku nagu tavaline virtuaalmasin ning vĂ”ib suhelda kĂ”igi teiste VM-idega. Samuti vĂ”ib ta klientide vĂ”rke enda pead terminida ja seega teostada nende vahel marsruutimist.

Teise jalaga vaatab vÀrav juba peavÔrku ja teab, kuidas internetti pÀÀseda.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Andmeplaan

Protsess nÀeb vÀlja jÀrgmine:

  1. VM-0, omades vaikimisi vRouterit, saadab paketi aadressaatidega vÀlismaailmasse (185.147.83.177) eth0 liidesesse.
  2. vRouter saab selle paki ja otsib sihtaadressi marsruudist tabelis — leiab vaikimisi marsruudi VNGW1 vĂ€rava kaudu Tunnel 1.
    Samuti nÀeb ta, et see on GRE tunnel SIP-iga 10.0.0.2 ja DIP-iga 10.0.255.2, ja tal on enne vaja panna MPLS-mÀrgis sellele kliendile, mida VNGW1 ootab.
  3. vRouter pakendab algse paki MPLS, GRE ja uue IP pÀiste alla ning saadab selle aadressile ToR1 10.0.0.1 vaikimisi.
  4. AlamvÔrk toimetab paki VNGW1 vÀravasse.
  5. VNGW1 vĂ€rav eemaldab GRE ja MPLS tunnelduspead, nĂ€eb sihtaadressi, konsulteerib oma marsruuditabeliga ja mĂ”istab, et see suundub internetti — see tĂ€hendab, et lĂ€bi Full View vĂ”i Default. Vajadusel teostatakse NAT-muundamine.
  6. VNGW ja piirdele vÔib olla tavaline IP-vÔrk, mis on vÀhe tÔenÀoline.
    See vÔib olla klassikaline MPLS-vÔrk (IGP+LDP/RSP TE), vÔib olla tagasi tagavabrik BGP LU-ga vÔi GRE tunnel VNGW-st piirdeni IP-vÔrgu kaudu.
    Igatahes VNGW1 sooritab vajalikud kapseldamised ja saadab algse paki piirde suunas.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Tagasi suunduv liiklus lÀbib samu samme vastupidises jÀrjestuses.

  1. Piirde toimetab paki VNGW1-le
  2. VNGW1 eemaldab selle, vaatab saaja aadressile ja tuvastab, et see on saadaval Tunnel1 (MPLSoGRE vÔi MPLSoUDP) kaudu.
  3. Seega kinnitab ta MPLS-mÀrgi, GRE/UDP pÀise ja uue IP ning saadab selle oma ToR3 10.0.255.1-le.
    Tunnel'i sihtkoht on vRouter'i IP-aadress, mille taga on siht-VM — 10.0.0.2.
  4. AndmeedastusvÔrk toob paketi vajaliku vRouter'ini.
  5. Siht-vRouter eemaldab GRE/UDP, mÀÀrab MPLS-sildi alusel liidese ja saadab tavalise IP-paketi oma TAP-liidese kaudu, mis on seotud eth0 VM-iga.

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

Kontrollplaan

VNGW1 loob BGP-naabruse SDN-kontrolleriga, kellelt ta saab kogu marsruutimise teabe klientide kohta: millise IP-aadressi (vRouter) taga asub milline klient ja millise MPLS-sildi pÔhjal ta identifitseeritakse.

Sarnaselt edastab ta SDN-kontrollerile vaikesuuna koos selle kliendi sildiga, mĂ€rkides end jĂ€rgmise hĂŒppena. JĂ€tkusuunamine jĂ”uab siis vRouter'itesse.

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

Ja vastassuunas edastab ta eelkÔige selle agregeeritud marsruudi seansiga piiride vÔi Route Reflector'itega. Nendelt saab ta marsruudi vaikesuuna, Full-View'i vÔi midagi muud.

Inkubatsiooni ja liikluse vahetuse osas ei erine VNGW milleski vRouter'ist.
Kui natuke laiendada valdkonda, siis saab VNGW ja vRouter'ite hulka lisada muid vĂ”rgu seadmeid, nagu tulemĂŒĂŒrid, liikluse puhastus- vĂ”i rikastamisfarmid, IPS jms.

Ja VRF-i jÀrjestikulise loomise ning Ôigete marsruutide kuulutamisega saab liiklust suunata nii, nagu soovite, mida kutsutakse Service Chaining'uks.

See tÀhendab, et ka siin mÀngib SDN-kontroller Route-Reflector'i rolli VNGW, vRouter'ite ja teiste vÔrgu seadmete vahel.

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

Automatiseerimine VÀikestele. Esimene osa (mis tuleb pÀrast nullsest). VÔrgustiku virtualiseerimine

KKK

Miks sa pidevalt mainid GRE/UDP?

Noh, tegelikult on see Tungsten Fabric'i jaoks eriline — seda saab ĂŒldse mitte arvesse vĂ”tta.

Kuid kui arvestada, siis isegi olles OpenContrail, toetas TF mÔlemat inkapsuleerimisviisi: MPLS GRE-s ja MPLS UDP-s.

UDP on hea selle poolest, et selle pÀises oleva Source Port'i kaudu on vÀga lihtne kodeerida algsete IP+Proto+Port'i hÀshefunktsiooni, mis vÔimaldab tasakaalustamist.

GRE puhul on kahjuks ainult vĂ€lised IP ja GRE pĂ€ised, mis on ĂŒhesugused kogu inkapsuleeritud liikluse jaoks ja tasakaalustamisest ei saa rÀÀkida — harva, kui keegi suudab nii sĂŒgavale paketti vaadata.

MĂ”ningal ajal oskasid ruuterid dĂŒnaamiliste tunnelite alal ainult MPLSoGRE'it, ja vaid hiljuti on nad Ă”ppinud ka MPLSoUDP-d kasutama. SeetĂ”ttu on alati vajalik mĂ€rkida kahe erineva kapseldamise vĂ”imaluse olemasolu.

Õigluse nimel tuleks mĂ€rkida, et TF toetab ka L2 seotust VXLANi abil.

Sa lubasid vÔrrelda OpenFlow'iga.
Need tÔesti sÀtivad ennast kohale. vSwitch samas OpenStackis teeb sarnaseid asju, kasutades VXLANi, millel on muide samuti UDP-pealkiri.

Andmeplaanis töötavad nad enam-vÀhem vÔrdselt, kuid haldusplaanis on olulisi erinevusi. Tungsten Fabric kasutab teabe edastamiseks vRouterile XMPP, samas kui OpenStackis töötas OpenFlow.

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

Esimene töötab host-sĂŒsteemi kasutusruumis ja suhtleb SDN-kontrolleriga, vahetades teavet marsruutide, VRF-i ja ACL-i kohta.

Teine teostab andmeplaani - tavaliselt tuumaruumi, kuid see vĂ”ib töötada ka SmartNIC-ides - vĂ”rguadapterites, millel on CPU ja eraldi programmeeritav lĂŒlitussĂŒsteem, mis vĂ”imaldab vĂ€hendada hostmasina CPU koormust ja muuta vĂ”rgu kiiremaks ja ennustatavamaks.

On vÔimalik ka stsenaarium, kus vRouter on DPDK rakendus kasutusruumis.

vRouter Agent edastab seadistusi vRouter Forwarderile.

Mis on virtuaalne vÔrk?
Mainisin artikli alguses VRF-i, et iga ĂŒĂŒrnik seondub oma VRF-iga. Ja kui selleks, et mĂ”ista ĂŒlejÀÀnud vĂ”rgu tööd, oli seda piisavalt, siis jĂ€rgmise sammu jaoks on vajalik tĂ€psustusi teha.

Tavaliselt virtualiseerimise mehhanismides tutvustatakse virtuaalset vĂ”rku (selle vĂ”ib pidada kaubamĂ€rgiks) eraldi klientidest/ĂŒĂŒrnikest/virtuaalmasinatest - tĂ€iesti iseseisev asi. Ja see virtuaalne vĂ”rk saab liidestega seonduda ĂŒhte, teise vĂ”i isegi kahte ĂŒĂŒrnikku, kuhu iganes soovite. NĂ€iteks Ń€Đ”Đ°Đ»ĐžĐ·ĐžŃ€ŃƒĐ”Ń‚ŃŃ teenuste ahel, kui tuleb liiklust edastada kindlate sĂ”lmede kaudu Ă”igesjĂ€rjekorras, lihtsalt luues ja seondudes virtuaalsete vĂ”rkudega Ă”iges jĂ€rjekorras.

SeetĂ”ttu pole virtuaalse vĂ”rgu ja ĂŒĂŒrniku vahel otsest vastavust.

KokkuvÔte

See on ĂŒsna pinnapealne kirjeldus virtuaalsete vĂ”rkude toimimisest ĂŒlekattega hostilt ja SDN-kontrollerilt. Kuid ĂŒkskĂ”ik millist virtualiseerimisplatvormi te tĂ€na vĂ”tate, töötab see sarnasel viisil, olgu selleks VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric vĂ”i Juniper Contrail. Need eristuvad kapseldus- ja pealkirjavormingutest, andmete edastamise protokollidest lĂ”pp-punktide vĂ”rke, kuid programmiga seadistatava ĂŒlekatte vĂ”rgu pĂ”himĂ”te, mis töötab suhteliselt lihtsa ja staatilise aluse vĂ”rgu kohal, jÀÀb samaks.
VĂ”ib öelda, et privaatsuse pilve loomise valdkondades on tĂ€napĂ€ev SDN, mis pĂ”hineb ĂŒlekatte vĂ”rgul, domineeriv. Kuid see ei tĂ€henda, et Openflow'l ei oleks tĂ€napĂ€evases maailmas kohta - seda kasutatakse OpenStackis ja samas VMWare NSX-is, seda kasutab, kui ma Ă”igesti mĂ€letan, Google oma aluse vĂ”rgu seadistamiseks.

Allpool olen toonud lingid pĂ”hjalikematele materjalidele, kui soovite teemat sĂŒgavamalt uurida.

Aga kuidas on meie Underlay'ga?

Tegelikult ei ole seal suurt midagi. See on kogu aeg muutumatu. KĂ”ik, mida tal on vaja teha ĂŒlekattega hosti korral, on marsruutide ja ARP-de vĂ€rskendamine vRouteri/VNGW ilmumise ja kadumise ajal ning pakettide edasiviimine nende vahel.

Formuleerime nÔudmiste loetelu Underlay-vÔrgule.

  1. Toetada mÔnda marsruutimise protokolli, meie olukorras - BGP.
  2. Omada laiat ribalaiust, eelistatavalt ilma ĂŒleallkirjastamiseta, et pakette ei kaoks ĂŒlemÀÀrase koormuse tĂ”ttu.
  3. Toetada ECMP-d - see on vajalik osa tehases.
  4. Tagada QoS, sealhulgas keeruked asjad, nagu ECN.
  5. Toetada NETCONF-i - tuleviku suunised.

Olen siin pĂŒhendanud Underlay-vĂ”rgu toimimisele vaid vĂ€he aega. See on sellepĂ€rast, et edaspidi keskendun ma just sellele, samas kui Overlayd kĂ€sitleme vaid möödaminnes.

Ilmselgelt piirangustan ennast, kasutades nĂ€itena DC-vĂ”rku, mis on ĂŒles ehitatud Close'i tehase puhtale IP-marsruutimisele ja ĂŒlekattele hostilt.

Kuid olen kindel, et iga vĂ”rk, millel on disain, saab vormalsetes tingimustes kirjeldada ja automatiseerida. Lihtsalt minu siht on siin mĂ”ista automatiseerimise lĂ€henemisi, mitte segadusse ajada kĂ”iki, lahendades probleemi ĂŒldiselt.

ADSMi raames plaanime Roman Gorgiga avaldada erivÀljaande arvutite vÔimsuse virtualiseerimisest ja selle suhtlemisest vÔrgu virtualiseerimisega. JÀtkake jÀlgimist.

Kasulikud lingid

AitÀh

  • Roman Gorge — endine linkmeup'i podcasti juht, nĂŒĂŒdseks ekspert pilveplatvormide alal. TĂ€nud kommentaaride ja paranduste eest. Ootame peagi ka tema sĂŒvitsi minevat artiklit virtualiseerimise kohta.
  • Aleksandr Shalimov — minu kolleeg ja virtuaalsete vĂ”rkude arendamise ekspert. TĂ€nud kommentaaride ja paranduste eest.
  • Valentin Sinitsyn — minu kolleeg ja Tungsten Fabric'i ekspert. TĂ€nud kommentaaride ja paranduste eest.
  • Artyom Chernobay — linkmeup'i illustraator. TĂ€nud KDPV eest.
  • Aleksandr Limonov. TĂ€nud meem „automato“ eest.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster