Netwurk automatisearring. In saak út ien syn libben

Hoi Habr!

Yn dit artikel wolle wy prate oer automatisearring fan netwurkynfrastruktuer. In wurkdiagram fan it netwurk dat wurket yn ien lyts, mar tige grutsk bedriuw sil wurde presintearre. Alle wedstriden mei echte netwurk apparatuer binne willekeurich. Wy sille sjen nei in saak dat barde yn dit netwurk, dat koe hawwe laat ta in saaklike shutdown foar in lange tiid en serieuze finansjele ferliezen. De oplossing foar dit gefal past tige goed yn it konsept fan "Automatisaasje fan netwurkynfrastruktuer". Mei help fan automatisearring ark, wy sille sjen litte hoe't jo kinne effektyf oplosse komplekse problemen yn in koarte tiid, en wy sille reflektearje op wêrom dizze problemen moatte wurde oplost op dizze manier en net oars (fia de konsole).

Disclaimer

Us wichtichste ark foar automatisearring binne Ansible (as in automatisearring ark) en Git (as in repository foar Ansible playbooks). Ik wol fuortendaliks in foarbehâld meitsje dat dit gjin ynliedend artikel is, wêr't wy prate oer de logika fan Ansible of Git, en basis dingen útlizze (bygelyks wat binne roletaskimodules, ynventarisaasjebestannen, fariabelen yn Ansible, of wat bart as wannear jo ynfiere de git push of git commit kommando's). Dit ferhaal giet net oer hoe't jo Ansible kinne oefenje en NTP of SMTP op jo apparatuer konfigurearje. Dit is in ferhaal oer hoe't jo fluch en leafst in netwurkprobleem sûnder flaters kinne oplosse. It is ek oan te rieden om in goed begryp te hawwen fan hoe't it netwurk wurket, benammen wat de TCP / IP, OSPF, BGP protokol stack is. Wy sille ek de kar fan Ansible en Git út 'e fergeliking nimme. As jo ​​​​noch in spesifike oplossing moatte kieze, riede wy tige oan om it boek "Netwurkprogrammabiliteit en automatisearring te lêzen. Skills for the Next-Generation Network Engineer" troch Jason Edelman, Scott S. Lowe, en Matt Oswalt.

No nei it punt.

Probleemintwurding

Litte wy ús in situaasje foarstelle: 3 oere moarns, do bist fêst yn 'e sliep en dreamt. Tillefoantsje. De technysk direkteur ropt:

- Ja?
— ###, ####, #####, it brânmuorrekluster is fallen en komt net op!!!
Jo wrijven jo eagen, besykje te begripen wat der bart en jo foarstelle hoe't dit sels barre koe. Oan 'e telefoan kinne jo it hier op' e holle fan 'e direkteur tearen hearre, en hy freget om werom te skiljen, om't de generaal him op 'e twadde line ropt.

In healoere letter sammele jo de earste ynliedende notysjes fan 'e wachttsjinst, makken elkenien wekker dy't wekker wurde koe. As gefolch hat de technysk direkteur net ligen, alles is sa, it haadkluster fan brânmuorre is fallen, en gjin basisbewegingen fan it lichem bringe him ta syn sinnen. Alle tsjinsten dy't it bedriuw biedt wurkje net.

Kies in probleem nei jo smaak, elkenien sil wat oars ûnthâlde. Bygelyks, nei in nacht update by it ûntbrekken fan in swiere lading, alles wurke goed, en elkenien gie op bêd lokkich. Ferkear begûn te streamen, en ynterface buffers begûn te oerstreamen fanwege in brek yn de netwurk card bestjoerder.

Jackie Chan kin de situaasje goed beskriuwe.

Netwurk automatisearring. In saak út ien syn libben

Tankewol, Jackie.

Net in hiel noflike situaasje, is it?

Lit ús netwurk ferlitte broer mei syn tryste tinzen foar in skoftke.

Litte wy beprate hoe't eveneminten fierder sille ûntwikkelje.

Wy stelle de folgjende folchoarder fan presintaasje fan it materiaal foar

  1. Litte wy nei it netwurkdiagram sjen en sjen hoe't it wurket;
  2. Wy sille beskriuwe hoe't wy oerdrage ynstellings fan de iene router nei in oare mei help fan Ansible;
  3. Litte wy prate oer automatisearring fan 'e IT-ynfrastruktuer as gehiel.

Netwurk diagram en beskriuwing

De regeling

Netwurk automatisearring. In saak út ien syn libben

Litte wy it logyske diagram fan ús organisaasje beskôgje. Wy sille gjin spesifike apparatuerfabrikanten neame; foar de doelen fan dit artikel makket it net út (De oandachtige lêzer sil riede hokker soarte apparatuer wurdt brûkt). Dit is gewoan ien fan 'e goede foardielen fan wurkjen mei Ansible; by it opsetten makket it ús oer it algemien net út hokker soarte apparatuer it is. Krekt om te begripen, dit is apparatuer fan bekende leveransiers, lykas Cisco, Juniper, Check Point, Fortinet, Palo Alto ... jo kinne jo eigen opsje ferfange.

Wy hawwe twa haadtaken foar it ferpleatsen fan ferkear:

  1. Soargje foar de publikaasje fan ús tsjinsten, dy't it bedriuw fan it bedriuw binne;
  2. Biede kommunikaasje mei filialen, in datasintrum op ôfstân en organisaasjes fan tredden (partners en kliïnten), lykas tagong fan filialen nei it ynternet fia it sintrale kantoar.

Litte wy begjinne mei de basis eleminten:

  1. Twa grins routers (BRD-01, BRD-02);
  2. Firewall Cluster (FW-CLUSTER);
  3. Core switch (L3-CORE);
  4. In router dy't in lifeline wurde sil (as wy it probleem oplosse, sille wy de netwurkynstellingen oerdrage fan FW-CLUSTER nei EMERGENCY) (EMERGENCY);
  5. Switches foar netwurk ynfrastruktuer behear (L2-MGMT);
  6. Firtuele masine mei Git en Ansible (VM-AUTOMATION);
  7. In laptop wêrop testen en ûntwikkeling fan playbooks foar Ansible (Laptop-Automation) wurdt útfierd.

It netwurk is konfigureare mei in dynamysk OSPF-routingprotokol mei de folgjende gebieten:

  • Gebiet 0 - gebiet dat omfettet routers ferantwurdlik foar it ferpleatsen fan ferkear yn 'e EXCHANGE-sône;
  • Gebiet 1 - gebiet dat omfiemet routers ferantwurdlik foar de eksploitaasje fan bedriuw tsjinsten;
  • Gebiet 2 - gebiet dat omfiemet routers ferantwurdlik foar routing behear ferkear;
  • Gebiet N - gebieten fan branchnetwurken.

Op grinsrouters wurdt in firtuele router (VRF-INTERNET) makke, wêrop eBGP folsleine werjefte is ynstalleare mei de oerienkommende tawiisde AS. iBGP is konfigurearre tusken VRFs. It bedriuw hat in pool fan wite adressen dy't wurde publisearre op dizze VRF-INTERNET. Guon fan 'e wite adressen wurde trochstjoerd direkt nei FW-CLUSTER (adressen dêr't it bedriuw syn tsjinsten operearje), guon wurde stjoerd troch de EXCHANGE sône (ynterne bedriuw tsjinsten dy't fereaskje eksterne IP adressen, en eksterne NAT adressen foar kantoaren). Dêrnei giet it ferkear nei firtuele routers makke op L3-CORE mei wite en grize adressen (befeiligingssônes).

It Management netwurk brûkt tawijd switches en fertsjintwurdiget in fysyk tawijd netwurk. It behear netwurk is ek ferdield yn feiligens sônes.
De EMERGENCY router duplicates fysyk en logysk de FW-CLUSTER. Alle ynterfaces op it binne útskeakele útsein dyjingen dy't sjogge yn it behear netwurk.

Automatisearring en syn beskriuwing

Wy hawwe útfûn hoe't it netwurk wurket. Litte wy no in stap foar stap sjen wat wy sille dwaan om ferkear fan FW-CLUSTER nei EMERGENCY oer te dragen:

  1. Wy skeakelje de ynterfaces op 'e kearn switch (L3-CORE) dy't ferbine it mei de FW-CLUSTER;
  2. Wy skeakelje de ynterfaces op 'e L2-MGMT kernel switch dy't it ferbine mei de FW-CLUSTER;
  3. Wy konfigurearje de EMERGENCY-router (standert binne alle ynterfaces dêryn útskeakele, útsein dejingen dy't ferbûn binne mei L2-MGMT):

  • Wy ynskeakelje ynterfaces op EMERGENCY;
  • Wy konfigurearje it eksterne IP-adres (foar NAT) dat op it FW-kluster wie;
  • Wy generearje gARP fersiken sadat de poppy adressen yn de L3-CORE arp tabellen wurde feroare fan FW-Cluster nei EMERGENCY;
  • Wy registrearje de standert rûte as statysk nei BRD-01, BRD-02;
  • Meitsje NAT regels;
  • Ferheegje nei EMERGENCY OSPF Area 1;
  • Ferheegje nei EMERGENCY OSPF Area 2;
  • Wy feroarje de kosten fan rûtes yn Area 1 oan 10;
  • Wy feroarje de kosten fan de standert rûte yn Area 1 oan 10;
  • Wy feroarje de IP-adressen ferbûn mei L2-MGMT (oan dyjingen dy't wiene op FW-CLUSTER);
  • Wy generearje gARP-oanfragen sadat de poppy-adressen yn 'e L2-MGMT-arp-tabellen wurde feroare fan FW-CLUSTER nei EMERGENCY.

Nochris komme wy werom nei de oarspronklike formulearring fan it probleem. Trije oere moarns, enoarme stress, in flater yn elk stadium kin liede ta nije problemen. Klear om kommando's te typen fia de CLI? Ja? Ok, gean teminsten dyn gesicht spoelje, wat kofje drinke en dyn wilskrêft sammelje.
Bruce, help asjebleaft de jonges.

Netwurk automatisearring. In saak út ien syn libben

No, wy bliuwe ús automatisearring ferbetterje.
Hjirûnder is in diagram fan hoe't it playbook wurket yn Ansible termen. Dit skema wjerspegelet wat wy hjirboppe beskreaun, it is gewoan in spesifike ymplemintaasje yn Ansible.
Netwurk automatisearring. In saak út ien syn libben

Op dit poadium realisearre wy wat der dien wurde moat, ûntwikkele in toanielstik, testen útfierd, en no binne wy ​​​​klear om it te lansearjen.

In oare lytse lyryske digression. It gemak fan it ferhaal moat jo net misledigje. It proses fan it skriuwen fan toanielstikken wie net sa ienfâldich en fluch as it liket. Testen naam in protte tiid, in firtuele stand waard makke, de oplossing waard in protte kearen hifke, sawat 100 testen waarden útfierd.

Litte wy lansearje ... Der is in gefoel dat alles hiel stadich bart, der is earne in flater, wat sil op it lêst net wurkje. It gefoel fan springen mei in parachute, mar de parachute wol net direkt iepen ... dit is normaal.

Folgjende lêze wy it resultaat fan 'e útfierde operaasjes fan it Ansible playbook (de IP-adressen waarden ferfongen foar doelen fan geheimhâlding):

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

Done!

Yn feite is it net hielendal klear, ferjit net oer de konverginsje fan dynamyske routingprotokollen en it laden fan in grut oantal rûtes yn 'e FIB. Wy kinne dit op gjin inkelde manier beynfloedzje. Wy wachtsje. It slagge. No is it klear.

En yn it doarp Vilabajo (dat de netwurkopstelling net automatisearje wol) bliuwe se de skûtel waskje. Bruce (wierskynlik al oars, mar net minder cool) besiket te begripen hoefolle mear hânmjittich rekonfiguraasje fan 'e apparatuer sil plakfine.

Netwurk automatisearring. In saak út ien syn libben

Op ien wichtich punt wol ik ek stil stean. Hoe kinne wy ​​alles werom krije? Nei in skoft bringe wy ús FW-CLUSTER wer ta libben. Dit is de wichtichste apparatuer, net reservekopy, it netwurk moat rinne op it.

Fiel jo hoe't netwurkers begjinne te burn out? De technysk direkteur sil tûzen arguminten hearre wêrom't soks net, wêrom soks letter kin. Spitigernôch is dit hoe't it netwurk wurket fan in boskje patches, stikken en oerbliuwsels fan har eardere lúkse. It docht bliken dat it in patchwork quilt is. Us taak yn 't algemien, net yn dizze spesifike situaasje, mar yn' t algemien yn prinsipe, as IT-spesjalisten, is om it wurk fan it netwurk nei it prachtige Ingelske wurd "konsistinsje" te bringen, it is heul mannichfâldich, it kin oerset wurde as: gearhing , gearhing, logika, gearhing, systematisme, fergelykberens, gearhing. It giet allegear om him. Allinich yn dizze steat is it netwurk te behearjen, wy begripe dúdlik wat wurket en hoe, wy begripe dúdlik wat moat wurde feroare, as it nedich is, wy witte dúdlik wêr't te sjen as problemen ûntsteane. En allinich yn sa'n netwurk kinne jo tricks útfiere lykas dejingen dy't wy krekt beskreaun hawwe.

Eins waard in oar playbook taret, dat de ynstellings werombrocht nei har oarspronklike steat. De logika fan syn wurking is itselde (it is wichtich om te betinken dat de folchoarder fan taken tige wichtich is), om in al frij lang artikel net te ferlingjen, hawwe wy besletten gjin list fan 'e útfiering fan' e playbook te pleatsen. Nei it útfieren fan sokke oefeningen sille jo yn 'e takomst folle kalmer en selsbetrouwen fiele, en ek alle krukken dy't jo dêr opsteapele sille harsels fuortendaliks iepenbierje.

Elkenien kin ús skriuwe en de boarnen fan alle skreaune koade ûntfange, tegearre mei alle palybooks. Kontakten yn profyl.

befinings

Neffens ús binne prosessen dy't automatisearre wurde kinne noch net útkristallisearre. Op grûn fan wat wy binne tsjinkaam en wat ús westerske kollega's besprekke, binne de folgjende tema's oant no ta sichtber:

  • foarsjenning fan apparaat;
  • Data kolleksje;
  • ferslachjouwing;
  • Problemen oplosse;
  • Neilibjen.

As der belangstelling is, kinne wy ​​de diskusje oer ien fan de opjûne ûnderwerpen trochgean.

Ik soe it ek graach wat hawwe oer automatisearring. Wat it moat wêze yn ús begryp:

  • It systeem moat libje sûnder in persoan, wylst wurdt ferbettere troch in persoan. It systeem moat net ôfhinklik wêze fan minsken;
  • Operaasje moat saakkundich wêze. D'r is gjin klasse fan spesjalisten dy't routinetaken útfiere. D'r binne saakkundigen dy't de hiele routine automatisearre hawwe en allinich komplekse problemen oplosse;
  • Routine standerttaken wurde automatysk dien "mei it tikjen fan in knop", gjin boarnen wurde fergriemd. It resultaat fan sokke taken is altyd foarsisber en begryplik.

En wat moatte dizze punten liede ta:

  • Transparânsje fan IT-ynfrastruktuer (Minder risiko's fan operaasje, modernisearring, ymplemintaasje. Minder downtime per jier);
  • De mooglikheid om IT-boarnen te planjen (kapasiteitsplanningssysteem - jo kinne sjen hoefolle wurdt konsumearre, jo kinne sjen hoefolle boarnen nedich binne yn ien systeem, en net troch brieven en besites oan 'e topôfdielingen);
  • Mooglikheid om it tal IT-meiwurkers te ferminderjen.

Auteurs fan it artikel: Alexander Chelovekov (CCIE RS, CCIE SP) en Pavel Kirillov. Wy binne ynteressearre yn it besprekken en foarstellen fan oplossingen oer it ûnderwerp fan automatisearring fan IT-ynfrastruktuer.


Boarne: www.habr.com

Add a comment