Uendeshaji wa mtandao. Kesi kutoka kwa maisha ya mtu

Habari Habr!

Katika makala hii tungependa kuzungumza juu ya automatisering ya miundombinu ya mtandao. Mchoro wa kazi wa mtandao unaofanya kazi katika kampuni moja ndogo lakini yenye kiburi sana itawasilishwa. Mechi zote zilizo na vifaa vya mtandao halisi ni za nasibu. Tutaangalia kesi iliyotokea katika mtandao huu, ambayo inaweza kusababisha kufungwa kwa biashara kwa muda mrefu na hasara kubwa za kifedha. Suluhisho la kesi hii linafaa sana katika dhana ya "Automatisering ya miundombinu ya mtandao". Kutumia zana za automatisering, tutaonyesha jinsi unaweza kutatua kwa ufanisi matatizo magumu kwa muda mfupi, na tutatafakari kwa nini matatizo haya yanapaswa kutatuliwa kwa njia hii na si vinginevyo (kupitia console).

Onyo

Zana zetu kuu za uwekaji kiotomatiki ni Ansible (kama zana ya otomatiki) na Git (kama ghala la vitabu vya kucheza vya Ansible). Ningependa kuweka uhifadhi mara moja kwamba hii sio nakala ya utangulizi, ambapo tunazungumza juu ya mantiki ya Ansible au Git, na kuelezea mambo ya msingi (kwa mfano, roletaskimodules ni nini, faili za hesabu, vigeu katika Ansible, au nini kinatokea wakati unaingiza git push au git commit amri). Hadithi hii haihusu jinsi unavyoweza kufanya mazoezi ya Ansible na kusanidi NTP au SMTP kwenye kifaa chako. Hii ni hadithi kuhusu jinsi unavyoweza kutatua tatizo la mtandao haraka na ikiwezekana bila hitilafu. Inashauriwa pia kuwa na ufahamu mzuri wa jinsi mtandao unavyofanya kazi, haswa ni nini safu ya itifaki ya TCP/IP, OSPF, BGP. Pia tutachukua chaguo la Ansible na Git nje ya equation. Ikiwa bado unahitaji kuchagua suluhisho maalum, tunapendekeza sana kusoma kitabu "Programu ya Mtandao na Automation. Ujuzi kwa Mhandisi wa Mtandao wa Kizazi Kijacho" na Jason Edelman, Scott S. Lowe, na Matt Oswalt.

Sasa kwa uhakika.

Taarifa ya tatizo

Hebu fikiria hali: saa 3 asubuhi, umelala usingizi na unaota. Simu. Mkurugenzi wa ufundi anaita:

- Ndiyo?
β€” ###, ####, #####, nguzo ya ngome imeanguka na haiinuki!!!
Unasugua macho yako, ukijaribu kuelewa kinachotokea na kufikiria jinsi hii inaweza kutokea. Kwenye simu unaweza kusikia nywele za kichwa cha mkurugenzi zikipasuka, na anauliza kurudi kwa sababu mkuu anamwita kwenye mstari wa pili.

Nusu saa baadaye, ulikusanya maelezo ya kwanza ya utangulizi kutoka kwa zamu ya wajibu, ukamwamsha kila mtu ambaye angeweza kuamshwa. Kama matokeo, mkurugenzi wa ufundi hakusema uwongo, kila kitu kiko kama ilivyo, nguzo kuu ya ukuta wa moto imeanguka, na hakuna harakati za kimsingi za mwili zinazomletea akili. Huduma zote ambazo kampuni hutoa hazifanyi kazi.

Chagua tatizo kwa ladha yako, kila mtu atakumbuka kitu tofauti. Kwa mfano, baada ya sasisho la usiku kwa kutokuwepo kwa mzigo mzito, kila kitu kilifanya kazi vizuri, na kila mtu alikwenda kulala kwa furaha. Trafiki ilianza kutiririka, na vihifadhi kiolesura vilianza kufurika kwa sababu ya hitilafu katika kiendeshi cha kadi ya mtandao.

Jackie Chan anaweza kuelezea hali hiyo vizuri.

Uendeshaji wa mtandao. Kesi kutoka kwa maisha ya mtu

Asante, Jackie.

Sio hali ya kupendeza sana, sivyo?

Hebu tuache mtandao wetu kaka na mawazo yake ya huzuni kwa muda.

Hebu tujadili jinsi matukio yatakavyoendelea zaidi.

