Esimese kahe artikli jooksul tĂ”stsin esile automatiseerimise kĂŒsimuse ja koostasin selle raamistiku, teises tegin kĂ”rvalepĂ”ike vĂ”rgu virtualiseerimise teemasse, kuna see on esimene lĂ€henemine teenuste seadistamise automatiseerimisele.
Ja nĂŒĂŒd on aeg joonistada fĂŒĂŒsilise vĂ”rgu skeem.
Kui te ei ole andmekeskuste vÔrguseadmestiku lÀhedane tuttav, siis soovitan tungivalt alustada .
KÔik vÀljaanded:
Selles sarjas kĂ€sitletud praktikad peaksid olema kohaldatavad igat tĂŒĂŒpi, igas suuruses ja igasuguste mĂŒĂŒjate vĂ”rkudesse (ei). Kuid universaalset nĂ€idet nende lĂ€henemiste rakendamisest ei saa kirjeldada. Seega keskendun kaasaegsele andmekeskuste vĂ”rgu arhitektuurile: .
DCI rakendame MPLS L3VPN-il.
FĂŒĂŒsilise vĂ”rgu kohal töötab Overlay-vĂ”rk masinast (see vĂ”ib olla VXLAN OpenStackis vĂ”i Tungsten Fabric vĂ”i mis tahes muu, mis nĂ”uab vĂ”rgu ainult baas IP-ĂŒhenduvust).
Sellisel juhul tekib vĂ”rreldamatult lihtne automatiseerimise stsenaarium, kuna meil on palju seadmeid, mis seadistuvad ĂŒhesuguses jĂ€rjekorras.
Valime sfÀÀrilise andmekeskuse vaakumis:
- Ăks disainiversioon igal pool.
- Kaks mĂŒĂŒjat, kes moodustavad kaks vĂ”rgu tasandit.
- Ăks andmekeskus sarnaneb teisele nagu kaks tilka vett.
Sisukord
- FĂŒĂŒsiline topoloogia
- Marsruutimine
- IP-plaan
- Labor
- KokkuvÔte
- Kasulikud lingid
Olgu meie teenusepakkuja LAN_DC nÀiteks hostitud ellujÀÀmisvideotest kinni jÀÀnud liftides.
Suurtes linnades on see ĂŒlisuure populaarsusega, seega on fĂŒĂŒsilisi masinaid vaja palju.
Esmalt kirjeldan vÔrku umbkaudu sellisena, nagu tahaks, et see vÀlja nÀeks. Ja seejÀrel lihtsustan labori jaoks.
FĂŒĂŒsiline topoloogia
Asukohad
LAN_DC-l on 6 andmekeskust:
- Venemaa (RU):
- Moskva (msk)
- Kazan (kzn)
- Hispaania (SP):
- Barcelona (bcn)
- Malaga (mlg)
- Hiina (CN):
- Shanghai (sha)
- Xi'an (sia)

Andmekeskuses (Intra-DC)
KÔigis andmekeskustes on identsete sisekeerise vÔrkude, mis pÔhinevad Clossi topoloogial.
Mis on Clossi vÔrgud ja miks just need - eraldi .
Igas andmekeskuses 10 riiulit masinatega, neid hakatakse numereerima jÀrgmiselt A, B, C Ja nii edasi.
Igas riiulis on 30 masinat. Need meid ei huvita.
Samuti on igas riiulis lĂŒliti, kuhu on ĂŒhendatud kĂ”ik masinad - see on Top of the Rack switch - ToR vĂ”i muidu Clossi tehase terminoloogias nimetame seda Leaf.

Ăks ĂŒldine tehas.
Nimetame neid XXX-leafY, kus XXX â kolme tĂ€heline lĂŒhend DC, Y â jĂ€rjekorranumber. NĂ€iteks, kzn-leaf11.
Olen artikkelides piisavalt vabalt kasutama terminite Leaf ja ToR sĂŒnonĂŒĂŒmidena. Kuid tuleb meeles pidada, et see nii ei ole.
ToR on rack-mount lĂŒliti, millele on ĂŒhendatud masinad.
Leaf on seadme roll fĂŒĂŒsilises vĂ”rgus vĂ”i esimese taseme lĂŒliti Clos topoloogias.
Seega Leaf != ToR.
Nii vĂ”ib Leaf'i olla nĂ€iteks EndofRaw-lĂŒliti.
Kuid selle artikli raames kĂ€sitleme neid siiski sĂŒnonĂŒĂŒmidena.
Iga ToR-lĂŒliti on omakorda ĂŒhendatud nelja kĂ”rgema aggregaatlĂŒlitiga â Spine. Spine'idele on mÀÀratud ĂŒks rack DC-s. Nime paneme analoogselt: XXX-spineY.
Samuti seisab samas rackis vĂ”rguseade DC vahelise ĂŒhenduse jaoks â 2 ruuterit MPLS-iga. Kuid vĂ€hemasti on need samad ToR'id. Seega ei oma Spine-lĂŒlitite jaoks mingit tĂ€htsust, kas seal on tavaline ToR koos ĂŒhendatud masinatega vĂ”i ruuter DCI jaoks â mĂ”lemad edastavad sama.
Selliseid spetsiaalseid ToR'e nimetatakse Edge-leaf. Me nimetame neid XXX-edgeY.
See nÀeb vÀlja niimoodi.

