Kaks artiklit tagasi tĂ”stsin esile automatiseerimise teema ja visandasin selle raamistiku. Teises tegin lĂŒhikese kĂ”rvalepĂ”ike vĂ”rgu virtualiseerimisse, kui esimesse lĂ€henemisse teenuste seadistamiseks automatiseerimise kaudu.
NĂŒĂŒd on aeg joonistada vĂ€lja fĂŒĂŒsilise vĂ”rgu skeem.
Kui teil ei ole piisavalt kogemusi andmekeskuste seadmetega, soovitan tungivalt alustada siit. .
KÔik vÀljaanded:
Selles seerias kirjeldatud praktikad peaksid olema kohaldatavad mis tahes tĂŒĂŒpi, suurusega vĂ”rku, olenemata tootjatest (ei). Siiski ei saa kirjeldada universaalset nĂ€idet nende lĂ€henemiste rakendamiseks. SeetĂ”ttu keskendun kaasaegsele andmekeskuse vĂ”rgu arhitektuurile: .
DCI teeme MPLS L3VPN-l.
FĂŒĂŒsilise vĂ”rgu kohal töötab Overlay-vĂ”rk, mis on hostist (see vĂ”ib olla OpenStack'i VXLAN vĂ”i Tungsten Fabric vĂ”i midagi muud, mis nĂ”uab vĂ”rgu pĂ”hisisese IP-ĂŒhendust).
Sel juhul on automatiseerimiseks suhteliselt lihtne stsenaarium, kuna meil on palju seadmeid, mis seadistuvad ĂŒhtemoodi.
Valime sfÀÀrilise andmekeskuse vaakumis:
- Ăks disainiversioon igas kohas.
- Kaks vendorit, moodustades kaks vÔrgu tasandit.
- Ăks andmekeskus sarnaneb teisele nagu kaks tilka vett.
Sisu
- FĂŒĂŒsiline topoloogia
- Marshuutiing
- IP-plaan
- Labor
- KokkuvÔte
- Kasulikud lingid
Las meie teenusepakkuja LAN_DC nĂ€iteks korraldab ĂŒleelamisvideote hostimist kinni jÀÀnud liftides.
Suurtes linnades on see uskumatult populaarne, seega on vaja palju fĂŒĂŒsilisi masinaid.
Esmalt kirjeldan vÔrku sellisena, nagu ma sooviksin seda nÀha. SeejÀrel lihtsustan laboris.
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)

Andmekeskuse vahel (Intra-DC)
KÔigis andmekeskustes on identsed sisevÔrgud, mis pÔhinevad Clos'i topoloogial.
Mis on Clos'i vÔrgud ja miks just need - sellest rÀÀgime eraldi. .
Igas andmekeskuses on 10 riiulit masinatega, neid numeeritakse nagu A, B, C Ja nii edasi.
Igas riiulis on 30 masinat. Need meid ei huvita.
Igas rack'is on lĂŒliti, kuhu on ĂŒhendatud kĂ”ik masinad â see on Racki pealĂŒliti â ToR vĂ”i nagu Clozi tehase terminoloogias nimetame seda Leaf.

Ăldine skeem tehast.
Nimetame neid XXX-leafY, kus XXX â kolme tĂ€hega lĂŒhend andmekeskuse kohta ja Y â jĂ€rjestusnumber. NĂ€iteks, kzn-leaf11.
Oma artiklites luban endale suhteliselt vabalt kasutada termineid Leaf ja ToR sĂŒnonĂŒĂŒmidena. Siiski, tuleb meeles pidada, et see ei ole Ă”ige.
ToR on rackis paigaldatud lĂŒliti, kuhu on ĂŒhendatud masinad.
Leaf on seadme roll fĂŒĂŒsilises vĂ”rgus vĂ”i Clozi topoloogia esmaklassiline lĂŒliti.
Seega Leaf != ToR.
Leaf'ina vĂ”ib olla nĂ€iteks EndofRaw-lĂŒliti.
Kuid kĂ€esolevas artiklis kĂ€sitleme neid siiski sĂŒnonĂŒĂŒmidena.
Iga ToR-lĂŒliti on omakorda ĂŒhendatud nelja kĂ”rgema taseme agregaatlĂŒlitiga â Spine. Spine'ide jaoks on igas andmekeskuses eraldatud ĂŒks rack. Nimetame neid sarnaselt: XXX-spineY.
Samas rack'is asub tugiseadmed DC-vaheĂŒhendamiseks â kaks marsruuterit MPLS-iga. Aga suure pildi puhul on need samad ToR-id. See tĂ€hendab, et Spine-lĂŒlitite vaatenurgast ei muuda midagi, kas seal on tavaline ToR, kuhu on ĂŒhendatud masinad, vĂ”i DCI jaoks mĂ”eldud marsruuter â mĂ”lemal juhul on see edasi suunamine.
Need spetsiaalsed ToR-id nimetatakse Edge-leaf. Me nimetame neid XXX-edgeY.
See nÀeb vÀlja selline.