Tunashauri utaratibu wafuatayo wa uwasilishaji wa nyenzo

  1. Hebu tuangalie mchoro wa mtandao na tuone jinsi inavyofanya kazi;
  2. Tutaelezea jinsi tunavyohamisha mipangilio kutoka kwa kipanga njia kimoja hadi kingine kwa kutumia Ansible;
  3. Wacha tuzungumze juu ya otomatiki ya miundombinu ya IT kwa ujumla.

Mchoro wa mtandao na maelezo

Mpango

Uendeshaji wa mtandao. Kesi kutoka kwa maisha ya mtu

Hebu fikiria mchoro wa kimantiki wa shirika letu. Hatutataja watengenezaji maalum wa vifaa; kwa madhumuni ya kifungu hiki haijalishi (Msomaji makini atakisia ni aina gani ya vifaa vinavyotumika). Hii ni moja tu ya faida nzuri za kufanya kazi na Ansible; wakati wa kusanidi, kwa ujumla hatujali ni aina gani ya vifaa. Ili kuelewa tu, hii ni vifaa kutoka kwa wachuuzi wanaojulikana, kama vile Cisco, Juniper, Check Point, Fortinet, Palo Alto...unaweza kubadilisha chaguo lako mwenyewe.

Tuna kazi kuu mbili za kuhamisha trafiki:

  1. Hakikisha uchapishaji wa huduma zetu, ambazo ni biashara ya kampuni;
  2. Kutoa mawasiliano na matawi, kituo cha data cha mbali na mashirika ya tatu (washirika na wateja), pamoja na upatikanaji wa matawi kwenye mtandao kupitia ofisi kuu.

Hebu tuanze na vipengele vya msingi:

  1. Njia mbili za mpaka (BRD-01, BRD-02);
  2. Nguzo ya Firewall (FW-CLUSTER);
  3. Kubadili msingi (L3-CORE);
  4. Kipanga njia ambacho kitakuwa njia ya kuokoa maisha (tunapotatua tatizo, tutahamisha mipangilio ya mtandao kutoka FW-CLUSTER hadi DHARURA) (DHARURA);
  5. Swichi za usimamizi wa miundombinu ya mtandao (L2-MGMT);
  6. Mashine pepe yenye Git na Ansible (VM-AUTOMATION);
  7. Kompyuta ndogo ambayo majaribio na ukuzaji wa vitabu vya kucheza vya Ansible (Laptop-Automation) hufanywa.

Mtandao umesanidiwa kwa itifaki inayobadilika ya uelekezaji ya OSPF yenye maeneo yafuatayo:

  • Eneo la 0 - eneo ambalo linajumuisha ruta zinazohusika na kuhamisha trafiki katika eneo la EXCHANGE;
  • Eneo la 1 - eneo ambalo linajumuisha routers zinazohusika na uendeshaji wa huduma za kampuni;
  • Eneo la 2 - eneo ambalo linajumuisha ruta zinazohusika na trafiki ya usimamizi wa njia;
  • Eneo N - maeneo ya mitandao ya matawi.

Kwenye vipanga njia vya mpaka, kipanga njia cha kawaida (VRF-INTERNET) kinaundwa, ambayo mwonekano kamili wa eBGP umewekwa na AS iliyopewa sambamba. iBGP imesanidiwa kati ya VRF. Kampuni ina anwani nyingi nyeupe ambazo zimechapishwa kwenye VRF-INTERNET hizi. Baadhi ya anwani nyeupe huelekezwa moja kwa moja kwa FW-CLUSTER (anwani ambazo huduma za kampuni zinafanya kazi), zingine hupitishwa kupitia eneo la EXCHANGE (huduma za kampuni ya ndani zinazohitaji anwani za IP za nje, na anwani za nje za NAT za ofisi). Ifuatayo, trafiki huenda kwa vipanga njia halisi vilivyoundwa kwenye L3-CORE na anwani nyeupe na kijivu (kanda za usalama).

Mtandao wa Usimamizi hutumia swichi maalum na inawakilisha mtandao uliojitolea kimwili. Mtandao wa usimamizi pia umegawanywa katika kanda za usalama.
Kipanga njia cha DHARURA kimwili na kimantiki kinanakili FW-CLUSTER. Miingiliano yote juu yake imezimwa isipokuwa ile inayoangalia mtandao wa usimamizi.

Automation na maelezo yake