Ălaltoodud skeemis on edge ja leaf tĂ”epoolest ĂŒhel tasemel. on meid harjutanud vaheĂŒhendit (just sealt ka termin) pidama ĂŒlespoole suunatud linkideks. Siin aga on DCI "ĂŒlevahe" tagasi allapoole, mis mĂ”nevĂ”rra rikub tuttavat loogikat. Suurte vĂ”rkude korral, mil andmekeskused jagunevad veel vĂ€iksemateks ĂŒksusteks â PODâ, (Point Of Delivery), mÀÀratakse eraldi Edge-PODâid DCI ja vĂ€liste vĂ”rkude juurde.
Edasiarusaamise jaoks joonistan ma siiski Edge Spine'i kohale, samas peame meeles, et Spine'l ei ole mingit intelligentsust ja erinevusi tavapĂ€raste Leaf'ide ja Edge-leaf'ide vahel (kuigi siin vĂ”ivad olla nĂŒansid, kuid ĂŒldiselt see niimoodi on).

Skeem Edge-leaf'idega.
Kolmik Leaf, Spine ja Edge moodustavad Underlay-vÔrgu vÔi tehase.
VĂ”rgu tehase (loe Underlay) ĂŒlesanne, nagu me oleme juba mÀÀratlenud , on vĂ€ga ja vĂ€ga lihtne â tagada IP-ĂŒhenduse masinate vahel nii ĂŒhes DC-s kui ka nende vahel.
SeetĂ”ttu nimetatakse vĂ”rguks tehast, nagu nĂ€iteks tehase lĂŒlitust modulaarsete vĂ”rgukarbikeste sees, millest lĂ€hemalt vĂ”ib lugeda .
Tegelikult nimetatakse seda topoloogiat tehaseks, kuna 'fabric' tÔlkes tÀhendab see kangast. Ja raske on mitte nÔustuda:
Tehas on tÀielikult L3. Pole VLAN-e, pole Broadcasti - meil on LAN_DC's imelised programmeerijad, kes oskavad kirjutada rakendusi, mis eksisteerivad L3 paradigmas, ja virtuaalmasinad ei vaja Live Migration'i IP-aadressi sÀilitamisega.
Ja veel kord: vastus kĂŒsimusele, miks tehas ja miks L3, on eraldi. .
DCI - Andmekeskuste vahelise ĂŒhenduse loomine (Inter-DC)
DCI korraldatakse Edge-Leaf abil, seega nad on meie punkt, kus pÀÀseb kiiruskaubikule.
Lihtsuse huvides eeldame, et andmekeskused on omavahel ĂŒhendatud otseĂŒhendustega.
JĂ€tame kĂ”rvale vĂ€list ĂŒhenduvust.
MÔistan, et iga kord, kui ma eemaldan mingi komponendi, lihtsustan ma vÔrku oluliselt. Ja kui meie abstraktse vÔrgu automatiseerimisega kÔik toimib hÀsti, siis reaalses olukorras vÔivad tekkida probleemid.
See on tÔsi. Ja siiski on selle seeria eesmÀrk mÔelda ja töötada lÀhenemiste kallal, mitte kangesti lahendada vÀlja mÔeldud probleeme.
Edge-Leaf'idel asetatakse underlay VPN-i ja see edastatakse lĂ€bi MPLS kiiruskaubiku (see sama otseĂŒhendus).
Siin on selline kÔrgetasemeline skeem.

Marsruutimine
Andmekeskuses sisedĂŒnaamiliseks marsruutimiseks kasutame BGP-d.
MPLS kiiruskaubikul OSPF+LDP.
DCI jaoks, ehkki ĂŒhenduse loomine underlay's - BGP L3VPN ĂŒle MPLS-i.

