Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

I den föregÄende utgÄvan Jag har beskrivit en ram för nÀtverksautomation. MÄnga har kommenterat att den hÀr första ansatsen till problemet redan har klargjort vissa frÄgor. Och det glÀdjer mig mycket, för vÄrt mÄl i cykeln Àr inte att bara tÀcka Ansible med Python-skript, utan att bygga ett system.

Den hÀr ramen sÀtter ordning pÄ hur vi ska hantera frÄgan.
Och nÀtverksvirtualisering, som detta avsnitt handlar om, passar inte riktigt in i temat ADMS dÀr vi behandlar automation.

Men lÄt oss titta pÄ det ur ett annat perspektiv.

MÄnga tjÀnster anvÀnder redan lÀnge ett och samma nÀtverk. För en teleoperatör handlar det om 2G, 3G, LTE, bredbandsinternet och B2B, exempelvis. I fallet med datacenter: uppkoppling för olika kunder, internet, blocklagring, objektlagring.

Och alla tjÀnster krÀver isolering frÄn varandra. SÄ overlay-nÀtverk kom till.

Och alla tjÀnster vill inte vÀnta pÄ att en mÀnniska ska stÀlla in dem manuellt. SÄ orkestratorer och SDN kom till.

Den första ansatsen till systematisk nÀtverksautomation, eller snarare en del av den, har lÀnge gjorts och implementerats pÄ mÄnga stÀllen: VMWare, OpenStack, Google Compute Cloud, AWS, Facebook.

Det Àr det vi ska granska idag.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

InnehÄll

  • Orsaker
  • Terminologi
  • Underlay — fysisk nĂ€tverk
  • Overlay — virtuell nĂ€tverk
    • Overlay frĂ„n ToR
    • Overlay frĂ„n vĂ€rd
    • Exempel med Tungsten Fabric
      • Kommunikation inom en fysisk maskin
      • Kommunikation mellan VM:s belĂ€gna pĂ„ olika fysiska maskiner
      • UtgĂ„ng till den yttre vĂ€rlden

  • FAQ
  • Slutsats
  • Nyttiga lĂ€nkar

Orsaker

Och eftersom vi talar om detta, bör vi nÀmna förutsÀttningarna för nÀtverksvirtualisering. Egentligen började denna process inte igÄr.

Du har kanske hört flera gĂ„nger att nĂ€tverket alltid har varit den mest tröga delen av vilket system som helst. Och det Ă€r sant i alla avseenden. NĂ€tverket Ă€r basen som allt vilar pĂ„, och att göra förĂ€ndringar pĂ„ det Ă€r ganska svĂ„rt — tjĂ€nster tĂ„l inte att nĂ€tverket Ă€r nere. Ofta kan avvecklingen av en nod pĂ„verka en stor del av applikationerna och pĂ„verka mĂ„nga kunder. Delvis dĂ€rför kan nĂ€tverksteamet motstĂ„ alla förĂ€ndringar — för just nu fungerar det pĂ„ nĂ„got sĂ€tt (vi kanske inte ens vet hur), och nu mĂ„ste nĂ„got nytt stĂ€llas in, och det Ă€r oklart hur det kommer att pĂ„verka nĂ€tverket.

För att slippa vĂ€nta pĂ„ att nĂ€tverksadministratörer ska stĂ€lla in VLAN och för att slippa specificera tjĂ€nster pĂ„ varje nod i nĂ€tverket, kom mĂ€nniskor pĂ„ att anvĂ€nda overlays — överlagrade nĂ€tverk — av vilka det finns ett stort antal: GRE, IPinIP, MPLS, MPLS L2/L3VPN, VXLAN, GENEVE, MPLSoverUDP, MPLSoverGRE etc.

Deras attraktion ligger i tvÄ enkla saker:

  • Endast slutnoderna konfigureras — transitnoderna behöver man inte röra. Detta pĂ„skyndar processen avsevĂ€rt och ibland möjliggör det att helt utesluta avdelningen för nĂ€tverksinfrastruktur frĂ„n processen att införa nya tjĂ€nster.
  • Belastningen döljs djupt inne i rubrikerna — transitnoderna behöver inte veta nĂ„got om den, om adressering pĂ„ vĂ€rdarna, rutterna i det överlagrade nĂ€tverket. Det betyder att man behöver lagra mindre information i tabellerna, vilket gör att man kan vĂ€lja enklare/billigare enheter.

I detta nÄgot ofullstÀndiga avsnitt planerar jag inte att gÄ igenom alla möjliga teknologier, utan snarare beskriva ramverket för hur överlagrade nÀtverk fungerar i datacenter.

