Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

I de tvÄ första artiklarna tog jag upp frÄgan om automatisering och skissade dess ramverk, i den andra gjorde jag en avstickare till nÀtverksvirtualisering som ett första tillvÀgagÄngssÀtt för att automatisera instÀllningen av tjÀnster.
Nu Àr det dags att rita upp schemat för det fysiska nÀtverket.

Om du inte Àr vÀl insatt i datacenter-nÀtverksutrustning rekommenderar jag starkt att börja med artikeln om dem.

Alla avsnitt:

De metoder som beskrivs i denna serie bör kunna tillÀmpas pÄ nÀtverk av alla typer, storlekar och med ett brett utbud av leverantörer. Men det gÄr inte att beskriva ett universellt exempel pÄ hur dessa metoder kan tillÀmpas. DÀrför kommer jag att fokusera pÄ den moderna nÀtverksarkitekturen för datacenter: Clos-fabriken.
För DCI anvÀnder vi MPLS L3VPN.

OvanpÄ det fysiska nÀtverket arbetar ett overlay-nÀtverk frÄn vÀrden (det kan vara VXLAN frÄn OpenStack eller Tungsten Fabric eller vad som helst annat som krÀver att nÀtverket bara har grundlÀggande IP-koppling).

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

I det hÀr fallet kommer vi att fÄ ett relativt enkelt scenarium för automatisering, eftersom vi har mycket utrustning som konfigureras pÄ samma sÀtt.

Vi vÀljer en sfÀrisk datacenter i vakuum:

  • En designversion överallt.
  • TvĂ„ leverantörer som bildar tvĂ„ nĂ€tverksplan.
  • Ett datacenter liknar ett annat som tvĂ„ droppar vatten.

InnehÄll

  • Fysisk topologi
  • Routning
  • IP-plan
  • Lab
  • Slutsats
  • Nyttiga lĂ€nkar

LÄt vÄr Service Provider LAN_DC till exempel vara vÀrd för utbildningsvideor om överlevnad i fastnat hissar.

I storstÀder Àr detta otroligt populÀrt, sÄ det behövs mÄnga fysiska maskiner.

Först kommer jag att beskriva nÀtverket ungefÀr som jag skulle vilja se det. Sedan kommer jag att förenkla det för labben.

Fysisk topologi

Platser

LAN_DC kommer att ha 6 datacenter:

  • Ryssland (RU):
    • Moskva (msk)
    • Kazan (kzn)

  • Spanien (SP):
    • Barcelona (bcn)
    • Malaga (mlg)

  • Kina (CN):
    • Shanghai (sha)
    • Xi'an (sia)

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

Intra-DC

I alla datacenter finns identiska interna nÀtverk baserade pÄ Clos-topologin.
Vad Ă€r Clos-nĂ€tverk och varför Ă€r det just de — i en separat artikeln.

I varje datacenter finns 10 rack med maskiner, de kommer att numreras som A, B, C Och sÄ vidare.

I varje rack finns 30 maskiner. De kommer vi inte att intressera oss för.

Det finns ocksĂ„ en switch i varje rack som alla maskiner Ă€r anslutna till — detta Ă€r Top of the Rack switch — ToR eller i Clos-fabriks termer kallar vi det Leaf.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign
AllmÀn schema för fabriken.

Vi kommer att kalla dem XXX-leafY, dĂ€r XXX — tre-bokstavlig förkortning av DC, och Y — ordningsnummer. Till exempel, kzn-leaf11.

I artiklarna kommer jag att tillÄta mig att ganska fritt anvÀnda termerna Leaf och ToR som synonymer. Men det Àr viktigt att komma ihÄg att det inte Àr riktigt sÄ.
ToR Àr en switch som Àr installerad i en rack, till vilken maskiner kopplas.
Leaf Àr en roll för enhet i det fysiska nÀtverket eller en första nivÄ switch i termer av Clos-topologi.
Det vill sÀga Leaf != ToR.
SĂ„ en Leaf kan vara en EndofRaw-switch, till exempel.
Men i den hÀr artikeln kommer vi ÀndÄ att referera till dem som synonymer.

