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 .
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: .
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).
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)

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 .
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.

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.

I diagrammet ovan har jag faktiskt placerat edge och leaf pĂ„ samma nivĂ„. 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Ä).

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 , Ă€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 .
Ă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:
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 .
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.

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.

Ă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.

BGP-routing-schema inuti DC:n
Varför BGP?
Det finns en hel del litteratur om detta Àmne 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 .
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.

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.

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

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Ä.

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 (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.

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.

IP-plan
GrunlÀggande behöver vi tilldela adresser för följande kopplingar:
- 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.
- 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. - 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.
- 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.
- 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.

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.

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.
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 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