Hela serien kommer att beskriva ett datacenter som bestÄr av rader av enhetliga skÄp, dÀr likadan serverutrustning Àr installerad.

PÄ denna utrustning körs virtuella maskiner/kontainrar/serverlösningar som implementerar tjÀnster.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Terminologi

I cykeln servern kommer jag att kalla programmet som implementerar serverdelen av klient-serverkommunikationen.

De fysiska maskinerna i skÄpen kallar vi servrar inte kommer vi att.

Den fysiska maskinen Àr en x86-dator som Àr installerad i ett skÄp. Den mest anvÀnda termen vÀrdkommer vi att kalla den "maskin" eller vÀrd.

Hypervisor — en applikation som körs pĂ„ den fysiska maskinen och emulerar de fysiska resurserna dĂ€r virtuella maskiner körs. I litteraturen och pĂ„ nĂ€tet anvĂ€nds ibland ordet "hypervisor" som en synonym till "vĂ€rd".

Virtuell maskin — ett operativsystem som körs pĂ„ den fysiska maskinen ovanför hypervisorn. För oss i ramen för denna cykel Ă€r det inte sĂ„ viktigt om det verkligen Ă€r en virtuell maskin eller bara en container. Vi kommer att kalla detta "VM«

Tenants Àr ett brett begrepp som jag i denna artikel definierar som en separat tjÀnst eller en separat kund.

Multitenans eller multihyra — anvĂ€ndning av samma applikation av olika kunder/tjĂ€nster. I detta fall uppnĂ„s isoleringen mellan kunderna genom applikationens arkitektur, inte genom separat körda instanser.

ToR — Top of the Rack-switch — en rackmonterad switch som alla fysiska maskiner Ă€r anslutna till.

Förutom ToR-topologin praktiserar olika leverantörer End of Row (EoR) eller Middle of Row (Àven om det senare Àr en sÀllsynthet och jag har inte stött pÄ akronymen MoR).

Underlay-nĂ€tverk eller underliggande nĂ€tverk — den fysiska nĂ€tverksinfrastrukturen: switches, routrar, kablar.

Overlay-nĂ€tverk eller översiktsnĂ€tverk — ett virtuellt nĂ€tverk av tunnlar som fungerar ovanpĂ„ den fysiska infrastrukturen.

L3-fabrik eller IP-fabrik — en fantastisk uppfinning som gör att man slipper repetera STP under intervjuer och inte behöver lĂ€ra sig TRILL. En koncept dĂ€r hela nĂ€tverket Ă€nda upp till accessnivĂ„n Ă€r uteslutande L3, utan VLAN och dĂ€rmed enorma, uttdragna broadcast-domĂ€ner. Vi kommer att utforska ursprunget till termen 'fabrik' i nĂ€sta del.

SDN — Software Defined Network. Knappast behöver nĂ„gon presentation. En metod för nĂ€tverksförvaltning dĂ€r förĂ€ndringar i nĂ€tverket görs av programvara snarare Ă€n mĂ€nsklig hand. Betyder vanligtvis att kontrollplanet placeras utanför de slutliga nĂ€tverksenheterna pĂ„ en controller.

NFV — Network Function Virtualization — virtualisering av nĂ€tverksenheter, vilket innebĂ€r att vissa nĂ€tverksfunktioner kan köras i form av virtuella maskiner eller containrar för att pĂ„skynda implementeringen av nya tjĂ€nster, organisera Service Chaining och förenkla horisontell skalbarhet.

VNF — Virtual Network Function. En specifik virtuell enhet: router, switch, brandvĂ€gg, NAT, IPS/IDS m.m.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Jag förenklar medvetet beskrivningen till en specifik implementation för att inte förvirra lÀsaren för mycket. För en mer djupgÄende lÀsning hÀnvisar jag till sektionen LÀnkar. Dessutom lovar Roma Gorge, som kritiserar denna artikel för felaktigheter, att skriva en separat utgÄva om virtualiseringsteknologier för servrar och nÀtverk med större fokus pÄ detaljer.

Majoriteten av dagens nÀtverk kan tydligt delas in i tvÄ delar:

Underlay — det fysiska nĂ€tverket med en stabil konfiguration.
Overlay — en abstraktion ovanför Underlay för att isolera tenants.

Detta gÀller bÄde för datacenter (som vi kommer att granska i denna artikel) och för ISP (som vi inte kommer att granska, eftersom det redan har behandlats i SDN). Med företagsnÀtverk Àr situationen givetvis nÄgot annorlunda.

Bild med fokus pÄ nÀtverket:

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Underlay