Varje ToR-switch Ă€r i sin tur kopplad till fyra övergripande aggregerande switchar — Spine. En rack har avsatts för Spine. Vi kommer att namnge dem pĂ„ samma sĂ€tt: XXX-spineY.

I samma rack kommer det att stĂ„ nĂ€tverksutrustning för anslutning mellan DC — 2 routrar med MPLS an Bord. Men i stort sett Ă€r det samma ToR:er. Det innebĂ€r att ur Spine-switcharnas perspektiv spelar det ingen roll om det Ă€r en vanlig ToR med anslutna maskiner eller en router för DCI — det Ă€r fortfarande samma sak att vidarebefordra.

Dessa speciella ToR:er kallas Edge-leaf. Vi kommer att namnge dem XXX-edgeY.

Detta kommer att se ut sÄ hÀr.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

I diagrammet ovan har jag faktiskt placerat edge och leaf pĂ„ samma nivĂ„. Klassiska tre-nivĂ„ nĂ€tverk har lĂ€rt oss att se uplink (dĂ€rifrĂ„n kommer termen), som lĂ€nkar uppĂ„t. Men hĂ€r gĂ„r "uplink" DCI tillbaka nedĂ„t, vilket bryter mot den förvĂ€ntade logiken nĂ„got. I stora nĂ€tverk, nĂ€r datacenter delas in i Ă€nnu mindre enheter — POD‘er (Point Of Delivery), avsĂ€tter man separata Edge-POD‘er för DCI och utgĂ„ng mot externa nĂ€tverk.

För att underlÀtta förstÄelsen framöver kommer jag ÀndÄ att rita Edge ovanför Spine, samtidigt som vi kommer att hÄlla i Ätanke att det inte finns nÄgot intellekt i Spine och inga skillnader i arbetet med vanliga Leaf och Edge-leaf (Àven om det kan finnas nyanser, men i stort sett Àr det sÄ).

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign
Diagrammet för fabriken med Edge-leaf.

Trion Leaf, Spine och Edge bildar Underlay-nÀtverket eller fabriken.

Uppgiften för nĂ€tverksfabriken (lĂ€s Underlay), som vi redan har faststĂ€llt i den tidigare utgĂ„van, Ă€r mycket enkel — att sĂ€kerstĂ€lla IP-kontinuitet mellan maskiner bĂ„de inom en och samma DC, och mellan dem.
DÀrför kallas nÀtverket en fabrik, pÄ samma sÀtt som till exempel en vÀxelfabrik inuti modulÀra nÀtverkslÄdor, om vilket man kan lÀsa mer i SDM14.

Överlag kallas en sĂ„dan topologi för en fabrik, eftersom fabric pĂ„ svenska betyder tyg. Och det Ă€r svĂ„rt att inte hĂ„lla med:
Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

Fabriken Ă€r helt L3. Inga VLAN, inga Broadcast — sĂ„ hĂ€r bra programmerare har vi i LAN_DC, de kan skriva applikationer som lever i L3-paradigmet, och virtuella maskiner krĂ€ver ingen Live Migration med bibehĂ„llet IP-nummer.

Och en gÄng till: svaret pÄ frÄgan varför fabrik och varför L3 finns i en separat artikeln.

DCI — Data Center Interconnect (Inter-DC)

DCI kommer att organiseras med Edge-Leaf, det vill sÀga de Àr vÄr punkt för utgÄng till ryggraden.
För enkelhets skull antar vi att DC:erna Àr kopplade till varandra med direkta lÀnkar.
Vi utesluter extern koppling frÄn övervÀgandet.