Tuligundua jinsi mtandao unavyofanya kazi. Sasa hebu tuangalie hatua kwa hatua kile tutakachofanya kuhamisha trafiki kutoka FW-CLUSTER hadi DHARURA:

  1. Tunazima miingiliano kwenye swichi ya msingi (L3-CORE) inayounganisha kwenye FW-CLUSTER;
  2. Tunazima miingiliano kwenye swichi ya kernel ya L2-MGMT inayoiunganisha kwa FW-CLUSTER;
  3. Tunasanidi kipanga njia cha DHARURA (kwa chaguo-msingi, violesura vyote vimezimwa juu yake, isipokuwa zile zinazohusishwa na L2-MGMT):

  • Tunawasha miingiliano kwenye DHARURA;
  • Tunasanidi anwani ya IP ya nje (kwa NAT) iliyokuwa kwenye FW-Cluster;
  • Tunatoa maombi ya gARP ili anwani za poppy katika majedwali ya L3-CORE arp zibadilishwe kutoka FW-Cluster hadi DHARURA;
  • Tunasajili njia chaguo-msingi kama tuli kwa BRD-01, BRD-02;
  • Unda sheria za NAT;
  • Kuongeza kwa DHARURA OSPF Eneo la 1;
  • Kuongeza kwa DHARURA OSPF Eneo la 2;
  • Tunabadilisha gharama ya njia katika Eneo la 1 hadi 10;
  • Tunabadilisha gharama ya njia chaguo-msingi katika Eneo la 1 hadi 10;
  • Tunabadilisha anwani za IP zinazohusiana na L2-MGMT (kwa zile zilizokuwa kwenye FW-CLUSTER);
  • Tunatoa maombi ya gARP ili anwani za poppy katika majedwali ya L2-MGMT arp zibadilishwe kutoka FW-CLUSTER hadi DHARURA.

Tena, tunarudi kwenye uundaji wa awali wa tatizo. Saa tatu asubuhi, mafadhaiko makubwa, kosa katika hatua yoyote inaweza kusababisha shida mpya. Je, uko tayari kuchapa amri kupitia CLI? Ndiyo? Sawa, angalau nenda suuza uso wako, unywe kahawa na kukusanya nguvu zako.
Bruce, tafadhali wasaidie watu.

Uendeshaji wa mtandao. Kesi kutoka kwa maisha ya mtu

Sawa, tunaendelea kuboresha otomatiki yetu.
Chini ni mchoro wa jinsi kitabu cha kucheza kinavyofanya kazi katika masharti Yanayofaa. Mpango huu unaakisi kile tulichoeleza hapo juu, ni utekelezaji mahususi tu katika Ansible.
Uendeshaji wa mtandao. Kesi kutoka kwa maisha ya mtu

Katika hatua hii, tuligundua kinachopaswa kufanywa, tukatengeneza kitabu cha kucheza, tukafanya majaribio, na sasa tuko tayari kukizindua.

Mwitikio mwingine mdogo wa sauti. Urahisi wa hadithi haupaswi kukupotosha. Mchakato wa kuandika vitabu vya kucheza haukuwa rahisi na haraka kama inavyoweza kuonekana. Upimaji ulichukua muda mwingi, msimamo wa kawaida uliundwa, suluhisho lilijaribiwa mara nyingi, vipimo 100 vilifanywa.

Hebu tuzindue ... Kuna hisia kwamba kila kitu kinatokea polepole sana, kuna kosa mahali fulani, kitu hakitafanya kazi mwishoni. Hisia ya kuruka na parachute, lakini parachute haitaki kufungua mara moja ... hii ni ya kawaida.

Ifuatayo, tunasoma matokeo ya shughuli zilizofanywa za kitabu cha kucheza cha Ansible (anwani za IP zilibadilishwa kwa madhumuni ya usiri):