Underlay Àr ett fysiskt nÀtverk: hÄrdvaruswitchar och kablar. Enheter i underlayet vet hur de ska nÄ de fysiska maskinerna.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Det bygger pÄ standardprotokoll och teknologier. Inte minst eftersom hÄrdvaruenheterna fortfarande kör pÄ proprietÀr programvara, som inte tillÄter programmering av chip eller implementering av egna protokoll, vilket krÀver kompatibilitet med andra leverantörer och standardisering.

Men nÄgon som Google kan tillÄta sig att utveckla egna switchar och avstÄ frÄn allmÀnt accepterade protokoll. Men LAN_DC Àr inte Google.

Underlay Àndras relativt sÀllan, eftersom dess uppgift Àr att ge grundlÀggande IP-koppling mellan fysiska maskiner. Underlayet vet ingenting om de tjÀnster, kunder eller hyresgÀster som körs ovanpÄ det; det behöver bara leverera paket frÄn en maskin till en annan.
En Underlay kan se ut sÄ hÀr:

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

Underlay-nÀtverket konfigureras pÄ traditionellt sÀtt: CLI/GUI/NETCONF.

Manuellt, med skript, proprietÀra verktyg.

Mer om underlayen kommer att behandlas i nÀsta artikel i serien.

Overlay

Overlay Àr ett virtuellt nÀtverk av tunnlar som strÀcker sig över Underlay, och den gör det möjligt för VM:ar frÄn en kund att kommunicera med varandra samtidigt som den erbjuder isolering frÄn andra kunder.

Kundens data inkapslas i vissa tunneleringshuvuden för att skickas genom det gemensamma nÀtverket.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

SÄ VM:ar frÄn en kund (av en tjÀnst) kan kommunicera med varandra via Overlay, utan att veta vilken vÀg paketen faktiskt tar.

En Overlay kan se ut sÄ hÀr, som jag nÀmnde tidigare:

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

Overlay-nÀtverket konfigureras och underhÄlls vanligtvis via en central kontroller. Konfigurationen, Control Plane och Data Plane levereras till enheten som ansvarar för routning och inkapsling av kundtrafik. LÄt oss nedan titta nÀrmare pÄ detta med exempel.

Ja, det Àr SDN i sin renaste form.

Det finns tvÄ principiellt olika angreppssÀtt för att organisera ett Overlay-nÀtverk:

  1. Overlay frÄn ToR
  2. Overlay frÄn vÀrd

Overlay frÄn ToR

Overlay kan börja vid en accessswitch (ToR) som stÄr i ett rack, som det görs exempelvis i en VXLAN-fabrik.

Detta Àr en tidtestad mekanism i ISP-nÀt och alla leverantörer av nÀtverksutrustning stödjer det.

Men i det hÀr fallet mÄste ToR-switchar kunna separera olika tjÀnster, och nÀtverksadministratören mÄste i viss utstrÀckning samarbeta med administratörerna för virtuella maskiner och göra Àndringar (Àven automatiskt) i enhetens konfiguration.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

HÀr hÀnvisar jag lÀsaren till artikeln om VxLAN pÄ Habré vÄr gamla vÀn @bormoglotx.
I denna presentationen frÄn ENOG dÀr metoderna för att bygga ett datacenter-nÀt med en EVPN VXLAN-fabrik beskrivs i detalj.

För en mer djupgÄende förstÄelse kan man lÀsa Cisco-boken A Modern, Open, and Scalable Fabric: VXLAN EVPN.

Jag vill pÄpeka att VXLAN Àr endast en inkapsuleringsmetod och termineringen av tunnlar kan ske inte pÄ ToR utan pÄ vÀrden, som i fallet med OpenStack, till exempel.

Men en VXLAN-fabrik dÀr overlay börjar pÄ ToR Àr en av de etablerade designen för overlay-nÀtverk.

Overlay frÄn vÀrd

En annan metod Àr att börja och terminera tunnlar pÄ slutliga vÀrdar.
I sÄ fall förblir nÀtverket (Underlay) sÄ enkelt och statiskt som möjligt.
Och vÀrden gör sjÀlv alla nödvÀndiga inkapslingar.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

För detta krÀvs det sjÀlvklart att ett speciellt program körs pÄ vÀrdarna, men det Àr vÀrt det.

För det första Àr det enklare att köra klienten pÄ en Linux-maskin eller, ska vi sÀga, - överhuvudtaget möjligt - medan man förmodligen mÄste anvÀnda proprietÀra SDN-lösningar pÄ switchen, vilket motverkar idén om flera leverantörer.