Jag Àr medveten om att varje gÄng jag tar bort nÄgon komponent sÄ förenklar jag nÀtverket avsevÀrt. Och vid automatisering av vÄrt abstrakta nÀtverk kommer allt att fungera bra, medan pÄ det verkliga kommer det att uppstÄ knutar.
Det Ă€r sant. ÄndĂ„ Ă€r mĂ„let med denna serie att tĂ€nka och arbeta med tillvĂ€gagĂ„ngssĂ€tten, inte att hjĂ€ltedĂ„digt lösa pĂ„hittade problem.

PÄ Edge-Leaf:arna placeras underlaget i VPN och överförs via MPLS-ryggraden (den direkta lÀnken).

SÄ hÀr ser en övergripande schem ut.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

Routning

För routing inuti DC:n kommer vi att anvÀnda BGP.
PĂ„ MPLS-ryggraden OSPF+LDP.
För DCI, det vill sĂ€ga organisering av kopplingar i underlaget — BGP L3VPN över MPLS.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign
Övergripande routing-schema

I fabriken finns det inga OSPF och ISIS (en routingprotokoll som Àr förbjudet i Ryska federationen).

Det betyder att det inte kommer att finnas nĂ„gon Auto-discovery och berĂ€kning av kortaste vĂ€gar — endast manuell (egentligen automatisk — vi pratar ju om automatisering hĂ€r) konfiguration av protokollet, grannar och policyer.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign
BGP-routing-schema inuti DC:n

Varför BGP?

Det finns en hel del litteratur om detta Àmne en hel RFC frÄn Facebook och Arista, som förklarar hur man bygger mycket stora data center-nÀtverk med hjÀlp av BGP. Den lÀses nÀstan som en skönlitterÀr bok, jag rekommenderar den verkligen för en lugn kvÀll.

Det finns ocksÄ en hel sektion i min artikel som handlar om detta. Dit hÀnvisar jag er till..

Men om man kortfattat sÀger, sÄ passar inga IGP för stora datacenter-nÀtverk dÀr antalet nÀtverksenheter rÀknas i tusental.

Dessutom kommer att anvÀnda BGP överallt att förhindra spridning bland stödet för flera olika protokoll och synkronisering mellan dem.

Om vi lÀgger handen pÄ hjÀrtat, pÄ vÄr fabrik, som troligen inte kommer att vÀxa snabbt, skulle det rÀcka med OSPF. Det Àr faktiskt problem för megaskalÀrer och molngiganter. Men lÄt oss fantisera bara i nÄgra utgÄvor om att vi behöver detta, och anvÀnda BGP, som Pjotr Lapuchov en gÄng föreslog.

Routingpolicy

PÄ Leaf-switchar importerar vi BGP-prefix frÄn underliggande interface med nÀtverken.
Vi kommer att ha en BGP-session mellan varje par av Leaf-Spine, dÀr dessa underliggande prefix kommer att annonseras genom nÀtverket kors och tvÀrs.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

Inom en datacenter kommer vi att sprida specifikationerna som vi har importerat till ToR:erna. PÄ Edge-Leaf:arna kommer vi att aggregera dem och annonsera till avlÀgsna datacenter och skicka ner till ToR:erna. Det vill sÀga varje ToR kommer att veta exakt hur man nÄr en annan ToR i samma datacenter och var ingÄngspunkten Àr för att nÄ ToR:en i ett annat datacenter.

I DCI kommer rutter att överföras som VPNv4. För detta kommer Edge-Leaf-interfacet mot fabriken att placeras i en VRF, lÄt oss kalla det UNDERLAY, och grannskapet med Spine pÄ Edge-Leaf kommer att upprÀttas inom VRF, medan Edge-Leaf:arna kommer att anvÀnda VPNv4-family.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

Dessutom kommer vi att förbjuda att Äterannonsera rutter som mottagits frÄn spine tillbaka till dem.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