Ălaltoodud skeemil on edge ja leaf tĂ”esti samal tasemel. on harjutanud meid nĂ€gema, et uplink (sealt ka termin) on lingid ĂŒlespoole. Siin aga lĂ€heb âuplinkâ DCI kaudu tagasi alla, mis mĂ”ne inimese jaoks vĂ”ib tavapĂ€rast loogikat veidi murda. Suurte vĂ”rkude puhul, kus andmekeskused jagunevad veelgi vĂ€iksemateks ĂŒksusteks â PODâd (Point Of Delivery), eraldi vĂ€lja toomas Edge-PODâd DCI ja vĂ€liste vĂ”rkude jaoks.
Edasi liikudes, et tĂ”lgendamine oleks mugavam, joonistan ma siiski Edge'i Spine'i peale, kuigi peame meeles pidama, et Spine'il puudub igasugune intelligentsus ning töötamine tavaliste Leafide ja Edge-leafidega ei erine (kuigi siin vĂ”ivad olla nĂŒansid, kuid ĂŒldiselt on see nii).

Tehase skeem koos Edge-leafidega.
Leaf, Spine ja Edge moodustavad Underlay-vÔrgu vÔi tehase.
VĂ”rgu tehase ĂŒlesanne (loe Underlay), nagu oleme juba mÀÀratlenud , on vĂ€ga ja vĂ€ga lihtne â tagada IP-ĂŒhenduvus masinate vahel nii ĂŒhe andmekeskuse sees kui ka nende vahel.
SeetĂ”ttu nimetatakse vĂ”rku tehaseks, nagu nĂ€iteks ĂŒhendustehas modulaarses vĂ”rgukarbis, millest saab rohkem lugeda .
Ăldiselt nimetatakse sarnast topoloogiat tehaseks, kuna fabric tĂ”lkes tĂ€hendab kangast. Ja raske pole nĂ”ustuda:
Tehas on tĂ€ielikult L3. Ăkski VLAN, ĂŒkski Broadcast â meie LAN_DC imelised programmeerijad oskavad kirjutada rakendusi, mis elavad L3 paradigmas, ja virtuaalmasinad ei vaja IP-aadressi salvestamisega Live Migration'i.
Ja veel kord: vastus kĂŒsimusele, miks tehas ja miks L3, on eraldi .
DCI â Andmekeskuste omavaheline ĂŒhendus (Inter-DC)
DCI korraldatakse Edge-Leaf abil, see tÀhendab, et need on meie vÀljapÀÀsupunkt kiirusel.
Lihtsuse huvides eeldame, et andmekeskused on omavahel ĂŒhendatud otseĂŒhendustega.
JĂ€tame kĂ”rvale vĂ€lise ĂŒhenduvuse.
Ma mÔistan, et iga kord, kui ma mÔnda komponenti eemaldan, lihtsustan ma vÔrku oluliselt. Ja kui me automatiseerime meie abstraktset vÔrku, on kÔik korras, kuid reaalses olukorras vÔivad ilmneda probleemid.
Nii see on. Ja ometi on selle sarja ĂŒlesanne mĂ”elda ja töötada lĂ€henemisviiside kallal, mitte kangelaslikult otsustada vĂ€lja pakutud probleeme.
Edge-Leafâides on aluskihiks VPN, mis edastatakse MPLS-i selgroo kaudu (just see otsene link).
Selline on kÔrgetasemeline skeem.

Marshuutiing
Andmekeskuse siseseks marsruutimiseks kasutame BGP-d.
MPLS-i selgroos OSPF+LDP.
DCI jaoks, see tĂ€hendab ĂŒhenduvuse korraldamiseks aluskihis â BGP L3VPN MPLS-i ĂŒle.