För det andra kan ToR-switchar i det hÀr fallet förbli sÄ enkla som möjligt, bÄde nÀr det gÀller Control Plane och Data Plane. Faktum Àr att de dÄ inte behöver kommunicera med SDN-kontrolleraren och inte heller behöver lagra hela nÀtverk/ARP:er frÄn alla anslutna klienter - det rÀcker att veta IP-adressen för den fysiska maskinen, vilket kraftigt förenklar routingtabellerna.

I ADSMs serie vÀljer jag metoden av overlay frÄn vÀrden - hÀr kommer vi endast att prata om den och vi kommer inte att Äterkomma till VXLAN-fabriken.

Det Àr enklast att övervÀga med exempel. Och som försökskanin tar vi den OpenSource SDN-plattformen OpenContrail, nu kÀnd som Tungsten Fabric.

I slutet av artikeln kommer jag att ge nÄgra tankar om analogin med OpenFlow och OpenvSwitch.

Exempel med Tungsten Fabric

PĂ„ varje fysisk maskin finns det vRouter — en virtuell router som vet om de nĂ€tverk som Ă€r anslutna till den och vilka kunder de tillhör — i sjĂ€lva verket en PE-router. För varje kund upprĂ€tthĂ„ller den en isolerad routingtabell (lĂ€s VRF). Och sjĂ€lva vRouter hanterar overlay-tunnlar.

Lite mer information om vRouter — i slutet av artikeln.

Varje VM som Àr placerad pÄ hypervisorn ansluter till vRouter pÄ den maskinen genom TAP-grÀnssnittet.

TAP — Terminal Access Point — ett virtuellt grĂ€nssnitt i Linux-kĂ€rnan som möjliggör nĂ€tverksinteraktion.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Om det finns flera nĂ€tverk bakom vRouter, skapas ett virtuellt grĂ€nssnitt för varje nĂ€tverk, som tilldelas en IP-adress — det kommer att vara standardgateway-adressen.
Alla nĂ€tverk för en kund placeras i en VRF (en tabell), olika — i olika.
Jag kommer att pÄpeka hÀr att inte allt Àr sÄ enkelt, och jag skickar den nyfikna lÀsaren till slutet av artikeln..

För att vRouter ska kunna kommunicera med varandra, och dÀrmed VM:erna som finns bakom dem, utbyter de routinginformation via SDN-kontrollern.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

För att ta sig ut i den verkliga vĂ€rlden finns det en utgĂ„ngspunkt frĂ„n matrisen — en gateway för det virtuella nĂ€tverket. VNGW — Virtual Network GateWay (termen Ă€r min).

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Nu lĂ„t oss titta pĂ„ exempel pĂ„ kommunikationer — och dĂ„ blir det tydligt.

Kommunikation inom en fysisk maskin

VM0 vill skicka ett paket till VM2. Anta tills vidare att detta Àr VM för en och samma kund.

Data Plane

  1. VM-0 har en standardrutt till sitt grÀnssnitt eth0. Paketet skickas dit.
    Detta grÀnssnitt eth0 Àr faktiskt virtuell kopplat till den virtuella routern vRouter via TAP-grÀnssnittet tap0.
  2. vRouter analyserar pÄ vilket grÀnssnitt paketet kom, alltsÄ till vilken kund (VRF) det hör, och jÀmför mottagarens adress med routingtabellen för den kunden.
  3. NĂ€r den upptĂ€cker att mottagaren Ă€r pĂ„ samma maskin via en annan port, skickar vRouter helt enkelt paketet dit utan nĂ„gra ytterligare rubriker – för detta fall har vRouter redan en ARP-post.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Paketet hamnar i detta fall inte i det fysiska nĂ€tverket — det har routats inom vRouter.

Control Plane

Hypervisorn meddelar den virtuella maskinen vid start:

  • Den egna IP-adressen.
  • Standardrouten — via IP-adressen för vRouter i detta nĂ€tverk.

vRouter fÄr via en speciell API hypervisorn att meddela:

  • Att ett virtuellt grĂ€nssnitt mĂ„ste skapas.
  • Vilken Virtual Network som den (VM) behöver skapa.
  • Vilken VRF den (VN) ska kopplas till.
  • ARP-posten för denna VM anger vilken interface dess IP-adress Ă€r kopplad till och vilken MAC-adress den Ă€r kopplad till.

Återigen har den faktiska interaktionsproceduren förenklats för att underlĂ€tta förstĂ„elsen av konceptet.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

SÄ alla VMs frÄn en klient pÄ denna maskin ser vRouter som direkt anslutna nÀtverk och kan routa mellan dem sjÀlva.

Men VM0 och VM1 tillhör olika kunder och finns dÀrför i olika vRouter-tabeller.

