fbpx

De ce să folosim Python în Rețelistică?

Python este unul din limbajele de programare cele mai populare și căutate în prezent. Acest lucru se întâmplă datorită aplicabilității foarte ample pe care o are acest limbaj de programare: inteligență artificială, Web Development, Quality Assurance, Networking.

În acest articol vom vorbi despre modul în care poți folosi cunoștințele tale de Python în rețelistică.

Rețelele sunt o parte importantă în cadrul oricărei organizații, indiferent dacă avem 5 sau 500 de angajați. O rețea configurată în mod corespunzător ne asigură trafic de mare viteză, securitate, posibilitatea de scalare într-un timp scăzut și poate să-și revină rapid în cazul în care apar probleme în cadrul său. Pentru a îndeplini toate aceste criterii, echipamentele ce formează rețeaua trebuie să fie configurate și actualizate în mod constant.

Pe măsură ce rețeaua evoluează și sunt adăugați mai mulți clienți, cu atât vom adăuga mai multe echipamente iar mentenanța acestora va deveni consumatoare de timp, dacă operațiile sunt efectuate manual. Conectare individuală pe fiecare echipament în parte poate genera probleme din mai multe motive:

  • eroare umană – conectarea la un echipament greșit sau execuția unei comenzi eronate poate duce la down-time considerabil.
  • pierdea conectivității – în cazul în care un segment de rețea devine indisponibil există șansa să nu ne mai putem conecta la toate echipamentele necesare.
  • breșe de securitate – dacă optăm să folosim o conexiune remote prin Telnet, parolele și comenzile transmise către echipament pot fi interceptate și citite cu ușurință.

Pentru a remedia sau preveni problemele enumerate mai sus, administratorii de rețea au recurs la programare pentru a-și îndeplini sarcinile cu mai puțină bătaie de cap. Principalul limbaj de programare ales pentru automatizarea acestor operații este Python, datorită caracteristicilor sale ce îl fac cel mai popular limbaj din zilele noastre:

  • sintaxă ușor de citit
  • numeroase biblioteci la dispoziție
  • potrivit atât pentru scripting cât și pentru dezvoltare de aplicații complexe

Conceptele de software defined networking (SDN), software defined LAN (SD-LAN) au luat amploare în ultimii ani și vin în ajutorul administratorilor de rețea pentru o serie de operații repetitive ce pot consumă mult timp și pot deveni și frustrante. Câteva exemple ar fi:

  • configurarea unui nou echipament – cu ajutorul SD-LAN, putem adăuga un switch sau un router în cadrul rețelei iar acesta își va descărca în mod automat sistemul de operare dorit, fișierul de configurări devenind parte din topologie. Intervenția administrativă este minimă
  • actualizarea sistemelor de operare – un proces riscant și repetitiv ce poate fi automatizat cu ajutorul SDN; parte din procesul de automatizare poate fi și ce anume ne dorim să se întâmple dacă apare o problemă pe parcurs
  • monitorizarea rețelei – toate datele din protocoale precum SNMP, NetFlow, sFlow etc. pot fi stocate și prelucrate cu ușurință în vederea luării de decizii ce țin de securitate sau de scalare

 

Python reprezintă alegerea ideală pentru a îmbina conceptele de programare cu cele de networking și din perspectiva celor mai mari producători de echipamente rețea – atât Cisco cât și Juniper au dezvoltat API-uri ce vin în ajutorul celor care vor să-și automatizeze operațiile zilnice. Aceste API-uri oferă posibilitatea de a realiza configurări pe echipamente din câteva linii de cod, în detrimentul comenzilor clasice.

Un avantaj dat de folosirea unui API este transparența raportată la sintaxă – comenzile necesare pentru configurarea unui protocol se pot schimba începând cu o nouă versiune a sistemului de operare, dar metodele puse la dispoziție pentru a realiza aceeași configurare vor rămâne la fel. Cu ajutorul API-urilor ne putem structura propriul framework care să se conecteze la orice echipament, indiferent de producător, model, sistem de operare etc.

Mai mult decât atât, cei de la Cisco au dezvoltat un întreg modul – Cisco DevNet – care adresează subiectul folosirii limbajului Python în vederea realizării automate a diverse operații. Cu ajutorul acestuia, sunt încurajați administratorii de rețea ce preferă abordarea clasică să își extindă cunoștințele și să își simplifice viața pentru anumite operații.

Sponsori și parteneri