Ăldine marsruutimise skeem
Tehases pole OSPF-i ega ISIS-e (Venemaa Föderatsioonis keelatud marsruutimise protokoll).
Ja see tĂ€hendab, et automaatset avastamist ja lĂŒhimate tee arvutamist ei toimu â ainult kĂ€sitsi (tegelikult automaatne â me rÀÀgime ju automatiseerimisest) protokolli, naabruse ja poliitikate seadistamine.

BGP marsruutimise skeem andmekeskuse sees
Miks BGP?
Sellel teemal on Facebooki ja Arista nimel, kus rÀÀgitakse, kuidas ehitada vÀga suuri andmete keskuste vÔrgud, kasutades BGP-d. Loetakse peaaegu kui kunstiteksti, soovitan tungivalt kauni Ôhtu jaoks.
Ja veel terve peatĂŒkk minu artiklis on sellele pĂŒhendatud. Kuhu ma teid .
Aga siiski, lĂŒhidalt öeldes, ei sobi ĂŒkski IGP suurtel andmekeskuste vĂ”rkudele, kus vĂ”rgu seadmete arv lĂ€heb tuhandetesse.
Lisaks vĂ”imaldab BGP-i kasutamine igal pool vĂ€ltida mitme erineva protokolli toetamise ja nende vahelise sĂŒnkroniseerimise hajutamist.
KĂ€si sĂŒdamel, meie tehases, mis tĂ”enĂ€oliselt ei hakka kiiresti kasvama, piisaks tĂ€ielikult ka OSPF-ist. Need on tĂ”eliselt probleemid megaskaalajate ja pilvetitaanide jaoks. Aga fantaseerime vaid paar numbrit, et meil on seda vaja, ja kasutame BGP-d, nagu jĂ€ttis meile Peter Lapukhov.
Marsruutimisreeglid
Leaf-lĂŒlititel impordime BGP-sse eellagi inglise keele prefikseid allkartuste liidestelt.
Meil on BGP-seanss iga paarile Leaf-Spine, kus need eellagi prefiksid kuulutatakse ĂŒle vĂ”rgu ringi. seal ja tagasi.

Ăhes andmekeskuses laiendame spetsiifilisust, mille oleme importinud Toris. Edge-Leafâidel kogume ja kuulutame need vĂ€lja kaugematesse andmekeskustesse ning suuname need Toridesse. Iga Tor teab tĂ€pselt, kuidas teise Torini jĂ”uda samas andmekeskuses ja kus on sisenemispunkt, et jĂ”uda Torini teises andmekeskuses.
DCI-s edastatakse marsruudid VPNv4 vormingus. Selleks pannakse Edge-Leaf interfÀÀri suunas tehasesse VRF, mida nimetame UNDERLAY, ja naabrus Spineâi suunas Edge-Leafâil tĂ”stetakse VRF sees, samas kui Edge-Leafâide vahel on VPNv4-family.

Me keelame ka marsruutide uuesti kuulutamise, mis on saadud spiinidelt, tagasi neile endile.

Leaf ja Spine ei impordi Loopbackâe. Need on vajalikud ainult Router ID mÀÀramiseks.
Kuid Edge-Leafâidel impordime selle Global BGP-sse. Loopback-aadresside vahel loovad Edge-Leaf'id ĂŒksteisega BGP-seansi IPv4 VPN-family-s.
EDGE-seadmete vahel on meil OSPF+LDP baasil lai magistraal. KĂ”ik ĂŒhes tsoonis. Ăks kĂ”ige lihtsamaid konfiguratsioone.
Nii nÀeb marsruutimine vÀlja.
BGP ASN
Edge-Leaf ASN
Edge-Leafâides on ĂŒhes DC-s ĂŒks ASN. See on oluline, et Edge-Leafâide vahel oleks iBGP ning et me ei satuks eBGP nĂŒansside otsa. Olgu see 65535. Tegelikkuses vĂ”iks see olla avaliku AS-i number.
Spine ASN
Spine'is on meil ĂŒks ASN DC kohta. Alustame siit esimesest numbrist privaatsete AS-ide vahemikus â 64512, 64513 ja nii edasi.
Miks ASN DC-s?
Dekomponeerime selle kĂŒsimuse kaheks:
- Miks on kĂ”ikide Spine'ide ASN ĂŒhes DC-s samad?
- Miks erinevad eri DC-des?
Miks on kĂ”ikide Spine'ide ASN ĂŒhes DC-s samad
Nii nÀeb vÀlja AS-Path Underlay marsruudil Edge-Leafidel:
[leafX_ASN, spine_ASN, edge_ASN]
Katses seda tagasi Spine'ile kuulutada, lĂŒkkab see selle tagasi, sest selle AS (Spine_AS) on juba nimekirjas.
Kuid DC-s oleme tÀiesti rahul, et Underlay marsruudid, mis tÔusid Edge'ile, ei saa alla tulla. KÔik suhtlemine hostide vahel DC-s peaks toimuma spindide tasemel.