Om de kan kommunicera direkt beror pÄ instÀllningarna för vRouter och nÀtverksdesignen.
Till exempel, om bÄda kundernas VMs anvÀnder offentliga adresser, eller NAT sker pÄ sjÀlva vRouter, kan direkt routing göras pÄ vRouter.

I motsatt fall kan adresseringsutrymmen korsa varandra – man mĂ„ste gĂ„ genom en NAT-server för att fĂ„ en offentlig adress – det liknar att gĂ„ ut till externa nĂ€tverk, som beskrivs nedan.

Kommunikation mellan VM:s belÀgna pÄ olika fysiska maskiner

Data Plane

  1. Det börjar exakt likadant: VM-0 skickar ett paket till adressaten VM-7 (172.17.3.2) via sin standard.
  2. vRouter tar emot det och ser denna gÄng att adressaten Àr pÄ en annan maskin och Àr tillgÀnglig via Tunnel Tunnel0.
  3. Först lÀgger den till ett MPLS-mÀrke som identifierar den avlÀgsna interfacet, sÄ att vRouter kan avgöra vart detta paket ska plats utan ytterligare ÄtgÀrder.

    Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

  4. För Tunnel0 Àr kÀllan 10.0.0.2, mottagaren: 10.0.1.2.
    vRouter lÀgger till GRE (eller UDP) rubriker och en ny IP till det ursprungliga paketet.
  5. I vRouter routing-tabellen finns det en standardrutt via adress ToR1 10.0.0.1. Dit skickar det.

    Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

  6. ToR1 som en del av Underlay-nÀtverket vet (till exempel via OSPF) hur man nÄr 10.0.1.2, och skickar paketet via rutten. Observera att ECMP inkluderas hÀr. PÄ illustrationen finns det tvÄ next-hop, och olika flöden kommer att distribueras i dem baserat pÄ hash. I en verklig fabrik skulle det snarare vara 4 next-hop.

    Vid detta tillfÀlle behöver det inte veta vad som finns under den externa IP-rubriken. SÄledes kan ett paket under IP praktiskt taget vara ett lager av IPv6 över MPLS över Ethernet över MPLS över GRE över över över GRE.

  7. DÀrför tar vRouter pÄ mottagarsidan bort GRE och förstÄr genom MPLS-mÀrket vilken interface detta paket ska överföras till, tar isÀr det och skickar det i sitt ursprungliga skick till mottagaren.

Control Plane

NĂ€r en maskin startar sker allt som beskrivits tidigare.

Och dessutom det följande:

  • För varje kund tilldelar vRouter en MPLS-tagg. Detta Ă€r en tjĂ€nstetagg för L3VPN som kunderna kommer att separeras efter inom en och samma fysiska maskin.

    I sjÀlva verket tilldelas MPLS-taggen alltid av vRouter, eftersom det inte Àr kÀnt i förvÀg att maskinen bara kommer att interagera med andra maskiner bakom samma vRouter, och det Àr troligtvis inte ens sÄ.

  • vRouter upprĂ€ttar en anslutning till SDN-kontrollern via BGP-protokollet (eller nĂ„got liknande — i fallet TF Ă€r det XMPP 0_o).
  • Genom denna session informerar vRouter SDN-kontrollern om vĂ€garna till de anslutna nĂ€ten:
    • NĂ€tverksadress
    • Inkapseringsmetod (MPLSoGRE, MPLSoUDP, VXLAN)
    • Kundens MPLS-tagg
    • Sin egen IP-adress som next hop

  • SDN-kontrollern fĂ„r sĂ„dana vĂ€gar frĂ„n alla anslutna vRouter och speglar dem till andra. Det fungerar alltsĂ„ som en Route Reflector.

Samma sak sker i motsatt riktning.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Overlay kan Àndras vilken minut som helst. SÄ hÀr gÄr det till i offentliga moln, nÀr kunder regelbundet startar och stoppar sina virtuella maskiner.

Den centrala kontrollern tar hand om all komplexitet kring att upprÀtthÄlla konfigurationen och kontrollen av switching/routing-tabeller pÄ vRouter.

För att tala krasst, sÄ kopplas controllern samman med alla vRouter via BGP (eller ett liknande protokoll) och helt enkelt vidarebefordrar routinginformation. BGP har till exempel redan en Address-Family för att överföra inkapslingsmetoden MPLS-in-GRE eller MPLS-in-UDP.

Samtidigt Àndras under inget omstÀndighet konfigurationen av Underlay-nÀtverket, vilket för övrigt Àr mycket svÄrare att automatisera, men enklare att bryta med en klumpig handling.