Ăksikasjalik marsruutimise skeem
Tehases ei ole OSPF ega ISIS (Venemaal keelatud marsruutimisprotokoll).
See tĂ€hendab, et ei tule Auto-discovery'd ega lĂŒhimate teede arvutamist - ainult kĂ€sitsi (tĂ”eliselt automaatselt - me rÀÀgime siin automatiseerimisest) protokolli, naabruskonna ja poliitikate seadistamine.

BGP marsruutimise skeem andmekeskuses
Miks BGP?
Selle teema kohta on Facebooki ja Arista nimel, kus rÀÀgitakse, kuidas ehitada vÀga suuri andmekeskusete vÔrgustikke, kasutades BGP-d. Loetav peaaegu nagu ilukirjandus, vÀga soovitatav igavlevale Ôhtule.
Ja veel ĂŒks terve jaotis minu artiklis on sellele pĂŒhendatud. Kuhu ma teid saadan .
Kuid ikkagi, kui lĂŒhidalt kokku vĂ”tta, siis ei sobi ĂŒhtegi IGP-d suurt pannes andmekeskuste vĂ”rkudesse, kus vĂ”rgu seadmeid on arvuliselt juba tuhandeid.
Lisaks vĂ”imaldab BGP-i kasutamine igal pool mitte hajuda mitme erineva protokolli toetamise ja nende vahelise sĂŒnkroonimise kohale.
Kui ausalt öelda, siis meie tehases, millel tÔenÀoliselt ei ole plaanis kiiresti kasvada, piisaks OSPF-st. Need on tegelikult probleemid mega-skaalajate ja pilvetiitani jaoks. Kuid oletame vaid mÔne vÀljaande jaoks, et me vajame seda, ja kasutame BGP-d, nagu Peter Lapukhov soovitas.
Marsruutimise poliitika
Leaf-lĂŒlitites toome BGP-sse eelseadistatud eelmise jaotuse aadresse.
Meil on BGP sessioon iga paaris Leaf-Spine, kus need eelmise jaotuse aadressid avaldatakse vĂ”rgus edasi-tagasi. Ăhes andmekeskuses levitame spetsiifikaid, mille oleme impordi ToR-is. Edge-Leaf-seadmetes kogume neid ja avaldame kaugetesse andmekeskustesse ning suuname ToR-idesse. Ehk iga ToR teab tĂ€pselt, kuidas jĂ”uda teise ToR-i samas andmekeskuses ja kus on sissepÀÀsupunkt, et jĂ”uda ToR-i teise andmekeskusesse.

DCI-s edastatakse marsruudid nagu VPNv4. Selle jaoks paigaldame Edge-Leaf liidesest tehasesse VRF, nimetame selle UNDERLAY-ks, ja naabrus Spine'iga Edge-Leaf is tÔuseb VRF-i sees, ja Edge-Leaf-ide vahel VPNv4-pere all.
Ja me keelame ka marsruutide tagasivÀljaandmise, mis on saadud spiinidest.

Leaf ja Spine ei impordi Loopbacke. Need on meile vajalikud vaid Router ID mÀÀramiseks.

Aga Edge-Leaf'ides impordime selle Global BGP-sse. Edge-Leaf-ide Loopback-aadresside vahel loovad nad BGP sessiooni IPv4 VPN-family omavahel.
EDGE-seadmete vahel on meil laiendatud pĂ”hijaotus OSPF+LDP. KĂ”ik ĂŒhes tsoonis. Eextremly lihtne konfiguratsioon.
Siin on selline pilt marsruutimisest.
BGP ASN
Edge-Leaf ASN
Edge-Leaf'ides on kĂ”igis andmekeskustes ĂŒks ASN. See on oluline, et Edge-Leaf-ide vahel oleks iBGP, et mitte sattuda eBGP nĂŒanssidele. Olgu see 65535. Tegelikult vĂ”iks see olla avaliku AS number.
Spine ASN
Spine-l on andmekeskuses ĂŒks ASN. Alustame siit esimese numbriga eraplaneedi surve AS-diast ja edasi 64512, 64513 jne.
Miks ASN andmekeskuses?
Lahendame selle kĂŒsimuse kaheks:
Miks on kĂ”ik spiinid ĂŒhes andmekeskuses samad ASN-id?
- Miks on erinevad erinevates andmekeskustes?
- Miks on kĂ”ik spiinid ĂŒhes andmekeskuses samad ASN-id?
Nii nĂ€eb vĂ€lja AS-Path kĂŒljest olnud marsruut Edge-Leaf-seadmest:
Katsel selle taasgekehtestada Spine-is, lĂŒkkab ta selle tagasi, kuna tema AS (Spine_AS) on juba loendis.
[leafX_ASN, spine_ASN, edge_ASN]
Katses, et ta taaskĂ€ivita oma Spinal, siis see lĂŒkkab selle tagasi, kuna tema AS (Spine_AS) on juba nimekirjas.
Kuid meie DC-s oleme tÀiesti rahul, et Underlay marsruudid, mis on tÔusnud Edge'i, ei saa alla tagasi tulla. KÔik kommunikatsioon hostide vahel DC-s peab toimuma spina tasandil.