[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 ************************************************************************

Imefanyika!

Kwa kweli, sio tayari kabisa, usisahau kuhusu muunganisho wa itifaki za uelekezaji zenye nguvu na kupakia idadi kubwa ya njia kwenye FIB. Hatuwezi kuathiri hii kwa njia yoyote. Tunasubiri. Ilifanikiwa. Sasa iko tayari.

Na katika kijiji cha Vilabajo (ambacho haitaki kusanidi usanidi wa mtandao kiotomatiki) wanaendelea kuosha vyombo. Bruce (kwa hakika, tayari ni tofauti, lakini sio chini ya baridi) anajaribu kuelewa ni kiasi gani urekebishaji wa mwongozo wa vifaa utafanyika.

Uendeshaji wa mtandao. Kesi kutoka kwa maisha ya mtu

Ningependa pia kuzingatia jambo moja muhimu. Tunawezaje kurejesha kila kitu? Baada ya muda, tutafufua FW-CLUSTER yetu. Hii ndio vifaa kuu, sio nakala rudufu, mtandao lazima uendeshe juu yake.

Je, unahisi jinsi wanamtandao wanavyoanza kuteketea? Mkurugenzi wa ufundi atasikia hoja elfu moja kwa nini hii isifanywe, kwa nini hii inaweza kufanywa baadaye. Kwa bahati mbaya, hivi ndivyo mtandao unavyofanya kazi kutoka kwa rundo la viraka, vipande, na masalio ya anasa yake ya zamani. Inageuka kuwa pamba ya patchwork. Kazi yetu kwa ujumla, sio katika hali hii maalum, lakini kwa ujumla, kama wataalam wa IT, ni kuleta kazi ya mtandao kwa neno zuri la Kiingereza "consistency", lina mambo mengi sana, linaweza kutafsiriwa kama: mshikamano. , uthabiti, mantiki, mshikamano, utaratibu, ulinganifu, mshikamano. Yote ni juu yake. Ni katika hali hii tu mtandao unaoweza kudhibitiwa, tunaelewa wazi kile kinachofanya kazi na jinsi gani, tunaelewa wazi kile kinachohitajika kubadilishwa, ikiwa ni lazima, tunajua wazi wapi kuangalia ikiwa matatizo yanatokea. Na ni katika mtandao kama huo tu unaweza kufanya hila kama zile ambazo tumeelezea hivi punde.

Kwa kweli, kitabu kingine cha kucheza kilitayarishwa, ambacho kilirudisha mipangilio katika hali yao ya asili. Mantiki ya utendakazi wake ni sawa (ni muhimu kukumbuka kuwa mpangilio wa kazi ni muhimu sana), ili sio kurefusha nakala ambayo tayari ni ndefu, tuliamua kutochapisha orodha ya utekelezaji wa kitabu cha kucheza. Baada ya kufanya mazoezi kama haya, utahisi utulivu na ujasiri zaidi katika siku zijazo, kwa kuongezea, vijiti vyovyote ambavyo umerundikana hapo vitajidhihirisha mara moja.

Mtu yeyote anaweza kutuandikia na kupokea vyanzo vya msimbo wote ulioandikwa, pamoja na palybooks zote. Anwani kwenye wasifu.

Matokeo

Kwa maoni yetu, michakato ambayo inaweza kuwa otomatiki bado haijaangaziwa. Kulingana na kile tulichokutana nacho na kile ambacho wenzetu wa Magharibi wanajadili, mada zifuatazo zinaonekana hadi sasa:

  • Utoaji wa kifaa;
  • Mkusanyiko wa data;
  • Kuripoti;
  • Utatuzi wa shida;
  • Ushirikiano.

Ikiwa kuna nia, tunaweza kuendelea na majadiliano juu ya moja ya mada zilizotolewa.

Ningependa pia kuzungumza kidogo kuhusu automatisering. Inapaswa kuwa nini katika ufahamu wetu:

  • Mfumo lazima uishi bila wanadamu, huku ukiboreshwa na wanadamu. Mfumo haupaswi kutegemea wanadamu;
  • Uendeshaji lazima uwe mtaalamu. Hakuna darasa la wataalam ambao hufanya kazi za kawaida. Kuna wataalam ambao wamejiendesha utaratibu mzima na kutatua matatizo magumu tu;
  • Kazi za kawaida za kawaida hufanyika moja kwa moja "kwa kugusa kitufe", hakuna rasilimali zinazopotea. Matokeo ya kazi kama hizo daima yanatabirika na kueleweka.

Na pointi hizi zinapaswa kusababisha nini:

  • Uwazi wa miundombinu ya IT (Hatari ndogo za uendeshaji, kisasa, utekelezaji. Muda mdogo wa kupungua kwa mwaka);
  • Uwezo wa kupanga rasilimali za IT (Mfumo wa kupanga uwezo - unaweza kuona ni kiasi gani kinachotumiwa, unaweza kuona ni rasilimali ngapi zinazohitajika katika mfumo mmoja, na si kwa barua na kutembelea idara za juu);
  • Uwezekano wa kupunguza idadi ya wafanyakazi wa IT.

Waandishi wa makala: Alexander Chelovekov (CCIE RS, CCIE SP) na Pavel Kirillov. Tuna nia ya kujadili na kupendekeza masuluhisho juu ya mada ya otomatiki ya miundombinu ya IT.


Chanzo: mapenzi.com

Kuongeza maoni