UtgÄng till den yttre vÀrlden

NÄgonstans mÄste simuleringen ta slut, och man mÄste gÄ frÄn den virtuella vÀrlden till den verkliga. Och dÄ behövs en gateway-taxa.

TvÄ tillvÀgagÄngssÀtt anvÀnds:

  1. En hÄrdvarurouter installeras.
  2. En typ av appliance startas som utför routerfunktioner (ja, efter SDN möter vi Àven VNF). LÄt oss kalla det en virtuell gateway.

Fördelen med det andra tillvĂ€gagĂ„ngssĂ€ttet Ă€r den billiga horisontella skalbarheten — om man inte har tillrĂ€ckligt med kapacitet — startade man ytterligare en virtuell maskin med en gateway. PĂ„ vilken fysisk maskin som helst, utan behov av att leta efter lediga rack, enheter, strömuttag, köpa sjĂ€lva hĂ„rdvaran, transportera den, installera den, koppla upp den, konfigurera den, och sedan Ă€ven byta ut trasiga komponenter.

Nackdelarna med en virtuell gateway Àr att en fysisk router Àr avsevÀrt mer kraftfull Àn en flertrÄdig virtuell maskin, och dess mjukvara, som Àr anpassad till sin hÄrdvarubas, fungerar betydligt stabilare (nej). Det Àr ocksÄ svÄrt att förneka att det programvaru-hÄrdvarukomplexet bara fungerar, vilket krÀver endast konfiguration, medan start och underhÄll av en virtuell gateway Àr en uppgift för skickliga ingenjörer.

Med en fot ser gatewayen in i det virtuella Overlay-nÀtverket, som en vanlig virtuell maskin, och kan interagera med alla andra VM. Samtidigt kan den terminera nÀtverk för alla kunder och dÀrmed utföra routing mellan dem.

Med den andra foten blickar gatewayen mot det anslutna nÀtverket och vet hur den ska nÄ internet.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Data Plane

Processen ser alltsÄ ut sÄ hÀr:

  1. VM-0, som har standarden i samma vRouter, skickar ett paket med adressaten i den externa vÀrlden (185.147.83.177) till grÀnssnittet eth0.
  2. vRouter tar emot detta paket och gör en look-up pĂ„ destinationsadressen i routingtabeln — den hittar standardrutt genom gateway VNGW1 via Tunnel 1.
    Den ser ocksÄ att detta Àr en GRE-tunnel med SIP 10.0.0.2 och DIP 10.0.255.2, och att den först mÄste tilldela MPLS-mÀrket för denna kund, vilket VNGW1 förvÀntar sig.
  3. vRouter packar det ursprungliga paketet med MPLS, GRE och ny IP-header och skickar det till adressen ToR1 10.0.0.1 som standard.
  4. Underliggande nÀtverk levererar paketet till gateway VNGW1.
  5. Gateway VNGW1 tar bort tunnelinghuvuden GRE och MPLS, ser destinationsadressen, konsulterar sin routingtabel och inser att den Ă€r riktad mot internet — vilket innebĂ€r genom Full View eller Default. Vid behov utför den NAT-översĂ€ttning.
  6. FrÄn VNGW kan det finnas ett vanligt IP-nÀt, vilket Àr osannolikt.
    Det kan finnas ett klassiskt MPLS-nÀt (IGP+LDP/Rsvp TE), det kan ocksÄ vara en Äterkoppling frÄn BGP LU eller en GRE-tunnel frÄn VNGW till grÀnsen genom IP-nÀtverket.
    Hur som helst utför VNGW1 nödvÀndiga inkapslingar och skickar det ursprungliga paketet mot grÀnsen.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Trafiken i den motsatta riktningen gÄr igenom samma steg i omvÀnd ordning.

  1. GrÀnsens router levererar paketet till VNGW1.
  2. Den tar bort inkapslingen, ser pÄ mottagaradressen och ser att den Àr tillgÀnglig via tunneln Tunnel1 (MPLSoGRE eller MPLSoUDP).
  3. DÀrför fÀster den en MPLS-mÀrkning, GRE/UDP-header och ny IP och skickar den till sin ToR3 10.0.255.1.
    MĂ„ldestinationen för tunneln Ă€r IP-adressen till vRouter’n som har den mĂ„l-VM:n — 10.0.0.2.
  4. Underliggande nĂ€tverket levererar paketet till den nödvĂ€ndiga vRouter’n.
  5. MĂ„l-vRouter’n tar bort GRE/UDP, identifierar grĂ€nssnittet efter MPLS-mĂ€rket och skickar det rĂ„ IP-paketet till sitt TAP-grĂ€nssnitt som Ă€r kopplat till eth0-VM:n.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

