L'automatizazione di a rete. Un casu da a so vita

Ehi Habr!

In questu articulu vulemu parlà di l'automatizazione di l'infrastruttura di rete. Un diagramma di travagliu di a reta chì opera in una cumpagnia chjuca ma assai fiera serà presentata. Tutti i partiti cù l'equipaggiu di rete reale sò casuali. Fighjemu un casu chì hè accadutu in questa reta, chì puderia avè purtatu à un chjusu di l'affari per un bellu pezzu è perditi finanziarii seri. A suluzione à stu casu si mette assai bè in u cuncettu di "automatizazione di l'infrastruttura di rete". Aduprendu arnesi d'automatizazione, mostraremu cumu pudete risolve in modu efficace i prublemi cumplessi in pocu tempu, è rifletteremu perchè sti prublemi anu da esse risolti in questu modu è micca altrimenti (via a cunsola).

Légales

I nostri strumenti principali per l'automatizazione sò Ansible (cum'è un strumentu d'automatizazione) è Git (cum'è un repository per i playbooks Ansible). Vogliu fà immediatamente una riservazione chì questu ùn hè micca un articulu introduttivu, induve parlemu di a logica di Ansible o Git, è spiegà e cose basi (per esempiu, chì sò roletaskimodules, schedarii d'inventariu, variàbili in Ansible, o ciò chì succede quandu inserisci i cumandamenti git push o git commit). Questa storia ùn hè micca nantu à cumu pudete praticà Ansible è cunfigurà NTP o SMTP in u vostru equipamentu. Questa hè una storia di cumu pudete risolve rapidamente è preferibilmente un prublema di rete senza errori. Hè ancu cunsigliatu per avè una bona cunniscenza di cumu u travagliu di a rete, in particulare ciò chì hè u stack di protokollu TCP / IP, OSPF, BGP. Piglieremu ancu a scelta di Ansible è Git fora di l'equazioni. Sè avete sempre bisognu di sceglie una suluzione specifica, ricumandemu assai di leghje u libru "Programmabilità è Automatizazione di a Rete. Skills for the Next-Generation Network Engineer" da Jason Edelman, Scott S. Lowe, è Matt Oswalt.

Avà à u puntu.

Formulazione di u prublema

Imaginemu una situazione : 3 ore di a matina, durmi prestu è sunnieghja. Chjama telefonica. U direttore tecnicu chjama:

- Iè?
— ###, ####, #####, u cluster firewall hè cascatu è ùn hè micca risuscitatu !!!
Ti strofinate l'ochji, circate di capisce ciò chì succede è imagine cumu si pò ancu accade. Nant'à u telefunu, pudete sente i capelli nantu à a testa di u direttore chì si strappa, è dumanda à chjamà perchè u generale u chjama in a seconda linea.

Una meza ora dopu, avete cullatu e prime note introduttive da u turnu di duvere, svegliate tutti quelli chì puderanu esse svegliati. In u risultatu, u direttore tecnicu ùn hà micca mentitu, tuttu hè cum'è hè, u gruppu principale di firewalls hè cascatu, è nisun muvimentu di corpu di basa li porta à i so sensi. Tutti i servizii chì a cumpagnia offre ùn funziona micca.

Sceglite un prublema à u vostru gustu, ognunu ricurdarà qualcosa di sfarente. Per esempiu, dopu un aghjurnamentu di notte in l'absenza di una carica pisanti, tuttu hà travagliatu bè, è tutti si sò andati à lettu cuntenti. U trafficu hà cuminciatu à flussu, è i buffer di l'interfaccia cuminciaru à sbulicà per via di un bug in u driver di a carta di rete.

Jackie Chan pò descriverà bè a situazione.

L'automatizazione di a rete. Un casu da a so vita

Grazie, Jackie.

Ùn hè micca una situazione assai piacevule, hè?

Lasciamu a nostra reta fratellu cù i so pensi tristi per un pezzu.

Discutemu cumu l'avvenimenti si svilupperanu più.

Suggeremu u seguitu ordine di presentazione di u materiale

  1. Fighjemu u diagramma di a rete è vede cumu si travaglia;
  2. Descriveremu cumu trasfiriu i paràmetri da un router à l'altru utilizendu Ansible;
  3. Parlemu di l'automatizazione di l'infrastruttura IT in generale.

Schema di rete è descrizzione

U schema

L'automatizazione di a rete. Un casu da a so vita

Fighjemu u schema logicu di a nostra urganizazione. Ùn nomineremu micca i pruduttori di l'equipaggiu specifichi; per i scopi di stu articulu ùn importa micca (U lettore attentu indovinà chì tipu d'equipaggiu hè utilizatu). Questu hè solu unu di i boni vantaghji di travaglià cù Ansible; quandu si stallanu, in generale ùn ci importa micca di quale tipu d'equipaggiu hè. Solu per capiscenu, questu hè l'equipaggiu di venditori famosi, cum'è Cisco, Juniper, Check Point, Fortinet, Palo Alto ... pudete rimpiazzà a vostra propria opzione.