PÄ Leaf och Spine kommer vi inte att importera Loopbacks. De kommer endast att behövas för att bestÀmma Router ID.

Men pÄ Edge-Leaf:arna kommer vi att importera dem i Global BGP. Mellan Loopback-adresserna kommer Edge-Leaf:arna att upprÀtta en BGP-session i IPv4 VPN-family med varandra.

Mellan EDGE-enheterna kommer vi att ha en strÀckt ryggrad med OSPF+LDP. Allt i en zon. En extremt enkel konfiguration.

SÄ hÀr ser bilden ut med routing.

BGP ASN

Edge-Leaf ASN

PÄ Edge-Leaf:arna kommer det att finnas en ASN i alla datacenter. Detta Àr viktigt för att det ska finnas iBGP mellan Edge-Leaf:arna, sÄ att vi inte stöter pÄ nyanser i eBGP. LÄt oss sÀga att detta Àr 65535. I verkligheten skulle det kunna vara numret pÄ en offentlig AS.

Spine ASN

PĂ„ Spine kommer vi att ha en ASN per datacenter. Vi börjar hĂ€r med det allra första numret i intervallet för privata AS — 64512, 64513 och sĂ„ vidare.

Varför ASN per datacenter?

Vi bryter ner denna frÄga i tvÄ:

  • Varför samma ASN pĂ„ alla spines i ett datacenter?
  • Varför olika i olika datacenter?

Varför samma ASN pÄ alla spines i ett datacenter

SÄ hÀr kommer AS-Path för det underliggande routet att se ut pÄ Edge-Leaf:
[leafX_ASN, spine_ASN, edge_ASN]
Vid försök att Äterannonsera det tillbaka till Spine kommer det att avvisas eftersom dess AS (Spine_AS) redan finns i listan.

Men inom datacentret Àr vi helt okej med att Underlay-rutter som har nÄtt Edge inte kan gÄ ner igen. All kommunikation mellan vÀrdarna i datacentret mÄste ske pÄ spinnutvecklingsnivÄ.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

Samtidigt kommer aggregerade rutter frÄn andra datacenter oavsett att nÄ Tor utan hinder - deras AS-vÀg kommer endast att innehÄlla ASN 65535 - numret för Edge-Leafs, eftersom det Àr pÄ dem de skapades.

Varför olika i olika datacenter

Teoretiskt kan vi behöva dra Loopback-adresser för nÄgra tjÀnstemaskiner mellan datacentren.

Till exempel kan en Route Reflector starta pÄ vÀrden, eller den dÀr VNGW (Virtual Network Gateway), som via BGP kopplar till Tor och annonserar sin loopback, vilken bör vara tillgÀnglig frÄn alla datacenter.

SÄ hÀr kommer dess AS-vÀg att se ut:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]

Och hÀr fÄr det inte finnas nÄgra upprepande ASN.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

Det vill sÀga, Spine_DC1 och Spine_DC2 mÄste vara olika, precis som leafX_DC1 och leafY_DC2, vilket vi Àr pÄ vÀg mot.

Som ni kanske vet finns det hacks som tillÄter mottagande av rutter med upprepande ASN trots mekanismerna för att förhindra loopar (allowas-in pÄ Cisco). Och detta har till och med legitima tillÀmpningar. Men det Àr ett potentiellt hÄl i nÀtverkets stabilitet. Jag har personligen ramlat ner i det ett par gÄnger.

Och om vi har möjlighet att inte anvÀnda farliga saker, kommer vi att utnyttja den.

Leaf ASN

Vi kommer att ha en individuell ASN pÄ varje Leaf-switch inom hela nÀtverket.
Vi gör sÄ hÀr av skÀl som nÀmnts ovan: AS-vÀg utan loopar, BGP-konfiguration utan bakdörrar.