Samal ajal jĂ”uavad teiste DC-de ĂŒhendatud marsruudid igal juhul probleemideta ToR-ide juurde â nende AS-Pathis on ainult ASN 65535 â Edge-Leaf'id, kuna just seal need loodi.
Miks erinevad erinevates DC-des
Teoreetiliselt vÔib meil olla vajalik Loopback'ide tÔmbamine mÔnede teenuslike virtuaalmasinate vahel DC-de vahel.
NĂ€iteks meie hostis kĂ€ivitub Route Reflector vĂ”i (Virtuaalne VĂ”rguvĂ€rav), mis BGP kaudu ĂŒhendatakse ToR-iga ja kuulutab vĂ€lja oma loopback'i, mis peaks olema kĂ”ikidest DC-dest ligipÀÀsetav.
Nii nÀeb vÀlja tema AS-Path:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]
Ja siin ei tohiks olla korduvaid ASN-e.

See tÀhendab, et Spine_DC1 ja Spine_DC2 peavad olema erinevad, just nagu leafX_DC1 ja leafY_DC2, mille poole me liikume.
Kuidas teate, et on olemas vahendeid, mis lubavad marsruute korduvate ASN-idega vastu vÔtta, vaatamata silmusete ennetamise mehhanismile (allowas-in Cisco's). Ja sellel on isegi tÀiesti seaduslikud rakendused. Kuid see on potentsiaalne nÔrkus vÔrgu usaldusvÀÀrsuses. Ja ma olen isiklikult sinna paar korda kukkunud.
Ja kui meil on vÔimalus mitte kasutada ohtlikke asju, siis me seda teeme.
Leaf ASN
Igal Leaf lĂŒlitil ĂŒle vĂ”rgu on individuaalne ASN.
Me teeme seda eespool nimetatud pÔhjustel: AS-Path ilma silmusteta, BGP konfigureerimine ilma tagajÀrgedeta.
Kuna marsruudid Leaf'ide vahel peavad probleemideta lÀbima, peaks AS-Path vÀlja nÀgema nii:
[leafX_ASN, spine_ASN, leafY_ASN]
kus leafX_ASN ja leafY_ASN oleksid hea, kui need erineksid.
See on vajalik ka VNF loopback'i kuulutamise olukorras DC-de vahel:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]
Kasutame 4-baidist ASN-i ning genereerime selle Spine'i ASN-ist ja Leaf-sÔlmest numbri pÔhjal, nimelt nii: Spine_ASN.0000X.
Nii nÀeb vÀlja ASN.

IP-plaan
PĂ”himĂ”tteliselt peame eraldama aadresse jĂ€rgmisteks ĂŒhendusteks:
- Underlay vĂ”rgu aadressid ToR-i ja masina vahel. Need peavad olema unikaalsed kogu vĂ”rgu ulatuses, et iga masin saaks suhelda mis tahes teisega. SuurepĂ€rane sobivus 10/8. Iga riiuli jaoks /26 ĂŒlejÀÀk. Jagame vĂ€lja /19 DC-dele ja /17 piirkonnale.
- Linkimis aadressid Leaf/Tor ja Spine vahel.
Nende mÀÀramine vĂ”iks toimuda algoritmiliselt, st arvutades seadmete nimed, mida tuleb ĂŒhendada.
Olgu see⊠169.254.0.0/16.
Nimelt 169.254.00X.Y/31, kus X â Spineâi number, Y â P2P-verk /31.
See vĂ”imaldab kĂ€ivitada kuni 128 rackâi ja kuni 10 Spineâi andmekeskuses. Linkimisadressid vĂ”ivad (ja kindlasti ka korduvad) andmekeskusest andmekeskusesse. - Spine ja Edge-Leaf ĂŒhendame alamsaitidega 169.254.10X.Y/31, kus tĂ€pselt samuti X â Spineâi number, Y â P2P-verk /31.
- Linkimisadressid Edge-Leafâist MPLS-i peamisse. Siin on olukord mĂ”nevĂ”rra erinev â koht, kus kĂ”ik tĂŒkid kokku tulevad, seega samu aadresse uuesti kasutada ei saa â tuleb valida jĂ€rgmine vabade alamsaitide hulk. SeetĂ”ttu vĂ”tame aluseks 192.168.0.0/16 ja hakkame sealt vabade aadresside leidma.
- Loopback-aadressid. Andke neile kogu vahemik 172.16.0.0/12.
- Leaf â /25 andmekeskuses â samad 128 rackâi. Eraldame /23 piirkonnale.
- Spine â /28 andmekeskuses â kuni 16 Spineâi. Eraldame /26 piirkonnale.
- Edge-Leaf â /29 andmekeskuses â kuni 8 seadet. Eraldame /27 piirkonnale.
Kui andmekeskuses ei piisa eraldatud vahemdest (aga ei piisa â me ju pĂŒrgime hĂŒperkalduvusesse), eraldame lihtsalt jĂ€rgmise ploki.
Selline on IP-aadressimise pilt.

Loopback'id:
Prefiks
Seadme roll
Piirkond
Andmekeskus
172.16.0.0/23
edge
Â
Â
172.16.0.0/27
et
Â
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
et
Â
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
et
Â
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:
Prefiks
Piirkond
Andmekeskus
10.0.0.0/17
et
Â
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
Labor
Kaks tootjat. Ăks vĂ”rk. ADSM.
Juniper + Arista. Ubuntu. Vana hea Eva.
Meie virtuaalmasina ressurssid on siiski piiratud, seega kasutame harjutamiseks sellist ÀÀrmiselt lihtsustatud vÔrku.

Kaks andmekeskust: Kazan ja Barcelona.
- Igas on kaks spine'i: Juniper ja Arista.
- Igas on ĂŒks Leaf â Juniper ja Arista, ĂŒhe ĂŒhendatud hostiga (vĂ”tame selleks kergekaalulise Cisco IOL'i).
- Igas on ĂŒks Edge-Leaf node (praegu ainult Juniper).
- Ăks Cisco lĂŒliti, et neid kĂ”ik juhtida.
- Lisaks vÔrgukarbadele töötab virtuaalne juhtimismasin. Ubuntu juhtimisel.
Sellel on juurdepÀÀs kĂ”igile seadmetele, sellel töötavad IPAM/DCIM-sĂŒsteemid, hulk Python'i skripte, Ansible ja kĂ”ik muu, mis meile vajalikuks osutub.
kÔikidest vÔrguseadmetest, mida me proovime automaatika abil taastada.
KokkuvÔte
Kas see on samuti aktsepteeritud? Kas iga artikli alla teha lĂŒhike kokkuvĂ”te?
Nii et valisime Kloosi vÔrgu andmekeskuses, kuna ootame palju East-West liiklust ja soovime ECMP-d.
Jagatud vĂ”rk fĂŒĂŒsiliseks (underlay) ja virtuaalseks (overlay). Samal ajal algab overlay hostist â seega lihtsustasime nĂ”udeid underlayle.
Valisime BGP marsruudiprotokolliks andmecentrifugide vÔrkude tÔttu selle skaleeritavuse ja poliitikate paindlikkuse.
Meil on DCI korraldamiseks eraldi sĂ”lmed â Edge-leaf.
Magistralil on OSPF+LDP.
DCI rakendatakse MPLS L3VPN baasil.
P2P-ĂŒhenduste IP-aadressid arvutame seadmete nimede pĂ”hjal.
Loopback'id mÀÀrame seadmete rolli ja asukoha pÔhjal jÀrjestikku.
Andmecentrifugide eelised - ainult Leaf-lĂŒlititele jĂ€rjestikku nende asukoha pĂ”hjal.
Eeldame, et meil ei ole praegu seadmeid installitud.
SeepĂ€rast on meie jĂ€rgmised sammud - need sĂŒsteemidesse viia (IPAM, inventuur), ligipÀÀsu organiseerida, konfiguratsioon genereerida ja selle juurutada.
JĂ€rgmisel artiklil kĂ€sitleme Netboxi - IP-ruumi inventuurimise ja haldamise sĂŒsteemi andmecentrifugis.
AitÀh
- Andrei Glazkovile aka @glazgoo korrektuuride ja muudatuste eest
- Aleksandr Klimentkovile aka @v00lk korrektuuride ja muudatuste eest
- Artyom Chernobayle KDPV eest
Allikas: habr.com