Control Plane

VNGW1 etablerar BGP-nÀtsgrannskap med SDN-kontrollern, frÄn vilken den fÄr all ruttinformation om kunder: vilken IP-adress (vRouter) en kund befinner sig bakom och vilket MPLS-mÀrke den identifieras med.

PĂ„ liknande sĂ€tt rapporterar den sjĂ€lv till SDN-kontrollern den standardrutt med mĂ€rkning för den kunden och anger sig sjĂ€lv som nexthop. Sedan nĂ„r denna standard till vRouter’na.

PÄ VNGW brukar aggregationen av rutter eller NAT-översÀttning ske.

Och Ät andra hÄllet, i sessionen med grÀnssnitt eller Route Reflectorer, skickar den just denna aggregerade rutt. FrÄn dem fÄr den antingen en standardrutt eller Full-View, eller nÄgot annat.

NÀr det gÀller inkapsling och trafiköverföring skiljer sig VNGW inte frÄn vRouter.
Om man vidgar omrĂ„det nĂ„got, kan man lĂ€gga till andra nĂ€tverksenheter till VNGW och vRouter’na, sĂ„som brandvĂ€ggar, trafikrensnings- eller berikningsfjĂ€drar, IPS, och sĂ„ vidare.

Och genom sekventiellt skapande av VRF och korrekt annonsering av rutter kan man fÄ trafiken att loopa precis som man vill, vilket kallas Service Chaining.

Det vill sĂ€ga, hĂ€r agerar SDN-kontrollern som Route-Reflector mellan VNGW, vRouter’na och andra nĂ€tverksenheter.

Men i praktiken ger kontrollern ocksÄ information om ACL och PBR (Policy Based Routing), vilket gör att specifika trafikflöden följer andra vÀgar Àn vad rutten föreskriver.

Automatisering för de minsta. Del ett (som kommer efter noll). Virtualisering av nÀtverk

FAQ

Varför kommenterar du alltid GRE/UDP?

Egentligen Ă€r detta specifikt för Tungsten Fabric — man kan helt ignorera det.

Men om man tar hÀnsyn till det, sÄ stödde TF, nÀr den fortfarande var OpenContrail, bÄda inkapslingarna: MPLS in GRE och MPLS in UDP.

UDP Àr bra eftersom det i Source Port i dess header mycket enkelt kan koda en hash-funktion frÄn ursprungliga IP+Proto+Port, vilket möjliggör lastbalansering.

TyvĂ€rr, i fallet med GRE finns det bara externa IP- och GRE-headerar som Ă€r desamma för hela den inkapslade trafiken, och det talas inte om lastbalansering — fĂ„ kan se sĂ„ djupt in i paketet.

Tidigare var routrar, om de kunde hantera dynamiska tunnlar, bara begrÀnsade till MPLSoGRE, och har nyligen lÀrt sig MPLSoUDP. DÀrför mÄste vi alltid nÀmna möjligheten till tvÄ olika inkapslingar.

För rÀttvisans skull bör det nÀmnas att TF faktiskt ocksÄ stödjer L2-koppling med hjÀlp av VXLAN.

Du lovade att dra paralleller med OpenFlow.
Verkligen, det Àr lÀtt att se. vSwitch i samma OpenStack gör mycket liknande saker, med VXLAN, som förresten ocksÄ har UDP-huvud.

I Data Plane fungerar de ungefÀr likadant, medan Control Plane skiljer sig Ät. Tungsten Fabric anvÀnder XMPP för att skicka ruttinformation till vRouter, medan OpenStack arbetar med Openflow.

Kan vi fÄ veta lite mer om vRouter?
Det delas upp i tvÄ delar: vRouter Agent och vRouter Forwarder.

Den första körs i User Space av vÀrdoperativsystemet och kommunicerar med SDN-kontrollern genom att utbyta information om rutter, VRF och ACL.

Den andra implementerar Data Plane — vanligtvis i Kernel Space, men kan ocksĂ„ köras pĂ„ SmartNIC:er — nĂ€tverkskort med CPU och en separat programmerbar switch-chips, vilket gör att CPU-belastningen pĂ„ vĂ€rdmaskinen minskar och nĂ€tverket blir snabbare och mer förutsĂ€gbart.

Det finns ocksÄ ett scenario dÀr vRouter Àr en DPDK-applikation i User Space.

vRouter Agent skickar instÀllningarna till vRouter Forwarder.