För att rutterna mellan Leafarna ska passera utan hinder mÄste AS-vÀgen se ut sÄ hÀr:
[leafX_ASN, spine_ASN, leafY_ASN]
dÀr leafX_ASN och leafY_ASN bör vara olika.

Detta behövs ocksÄ för situationen med annonsering av loopback för VNF mellan datacentren:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]

Vi kommer att anvÀnda 4-byte ASN och generera det baserat pÄ Spine ASN och numret pÄ Leaf-switchen, nÀmligen sÄ hÀr: Spine_ASN.0000X.

SÄ hÀr ser bilden ut för ASN.
Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

IP-plan

GrunlÀggande behöver vi tilldela adresser för följande kopplingar:

  1. Underlay-nÀtverksadresser mellan Tor och maskinen. De mÄste vara unika inom hela nÀtverket sÄ att varje maskin kan nÄ vilken annan som helst. Passar utmÀrkt 10/8. En /26 per rack med marginal. Vi kommer att tilldela /19 för datacentret och /17 för regionen.
  2. LĂ€nkadresser mellan Leaf/Tor och Spine.

    De skulle gÀrna tilldelas algoritmiskt, det vill sÀga berÀknas utifrÄn namnen pÄ enheterna som behöver kopplas till.

    LÄt oss sÀga att det blir
 169.254.0.0/16.
    Det vill sĂ€ga 169.254.00X.Y/31, dĂ€r X — Spine-nummer, Y — P2P-nĂ€t /31.
    Detta möjliggör att köra upp till 128 ramar och upp till 10 Spine i datacentret. LÀnknamn kan (och kommer) att upprepas frÄn datacenter till datacenter.

  3. Vi organiserar sammankopplingen Spine — Edge-Leaf pĂ„ delnĂ€t 169.254.10X.Y/31, dĂ€r det precis likadant X — Spine-nummer, Y — P2P-nĂ€t /31.
  4. LĂ€nknamn frĂ„n Edge-Leaf till MPLS-huvudledning. HĂ€r Ă€r situationen nĂ„got annorlunda — platsen dĂ€r alla bitar kopplas ihop till en enhet, sĂ„ man kan inte Ă„teranvĂ€nda samma adresser — man mĂ„ste vĂ€lja nĂ€sta lediga delnĂ€t. DĂ€rför utgĂ„r vi frĂ„n 192.168.0.0/16 och tar bort de fria.
  5. Loopback-adresser. Vi avsÀtter hela intervallet för dem 172.16.0.0/12.
    • Leaf — per /25 i datacentret — samma 128 ramar. Vi avsĂ€tter per /23 för regionen.
    • Spine — per /28 i datacentret — upp till 16 Spine. Vi avsĂ€tter per /26 för regionen.
    • Edge-Leaf — per /29 i datacentret — upp till 8 enheter. Vi avsĂ€tter per /27 för regionen.

Om vi inte fĂ„r tillrĂ€ckligt med tilldelade intervall i datacentret (vilket vi inte kommer att fĂ„ — vi strĂ€var ju efter hyperskalighet), helt enkelt avsĂ€tt nĂ€sta block.

SÄ hÀr ser IP-adresseringen ut.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

Loopbackar:

Prefix
Enhetens roll
Region
Datacenter

172.16.0.0/23
edge
 
 

172.16.0.0/27
sv
 

172.16.0.0/29
msk

172.16.0.8/29
kzn

172.16.0.32/27
sp
 

172.16.0.32/29
bcn

172.16.0.40/29
mlg

172.16.0.64/27
cn
 

172.16.0.64/29
sha

172.16.0.72/29
sia

172.16.2.0/23
spine
 
 

172.16.2.0/26
sv
 

172.16.2.0/28
msk

172.16.2.16/28
kzn

172.16.2.64/26
sp
 

172.16.2.64/28
bcn

172.16.2.80/28
mlg

172.16.2.128/26
cn
 

172.16.2.128/28
sha

172.16.2.144/28
sia