Siiski, teiste DC-de koondatud marsruudid saavad igal juhul vabalt ToR-ideni jĂ”uda â nende AS-Pathis on vaid ASN 65535 â Edge-Leaf'ide AS-i number, sest just seal need loodi.
Miks on erinevad eri DC-des?
Teoreetiliselt vÔib osutuda vajalikuks juhtida Loopback'e mÔne teenindava virtuaalmasina vahel andmekeskuste vahel.
NĂ€iteks kĂ€ivitatakse meil hostis Route Reflector vĂ”i (Virtuaalne VĂ”rgu LĂŒĂŒsi), mis BGP kaudu ĂŒhendub ToR-iga ja kuulutab vĂ€lja oma Loopback'i, mis peab olema ligipÀÀsetav kĂ”igist andmekeskustest.
Nii et selline 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, samamoodi nagu leafX_DC1 ja leafY_DC2, millele me just lÀheneme.
Nagu te ilmselt teate, eksisteerivad kaksid, mis vÔimaldavad vastu vÔtta marsruute korduvate ASN-idega, vaatamata ringluse vÀltimise mehhanismile (allowas-in Cisco's). Ja sel on isegi tÀiesti seaduslikud rakendused. Kuid see on potentsiaalne nÔrkus vÔrgu stabiilsuses. Ja ma olen isiklikult paar korda sellesse langenud.
Ja kui meil on vÔimalus mitte kasutada ohtlikke asju, siis me seda otsustame.
Leaf ASN
Igal Leaf-i lĂŒlitil on individuaalne ASN kogu vĂ”rgu ulatuses.
Teeme seda eespool toodud kaalutlustel: AS-Path ilma silmusteta, BGP konfiguratsioon ilma tagasiviienditeta.
Et marsruudid Leaf'ide vahel sujuvalt kulgeks, peab AS-Path vÀlja nÀgema nii:
[leafX_ASN, spine_ASN, leafY_ASN]
kus leafX_ASN ja leafY_ASN vÔiksid erineda.
See on vajalik ka VNF-i tagasipööramise kuulutuse olukorras keskuste vahel:
[VNF_ASN, leafX_DC1_ASN, spine_DC1_ASN, edge_ASN, spine_DC2_ASN, leafY_DC2_ASN]
Kasutame 4-baidist ASN-i ja genereerime selle Spine'i ASN-i ja Leaf-lĂŒliti numbri pĂ”hjal, nimelt, nagu jĂ€rgneb: Spine_ASN.0000X.
Selline on ASN-i pilt.

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 mis tahes masin saaks suhelda mis tahes teisega. Sobib suurepĂ€raselt 10/8. Iga racki jaoks jagame /26 ĂŒle ja meie reservi. Eraldame /19 keskusesse ja /17 regiooni.
- Sidusad aadressid Leaf/Tor-i ja Spine'i vahel.
Sooviks neid mÀÀrata algoritmiliselt, st arvutada 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-vĂ”rk /31.
See vĂ”imaldab kĂ€ivitada kuni 128 racki ja kuni 10 Spine'i keskuses. Sidusad aadressid vĂ”ivad (ja tulevad) korduma keskuste vahel. - Spine â Edge-Leaf ĂŒhenduse organiseerime alamvĂ”rkudesse 169.254.10X.Y/31, kus just nii X â Spine'i number, Y â P2P-vĂ”rk /31.
- Edge-Leafi lingiaadressid MPLS-i selgroo jaoks. Siin on olukord veidi teine â see on koht, kus kĂ”ik tĂŒkid kokku saavad ĂŒheks, seega ei saa samu aadresse uuesti kasutada â tuleb valida jĂ€rgmine vaba alamvĂ”rk. SeetĂ”ttu vĂ”tame aluseks 192.168.0.0/16 ja hakkame sellest vabade aadresside leidmisega tegelema.
- Loopbacki aadressid. Anname nende jaoks vÀlja terve vahemiku 172.16.0.0/12.
- Leaf â \/25 DC-le â sama 128 riiulit. Jagame \/23 piirkonna jaoks.
- Spine â \/28 DC-le â kuni 16 Spine'i. Jagame \/26 piirkonna jaoks.
- Edge-Leaf â \/29 DC-le â kuni 8 kasti. Jagame \/27 piirkonna jaoks.
Kui DC-s puuduvad meile mÀÀratud vahemikud (aga neid ei ole â me ju pĂŒrgime hĂŒperkasvule), jagame lihtsalt jĂ€rgmise ploki.
Selline on IP-aadresside jaotamine.

Loopbackâid:
Eesliide
Seadme roll
Regioon
DC
172.16.0.0/23
edge
Â
Â
172.16.0.0/27
ru
Â
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
ru
Â
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
ru
Â
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:
Eesliide
Regioon
DC
10.0.0.0/17
ru
Â
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 teenusepakkujat. Ăks vĂ”rk. ADSM.
Juniper + Arista. Ubuntu. Vanad head ajad.
Meie virtuaalmasin Miras on siiski piiratud ressursside arv, seega praktiliseks harjutamiseks kasutame sedasama ultralihtsat vÔrku.

Kaks andmekeskust: Kazan ja Barcelona.
- Igas on kaks spine'i: Juniper ja Arista.
- Igas liinil (Leaf'il) igas â Juniper ja Arista, ĂŒhe ĂŒhendatud hostiga (kasutame selleks kergkaalu Cisco IOL-i).
- Ăks Edge-Leaf sĂ”lm (praegu ainult Juniper).
- Ăks Cisco lĂŒliti, et neid kĂ”iki juhtida.
- Lisaks vÔrgukarpidele on kÀivitatud virtuaalne haldusmasin, mis töötab Ubuntu all.
Sel on juurdepÀÀs kĂ”ikidele seadmetele, seal töötavad IPAM/DCIM sĂŒsteemid, hulk Python skripte, Ansible ja kĂ”ik muu, mis meil vaja vĂ”ib minna.
kĂ”ikidest vĂ”rguseadmetest, mida me ĂŒritame automatiseerimisega taastada.
KokkuvÔte
Kas nĂ”nda on kombeks? Iga artikli alla teha lĂŒhike kokkuvĂ”te?
Nii oleme valinud Closer vÔrgu andmekeskuses, kuna ootame palju East-West liiklust ja soovime ECMP-d.
Oleme jaganud vĂ”rgu fĂŒĂŒsiliseks (underlay) ja virtuaalseks (overlay). Samuti alustab overlay hostist â sellega oleme alandanud nĂ”udeid underlayle.
Valisime BGP alameetodiks routersĂŒsteemide peatuste jaoks tema skaleeritavuse ja poliitikate paindlikkuse tĂ”ttu.
Meil on eraldi sĂ”lmed DCI korraldamiseks â Edge-leaf.
PÔhivoolus on OSPF+LDP.
DCI rakendatakse MPLS L3VPN pÔhiselt.
P2P-ĂŒhenduste IP-aadresse arvutame me algoritmiliselt seadmete nimede pĂ”hjal.
Loopbackid mÀÀrame seadmete rolli ja asukoha pÔhjal jÀrjestikku.
Alusprefiksid â ainult Leaf-lĂŒlititele jĂ€rjestikku nende asukoha pĂ”hjal.
Oletame, et meil ei ole hetkel seadmeid paigaldatud.
SeetĂ”ttu on meie jĂ€rgmised sammud â viia need sĂŒsteemidesse (IPAM, inventuur), korraldada juurdepÀÀs, genereerida konfiguratsioon ja juurutada see.
JĂ€rgmises artiklis uurime Netboxi â IP-ruumi haldamise ja inventuurimise sĂŒsteemi andmekeskustes.
AitÀh
- Andrei Glazkovile aka @glazgoo lugemise ja paranduste eest
- Aleksandr Klimenko aka @v00lk lugemise ja paranduste eest
- Artem Chernbajale KDPV eest
Allikas: habr.com

