Аутоматизација мреже. Случај из нечијег живота

Хеј Хабр!

У овом чланку желимо да говоримо о аутоматизацији мрежне инфраструктуре. Биће представљен радни дијаграм мреже која послује у једној малој, али веома поносној компанији. Сви мечеви са стварном мрежном опремом су насумични. Погледаћемо случај који се догодио у овој мрежи, а који је могао довести до гашења пословања на дуже време и озбиљних финансијских губитака. Решење за овај случај се веома добро уклапа у концепт „Аутоматизације мрежне инфраструктуре“. Користећи алате за аутоматизацију, показаћемо како можете ефикасно да решите сложене проблеме за кратко време, и размислићемо о томе зашто ове проблеме треба решавати на овај начин, а не другачије (путем конзоле).

Одрицање од одговорности

Наши главни алати за аутоматизацију су Ансибле (као алатка за аутоматизацију) и Гит (као спремиште за Ансибле плаибоокс). Одмах бих желео да резервишем да ово није уводни чланак, где говоримо о логици Ансибле-а или Гита, и објашњавамо основне ствари (на пример, шта су ролетаскимодули, фајлови инвентара, варијабле у Ансибле-у или шта се дешава када унесете команде гит пусх или гит цоммит). Ова прича није о томе како можете да вежбате Ансибле и да конфигуришете НТП или СМТП на својој опреми. Ово је прича о томе како можете брзо и пожељно решити мрежни проблем без грешака. Такође је препоручљиво добро разумети како мрежа функционише, посебно шта је стог ТЦП/ИП, ОСПФ, БГП протокола. Такође ћемо избацити избор Ансибле-а и Гит-а из једначине. Ако и даље треба да изаберете одређено решење, топло препоручујемо да прочитате књигу „Нетворк Программабилити анд Аутоматион. Вештине за мрежног инжењера следеће генерације“ од Џејсона Еделмана, Скота С. Лоуа и Мета Освалта.

Сада на ствар.

Проблем статемент

Замислимо ситуацију: 3 сата ујутру чврсто спавате и сањате. Телефонски позив. Технички директор позива:

- Да?
— ###, ####, #####, кластер заштитног зида је пао и не расте!!!
Трљате очи, покушавајући да схватите шта се дешава и замислите како би се то уопште могло догодити. На телефону се чује како се директору цепа коса на глави, а он тражи да се јави јер га генерал зове на другу линију.

Пола сата касније сакупили сте прве уводне белешке из дежурства, пробудили све који су могли да се разбуде. Као резултат тога, технички директор није лагао, све је како јесте, главни кластер заштитних зидова је пао, а никакви основни покрети тела га не доводе до памети. Све услуге које компанија нуди не раде.

Изаберите проблем по свом укусу, свако ће запамтити нешто другачије. На пример, након ажурирања преко ноћи у одсуству великог оптерећења, све је функционисало добро, и сви су отишли ​​​​у кревет срећни. Саобраћај је почео да тече, а бафери интерфејса су почели да се преливају због грешке у драјверу мрежне картице.

Џеки Чен може добро да опише ситуацију.

Аутоматизација мреже. Случај из нечијег живота

Хвала ти, Јацкие.

Није баш пријатна ситуација, зар не?

Оставимо нашу мрежу брате са његовим тужним мислима на неко време.

Хајде да разговарамо о томе како ће се догађаји даље развијати.

Предлажемо следећи редослед излагања материјала

  1. Хајде да погледамо мрежни дијаграм и видимо како он функционише;
  2. Описаћемо како преносимо подешавања са једног рутера на други користећи Ансибле;
  3. Хајде да причамо о аутоматизацији ИТ инфраструктуре у целини.

Мрежни дијаграм и опис

Схема

Аутоматизација мреже. Случај из нечијег живота

Хајде да размотримо логички дијаграм наше организације. Нећемо именовати одређене произвођаче опреме; за потребе овог чланка то није важно (Пажљиви читалац ће погодити каква се опрема користи). Ово је само једна од добрих предности рада са Ансибле-ом; приликом подешавања, генерално нас не занима каква је то опрема. Само да разумемо, ово је опрема познатих произвођача, као што су Цисцо, Јунипер, Цхецк Поинт, Фортинет, Пало Алто...можете заменити своју опцију.

Имамо два главна задатка за кретање саобраћаја:

  1. Обезбедити објављивање наших услуга, које су делатност компаније;
  2. Омогућити комуникацију са филијалама, удаљеним дата центром и независним организацијама (партнерима и клијентима), као и приступ филијалама Интернету преко централне канцеларије.