172.16.8.0/21
leaf
 
 

172.16.8.0/23
sv
 

172.16.8.0/25
msk

172.16.8.128/25
kzn

172.16.10.0/23
sp
 

172.16.10.0/25
bcn

172.16.10.128/25
mlg

172.16.12.0/23
cn
 

172.16.12.0/25
sha

172.16.12.128/25
sia

Underlay:

Prefix
Region
Datacenter

10.0.0.0/17
sv
 

10.0.0.0/19
msk

10.0.32.0/19
kzn

10.0.128.0/17
sp
 

10.0.128.0/19
bcn

10.0.160.0/19
mlg

10.1.0.0/17
cn
 

10.1.0.0/19
sha

10.1.32.0/19
sia

Lab

TvÄ leverantörer. Ett nÀt. ADSM.

Juniper + Arista. Ubuntu. Gamla goda Eva.

Antalet resurser pÄ vÄr virtuella maskin i Miran Àr trots allt begrÀnsat, sÄ för praktikens skull kommer vi att anvÀnda ett sÄ hÀr förenklat nÀtverk.

Automatisering För De Minsta. Del TvÄ. NÀtverksdesign

TvÄ datacenter: Kazan och Barcelona.

  • TvĂ„ spine i varje: Juniper och Arista.
  • En tor (Leaf) i varje — Juniper och Arista, med en ansluten vĂ€rd (vi tar en lĂ€ttviktig Cisco IOL för detta).
  • En nod Edge-Leaf (just nu bara Juniper).
  • En Cisco-switch för att styra dem alla.
  • Utöver nĂ€tverksenheterna har en virtuell maskin startats för styrning. Under Ubuntu.
    Den har tillgÄng till alla enheter, dÀr IPAM/DCIM-system, en uppsÀttning Python-skript, Ansible och allt annat som kan behövas kommer att rulla.

FullstÀndig konfiguration av alla nÀtverksenheter som vi kommer att försöka Äterskapa med hjÀlp av automation.

Slutsats

Är det ocksĂ„ ett standardförfarande? Att göra en kort sammanfattning under varje artikel?

SÄ vi har valt ett tre-lags Clos-nÀtverk inom datacentret, eftersom vi förvÀntar oss mycket East-West-trafik och vill ha ECMP.

Vi delade nĂ€tverket i fysiskt (underlay) och virtuellt (overlay). I det hĂ€r fallet börjar overlay med vĂ€rden — pĂ„ sĂ„ sĂ€tt förenklade vi kraven pĂ„ underlay.

Vi valde BGP som protokoll för routing av underliggande nÀtverk pÄ grund av dess skalbarhet och flexibilitet i policyer.

Vi kommer ha separata noder för att organisera DCI – Edge-leaf.
PĂ„ huvudlinjen kommer det att finnas OSPF+LDP.
DCI kommer att implementeras baserat pÄ MPLS L3VPN.
För P2P-lÀnkar kommer vi att berÀkna IP-adresser algoritmiskt baserat pÄ enhetsnamn.
Loopbacks kommer att tilldelas utifrÄn enheternas roller och deras placering i ordning.
Underliggande prefix kommer endast att tilldelas Leaf-switchar i sekvens baserat pÄ deras placering.

Anta att vi just nu inte har installerad utrustning.
DÀrför kommer vÄra nÀsta steg att vara att registrera dem i systemen (IPAM, inventering), organisera Ätkomst, generera konfigurationen och deploya den.

I nĂ€sta artikel kommer vi att gĂ„ igenom Netbox – ett system för inventering och hantering av IP-utrymme i datacentret.

Tack

  • Till Andrey Glazkov aka @glazgoo för korrekturlĂ€sning och Ă€ndringar.
  • Till Alexander Klimenko aka @v00lk för korrekturlĂ€sning och Ă€ndringar.
  • Till Artyom Chernobay för KDPV.

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