Avemu dui compiti principali per u trafficu in muvimentu:

  1. Assicurà a publicazione di i nostri servizii, chì sò l'affari di a cumpagnia;
  2. Furnite a cumunicazione cù rami, un centru di dati remoti è urganisazioni di terzu (partenarii è clienti), è ancu l'accessu di filiali à Internet attraversu l'uffiziu cintrali.

Cuminciamu cù l'elementi basi:

  1. Dui router di cunfini (BRD-01, BRD-02);
  2. Firewall Cluster (FW-CLUSTER);
  3. Switch Core (L3-CORE);
  4. Un router chì diventerà una linea di salvezza (cum'è risolvemu u prublema, trasfereremu i paràmetri di a rete da FW-CLUSTER à EMERGENZA) (EMERGENZA);
  5. Switch per a gestione di l'infrastruttura di rete (L2-MGMT);
  6. Macchina virtuale cù Git è Ansible (VM-AUTOMATION);
  7. Un laptop nantu à quale a prova è u sviluppu di playbooks per Ansible (Laptop-Automation) hè realizatu.

A reta hè cunfigurata cù un protokollu di routing OSPF dinamicu cù e seguenti aree:

  • Area 0 - area chì include routers rispunsevuli di u trafficu in muvimentu in a zona di SCHANGE;
  • Area 1 - area chì include routers rispunsevuli di l'operazione di i servizii di a cumpagnia;
  • Area 2 - area chì include routers rispunsevuli di u trafficu di gestione di routing;
  • Area N - zoni di rete di branch.

Nant'à i routers di cunfini, hè creatu un router virtuale (VRF-INTERNET), nantu à quale eBGP full view hè stallatu cù l'AS currispundente. iBGP hè cunfiguratu trà VRF. A cumpagnia hà una piscina di indirizzi bianchi chì sò publicati nantu à questi VRF-INTERNET. Arcuni di l'indirizzi bianchi sò diretti direttamente à FW-CLUSTER (indirizzi nantu à quale operanu i servizii di a cumpagnia), alcuni sò instradati à traversu a zona EXCHANGE (servizii interni di a cumpagnia chì necessitanu indirizzi IP esterni, è indirizzi NAT esterni per l'uffizii). Dopu, u trafficu và à i routers virtuali creati nantu à L3-CORE cù indirizzi bianchi è grisgi (zoni di sicurità).

A reta di Gestione usa switch dedicati è rapprisenta una rete fisicamente dedicata. A rete di gestione hè ancu divisa in zoni di sicurità.
U router EMERGENCY duplica fisicamente è logicamente u FW-CLUSTER. Tutte l'interfacce nantu à questu sò disattivate eccettu quelli chì guardanu in a reta di gestione.

L'automatizazione è a so descrizzione

Avemu capitu cumu funziona a reta. Avà fighjemu un passu à passu à ciò chì faremu per trasfirià u trafficu da FW-CLUSTER à EMERGENZA:

  1. Disattivemu l'interfacce nantu à u core switch (L3-CORE) chì u cunnessu à u FW-CLUSTER;
  2. Disattivemu l'interfacce nantu à u kernel switch L2-MGMT chì u cunnetta à u FW-CLUSTER;
  3. Avemu cunfigurà u router di EMERGENZA (per difettu, tutte l'interfaccia sò disattivate nantu à questu, eccettu quelli assuciati cù L2-MGMT):

  • Abilitemu l'interfaccia nantu à EMERGENZA;
  • Avemu cunfigurà l'indirizzu IP esternu (per NAT) chì era nantu à u FW-Cluster;
  • Generemu e dumande gARP per chì l'indirizzi di papaveru in i tavule arp L3-CORE sò cambiati da FW-Cluster à EMERGENZA;
  • Avemu registratu a strada predeterminata cum'è static à BRD-01, BRD-02;
  • Crea regule NAT;
  • Rilevate à l'EMERGENZA OSPF Area 1;
  • Rilevate à l'EMERGENZA OSPF Area 2;
  • Cambiamu u costu di e rotte in Area 1 à 10;
  • Cambiamu u costu di a strada predeterminata in Area 1 à 10;
  • Cambiamu l'indirizzi IP assuciati cù L2-MGMT (à quelli chì eranu in FW-CLUSTER);
  • Generemu e dumande gARP per chì l'indirizzi di papaveru in i tavule arp L2-MGMT sò cambiati da FW-CLUSTER à EMERGENZA.

À novu, turnemu à a formulazione originale di u prublema. Trè ore di a matina, un stress enormu, un sbagliu in ogni stadiu pò purtà à novi prublemi. Pronti à scrive cumandamenti via a CLI? Iè? Ok, almenu andate à sciacquate a faccia, beie un pocu di caffè è riunite a vostra forza di vuluntà.
Bruce, per piacè aiutate i ragazzi.

L'automatizazione di a rete. Un casu da a so vita

Ebbè, continuemu à migliurà a nostra automatizazione.
Quì sottu hè un diagramma di cumu funziona u playbook in termini Ansible. Stu schema riflette ciò chì avemu descrittu ghjustu sopra, hè solu una implementazione specifica in Ansible.
L'automatizazione di a rete. Un casu da a so vita

In questu stadiu, avemu capitu ciò chì deve esse fattu, hà sviluppatu un playbook, hà realizatu teste, è avà simu pronti à lancià.

Un'altra piccula digressione lirica. A facilità di a storia ùn deve micca ingannatu. U prucessu di scrive playbooks ùn era micca cusì simplice è rapidu cum'è puderia pare. A prova hà pigliatu assai tempu, un stand virtuale hè statu creatu, a suluzione hè stata pruvata parechje volte, circa 100 teste sò state realizate.

Lanciamu... Ci hè un sintimu chì tuttu succede assai pianu, ci hè un errore in qualchì locu, qualcosa ùn funziona micca à a fine. U sensu di saltà cù un parachute, ma u parachute ùn vole micca apre subitu ... questu hè normale.

In seguitu, leghjemu u risultatu di l'operazioni realizate di u playbook Ansible (l'indirizzi IP sò stati rimpiazzati per scopi di sicretu):

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

Fattu!

In fatti, ùn hè micca abbastanza prontu, ùn vi scurdate di a cunvergenza di protokolli di routing dinamichi è carricà un gran numaru di rotte in u FIB. Ùn pudemu micca influenzà questu in ogni modu. Aspittemu. Hè travagliatu. Avà hè pronta.

È in u paese di Vilabajo (chì ùn vole micca automatizà a configurazione di a rete) cuntinueghjanu à lavà i piatti. Bruce (certamente, digià sfarente, ma micca menu cool) prova à capisce quantu più ricunfigurazione manuale di l'equipaggiu averà.

L'automatizazione di a rete. Un casu da a so vita

Mi piacerebbe ancu aspittà nantu à un puntu impurtante. Cumu pudemu ritruvà tuttu? Dopu qualchì tempu, riporteremu u nostru FW-CLUSTER à a vita. Questu hè l'equipaggiu principalu, micca una copia di salvezza, a reta deve esse ghjusta nantu à questu.

Ti senti cumu i networkers cumincianu à brusgià? U direttore tecnicu senterà mille argumenti perchè questu ùn deve esse fattu, perchè questu pò esse fattu dopu. Sfurtunatamente, hè cusì chì a reta funziona da una mansa di patchs, pezzi, è resti di u so anticu lussu. Risulta esse un quilt di patchwork. U nostru compitu in generale, micca in questa situazione specifica, ma in generale in principiu, cum'è specialisti di l'informatica, hè di portà u travagliu di a rete à a bella parola inglesa "coherenza", hè assai multifaceted, pò esse traduttu cum'è: coherence. , cuerenza, logica, cuerenza, sistematicità, cumparabilità, cuerenza. Hè tuttu nantu à ellu. Solu in questu statu, a reta hè gestibile, capiscenu chjaramente ciò chì travaglia è cumu, capiscenu chjaramente ciò chì deve esse cambiatu, se ne necessariu, sapemu chjaramente induve cercà se i prublemi sorgi. È solu in una tale rete pudete fà scherzi cum'è quelli chì avemu ghjustu discrittu.

In verità, un altru playbook hè statu preparatu, chì hà tornatu i paràmetri à u so statu originale. A logica di u so funziunamentu hè a listessa (hè impurtante di ricurdà chì l'ordine di i travaglii hè assai impurtante), per ùn allungà un articulu digià abbastanza longu, avemu decisu di ùn publicà micca una lista di l'esekzione di u playbook. Dopu avè realizatu tali esercizii, vi sentite assai più tranquillu è più cunfidendu in u futuru, in più, ogni crutches chì avete ammucciatu quì si palesa immediatamente.

Qualchissia pò scrive à noi è riceve i surghjenti di tuttu u codice scrittu, cù tutti i palybooks. Cuntatti in u prufilu.

scuperti

In u nostru parè, i prucessi chì ponu esse automatizati ùn sò micca cristallizzati. Basatu nantu à ciò chì avemu scontru è ciò chì i nostri culleghi occidentali discutanu, i seguenti temi sò visibili finu à avà:

  • Pruvisione di u dispusitivu;
  • cullizzioni di dati;
  • Rapportu;
  • Risoluzione di prublemi;
  • Cumplicità.

Se ci hè interessu, pudemu cuntinuà a discussione nantu à unu di i temi datu.

Vogliu ancu parlà un pocu di l'automatizazione. Ciò chì deve esse in a nostra intelligenza:

  • U sistema deve campà senza una persona, mentre esse migliuratu da una persona. U sistema ùn deve micca dipende di l'omu;
  • L'operazione deve esse esperta. Ùn ci hè micca una classa di specialisti chì facenu attività di rutina. Ci sò esperti chì anu automatizatu tutta a rutina è risolve solu prublemi cumplessi;
  • I travaglii standard di rutina sò fatti automaticamente "à u toccu di un buttone", nisuna risorsa hè persa. U risultatu di tali compiti hè sempre prevedibile è comprensibile.

È ciò chì duveranu sti punti portanu à:

  • Trasparenza di l'infrastruttura IT (Menu risichi di funziunamentu, mudernizazione, implementazione. Meno downtime annu);
  • A capacità di pianificà e risorse IT (Sistema di pianificazione di capacità - pudete vede quantu hè cunsumatu, pudete vede quantu risorse sò richieste in un sistema unicu, è micca per lettere è visite à i dipartimenti superiori);
  • Possibilità di riduce u numeru di staff IT.

Autori di l 'articulu: Alexander Chelovekov (CCIE RS, CCIE SP) è Pavel Kirillov. Semu interessati à discutiri è pruposti suluzioni nantu à u tema di l'automatizazione di l'infrastruttura IT.


Source: www.habr.com

Add a comment