Ħej Habr!
F'dan l-artikolu nixtiequ nitkellmu dwar l-awtomazzjoni tal-infrastruttura tan-netwerk. Se tiġi ppreżentata dijagramma tax-xogħol tan-netwerk li jopera f'kumpanija waħda żgħira iżda kburija ħafna. Il-logħbiet kollha ma 'tagħmir tan-netwerk reali huma każwali. Se nħarsu lejn każ li seħħ f'dan in-netwerk, li seta' wassal għal għeluq tan-negozju għal żmien twil u telf finanzjarju serju. Is-soluzzjoni għal dan il-każ tidħol tajjeb ħafna fil-kunċett ta '"Awtomazzjoni tal-infrastruttura tan-netwerk". Bl-użu ta 'għodod ta' awtomazzjoni, se nuru kif tista 'ssolvi problemi kumplessi b'mod effettiv fi żmien qasir, u aħna nirriflettu dwar għaliex dawn il-problemi għandhom jiġu solvuti b'dan il-mod u mhux mod ieħor (permezz tal-console).
Ċaħda ta 'responsabbiltà
L-għodod ewlenin tagħna għall-awtomazzjoni huma Ansible (bħala għodda ta 'awtomazzjoni) u Git (bħala repożitorju għal playbooks Ansible). Nixtieq immedjatament nagħmel riżerva li dan mhuwiex artiklu introduttorju, fejn nitkellmu dwar il-loġika ta 'Ansible jew Git, u nispjegaw affarijiet bażiċi (per eżempju, x'inhuma roletaskimodules, fajls ta' inventarju, varjabbli f'Ansible, jew x'jiġri meta inti tidħol fil-kmandi git push jew git commit). Din l-istorja mhix dwar kif tista’ tipprattika Ansible u tikkonfigura NTP jew SMTP fuq it-tagħmir tiegħek. Din hija storja dwar kif tista' malajr u preferibbilment issolvi problema tan-netwerk mingħajr żbalji. Huwa wkoll rakkomandabbli li wieħed jifhem tajjeb kif jaħdem in-netwerk, b'mod partikolari x'inhu l-munzell tal-protokoll TCP/IP, OSPF, BGP. Aħna se nieħdu wkoll l-għażla ta 'Ansible u Git barra mill-ekwazzjoni. Jekk għad trid tagħżel soluzzjoni speċifika, nirrakkomandaw ħafna li taqra l-ktieb “Programmabbiltà u Awtomazzjoni tan-Netwerk. Ħiliet għall-Inġinier tan-Netwerk tal-Ġenerazzjoni li jmiss" minn Jason Edelman, Scott S. Lowe, u Matt Oswalt.
Issa sal-punt.
Dikjarazzjoni tal-problema
Ejja nimmaġinaw sitwazzjoni: 3:XNUMX filgħodu, inti rieqda malajr u ħolm. Telefonata. Id-direttur tekniku jsejjaħ:
- Iva?
— ###, ####, #####, ir-raggruppament tal-firewall waqa' u mhux qed jiżdied!!!
Int togħrok għajnejk, tipprova tifhem x’qed jiġri u timmaġina kif dan jista’ saħansitra jiġri. Fuq it-telefon tista’ tisma’ x-xagħar ta’ ras id-direttur jitqatta’, u jitlob li jċempel lura għax il-ġeneral qed isejjaħlu fit-tieni linja.
Nofs siegħa wara, inti ġbart l-ewwel noti introduttorji mix-xift tax-xogħol, qajmet lil kull min jista’ jitqajjem. Bħala riżultat, id-direttur tekniku ma gideb, kollox huwa kif inhu, il-grupp ewlieni ta 'firewalls waqa', u l-ebda moviment bażiku tal-ġisem ma jġibu f'sensih. Is-servizzi kollha li toffri l-kumpanija ma jaħdmux.
Agħżel problema għall-gosti tiegħek, kulħadd se jiftakar xi ħaġa differenti. Pereżempju, wara aġġornament matul il-lejl fin-nuqqas ta 'tagħbija tqila, kollox ħadem tajjeb, u kulħadd mar jorqod kuntent. It-traffiku beda jiċċirkola, u l-buffers tal-interface bdew ifur minħabba bug fis-sewwieq tal-kard tan-netwerk.
Jackie Chan tista’ tiddeskrivi s-sitwazzjoni sew.
Grazzi, Jackie.
Mhux sitwazzjoni pjaċevoli ħafna, hux?
Ejja nħallu n-netwerk tagħna bro bil-ħsibijiet imdejjaq tiegħu għal ftit żmien.
Ejja niddiskutu kif l-avvenimenti se jiżviluppaw aktar.
Nissuġġerixxu l-ordni li ġejja tal-preżentazzjoni tal-materjal
- Ejja nħarsu lejn id-dijagramma tan-netwerk u naraw kif taħdem;
- Se niddeskrivu kif nittrasferixxu s-settings minn router għal ieħor billi tuża Ansible;
- Ejja nitkellmu dwar l-awtomazzjoni tal-infrastruttura tal-IT kollha kemm hi.
Dijagramma tan-netwerk u deskrizzjoni
L-iskema
Ejja nikkunsidraw id-dijagramma loġika tal-organizzazzjoni tagħna. Mhux se nsemmi manifatturi ta 'tagħmir speċifiku; għall-finijiet ta' dan l-artikolu ma jimpurtax (Il-qarrej attent se raden x'tip ta' tagħmir jintuża). Dan huwa biss wieħed mill-vantaġġi tajbin ta 'ħidma ma' Ansible; meta nistabbilixxu, ġeneralment ma jimpurtanax x'tip ta 'tagħmir huwa. Biss biex tifhem, dan huwa tagħmir minn bejjiegħa magħrufa, bħal Cisco, Juniper, Check Point, Fortinet, Palo Alto ... tista 'tissostitwixxi l-għażla tiegħek stess.
Għandna żewġ kompiti ewlenin għaċ-ċaqliq tat-traffiku:
- Niżguraw il-pubblikazzjoni tas-servizzi tagħna, li huma n-negozju tal-kumpanija;
- Ipprovdi komunikazzjoni ma 'fergħat, ċentru tad-dejta remot u organizzazzjonijiet ta' partijiet terzi (imsieħba u klijenti), kif ukoll aċċess ta 'fergħat għall-Internet permezz tal-uffiċċju ċentrali.
Nibdew bl-elementi bażiċi:
- Żewġ routers tal-fruntiera (BRD-01, BRD-02);
- Firewall Cluster (FW-CLUSTER);
- Swiċċ tal-qalba (L3-CORE);
- Router li se jsir linja ta 'salvataġġ (kif insolvu l-problema, se nittrasferixxu s-settings tan-netwerk minn FW-CLUSTER għal EMERĠENZA) (EMERĠENZA);
- Swiċċijiet għall-ġestjoni tal-infrastruttura tan-netwerk (L2-MGMT);
- Magna virtwali b'Git u Ansible (VM-AUTOMATION);
- Laptop li fuqu jitwettaq l-ittestjar u l-iżvilupp ta 'playbooks għal Ansible (Laptop-Automation).
In-netwerk huwa kkonfigurat bi protokoll ta' routing OSPF dinamiku bl-oqsma li ġejjin:
- Żona 0 – żona li tinkludi routers responsabbli għaċ-ċaqliq tat-traffiku fiż-żona tal-ISCHANGE;
- Żona 1 – żona li tinkludi routers responsabbli għall-operat tas-servizzi tal-kumpanija;
- Żona 2 – żona li tinkludi routers responsabbli għall-ġestjoni tar-rotot tat-traffiku;
- Żona N – żoni tan-netwerks tal-fergħat.
Fuq routers tal-fruntiera, jinħoloq router virtwali (VRF-INTERNET), li fuqu hija installata viżjoni sħiħa tal-eBGP bl-AS assenjat korrispondenti. iBGP huwa kkonfigurat bejn VRFs. Il-kumpanija għandha ġabra ta' indirizzi bojod li huma ppubblikati fuq dawn il-VRF-INTERNET. Uħud mill-indirizzi bojod huma mgħoddija direttament lil FW-CLUSTER (indirizzi li fuqhom joperaw is-servizzi tal-kumpanija), xi wħud huma mgħoddija fiż-żona ta 'ISCHANGE (servizzi interni tal-kumpanija li jeħtieġu indirizzi IP esterni, u indirizzi esterni NAT għall-uffiċċji). Sussegwentement, it-traffiku jmur għal routers virtwali maħluqa fuq L3-CORE b'indirizzi bojod u griżi (żoni ta 'sigurtà).
In-netwerk tal-Ġestjoni juża swiċċijiet dedikati u jirrappreżenta netwerk dedikat fiżikament. In-netwerk ta 'ġestjoni huwa wkoll maqsum f'żoni ta' sigurtà.
Ir-router ta 'EMERĠENZA fiżikament u loġikament jidduplika l-FW-CLUSTER. L-interfaces kollha fuqha huma diżattivati ħlief dawk li jħarsu lejn in-netwerk ta 'ġestjoni.
Awtomazzjoni u d-deskrizzjoni tagħha
Aħna dehret kif jaħdem in-netwerk. Issa ejja nagħtu ħarsa pass pass lejn x’se nagħmlu biex nittrasferixxu t-traffiku minn FW-CLUSTER għal EMERĠENZA:
- Aħna tiddiżattiva l-interfaces fuq is-swiċċ tal-qalba (L3-CORE) li jgħaqqduha mal-FW-CLUSTER;
- Aħna tiddiżattiva l-interfaces fuq is-swiċċ tal-qalba L2-MGMT li jgħaqqduha mal-FW-CLUSTER;
- Aħna kkonfiguraw ir-router ta 'EMERĠENZA (b'mod awtomatiku, l-interfaces kollha huma diżattivati fuqu, ħlief dawk assoċjati ma' L2-MGMT):
- Aħna nippermettu interfaces fuq EMERĠENZA;
- Aħna kkonfigurat l-indirizz IP estern (għal NAT) li kien fuq il-FW-Cluster;
- Aħna niġġeneraw talbiet gARP sabiex l-indirizzi tal-peprin fit-tabelli arp L3-CORE jinbidlu minn FW-Cluster għal EMERĠENZA;
- Aħna nirreġistraw ir-rotta default bħala statika għal BRD-01, BRD-02;
- Oħloq regoli NAT;
- Għolli għal Żona OSPF EMERĠENZA 1;
- Għolli għal Żona OSPF EMERĠENZA 2;
- Nibdlu l-ispiża tar-rotot fiż-Żona 1 sa 10;
- Aħna nibdlu l-ispiża tar-rotta default fiż-Żona 1 sa 10;
- Nibdlu l-indirizzi IP assoċjati ma 'L2-MGMT (għal dawk li kienu fuq FW-CLUSTER);
- Aħna niġġeneraw talbiet gARP sabiex l-indirizzi tal-peprin fit-tabelli arp L2-MGMT jinbidlu minn FW-CLUSTER għal EMERĠENZA.
Għal darb'oħra, nerġgħu lura għall-formulazzjoni oriġinali tal-problema. It-tlieta ta’ filgħodu, stress enormi, żball fi kwalunkwe stadju jista’ jwassal għal problemi ġodda. Lest biex ittajpja l-kmandi permezz tas-CLI? Iva? Ok, għallinqas mur laħlaħ wiċċek, ixrob ftit kafè u iġbor ir-rieda tiegħek.
Bruce, jekk jogħġbok għin lill-guys.
Ukoll, inkomplu ntejbu l-awtomazzjoni tagħna.
Hawn taħt hawn dijagramma ta' kif jaħdem il-playbook f'termini Ansible. Din l-iskema tirrifletti dak li ddeskrivejna eżatt hawn fuq, hija biss implimentazzjoni speċifika f'Ansible.
F'dan l-istadju, indunajna x'hemm bżonn isir, żviluppajna playbook, wettaqna l-ittestjar, u issa lesti li nnieduh.
Digressjoni lirika żgħira oħra. Il-faċilità tal-istorja m'għandhiex tqarraq bik. Il-proċess tal-kitba tal-playbooks ma kienx sempliċi u veloċi daqskemm jista’ jidher. L-ittestjar ħa ħafna ħin, inħoloq stand virtwali, is-soluzzjoni ġiet ittestjata ħafna drabi, saru madwar 100 test.
Ejja nniedu... Hemm sensazzjoni li kollox qed jiġri bil-mod ħafna, hemm żball x'imkien, xi ħaġa mhux se taħdem fl-aħħar. Is-sensazzjoni ta 'qbiż b'paraxut, iżda l-paraxut ma jridx jinfetaħ mill-ewwel... dan huwa normali.
Sussegwentement, naqraw ir-riżultat tal-operazzjonijiet imwettqa tal-playbook Ansible (l-indirizzi IP ġew sostitwiti għal skopijiet ta 'segretezza):
[xxx@emergency ansible]$ ansible-playbook -i /etc/ansible/inventories/prod_inventory.ini /etc/ansible/playbooks/emergency_on.yml
PLAY [------->Emergency on VCF] ********************************************************
TASK [vcf_junos_emergency_on : Disable PROD interfaces to FW-CLUSTER] *********************
changed: [vcf]
PLAY [------->Emergency on MGMT-CORE] ************************************************
TASK [mgmt_junos_emergency_on : Disable MGMT interfaces to FW-CLUSTER] ******************
changed: [m9-03-sw-03-mgmt-core]
PLAY [------->Emergency on] ****************************************************
TASK [mk_routeros_emergency_on : Enable EXT-INTERNET interface] **************************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Generate gARP for EXT-INTERNET interface] ****************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Enable static default route to EXT-INTERNET] ****************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Change NAT rule to EXT-INTERNET interface] ****************
changed: [m9-04-r-04] => (item=12)
changed: [m9-04-r-04] => (item=14)
changed: [m9-04-r-04] => (item=15)
changed: [m9-04-r-04] => (item=16)
changed: [m9-04-r-04] => (item=17)
TASK [mk_routeros_emergency_on : Enable OSPF Area 1 PROD] ******************************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Enable OSPF Area 2 MGMT] *****************************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Change OSPF Area 1 interfaces costs to 10] *****************
changed: [m9-04-r-04] => (item=VLAN-1001)
changed: [m9-04-r-04] => (item=VLAN-1002)
changed: [m9-04-r-04] => (item=VLAN-1003)
changed: [m9-04-r-04] => (item=VLAN-1004)
changed: [m9-04-r-04] => (item=VLAN-1005)
changed: [m9-04-r-04] => (item=VLAN-1006)
changed: [m9-04-r-04] => (item=VLAN-1007)
changed: [m9-04-r-04] => (item=VLAN-1008)
changed: [m9-04-r-04] => (item=VLAN-1009)
changed: [m9-04-r-04] => (item=VLAN-1010)
changed: [m9-04-r-04] => (item=VLAN-1011)
changed: [m9-04-r-04] => (item=VLAN-1012)
changed: [m9-04-r-04] => (item=VLAN-1013)
changed: [m9-04-r-04] => (item=VLAN-1100)
TASK [mk_routeros_emergency_on : Change OSPF area1 default cost for to 10] ******************
changed: [m9-04-r-04]
TASK [mk_routeros_emergency_on : Change MGMT interfaces ip addresses] ********************
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n.254', u'name': u'VLAN-803'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+1.254', u'name': u'VLAN-805'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+2.254', u'name': u'VLAN-807'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+3.254', u'name': u'VLAN-809'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+4.254', u'name': u'VLAN-820'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+5.254', u'name': u'VLAN-822'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+6.254', u'name': u'VLAN-823'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+7.254', u'name': u'VLAN-824'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+8.254', u'name': u'VLAN-850'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+9.254', u'name': u'VLAN-851'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+10.254', u'name': u'VLAN-852'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+11.254', u'name': u'VLAN-853'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+12.254', u'name': u'VLAN-870'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+13.254', u'name': u'VLAN-898'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+14.254', u'name': u'VLAN-899'})
TASK [mk_routeros_emergency_on : Generate gARPs for MGMT interfaces] *********************
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n.254', u'name': u'VLAN-803'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+1.254', u'name': u'VLAN-805'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+2.254', u'name': u'VLAN-807'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+3.254', u'name': u'VLAN-809'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+4.254', u'name': u'VLAN-820'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+5.254', u'name': u'VLAN-822'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+6.254', u'name': u'VLAN-823'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+7.254', u'name': u'VLAN-824'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+8.254', u'name': u'VLAN-850'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+9.254', u'name': u'VLAN-851'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+10.254', u'name': u'VLAN-852'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+11.254', u'name': u'VLAN-853'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+12.254', u'name': u'VLAN-870'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+13.254', u'name': u'VLAN-898'})
changed: [m9-04-r-04] => (item={u'ip': u'х.х.n+14.254', u'name': u'VLAN-899'})
PLAY RECAP ************************************************************************
Magħmul!
Fil-fatt, mhuwiex pjuttost lest, tinsiex dwar il-konverġenza ta 'protokolli ta' routing dinamiċi u t-tagħbija ta 'numru kbir ta' rotot fil-FIB. Ma nistgħu ninfluwenzaw dan bl-ebda mod. Nistennew. Ħadem. Issa lest.
U fir-raħal ta 'Vilabajo (li ma jridx awtomat is-setup tan-netwerk) ikomplu jaħslu l-platti. Bruce (ċertament, diġà differenti, iżda mhux inqas jibred) qed jipprova jifhem kemm se sseħħ aktar rikonfigurazzjoni manwali tat-tagħmir.
Nixtieq nitkellem ukoll fuq punt importanti wieħed. Kif nistgħu nġibu kollox lura? Wara xi żmien, se nġibu l-FW-CLUSTER tagħna lura għall-ħajja. Dan huwa t-tagħmir ewlieni, mhux il-backup, in-netwerk irid jaħdem fuqu.
Tħoss kif in-netwerkers qed jibdew jaħarqu? Id-direttur tekniku se jisma’ elf argument għaliex dan m’għandux isir, għaliex dan jista’ jsir aktar tard. Sfortunatament, dan huwa kif jaħdem in-netwerk minn mazz ta 'garża, biċċiet, u fdalijiet tal-lussu preċedenti tiegħu. Jirriżulta li huwa quilt patchwork. Il-kompitu tagħna b'mod ġenerali, mhux f'din is-sitwazzjoni speċifika, iżda b'mod ġenerali fil-prinċipju, bħala speċjalisti tal-IT, huwa li nġibu x-xogħol tan-netwerk għall-kelma Ingliża sabiħa "konsistenza", hija multidimensjonali ħafna, tista 'tiġi tradotta bħala: koerenza , konsistenza, loġika, koerenza, sistematiċità, komparabbiltà, koerenza. Dan kollu dwaru. F'dan l-istat biss in-netwerk huwa maniġġabbli, nifhmu b'mod ċar x'jaħdem u kif, nifhmu b'mod ċar x'għandu jinbidel, jekk meħtieġ, nafu b'mod ċar fejn inħarsu jekk jinqalgħu problemi. U f'netwerk bħal dan biss tista 'twettaq tricks bħal dawk li għadna kif iddeskrivejna.
Fil-fatt, ġie ppreparat playbook ieħor, li rritorna s-settings għall-istat oriġinali tagħhom. Il-loġika tal-operat tagħha hija l-istess (huwa importanti li wieħed jiftakar li l-ordni tal-kompiti hija importanti ħafna), sabiex ma jittawwalx artikolu diġà pjuttost twil, iddeċidejna li ma nippubblikawx lista tal-eżekuzzjoni tal-playbook. Wara li twettaq eżerċizzji bħal dawn, tħossok ħafna aktar kalm u aktar kunfidenti fil-futur, barra minn hekk, kwalunkwe krozzi li għaqqadhom hemm immedjatament jiżvelaw lilhom infushom.
Kulħadd jista’ jikteb lilna u jirċievi s-sorsi tal-kodiċi bil-miktub kollha, flimkien mal-palybooks kollha. Kuntatti fil-profil.
Sejbiet
Fl-opinjoni tagħna, proċessi li jistgħu jiġu awtomatizzati għadhom ma kristallizzawx. Ibbażat fuq dak li ltqajna magħhom u dak li qed jiddiskutu l-kollegi tagħna tal-Punent, it-temi li ġejjin huma viżibbli s'issa:
- Provvista ta' apparat;
- Ġbir ta' data;
- Rappurtar;
- Soluzzjoni ta 'problemi;
- Konformità.
Jekk ikun hemm interess, nistgħu nkomplu d-diskussjoni dwar wieħed mis-suġġetti mogħtija.
Nixtieq ukoll nitkellem ftit dwar l-awtomazzjoni. X'għandu jkun fil-fehma tagħna:
- Is-sistema trid tgħix mingħajr persuna, filwaqt li tittejjeb minn persuna. Is-sistema m'għandhiex tiddependi fuq il-bnedmin;
- L-operazzjoni għandha tkun esperta. M'hemm l-ebda klassi ta 'speċjalisti li jwettqu kompiti ta' rutina. Hemm esperti li awtomatizzati r-rutina kollha u jsolvu biss problemi kumplessi;
- Ħidmiet standard ta 'rutina jsiru awtomatikament "bil-mess ta' buttuna", l-ebda riżorsi ma jinħlew. Ir-riżultat ta 'ħidmiet bħal dawn huwa dejjem prevedibbli u jinftiehem.
U għal xiex għandhom iwasslu dawn il-punti:
- Trasparenza tal-infrastruttura tal-IT (Inqas riskji ta' tħaddim, modernizzazzjoni, implimentazzjoni. Inqas waqfien fis-sena);
- Il-ħila li tippjana r-riżorsi tal-IT (Sistema ta 'ppjanar tal-kapaċità - tista' tara kemm jiġi kkunsmat, tista 'tara kemm riżorsi huma meħtieġa f'sistema waħda, u mhux b'ittri u żjarat lid-dipartimenti ta' fuq);
- Possibbiltà li jitnaqqas in-numru ta 'persunal tal-IT.
Awturi tal-artiklu: Alexander Chelovekov (CCIE RS, CCIE SP) u Pavel Kirillov. Aħna interessati li niddiskutu u nipproponu soluzzjonijiet dwar is-suġġett tal-awtomazzjoni tal-infrastruttura tal-IT.
Sors: www.habr.com