Почнимо са основним елементима:

  1. Два гранична рутера (БРД-01, БРД-02);
  2. Кластер заштитног зида (ФВ-ЦЛУСТЕР);
  3. Прекидач језгра (Л3-ЦОРЕ);
  4. Рутер који ће постати спас (како решимо проблем, пренећемо мрежна подешавања са ФВ-ЦЛУСТЕР на ХИТНО) (ХИТНО);
  5. Прекидачи за управљање мрежном инфраструктуром (Л2-МГМТ);
  6. Виртуелна машина са Гит и Ансибле (ВМ-АУТОМАТИОН);
  7. Лаптоп на коме се врши тестирање и развој плаибоок-а за Ансибле (Лаптоп-Аутоматион).

Мрежа је конфигурисана са динамичким ОСПФ протоколом за рутирање са следећим областима:

  • Област 0 – област која обухвата рутере одговорне за кретање саобраћаја у зони ЕКСЦХАНГЕ;
  • Област 1 – област која обухвата рутере одговорне за рад услуга компаније;
  • Област 2 – област која обухвата рутере одговорне за рутирање управљања саобраћајем;
  • Област Н – подручја мреже експозитура.

На граничним рутерима се креира виртуелни рутер (ВРФ-ИНТЕРНЕТ) на коме је инсталиран еБГП фулл виев са одговарајућим додељеним АС. иБГП је конфигурисан између ВРФ-ова. Компанија има скуп белих адреса које су објављене на овим ВРФ-ИНТЕРНЕТ-у. Неке од белих адреса се рутирају директно у ФВ-ЦЛУСТЕР (адресе на којима функционишу услуге компаније), неке се рутирају кроз зону ЕКСЦХАНГЕ (интерне услуге компаније које захтевају екстерне ИП адресе и екстерне НАТ адресе за канцеларије). Затим, саобраћај иде ка виртуелним рутерима креираним на Л3-ЦОРЕ са белим и сивим адресама (безбедносне зоне).

Мрежа управљања користи наменске прекидаче и представља физички наменску мрежу. Мрежа управљања је такође подељена на безбедносне зоне.
ЕМЕРГЕНЦИ рутер физички и логички дуплира ФВ-ЦЛУСТЕР. Сви интерфејси на њему су онемогућени осим оних који гледају у мрежу управљања.

Аутоматизација и њен опис

Схватили смо како мрежа функционише. Хајде сада да погледамо корак по корак шта ћемо урадити да пребацимо саобраћај са ФВ-ЦЛУСТЕР на ХИТНЕ:

  1. Онемогућавамо интерфејсе на прекидачу језгра (Л3-ЦОРЕ) који га повезују са ФВ-ЦЛУСТЕР;
  2. Онемогућавамо интерфејсе на Л2-МГМТ прекидачу кернела који га повезују са ФВ-ЦЛУСТЕР;
  3. Конфигуришемо ЕМЕРГЕНЦИ рутер (подразумевано, сви интерфејси су онемогућени на њему, осим оних повезаних са Л2-МГМТ):

  • Омогућавамо интерфејсе у хитним случајевима;
  • Конфигуришемо спољну ИП адресу (за НАТ) која је била на ФВ-кластеру;
  • Ми генеришемо гАРП захтеве тако да се макове адресе у Л3-ЦОРЕ арп табелама мењају из ФВ-Цлустер у ХИТНО;
  • Ми региструјемо подразумевану руту као статичну до БРД-01, БРД-02;
  • Креирајте НАТ правила;
  • Подигните до ХИТНЕ ОСПФ области 1;
  • Подигните до ХИТНЕ ОСПФ области 2;
  • Мењамо цену рута у области 1 у 10;
  • Ми мењамо цену подразумеване руте у области 1 у 10;
  • Ми мењамо ИП адресе повезане са Л2-МГМТ (у оне које су биле на ФВ-ЦЛУСТЕР);
  • Ми генеришемо гАРП захтеве тако да се адресе мака у Л2-МГМТ арп табелама мењају из ФВ-ЦЛУСТЕР у ХИТНО.

Поново се враћамо на првобитну формулацију проблема. Три сата ујутру, огроман стрес, грешка у било којој фази може довести до нових проблема. Спремни за унос команди преко ЦЛИ-а? Да? Ок, иди бар да испериш лице, попиј кафу и скупи снагу воље.
Бруце, молим те помози момцима.

Аутоматизација мреже. Случај из нечијег живота

Па, настављамо да побољшавамо нашу аутоматизацију.
Испод је дијаграм како приручник ради у Ансибле терминима. Ова шема одражава оно што смо описали горе, то је само специфична имплементација у Ансибле-у.
Аутоматизација мреже. Случај из нечијег живота