Vad Àr ett Virtual Network?
Jag nÀmnde i början av artikeln om VRF, att varje tenant kopplas till sin egen VRF. Och om detta var tillrÀckligt för en grundlÀggande förstÄelse av hur overlay-nÀtverket fungerar, sÄ behövs det förtydliganden vid nÀsta iteration.

Vanligtvis i virtualiseringsmekanismer introduceras enhetens Virtual Network (det kan betraktas som ett egennamn) separat frĂ„n kunder/tenanter/virtuella maskiner — en helt sjĂ€lvstĂ€ndig enhet. Detta Virtual Network kan sedan kopplas via grĂ€nssnitt till en tenant, en annan, tvĂ„ eller till och med flera, precis som en Service Chaining genom att trafiken behöver passera genom specifika noder i rĂ€tt följd, genom att skapa och koppla Virtual Networks i rĂ€tt ordning.

DÀrför finns det ingen direkt motsvarighet mellan Virtual Network och en tenant.

Slutsats

Detta Àr en ganska ytlig beskrivning av hur ett virtuellt nÀtverk fungerar med overlay frÄn en vÀrd och SDN-kontroller. Men oavsett vilken virtualiseringsplattform du vÀljer idag, kommer den att fungera pÄ ett liknande sÀtt, oavsett om det Àr VMWare, ACI, OpenStack, CloudStack, Tungsten Fabric eller Juniper Contrail. De kommer att skilja sig Ät i typerna av inkapslingar och rubriker, protokoll för att leverera information till slutliga nÀtverksenheter, men principen för ett programvarukonfigurerat overlay-nÀtverk som arbetar ovanpÄ ett relativt enkelt och statiskt underliggande nÀtverk förblir densamma.
Man kan sÀga att omrÄdena för att skapa privata moln idag har SDN baserat pÄ overlay-nÀtverk vunnit. Men detta innebÀr inte att OpenFlow inte har en plats i den moderna vÀrlden - det anvÀnds i OpenStack och i samma VMWare NSX, och sÄvitt jag vet anvÀnds det av Google för att konfigurera det underliggande nÀtverket.

Lite lÀngre ner har jag lagt lÀnkar till mer detaljerat material, om du vill fördjupa dig i Àmnet.

Och vad hÀnder med vÄrt Underlay?

I stort sett ingenting. Det har inte förÀndrats hela tiden. Allt det behöver göra i fallet med overlay frÄn en vÀrd Àr att uppdatera rutter och ARP:er i takt med att vRouter/VNGW dyker upp och försvinner och transportera paket mellan dem.

LÄt oss formulera en lista över krav pÄ Underlay-nÀtverket.

  1. Bör kunna hantera nÄgot routingprotokoll, i vÄr situation - BGP.
  2. Ha hög bandbredd, helst utan överbelastning, sÄ att paket inte gÄr förlorade pÄ grund av överbelastning.
  3. Stödja ECMP - en oundgÀnglig del av fabriken.
  4. Kunna sÀkerstÀlla QoS, inklusive invecklade funktioner som ECN.
  5. Stödja NETCONF - en förberedelse för framtiden.

Jag har Àgnat mycket lite tid Ät hur Underlay-nÀtverket fungerar hÀr. Det beror pÄ att jag senare i serien faktiskt kommer att fokusera pÄ det, medan Overlay kommer att beröras endast i förbigÄende.

Uppenbarligen begrÀnsar jag oss alla genom att anvÀnda ett datacenter-nÀtverk byggt pÄ Clos-fabriken med ren IP-routing och overlay frÄn vÀrden som exempel.

Men jag Àr sÀker pÄ att vilket nÀtverk som helst med en design kan beskrivas i formella termer och automatiseras. Bara att jag hÀr strÀvar efter att förstÄ metoder för automatisering, snarare Àn att förvirra alla genom att lösa problemet i allmÀnna termer.

Inom ramen för ADSM planerar jag och Roman Gorge att publicera ett separat avsnitt om virtualisering av datorkraft och dess samverkan med nÀtverksvirtualisering. HÄll er uppkopplade.

Nyttiga lÀnkar

Tack

  • Roman Gorge — den tidigare programledaren för podcasten linkmeup, och nu expert inom molnplattformar. Tack för kommentarer och redigeringar. Vi ser fram emot hans djupgĂ„ende artikel om virtualisering inom en snar framtid.
  • Alexander Shalimov — min kollega och expert inom utveckling av virtuella nĂ€tverk. Tack för kommentarer och redigeringar.
  • Valentin Sinitsyn — min kollega och expert inom Tungsten Fabric. Tack för kommentarer och redigeringar.
  • Artyom Chernobay — illustratör för linkmeup. Tack för produktionsstödet.
  • Alexander Limonov. Tack för memes "automato".

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster