SDSM ir beidzies, bet nevaldÄmÄ vÄlme rakstÄ«t paliek.
Daudzus gadus mÅ«su brÄlis cieta no ikdieniŔķa darba veikÅ”anas, sakrustoja pirkstus pirms apÅemÅ”anÄs un miega trÅ«kuma dÄļ ikvakara atkÄpÅ”anÄs.
Bet tumÅ”ie laiki tuvojas beigÄm.
Ar Å”o rakstu es sÄkÅ”u sÄriju par to, kÄ mani parÄdÄs automatizÄcija.
Pa ceļam mÄs sapratÄ«sim automatizÄcijas posmus, mainÄ«go glabÄÅ”anu, dizaina formalizÄciju, RestAPI, NETCONF, YANG, YDK, un mÄs veiksim daudz programmÄÅ”anas. Man nozÄ«mÄ, ka a) tÄ nav objektÄ«va patiesÄ«ba, b) tÄ nav beznosacÄ«jumu labÄkÄ pieeja, c) mans viedoklis, pat virzoties no pirmÄ uz pÄdÄjo rakstu, var mainÄ«ties - ja godÄ«gi, no uzmetuma stadijas lÄ«dz publikÄciju, es visu pilnÄ«bÄ pÄrrakstÄ«ju divas reizes.
saturs
MÄrÄ·i
TÄ«kls ir kÄ viens organisms
KonfigurÄcijas pÄrbaude
VersionÄÅ”ana
Pakalpojumu uzraudzÄ«ba un paÅ”atveseļoÅ”anÄs
Fondi
InventÄra sistÄma
IP telpas pÄrvaldÄ«bas sistÄma
TÄ«kla pakalpojumu aprakstu sistÄma
IerÄ«ces inicializÄcijas mehÄnisms
PÄrdevÄja-agnostiskÄ konfigurÄcijas modelis
PÄrdevÄja specifiska draivera saskarne
MehÄnisms konfigurÄcijas piegÄdei ierÄ«cei
CI / CD
MehÄnisms dublÄÅ”anai un noviržu meklÄÅ”anai
UzraudzÄ«bas sistÄma
SecinÄjums
Es mÄÄ£inÄÅ”u veikt ADSM formÄtÄ, kas nedaudz atŔķiras no SDSM. TurpinÄs parÄdÄ«ties lieli, detalizÄti, numurÄti raksti, un starp tiem publicÄÅ”u nelielas piezÄ«mes no ikdienas pieredzes. Es centÄ«Å”os Å”eit cÄ«nÄ«ties ar perfekcionismu un nelaizÄ«t katru no viÅiem.
Cik jocÄ«gi, ka otro reizi jÄiet pa to paÅ”u ceļu.
SÄkumÄ man paÅ”am bija jÄraksta raksti par tÄ«kliem, jo āātie nebija RuNet.
Tagad es nevarÄju atrast visaptveroÅ”u dokumentu, kas sistematizÄtu automatizÄcijas pieejas un analizÄtu iepriekÅ” minÄtÄs tehnoloÄ£ijas, izmantojot vienkÄrÅ”us praktiskus piemÄrus.
IespÄjams, es kļūdos, tÄpÄc, lÅ«dzu, sniedziet saites uz noderÄ«giem resursiem. TomÄr tas nemainÄ«s manu apÅÄmÄ«bu rakstÄ«t, jo galvenais mÄrÄ·is ir paÅ”am kaut ko iemÄcÄ«ties, un dzÄ«ves atviegloÅ”ana citiem ir patÄ«kams bonuss, kas glÄsta pieredzes dalÄ«Å”anas gÄnu.
MÄÄ£inÄsim paÅemt vidÄja izmÄra LAN DC datu centru un izstrÄdÄt visu automatizÄcijas shÄmu.
Dažas lietas es darÄ«Å”u kopÄ ar jums gandrÄ«z pirmo reizi.
Es nebÅ«Å”u oriÄ£inÄls Å”eit aprakstÄ«tajÄs idejÄs un instrumentos. Dmitrijam Figolam ir izcils kanÄls ar straumÄm par Å”o tÄmu.
Raksti pÄrklÄsies ar tiem daudzos aspektos.
LAN DC ir 4 DC, aptuveni 250 slÄdži, pusducis marÅ”rutÄtÄju un pÄris ugunsmÅ«ri.
Nevis Facebook, bet pietiekami, lai jÅ«s dziļi padomÄtu par automatizÄciju.
TomÄr pastÄv viedoklis, ka, ja jums ir vairÄk nekÄ 1 ierÄ«ce, automatizÄcija jau ir nepiecieÅ”ama.
PatiesÄ«bÄ ir grÅ«ti iedomÄties, ka ikviens tagad var dzÄ«vot bez vismaz ceļgalu skriptu komplekta.
Lai gan dzirdÄju, ka ir biroji, kur IP adreses tiek glabÄtas programmÄ Excel, un katra no tÅ«kstoÅ”iem tÄ«kla ierÄ«Äu tiek konfigurÄta manuÄli un tai ir sava unikÄla konfigurÄcija. To, protams, var nosaukt par moderno mÄkslu, taÄu inženiera jÅ«tas noteikti tiks aizskartas.
MÄrÄ·i
Tagad mÄs noteiksim abstraktÄkos mÄrÄ·us:
TÄ«kls ir kÄ viens organisms
KonfigurÄcijas pÄrbaude
TÄ«kla stÄvokļa versiju noteikÅ”ana
Pakalpojumu uzraudzÄ«ba un paÅ”atveseļoÅ”anÄs
VÄlÄk Å”ajÄ rakstÄ apskatÄ«sim, kÄdus lÄ«dzekļus izmantosim, un turpmÄk detalizÄti aplÅ«kosim mÄrÄ·us un lÄ«dzekļus.
TÄ«kls ir kÄ viens organisms
SÄrijas noteicoÅ”Ä frÄze, lai gan no pirmÄ acu uzmetiena tÄ var neŔķist tik nozÄ«mÄ«ga: mÄs konfigurÄsim tÄ«klu, nevis atseviŔķas ierÄ«ces.
PÄdÄjos gados mÄs esam pieredzÄjuÅ”i, ka uzsvars ir mainÄ«jies uz tÄ«klu kÄ vienotu vienÄ«bu, tÄpÄc ProgrammatÅ«ras definÄts tÄ«kls, Ar nolÅ«ku vadÄ«ti tÄ«kli Šø Autonomie tÄ«kli.
Galu galÄ, kas lietojumprogrammÄm globÄli vajadzÄ«gs no tÄ«kla: savienojamÄ«ba starp punktiem A un B (labi, dažreiz + B-Z) un izolÄcija no citÄm lietojumprogrammÄm un lietotÄjiem.
Un tÄds ir mÅ«su uzdevums Å”ajÄ sÄrijÄ izveidot sistÄmu, saglabÄjot paÅ”reizÄjo konfigurÄciju viss tÄ«kls, kas jau ir sadalÄ«ta faktiskajÄ konfigurÄcijÄ katrÄ ierÄ«cÄ atbilstoÅ”i tÄs lomai un atraÅ”anÄs vietai. SistÄma tÄ«kla pÄrvaldÄ«ba nozÄ«mÄ, ka, lai veiktu izmaiÅas, mÄs ar to sazinÄmies, un tÄ, savukÄrt, aprÄÄ·ina katrai ierÄ«cei vÄlamo stÄvokli un konfigurÄ to.
TÄdÄ veidÄ mÄs samazinÄm manuÄlu piekļuvi CLI lÄ«dz gandrÄ«z nullei ā jebkuras izmaiÅas ierÄ«ces iestatÄ«jumos vai tÄ«kla dizainÄ ir jÄformalizÄ un jÄdokumentÄ ā un tikai pÄc tam jÄievieÅ” nepiecieÅ”amie tÄ«kla elementi.
Tas ir, piemÄram, ja mÄs nolemtu, ka no Ŕī brīža statÄ«va slÄdžiem KazaÅÄ ir jÄpaziÅo par diviem, nevis vienam tÄ«klam, mÄs
Vispirms mÄs dokumentÄjam izmaiÅas sistÄmÄs
Visu tÄ«kla ierÄ«Äu mÄrÄ·a konfigurÄcijas Ä£enerÄÅ”ana
MÄs palaižam tÄ«kla konfigurÄcijas atjauninÄÅ”anas programmu, kas aprÄÄ·ina, kas katrÄ mezglÄ ir jÄnoÅem, kas jÄpievieno, un novieto mezglus vÄlamajÄ stÄvoklÄ«.
TajÄ paÅ”Ä laikÄ izmaiÅas manuÄli veicam tikai pirmajÄ darbÄ«bÄ.
KonfigurÄcijas pÄrbaude
ZinÄmska 80% problÄmu rodas konfigurÄcijas maiÅas laikÄ - netieÅ”s pierÄdÄ«jums tam ir tas, ka Jaungada brÄ«vdienÄs parasti viss ir mierÄ«gi.
Esmu personÄ«gi pieredzÄjis desmitiem globÄlas dÄ«kstÄves cilvÄka kļūdu dÄļ: nepareiza komanda, konfigurÄcija tika izpildÄ«ta nepareizajÄ filiÄlÄ, kopiena aizmirsa, MPLS tika globÄli nojaukts marÅ”rutÄtÄjÄ, tika konfigurÄtas piecas aparatÅ«ras daļas, bet kļūda nebija. pamanÄ«ts sestajÄ, tika veiktas vecas citas personas veiktas izmaiÅas. Ir ļoti daudz scenÄriju.
AutomatizÄcija ļaus mums pieļaut mazÄk kļūdu, bet plaÅ”ÄkÄ mÄrogÄ. TÄdÄ veidÄ jÅ«s varat bloÄ·Ät ne tikai vienu ierÄ«ci, bet visu tÄ«klu vienlaikus.
KopÅ” neatminamiem laikiem mÅ«su vectÄvi ar vÄrÄ«gu aci pÄrbaudÄ«ja veikto izmaiÅu pareizÄ«bu, tÄrauda lodÄ«tes un tÄ«kla funkcionalitÄti pÄc to izvilkÅ”anas.
Tie vectÄvi, kuru darbs noveda pie dÄ«kstÄves un katastrofÄliem zaudÄjumiem, atstÄja mazÄk pÄcnÄcÄju un ar laiku tiem vajadzÄtu izmirt, taÄu evolÅ«cija ir lÄns process, un tÄpÄc ne visi joprojÄm vispirms pÄrbauda izmaiÅas laboratorijÄ.
TomÄr progresa priekÅ”galÄ ir tie, kas automatizÄjuÅ”i konfigurÄcijas testÄÅ”anas procesu un tÄs turpmÄko pielietoÅ”anu tÄ«klÄ. Citiem vÄrdiem sakot, es aizÅÄmos CI/CD procedÅ«ru (NepÄrtraukta integrÄcija, nepÄrtraukta izvietoÅ”ana) no izstrÄdÄtÄjiem.
VienÄ no daļÄm apskatÄ«sim, kÄ to Ä«stenot, izmantojot versiju kontroles sistÄmu, iespÄjams, Github.
Kad esat pieradis pie tÄ«kla CI/CD idejas, vienas nakts konfigurÄcijas pÄrbaudes metode, piemÄrojot to ražoÅ”anas tÄ«klam, ŔķitÄ«s agrÄ«nu viduslaiku neziÅa. LÄ«dzÄ«gi kÄ ar Ämuru trÄpÄ«t pa kaujas galviÅu.
Organisks ideju turpinÄjums par sistÄma tÄ«kla pÄrvaldÄ«ba un CI/CD kļūst par pilnu konfigurÄcijas versiju.
VersionÄÅ”ana
MÄs pieÅemsim, ka ar jebkÄdÄm izmaiÅÄm, pat visniecÄ«gÄkajÄm, pat vienÄ nepamanÄmÄ ierÄ«cÄ viss tÄ«kls pÄriet no viena stÄvokļa uz otru.
Un mÄs vienmÄr neizpildÄm komandu ierÄ«cÄ, mÄs mainÄm tÄ«kla stÄvokli.
TÄtad sauksim Å”os Å”tatus par versijÄm?
PieÅemsim, ka paÅ”reizÄjÄ versija ir 1.0.0.
Vai ir mainÄ«jusies atgriezeniskÄs saites interfeisa IP adrese vienÄ no uzdevumiem? Å Ä« ir neliela versija, un tai bÅ«s 1.0.1.
MÄs pÄrskatÄ«jÄm politiku marÅ”rutu importÄÅ”anai BGP ā nedaudz nopietnÄk ā jau 1.1.0
MÄs nolÄmÄm atbrÄ«voties no IGP un pÄriet tikai uz BGP - tÄ jau ir radikÄla dizaina maiÅa - 2.0.0.
TajÄ paÅ”Ä laikÄ dažÄdiem DC var bÅ«t dažÄdas versijas - tÄ«kls attÄ«stÄs, tiek uzstÄdÄ«ts jauns aprÄ«kojums, kaut kur tiek pievienoti jauni muguriÅu lÄ«meÅi, citos ne utt.
Es atkÄrtoju - jebkuras izmaiÅas (izÅemot atkļūdoÅ”anas komandas) ir versijas atjauninÄjums. Administratoriem ir jÄbrÄ«dina par jebkÄdÄm novirzÄm no paÅ”reizÄjÄs versijas.
Tas pats attiecas uz izmaiÅu atcelÅ”anu ā tÄ nav pÄdÄjo komandu atcelÅ”ana, tÄ nav atcelÅ”ana, izmantojot ierÄ«ces operÄtÄjsistÄmu ā tas nozÄ«mÄ, ka viss tÄ«kls tiek atjaunots jaunÄ (vecÄ) versijÄ.
Pakalpojumu uzraudzÄ«ba un paÅ”atveseļoÅ”anÄs
Šis paŔsaprotamais uzdevums mūsdienu tīklos ir sasniedzis jaunu līmeni.
Bieži vien lielie pakalpojumu sniedzÄji izmanto pieeju, ka nokrituÅ”ais pakalpojums ir ļoti Ätri jÄlabo un jÄceļ jauns, nevis jÄizdomÄ, kas noticis.
āÄ»otiā nozÄ«mÄ, ka jums no visÄm pusÄm ir jÄbÅ«t dÄsni pÄrklÄtam ar uzraudzÄ«bu, kas dažu sekunžu laikÄ atklÄs mazÄkÄs novirzes no normas.
Un Å”eit vairs nepietiek ar parastajiem rÄdÄ«tÄjiem, piemÄram, saskarnes ielÄdi vai mezglu pieejamÄ«bu. Nepietiek arÄ« ar dežuranta veiktu to manuÄlu uzraudzÄ«bu.
DaudzÄm lietÄm vajadzÄtu bÅ«t PaÅ”dziedinÄÅ”ana ā novÄroÅ”anas gaismas iedegÄs sarkanas un mÄs gÄjÄm un paÅ”i uzklÄjÄm ceļmallapu, kur sÄpÄja.
Un Å”eit mÄs arÄ« uzraugÄm ne tikai atseviŔķas ierÄ«ces, bet arÄ« visa tÄ«kla veselÄ«bu, gan whitebox, kas ir salÄ«dzinoÅ”i saprotams, gan blackbox, kas ir sarežģītÄks.
Kas mums bÅ«s nepiecieÅ”ams, lai Ä«stenotu tik vÄrienÄ«gus plÄnus?
Ir visu tÄ«klÄ esoÅ”o ierÄ«Äu saraksts, to atraÅ”anÄs vieta, lomas, modeļi, programmatÅ«ras versijas. kazan-leaf-1.lmu.net, KazaÅa, lapa, KadiÄ·is QFX 5120, R18.3.
Ir sistÄma tÄ«kla pakalpojumu aprakstÄ«Å”anai. IGP, BGP, L2/3VPN, politika, ACL, NTP, SSH.
KonfigurÄjiet ierÄ«ci un konfigurÄjiet vajadzÄ«go (ieskaitot veco) versiju.
Testa konfigurÄcija
Periodiski pÄrbaudiet visu ierÄ«Äu statusu, vai nav novirzes no paÅ”reizÄjÄ, un ziÅojiet, kam tam vajadzÄtu bÅ«t. Pa nakti kÄds klusi pievienoja noteikumu ACL.
UzraudzÄ«t veiktspÄju.
Fondi
Tas izklausÄs pietiekami sarežģīti, lai sÄktu projektu sadalÄ«t komponentos.
Un no tiem būs desmit:
InventÄra sistÄma
IP telpas pÄrvaldÄ«bas sistÄma
TÄ«kla pakalpojumu aprakstu sistÄma
IerÄ«ces inicializÄcijas mehÄnisms
PÄrdevÄja-agnostiskÄ konfigurÄcijas modelis
PÄrdevÄja specifiska draivera saskarne
MehÄnisms konfigurÄcijas piegÄdei ierÄ«cei
CI / CD
MehÄnisms dublÄÅ”anai un noviržu meklÄÅ”anai
UzraudzÄ«bas sistÄma
Å is, starp citu, ir piemÄrs tam, kÄ mainÄ«jÄs skatÄ«jums uz cikla mÄrÄ·iem - projektÄ bija 4 komponenti.
IlustrÄcijÄ es attÄloju visas sastÄvdaļas un paÅ”u ierÄ«ci.
KrustojoŔie komponenti mijiedarbojas viens ar otru.
Jo lielÄks bloks, jo lielÄka uzmanÄ«ba jÄpievÄrÅ” Å”im komponentam.
1. komponents: uzskaites sistÄma
AcÄ«mredzot mÄs gribam zinÄt, kÄda tehnika kur atrodas, kam pieslÄgta.
InventÄra sistÄma ir jebkura uzÅÄmuma neatÅemama sastÄvdaļa.
VisbiežÄk uzÅÄmumam ir atseviŔķa tÄ«kla ierÄ«Äu uzskaites sistÄma, kas atrisina specifiskÄkas problÄmas.
Å Ä«s rakstu sÄrijas ietvaros mÄs to sauksim par DCIM ā datu centra infrastruktÅ«ras pÄrvaldÄ«bu. Lai gan pats termins DCIM, stingri Åemot, ietver daudz vairÄk.
MÅ«su vajadzÄ«bÄm mÄs tajÄ glabÄsim Å”Ädu informÄciju par ierÄ«ci:
InventÄra numurs
Nosaukums/Apraksts
Modelis (Huawei CE12800, Juniper QFX5120 utt.)
Raksturīgie parametri (plates, saskarnes utt.)
Loma (Lapa, mugurkauls, apmales marÅ”rutÄtÄjs utt.)
AtraÅ”anÄs vieta (reÄ£ions, pilsÄta, datu centrs, plaukts, vienÄ«ba)
Savienojumi starp ierÄ«cÄm
Tīkla topoloģija
Ir pilnÄ«gi skaidrs, ka mÄs paÅ”i vÄlamies to visu zinÄt.
Bet vai tas palÄ«dzÄs automatizÄcijas nolÅ«kos?
Protams.
PiemÄram, mÄs zinÄm, ka konkrÄtÄ datu centrÄ Leaf slÄdžos, ja tas ir Huawei, ACL, lai filtrÄtu noteiktu trafiku, ir jÄpiemÄro VLAN, un, ja tas ir Juniper, tad fiziskÄs saskarnes 0. vienÄ«bÄ.
Vai arÄ« jums ir jÄizlaiž jauns Syslog serveris visÄs reÄ£iona robežÄs.
TajÄ mÄs glabÄsim virtuÄlÄs tÄ«kla ierÄ«ces, piemÄram, virtuÄlos marÅ”rutÄtÄjus vai saknes reflektorus. MÄs varam pievienot DNS serverus, NTP, Syslog un vispÄr visu, kas vienÄ vai otrÄ veidÄ attiecas uz tÄ«klu.
2. komponents: IP telpas pÄrvaldÄ«bas sistÄma
JÄ, un mÅ«sdienÄs ir cilvÄku komandas, kas izseko prefiksus un IP adreses Excel failÄ. TaÄu mÅ«sdienu pieeja joprojÄm ir datu bÄze ar nginx/apache priekÅ”galu, API un plaÅ”Äm funkcijÄm IP adreÅ”u un tÄ«klu ierakstÄ«Å”anai, kas sadalÄ«ti VRF.
IPAM - IP adreÅ”u pÄrvaldÄ«ba.
AdreÅ”u saistÄ«Å”ana ar ierÄ«cÄm, tÄ«klu ar atraÅ”anÄs vietÄm un VLAN numuriem
Atkal ir skaidrs, ka mÄs vÄlamies pÄrliecinÄties, ka, pieŔķirot jaunu IP adresi ToR cilpai, mÄs nepaklupsim par to, ka tÄ kÄdam jau ir pieŔķirta. Vai arÄ« mÄs divreiz izmantojÄm vienu un to paÅ”u prefiksu dažÄdos tÄ«kla galos.
Bet kÄ tas palÄ«dz automatizÄcijai?
Tas ir vienkÄrÅ”i.
SistÄmÄ pieprasÄm prefiksu ar lomu Loopbacks, kas satur pieŔķirÅ”anai pieejamÄs IP adreses - ja tiek atrasts, pieŔķiram adresi, ja nÄ, pieprasÄm izveidot jaunu prefiksu.
Vai arÄ« veidojot ierÄ«ces konfigurÄciju, no tÄs paÅ”as sistÄmas varam noskaidrot, kurÄ VRF interfeisam jÄatrodas.
Un startÄjot jaunu serveri, skripts ielogojas sistÄmÄ, noskaidro, kurÄ slÄdzÄ« atrodas serveris, kurÄ portÄ un kurÅ” apakÅ”tÄ«kls ir pieŔķirts interfeisam - un no tÄ pieŔķirs servera adresi.
Tas liecina par vÄlmi apvienot DCIM un IPAM vienÄ sistÄmÄ, lai nedublÄtos funkcijas un neapkalpotu divas lÄ«dzÄ«gas vienÄ«bas.
To mÄs darÄ«sim.
3. komponents. TÄ«kla pakalpojumu aprakstÄ«Å”anas sistÄma
Ja pirmajÄs divÄs sistÄmÄs tiek glabÄti mainÄ«gie, kas vÄl kaut kÄ jÄizmanto, tad treÅ”ajÄ katrai ierÄ«ces lomai ir aprakstÄ«ts, kÄ tÄ jÄkonfigurÄ.
Ir vÄrts noŔķirt divus dažÄdus tÄ«kla pakalpojumu veidus:
Infrastruktūra
Klients.
Pirmie ir paredzÄti, lai nodroÅ”inÄtu pamata savienojumu un ierÄ«ces vadÄ«bu. Tie ietver VTY, SNMP, NTP, Syslog, AAA, marÅ”rutÄÅ”anas protokolus, CoPP utt.
PÄdÄjie organizÄ pakalpojumu klientam: MPLS L2/L3VPN, GRE, VXLAN, VLAN, L2TP utt.
Protams, ir arÄ« robežgadÄ«jumi - kur iekļaut MPLS LDP, BGP? JÄ, un marÅ”rutÄÅ”anas protokolus var izmantot klientiem. Bet tas nav svarÄ«gi.
Abu veidu pakalpojumi ir sadalÄ«ti konfigurÄcijas primitÄ«vos:
fiziskÄs un loÄ£iskÄs saskarnes (tag/anteg, mtu)
IP adreses un VRF (IP, IPv6, VRF)
ACL un trafika apstrÄdes politikas
Protokoli (IGP, BGP, MPLS)
MarÅ”rutÄÅ”anas politikas (prefiksu saraksti, kopienas, ASN filtri).
KÄ tieÅ”i mÄs to darÄ«sim, man vÄl nav ne jausmas. MÄs to aplÅ«kosim atseviÅ”Ä·Ä rakstÄ.
Ja mazliet tuvÄk dzÄ«vei, tad to varÄtu aprakstÄ«t
SlÄdžam Leaf ir jÄbÅ«t BGP sesijÄm ar visiem pievienotajiem Spine slÄdžiem, tajÄ ir jÄimportÄ savienotie tÄ«kli un jÄpieÅem tikai tÄ«kli no noteikta prefiksa no Spine slÄdžiem. Ierobežojiet CoPP IPv6 ND lÄ«dz 10 pps utt.
SavukÄrt muguriÅas rÄ«ko seansus ar visiem savienotajiem novadiem, darbojoties kÄ sakÅu atstarotÄji, un pieÅem no tiem tikai noteikta garuma marÅ”rutus ar noteiktu kopienu.
Å ajÄ virsrakstÄ es apvienoju daudzas darbÄ«bas, kas jÄveic, lai ierÄ«ce tiktu parÄdÄ«ta radarÄ un tai piekļūtu attÄlinÄti.
Ievadiet ierÄ«ci uzskaites sistÄmÄ.
IzvÄlieties pÄrvaldÄ«bas IP adresi.
Iestatiet pamata piekļuvi tai:
Resursdatora nosaukums, pÄrvaldÄ«bas IP adrese, marÅ”ruts uz pÄrvaldÄ«bas tÄ«klu, lietotÄji, SSH atslÄgas, protokoli - telnet/SSH/NETCONF
Ir trīs pieejas:
Viss ir pilnÄ«bÄ manuÄli. IerÄ«ce tiek nogÄdÄta stendÄ, kur parasts organiskais cilvÄks to ievadÄ«s sistÄmÄs, pieslÄgsies pie pults un konfigurÄs. Var strÄdÄt nelielos statiskos tÄ«klos.
ZTP ā Zero Touch Provisioning. AparatÅ«ra ieradÄs, piecÄlÄs, saÅÄma adresi caur DHCP, devÄs uz Ä«paÅ”u serveri un konfigurÄja sevi.
Konsoļu serveru infrastruktÅ«ra, kur sÄkotnÄjÄ konfigurÄcija notiek caur konsoles portu automÄtiskajÄ režīmÄ.
Par visiem trim mÄs runÄsim atseviÅ”Ä·Ä rakstÄ.
5. komponents: pÄrdevÄja-agnostiskÄ konfigurÄcijas modelis
LÄ«dz Å”im visas sistÄmas ir bijuÅ”as atŔķirÄ«gi ielÄpi, kas nodroÅ”ina mainÄ«gos lielumus un deklaratÄ«vu aprakstu par to, ko mÄs vÄlÄtos redzÄt tÄ«klÄ. Bet agrÄk vai vÄlÄk jums bÅ«s jÄtiek galÄ ar specifiku.
Å ajÄ posmÄ katrai konkrÄtai ierÄ«cei primitÄ«vi, pakalpojumi un mainÄ«gie tiek apvienoti konfigurÄcijas modelÄ«, kas faktiski apraksta visas konkrÄtas ierÄ«ces konfigurÄciju, tikai pÄrdevÄja ziÅÄ neitrÄli.
Ko dara Å”is solis? KÄpÄc gan nekavÄjoties neizveidot ierÄ«ces konfigurÄciju, kuru varat vienkÄrÅ”i augÅ”upielÄdÄt?
Faktiski tas atrisina trÄ«s problÄmas:
NepielÄgojieties noteiktai saskarnei, lai mijiedarbotos ar ierÄ«ci. Vai tas bÅ«tu CLI, NETCONF, RESTCONF, SNMP - modelis bÅ«s tas pats.
NeglabÄjiet veidÅu/skriptu skaitu atbilstoÅ”i pÄrdevÄju skaitam tÄ«klÄ, un, ja dizains mainÄs, mainiet to paÅ”u vairÄkÄs vietÄs.
IelÄdÄjiet konfigurÄciju no ierÄ«ces (rezerves), ievietojiet to tieÅ”i tajÄ paÅ”Ä modelÄ« un tieÅ”i salÄ«dziniet mÄrÄ·a konfigurÄciju ar esoÅ”o, lai aprÄÄ·inÄtu delta un sagatavotu konfigurÄcijas ielÄpu, kas mainÄ«s tikai tÄs daļas, kas ir nepiecieÅ”amas, vai lai noteiktu novirzes.
Å Ä« posma rezultÄtÄ mÄs iegÅ«stam no pÄrdevÄja neatkarÄ«gu konfigurÄciju.
Nevajag sevi glaimot ar cerÄ«bÄm, ka kÄdu dienu cisku varÄs konfigurÄt tieÅ”i tÄpat kÄ kadiÄ·i, vienkÄrÅ”i nosÅ«tot viÅiem tieÅ”i tÄdus paÅ”us zvanus. Neskatoties uz balto kastÄ«Å”u pieaugoÅ”o popularitÄti un NETCONF, RESTCONF, OpenConfig atbalsta parÄdÄ«Å”anos, Å”o protokolu nodroÅ”inÄtais specifiskais saturs dažÄdiem pÄrdevÄjiem atŔķiras, un Ŕī ir viena no to konkurences atŔķirÄ«bÄm, no kuras viÅi tik viegli nepadosies.
Tas ir aptuveni tÄds pats kÄ OpenContrail un OpenStack, kuru NorthBound interfeiss ir RestAPI, sagaida pilnÄ«gi atŔķirÄ«gus zvanus.
TÄtad, piektajÄ darbÄ«bÄ, no pÄrdevÄja neatkarÄ«gajam modelim ir jÄiegÅ«st tÄda forma, kÄdÄ tas tiks nodots aparatÅ«rai.
Un Å”eit visi lÄ«dzekļi ir labi (nav): CLI, NETCONF, RESTCONF, SNMP vienkÄrÅ”i.
TÄpÄc mums bÅ«s nepiecieÅ”ams draiveris, kas pÄrsÅ«tÄ«s iepriekÅ”ÄjÄs darbÄ«bas rezultÄtu konkrÄta pÄrdevÄja vajadzÄ«gajÄ formÄtÄ: CLI komandu kopa, XML struktÅ«ra.
MÄs esam Ä£enerÄjuÅ”i konfigurÄciju, taÄu tÄ joprojÄm ir jÄnogÄdÄ ierÄ«cÄs - un, protams, ne ar rokÄm. PirmkÄrt, mÄs saskaramies ar jautÄjumu, kÄdu transportu izmantosim? Un Å”odien izvÄle vairs nav maza:
CLI (telnet, ssh)
SNMP
NETCONF
RESTCONF
REST API
OpenFlow (lai gan tas ir izÅÄmums, jo tas ir veids, kÄ nodroÅ”inÄt FIB, nevis iestatÄ«jumus)
IezÄ«mÄsim Å”eit ar t. CLI ir mantojums. SNMP... klepus klepus.
RESTCONF joprojÄm ir nezinÄms dzÄ«vnieks; REST API neatbalsta gandrÄ«z neviens. TÄpÄc sÄrijÄ koncentrÄsimies uz NETCONF.
Faktiski, kÄ lasÄ«tÄjs jau saprata, Å”ajÄ brÄ«dÄ« mÄs jau esam izlÄmuÅ”i par saskarni - iepriekÅ”ÄjÄs darbÄ«bas rezultÄts jau ir parÄdÄ«ts izvÄlÄtÄ interfeisa formÄtÄ.
OtrkÄrt, un ar kÄdiem rÄ«kiem mÄs to darÄ«sim?
Å eit ir arÄ« liela izvÄle:
PaÅ”u rakstÄ«ts skripts vai platforma. ApbruÅosimies ar ncclient un asyncIO un darÄ«sim visu paÅ”i. Cik mums izmaksÄ izvietoÅ”anas sistÄmas izveide no nulles?
Ansible ar bagÄtÄ«go tÄ«kla moduļu bibliotÄku.
SÄls ar savu niecÄ«go darbu ar tÄ«klu un savienojumu ar Napalmu.
PatiesÄ«bÄ Napalm, kas pazÄ«st pÄris pÄrdevÄjus, un viss, ardievu.
Nornir ir vÄl viens dzÄ«vnieks, kuru mÄs turpmÄk izpÄtÄ«sim.
Å eit favorÄ«ts vÄl nav izvÄlÄts - meklÄsim.
Kas vÄl Å”eit ir svarÄ«gs? KonfigurÄcijas piemÄroÅ”anas sekas.
VeiksmÄ«gi vai nÄ. Vai joprojÄm ir piekļuve aparatÅ«rai vai nav?
Å Ä·iet, ka commit Å”eit palÄ«dzÄs ar apstiprinÄjumu un apstiprinÄjumu par to, kas tika lejupielÄdÄts ierÄ«cÄ.
Tas apvienojumÄ ar pareizu NETCONF ievieÅ”anu ievÄrojami saÅ”aurina piemÄroto ierÄ«Äu klÄstu - ne daudzi ražotÄji atbalsta parastÄs saistÄ«bas. Bet tas ir tikai viens no priekÅ”noteikumiem RFP. Galu galÄ neviens neuztraucas, ka neviens Krievijas pÄrdevÄjs neatbildÄ«s 32 * 100GE interfeisa nosacÄ«jumam. Vai arÄ« viÅÅ” ir noraizÄjies?
Komponents 8. CI/CD
Å obrÄ«d mums jau ir gatava konfigurÄcija visÄm tÄ«kla ierÄ«cÄm.
Es rakstu āpar visuā, jo mÄs runÄjam par tÄ«kla stÄvokļa versiju noteikÅ”anu. Un pat tad, ja ir jÄmaina tikai viena slÄdža iestatÄ«jumi, izmaiÅas tiek aprÄÄ·inÄtas visam tÄ«klam. AcÄ«mredzot lielÄkajai daļai mezglu tie var bÅ«t nulle.
Bet, kÄ jau tika teikts iepriekÅ”, mÄs neesam nekÄdi barbari, kas vÄlas visu virzÄ«t uz ražoÅ”anu.
Ä¢enerÄtajai konfigurÄcijai vispirms ir jÄiziet caur Pipeline CI/CD.
CI/CD nozÄ«mÄ Continuous Integration, Continuous Deployment. Å Ä« ir pieeja, kurÄ komanda ne tikai ik pÄc seÅ”iem mÄneÅ”iem izdod jaunu lielu laidienu, pilnÄ«bÄ aizstÄjot veco, bet arÄ« regulÄri pakÄpeniski ievieÅ” (izvieto) jaunu funkcionalitÄti nelielÄs porcijÄs, no kurÄm katra tiek visaptveroÅ”i pÄrbaudÄ«ta saderÄ«bas, droŔības un veiktspÄja (IntegrÄcija).
Lai to izdarÄ«tu, mums ir versiju kontroles sistÄma, kas uzrauga konfigurÄcijas izmaiÅas, laboratorija, kas pÄrbauda, āāvai klientu apkalpoÅ”ana nav bojÄta, uzraudzÄ«bas sistÄma, kas pÄrbauda Å”o faktu, un pÄdÄjais solis ir izmaiÅu ievieÅ”ana ražoÅ”anas tÄ«klÄ.
IzÅemot atkļūdoÅ”anas komandas, absolÅ«ti visÄm izmaiÅÄm tÄ«klÄ ir jÄnotiek caur CI/CD cauruļvadu ā tÄ ir mÅ«su klusas dzÄ«ves un ilgas, laimÄ«gas karjeras garantija.
Komponents 9. Rezerves un anomÄliju noteikÅ”anas sistÄma
Nu, nav vajadzÄ«bas vÄlreiz runÄt par dublÄÅ”anu.
MÄs tos vienkÄrÅ”i ievietosim git atbilstoÅ”i kronim vai konfigurÄcijas maiÅas faktam.
Bet otrÄ daļa ir interesantÄka - kÄdam vajadzÄtu pieskatÄ«t Å”os dublÄjumus. Un dažos gadÄ«jumos Å”im cilvÄkam ir jÄiet un jÄpagriež viss tÄ, kÄ tas bija, bet citos ā kÄdam jÄÅaud, ka kaut kas nav kÄrtÄ«bÄ.
PiemÄram, ja ir parÄdÄ«jies jauns lietotÄjs, kurÅ” nav reÄ£istrÄts mainÄ«gajos lielumos, jums tas ir jÄnoÅem no uzlauÅ”anas. Un, ja labÄk neaiztikt jaunu ugunsmÅ«ra kÄrtulu, varbÅ«t kÄds tikko ieslÄdza atkļūdoÅ”anu, vai arÄ« jaunais pakalpojums, bungler, nav reÄ£istrÄts atbilstoÅ”i noteikumiem, bet cilvÄki tam jau ir pievienojuÅ”ies.
MÄs joprojÄm neizbÄgsim no nelielas delta visa tÄ«kla mÄrogÄ, neskatoties uz visÄm automatizÄcijas sistÄmÄm un stingro vadÄ«bas roku. Lai atkļūdotu problÄmas, neviens sistÄmÄm nepievienos konfigurÄciju. TurklÄt tie var pat nebÅ«t iekļauti konfigurÄcijas modelÄ«.
PiemÄram, ugunsmÅ«ra noteikums pakeÅ”u skaita skaitÄ«Å”anai uz noteiktu IP, lai lokalizÄtu problÄmu, ir pilnÄ«gi parasta pagaidu konfigurÄcija.
Komponents 10. UzraudzÄ«bas sistÄma
SÄkumÄ es negrasÄ«jos aplÅ«kot monitoringa tÄmu ā tÄ joprojÄm ir apjomÄ«ga, strÄ«dÄ«ga un sarežģīta tÄma. TaÄu, lietas virzoties uz priekÅ”u, izrÄdÄ«jÄs, ka tÄ ir neatÅemama automatizÄcijas sastÄvdaļa. Un to nav iespÄjams apiet pat bez prakses.
Evolving Thought ir CI/CD procesa organiska daļa. PÄc konfigurÄcijas ievieÅ”anas tÄ«klÄ mums ir jÄspÄj noteikt, vai tagad ar to viss ir kÄrtÄ«bÄ.
Un mÄs runÄjam ne tikai un ne tik daudz par saskarnes lietoÅ”anas grafikiem vai mezglu pieejamÄ«bu, bet par smalkÄkÄm lietÄm - nepiecieÅ”amo marÅ”rutu esamÄ«bu, atribÅ«tiem uz tiem, BGP sesiju skaitu, OSPF kaimiÅiem, veiktspÄju no gala lÄ«dz galam. virspakalpojumiem.
Vai ÄrÄjÄ servera syslogs pÄrtrauca pievienoties, vai SFlow aÄ£ents sabojÄjÄs, vai rindu skaits sÄka pieaugt, vai arÄ« savienojamÄ«ba starp dažiem prefiksu pÄriem sabojÄjÄs?
Par to mÄs runÄsim atseviÅ”Ä·Ä rakstÄ.
SecinÄjums
Par pamatu izvÄlÄjos vienu no mÅ«sdienu datu centru tÄ«kla projektiem - L3 Clos Fabric ar BGP kÄ marÅ”rutÄÅ”anas protokolu.
Šoreiz tīklu veidosim uz Juniper, jo tagad JunOs interfeiss ir vanlove.
PadarÄ«sim savu dzÄ«vi grÅ«tÄku, izmantojot tikai atvÄrtÄ pirmkoda rÄ«kus un vairÄku piegÄdÄtÄju tÄ«klu, tÄpÄc papildus Juniper es izvÄlÄÅ”os vÄl vienu laimÄ«go.
GaidÄmo publikÄciju plÄns ir apmÄram Å”Äds:
Vispirms es runÄÅ”u par virtuÄlajiem tÄ«kliem. PirmkÄrt, tÄpÄc, ka es gribu, un, otrkÄrt, tÄpÄc, ka bez Ŕī infrastruktÅ«ras tÄ«kla projektÄÅ”ana nebÅ«s Ä«sti skaidra.
Tad par paÅ”u tÄ«kla dizainu: topoloÄ£ija, marÅ”rutÄÅ”ana, politikas.
Saliksim laboratorijas stendu.
PadomÄsim par to un varbÅ«t praktizÄsim ierÄ«ces inicializÄÅ”anu tÄ«klÄ.
Un tad par katru komponentu intÄ«mÄ detaļÄ.
Un jÄ, es nesolu graciozi noslÄgt Å”o ciklu ar gatavu risinÄjumu. š
Noderīgas saites
Pirms iedziļinÄties sÄrijÄ, ir vÄrts izlasÄ«t NataÅ”as Samoiļenko grÄmatu Python tÄ«kla inženieriem. Un varbÅ«t pÄries kurss.
NoderÄs arÄ« palasÄ«t RFC par datu centru rÅ«pnÄ«cu dizainu no Facebook, ko veidojis PÄteris Lapuhovs.
ArhitektÅ«ras dokumentÄcija sniegs priekÅ”statu par pÄrklÄjuma SDN darbÄ«bu. Volframa audums (agrÄk Open Contrail).
Paldies
RomieÅ”u aiza. KomentÄriem un labojumiem.
Artjoms Äernobajs. Par KDPV.