У овој фази смо схватили шта треба да се уради, израдили смо приручник, спровели тестирање и сада смо спремни да га покренемо.

Још једна мала лирска дигресија. Лакоћа приче не би требало да вас заведе. Процес писања уџбеника није био тако једноставан и брз као што се чини. Тестирање је одузело доста времена, направљен је виртуелни штанд, решење је тестирано више пута, спроведено је око 100 тестова.

Покренимо... Има осећај да се све дешава веома споро, негде је грешка, нешто на крају неће да ради. Осећај скакања са падобраном, али падобран не жели да се отвори одмах... ово је нормално.

Затим читамо резултат извршених операција Ансибле плаибоок-а (ИП адресе су замењене ради тајности):

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

Готово!

У ствари, није сасвим спреман, не заборавите на конвергенцију динамичких протокола рутирања и учитавање великог броја рута у ФИБ. На то не можемо ни на који начин утицати. Чекамо. Успело је. Сада је спреман.

А у селу Вилабајо (које не жели да аутоматизује подешавање мреже) настављају да перу судове. Брус (додуше, већ другачији, али ништа мање кул) покушава да схвати колико ће се још ручно реконфигурисати опрема.

Аутоматизација мреже. Случај из нечијег живота

Такође бих желео да се задржим на једној важној тачки. Како да све вратимо? После неког времена, вратићемо наш ФВ-ЦЛУСТЕР у живот. Ово је главна опрема, а не резервна, мрежа мора да ради на њој.

Да ли осећате како мрежари почињу да изгарају? Технички директор ће чути хиљаду аргумената зашто то не би требало да се ради, зашто то може касније. Нажалост, мрежа овако функционише од гомиле закрпа, делова и остатака некадашњег луксуза. Испоставља се да је патцхворк јорган. Наш задатак генерално, не у овој конкретној ситуацији, већ у принципу, као ИТ стручњаци, је да рад мреже доведемо до прелепе енглеске речи „цонсистенци“, веома је вишеструка, може се превести као: кохерентност , доследност, логика, кохерентност, систематичност, упоредивост, кохерентност. Све је о њему. Само у овом стању је мрежа управљива, јасно разумемо шта и како функционише, јасно разумемо шта треба променити, ако је потребно, јасно знамо где да тражимо ако дође до проблема. И само у таквој мрежи можете изводити трикове попут ових које смо управо описали.

Заправо, припремљена је још једна књига која је поставке вратила у првобитно стање. Логика његовог рада је иста (важно је запамтити да је редослед задатака веома важан), да не бисмо продужили ионако прилично дугачак чланак, одлучили смо да не постављамо списак извршења плаибоок-а. Након извођења оваквих вежби, осећаћете се много мирније и сигурније у будућност, а све штаке које сте тамо нагомилали одмах ће се открити.

Свако може да нам пише и добије изворе свих писаних кодова, заједно са свим књигама. Контакти у профилу.

Налази

По нашем мишљењу, процеси који се могу аутоматизовати још се нису искристалисали. На основу онога са чиме смо се сусрели и о чему разговарају наше западне колеге, до сада су видљиве следеће теме:

  • Обезбеђивање уређаја;
  • Прикупљање података;
  • Извјештавање;
  • Решавање проблема;
  • Сагласност.

Ако постоји интересовање, можемо да наставимо дискусију на једну од задатих тема.

Такође бих желео да причам мало о аутоматизацији. Шта би то требало да буде по нашем схватању:

  • Систем мора да живи без човека, а да га човек унапређује. Систем не треба да зависи од људи;
  • Операција мора бити стручна. Не постоји класа специјалиста који обављају рутинске послове. Постоје стручњаци који су аутоматизовали целу рутину и решавају само сложене проблеме;
  • Рутински стандардни задаци се обављају аутоматски „притиском на дугме“, не троше се ресурси. Резултат таквих задатака је увек предвидљив и разумљив.

И до чега би ове тачке требале довести:

  • Транспарентност ИТ инфраструктуре (мање ризика рада, модернизације, имплементације. Мање застоја годишње);
  • Могућност планирања ИТ ресурса (Систем планирања капацитета – можете видети колико је потрошено, можете видети колико ресурса је потребно у једном систему, а не писмима и посетама највишим одељењима);
  • Могућност смањења броја ИТ особља.

Аутори чланка: Александар Человеков (ЦЦИЕ РС, ЦЦИЕ СП) и Павел Кириллов. Заинтересовани смо за дискусију и предлагање решења на тему аутоматизације ИТ инфраструктуре.


Извор: ввв.хабр.цом

Додај коментар