Тармакты автоматташтыруу. Бир адамдын жашоосунан бир окуя

Эй Хабр!

Бул макалада биз тармактык инфраструктураны автоматташтыруу жөнүндө сөз кылгыбыз келет. Бир кичинекей, бирок абдан сыймыктанган компанияда иштеген тармактын жумушчу диаграммасы көрсөтүлөт. Чыныгы тармак жабдуулары менен бардык дал келүүлөр кокустук болуп саналат. Биз бул тармакта болуп өткөн ишти карап чыгабыз, ал бизнестин узак убакытка токтоп калышына жана олуттуу каржылык жоготууларга алып келиши мүмкүн. Бул иштин чечими "Тармактык инфраструктураны автоматташтыруу" концепциясына абдан туура келет. Автоматташтыруу куралдарын колдонуу менен биз татаал маселелерди кыска убакыттын ичинде кантип натыйжалуу чече аларыңызды көрсөтөбүз жана эмне үчүн бул көйгөйлөрдү башка жол менен эмес (консоль аркылуу) чечүү керектиги жөнүндө ой жүгүртөбүз.

баш тартуу

Биздин негизги автоматташтыруу куралдарыбыз Ansible (автоматташтыруу куралы катары) жана Git (Ansible окуу китептери үчүн репозиторий катары). Мен дароо эскертип койгум келет, бул киришүү макаласы эмес, анда биз Ansible же Git логикасы жөнүндө сүйлөшөбүз жана негизги нерселерди түшүндүрөбүз (мисалы, Ansible'де роль тапшырма модулдары, инвентаризация файлдары, Ansible өзгөрмөлөрү деген эмне, же эмне болот. git push же git commit буйруктарын киргизесиз). Бул окуя сиз Ansible менен кантип машыгып, NTP же SMTPди өз жабдыктарыңызда конфигурациялай ала тургандыгы жөнүндө эмес. Бул тармак көйгөйүн катасыз кантип тез жана жакшыраак чече ала тургандыгы жөнүндө окуя. Тармактын кантип иштээрин, атап айтканда TCP/IP, OSPF, BGP протоколдорунун стеки эмне экенин жакшы түшүнүү сунушталат. Биз ошондой эле Ansible жана Git тандоосун теңдемеден чыгарабыз. Эгер дагы эле белгилүү бир чечимди тандоо керек болсо, биз "Тармактын программаланышы жана автоматташтырылгандыгы" китебин окууну сунуштайбыз. Жейсон Эдельман, Скотт С. Лоу жана Мэтт Освалттын кийинки муундун тармак инженери үчүн көндүмдөрү.

Эми пунктка.

Тапшырманын коюлушу

Бир жагдайды элестетип көрөлү: түнкү саат 3тө катуу уктап, түш көрүп жатасың. Телефон чалуу. Техникалык директор чакырат:

- Ооба?
— ###, ####, #####, брандмауэр кластери кулады жана көтөрүлбөй жатат!!!
Көзүңдү ушалап, эмне болуп жатканын түшүнүүгө жана бул кантип болушу мүмкүн экенин элестетесиң. Телефондон директордун башындагы чачтары тытылып, кайра чалууну суранат, анткени генерал ага экинчи линияда чалып жатат.

Жарым сааттан кийин, сиз нөөмөттөн биринчи кириш жазууларды чогултуп, ойгото тургандардын баарын ойготтуңуз. Натыйжада, техникалык директор калп айткан жок, баары мурункудай, брандмауэрлердин негизги кластери кулап, дененин эч кандай негизги кыймылдары аны эсине келтирбейт. Компания сунуш кылган кызматтардын баары иштебейт.

Даамыңызга жараша көйгөйдү тандаңыз, ар ким ар кандай нерсени эстеп калат. Мисалы, оор жүк жок болгон түнкү жаңыртуудан кийин, баары жакшы иштеп, баары бактылуу уктап калышты. Трафик агып баштады жана тармактык карта драйвериндеги мүчүлүштүктөн улам интерфейс буферлери толуп баштады.

Жеки Чан кырдаалды жакшы сүрөттөй алат.

Тармакты автоматташтыруу. Бир адамдын жашоосунан бир окуя

Рахмат, Джеки.

Абдан жагымдуу жагдай эмес, туурабы?

Бир азга анын кайгылуу ойлору менен биздин тармакты таштап кетели.

Келгиле, окуялар мындан ары кандай өнүгө турганын талкуулайлы.

Материалды берүүнүн төмөнкү тартибин сунуштайбыз

  1. Тармак диаграммасын карап көрөлү жана анын кантип иштээрин көрөлү;
  2. Биз Ansible аркылуу жөндөөлөрдү бир роутерден экинчисине кантип өткөрүп жатканыбызды сүрөттөп беребиз;
  3. Жалпысынан IT инфраструктурасын автоматташтыруу жөнүндө сөз кылалы.

Тармак диаграммасы жана сүрөттөлүшү

схемасы

Тармакты автоматташтыруу. Бир адамдын жашоосунан бир окуя

Биздин уюмдун логикалык схемасын карап көрөлү. Биз белгилүү бир жабдууларды өндүрүүчүлөрдүн атын атабайбыз, бул макаланын максаттары үчүн маанилүү эмес (Көңүл бурган окурман кандай жабдык колдонулганын болжолдойт). Бул Ansible менен иштөөнүн жакшы артыкчылыктарынын бири гана; орнотууда биз анын кандай жабдык экенине маани бербейбиз. Жөн гана түшүнүү үчүн, бул Cisco, Juniper, Check Point, Fortinet, Palo Alto сыяктуу белгилүү сатуучулардын жабдуулары...сиз өзүңүздүн вариантыңызды алмаштырсаңыз болот.

Бизде трафикти жылдыруу боюнча эки негизги милдетибиз бар:

  1. Компаниянын иши болгон биздин кызматтарыбыздын жарыяланышын камсыз кылуу;
  2. Филиалдар, алыскы маалымат борбору жана үчүнчү тараптык уюмдар (өнөктөштөр жана кардарлар) менен байланышты, ошондой эле филиалдардын борбордук кеңсе аркылуу Интернетке кирүү мүмкүнчүлүгүн камсыз кылуу.

негизги элементтери менен баштайлы:

  1. Эки чек ара роутер (BRD-01, BRD-02);
  2. Firewall кластери (FW-CLUSTER);
  3. Негизги алмаштыргыч (L3-CORE);
  4. Өмүр линиясына айлана турган роутер (көйгөйдү чечкенибизде, тармак жөндөөлөрүн FW-CLUSTERден EMMERGENCY режимине өткөрүп беребиз) (ОЗУ);
  5. Тармактык инфраструктураны башкаруу үчүн которгучтар (L2-MGMT);
  6. Git жана Ansible менен виртуалдык машина (VM-AUTOMATION);
  7. Ansible (Laptop-Automation) үчүн окуу китептерин тестирлөө жана иштеп чыгуу жүргүзүлүп жаткан ноутбук.

Тармак төмөнкү аймактар ​​менен динамикалык OSPF багыттоо протоколу менен конфигурацияланган:

  • 0-аймак – АЛМАШУУ зонасында кыймылдын кыймылына жооптуу роутерлерди камтыган аймак;
  • 1-аймак – компаниянын кызматтарынын иштеши үчүн жооптуу роутерлерди камтыган аймак;
  • 2-аймак – трафикти башкаруу үчүн жооптуу роутерлерди камтыган аймак;
  • N аянты – тармактык тармактардын аймактары.

Чек ара роутерлеринде виртуалдык роутер (VRF-INTERNET) түзүлөт, ага eBGP толук көрүнүшү тиешелүү дайындалган AS менен орнотулган. iBGP VRF ортосунда конфигурацияланган. Компаниянын бул VRF-INTERNETте жарыяланган ак даректеринин бассейни бар. Кээ бир ак даректер FW-CLUSTERге түз багытталат (компаниянын кызматтары иштеген даректер), кээ бирлери EXCHANGE зонасы (тышкы IP даректерди талап кылган компаниянын ички кызматтары жана кеңселер үчүн тышкы NAT даректери) аркылуу багытталат. Андан кийин, трафик ак жана боз даректери (коопсуздук зоналары) менен L3-COREде түзүлгөн виртуалдык роутерлерге барат.

Башкаруу тармагы бөлүнгөн өчүргүчтөрдү колдонот жана физикалык жактан бөлүнгөн тармакты билдирет. Башкаруу тармагы да коопсуздук зоналарына бөлүнөт.
EMERGENCY роутери физикалык жана логикалык жактан FW-CLUSTERди кайталайт. Башкаруу тармагын карагандардан башка, андагы бардык интерфейстер өчүрүлгөн.

Автоматташтыруу жана анын сүрөттөлүшү

Тармактын кантип иштээрин түшүндүк. Эми келгиле, трафикти FW-CLUSTERден ОЗУ КАРАЙ абалга өткөрүү үчүн эмне кылаарыбызды этап-этабы менен карап көрөлү:

  1. Биз негизги которгучтагы (L3-CORE) аны FW-CLUSTERге туташтырган интерфейстерди өчүрөбүз;
  2. L2-MGMT өзөк которгучундагы аны FW-CLUSTERге туташтырган интерфейстерди өчүрөбүз;
  3. Биз EMERGENCY роутерин конфигурациялайбыз (демейки боюнча, L2-MGMT менен байланышкандардан башка бардык интерфейстер анда өчүрүлгөн):

  • Биз EMERGENCY боюнча интерфейстерди иштетебиз;
  • Биз FW-кластердеги тышкы IP даректи (NAT үчүн) конфигурациялайбыз;
  • L3-CORE arp таблицаларындагы апийим даректери FW-Clusterден ОЗГОЧТУК абалга өзгөртүлүшү үчүн gARP сурамдарын түзөбүз;
  • Демейки каттамды BRD-01, BRD-02ге статикалык деп каттайбыз;
  • NAT эрежелерин түзүү;
  • ОЗГОЧУЛ КЫРДААЛДАГЫ 1-аймакка чейин жогорулатуу;
  • ОЗГОЧУЛ КЫРДААЛДАГЫ 2-аймакка чейин жогорулатуу;
  • 1-аймактагы каттамдардын баасын 10го алмаштырабыз;
  • Биз 1-аймактагы демейки маршруттун баасын 10го өзгөртөбүз;
  • L2-MGMT менен байланышкан IP даректерди өзгөртөбүз (FW-CLUSTERде болгондорго);
  • L2-MGMT arp таблицаларындагы апийим даректери FW-CLUSTERден АКЧА КЫРДААЛга өзгөртүлүшү үчүн gARP сурамдарын түзөбүз.

Дагы, биз маселенин баштапкы формулировкасына кайтабыз. Түнкү саат үч, эбегейсиз стресс, ар кандай этаптагы ката жаңы көйгөйлөргө алып келиши мүмкүн. CLI аркылуу буйруктарды терүүгө даярсызбы? Ооба? Макул, жок дегенде барып бетиңди чайкап, кофе ичип, эркиңди чогулт.
Брюс, сураныч, балдарга жардам бер.

Тармакты автоматташтыруу. Бир адамдын жашоосунан бир окуя

Ооба, биз автоматташтырууну жакшыртууну улантабыз.
Төмөндө оюн китебинин Ansible терминдеринде кантип иштээри көрсөтүлгөн. Бул схема биз жогоруда сүрөттөгөн нерсени чагылдырат, бул Ansibleдеги конкреттүү ишке ашыруу.
Тармакты автоматташтыруу. Бир адамдын жашоосунан бир окуя

Бул этапта биз эмне кылуу керектигин түшүндүк, окуу китебин иштеп чыктык, тестирлөөнү өткөрдүк, эми аны ишке киргизүүгө даярбыз.

Дагы бир кичинекей лирикалык чегинүү. Окуянын жеңилдиги сизди адаштырбашы керек. Оюн китептерин жазуу процесси көрүнгөндөй жөнөкөй жана тез болгон жок. Тестирлөө бир топ убакытты талап кылды, виртуалдык стенд түзүлдү, чечим көп жолу сыналды, 100гө жакын тесттер өткөрүлдү.

Ишке киргизели... Бардыгы өтө жай болуп жатат, бир жерде ката болуп жатат, акыры бир нерсе иштебей калат деген сезим бар. Парашют менен секирүү сезими, бирок парашют дароо ачылгысы келбейт... бул нормалдуу көрүнүш.

Андан кийин, биз Ansible оюн китебинин аткарылган операцияларынын натыйжасын окуйбуз (жашыруундуулук үчүн IP даректери алмаштырылган):

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

Кереги жок!

Чынында, ал даяр эмес, динамикалык маршрутташтыруу протоколдорунун конвергенциясы жана FIBге көп сандагы каттамдарды жүктөө жөнүндө унутпаңыз. Биз буга эч кандай таасир эте албайбыз. Күтөбүз. Бул ишке ашты. Азыр ал даяр.

Ал эми Вилабахо кыштагында (тармакты орнотууну автоматташтырууну каалабайт) идиш-аяк жууй беришет. Брюс (чындыгында, буга чейин эле башкача, бирок андан кем эмес) жабдууларды кол менен кайра конфигурациялоо канчалык көп болорун түшүнүүгө аракет кылып жатат.

Тармакты автоматташтыруу. Бир адамдын жашоосунан бир окуя

Мен дагы бир маанилүү жагдайга токтолгум келет. Кантип баарын кайтарып алабыз? Бир нече убакыт өткөндөн кийин, биз FW-CLUSTERди кайра жандандырабыз. Бул негизги жабдуулар, камдык эмес, тармак ага иштеши керек.

Сиз сетевиктердин кантип күйүп баштаганын сезесизби? Техникалык директор эмне үчүн мындай кылбаш керек, эмне үчүн муну кийинчерээк жасоого болот деген миңдеген аргументтерди угат. Тилекке каршы, тармак бир топ тактардан, бөлүктөрдөн жана мурунку люкс калдыктарынан ушундайча иштейт. Бул жамаачы көрпө болуп чыгат. Биздин милдет, жалпысынан, бул конкреттүү кырдаалда эмес, бирок, негизинен, IT адистери катары, тармактын ишин англисче "ырааттуулук" деген кооз сөзгө жеткирүү, ал абдан көп кырдуу, аны төмөнкүчө которууга болот: когеренттик , ырааттуулук, логика, ырааттуулук, системалуулук, салыштыруу, ырааттуулук. Мунун баары ага байланыштуу. Ушул абалда гана тармакты башкарууга болот, биз эмне иштээрин жана кантип иштээрин так түшүнөбүз, эмнени өзгөртүү керек экенин так түшүнөбүз, керек болсо, көйгөйлөр пайда болгондо кайда издөө керектигин так билебиз. Жана ушундай тармакта гана сиз биз айтып өткөн трюктарды жасай аласыз.

Чынында, орнотууларды баштапкы абалына кайтарган дагы бир окуу китеби даярдалган. Анын иштөө логикасы бирдей (милдеттердин тартиби өтө маанилүү экенин эстен чыгарбоо керек), ансыз деле узун макаланы узартпоо үчүн, биз окуу китебинин аткарылышынын тизмесин жарыялабай коюуну чечтик. Мындай көнүгүүлөрдү өткөргөндөн кийин, сиз өзүңүздү бир топ тынчыраак сезесиз жана келечекке ишенимдүү болосуз, мындан тышкары, сиз ал жерде үйүлгөн балдак дароо эле өзүн көрсөтөт.

Ар бир адам бизге кат жазып, бардык жазылган коддун булактарын, бардык палибуктар менен бирге ала алат. Профильдеги байланыштар.

табылгалары

Биздин оюбузча, автоматташтырыла турган процесстер али кристаллдаштырыла элек. Биз жолуккан нерселерге жана батыштык кесиптештерибиз талкуулап жаткан нерселерге таянсак, азырынча төмөнкү темалар көрүнүп турат:

  • Аппаратты камсыздоо;
  • Маалыматтарды чогултуу;
  • Reporting;
  • Проблемаларды чечүү;
  • Сактоо.

Кызыкчылык болсо, берилген темалардын бири боюнча талкууну уланта алабыз.

Мен дагы автоматташтыруу жөнүндө бир аз айткым келет. Биздин түшүнүгүбүздө бул эмне болушу керек:

  • Система адамсыз жашашы керек, ал эми адам тарабынан өркүндөтүлөт. Система адамдан көз каранды болбошу керек;
  • Операция адис болушу керек. Күнүмдүк тапшырмаларды аткарган адистердин классы жок. Бардык күн тартибин автоматташтырган жана татаал маселелерди гана чечкен адистер бар;
  • Кадимки стандарттык тапшырмалар автоматтык түрдө "бир баскычты басуу менен" аткарылат, эч кандай ресурстар текке кетпейт. Мындай милдеттердин натыйжасы ар дайым алдын ала жана түшүнүктүү болуп саналат.

Жана бул пункттар эмнеге алып келиши керек:

  • IT инфраструктурасынын ачыктыгы (Иштетүү, модернизациялоо, ишке ашыруу тобокелдиктери азыраак. Жылына азыраак токтоп калуу);
  • IT-ресурстарды пландаштыруу жөндөмдүүлүгү (Capacity-planning system – сиз канча керектелгенин көрө аласыз, сиз канча ресурстар талап кылынарын бир системада көрө аласыз, ал эми жогорку бөлүмдөргө кат жана баруу аркылуу эмес);
  • IT кызматкерлеринин санын кыскартуу мүмкүнчүлүгү.

Макаланын авторлору: Александр Человеков (CCIE RS, CCIE SP) жана Павел Кириллов. Биз IT инфраструктурасын автоматташтыруу темасын талкуулоого жана чечимдерди сунуштоого кызыкдарбыз.


Source: www.habr.com

Комментарий кошуу