Omrežna avtomatizacija Cisco NX-OS z uporabo Pythona
Avtomatizacija omrežja
- Postopek uporabe programske opreme za avtomatizacijo zagotavljanja omrežja, testiranja, uvajanja in upravljanja omrežja
- Za pomoč pri povečanju učinkovitosti in funkcionalnosti omrežja
- Omrežja so po naravi zapletena in obsežna
- Ročne operacije – več zamud
- Avtomatizacija naredi omrežja bolj agilna in odzivna na spremembe
- Prednosti:
- Izboljšana operativna učinkovitost
- Zmanjšane napake
Arhitektura omrežne avtomatizacije
Programiranje omrežja
- To je nabor orodij za uvajanje, upravljanje in odpravljanje težav z omrežno napravo
- Pogled omrežnega inženirja – interakcija z napravo ali skupino naprav
- Perspektiva razvijalca programske opreme – abstrahiranje omrežja. Videti celotno omrežje kot eno samo napravo in jo upravljati s programsko opremo
Prednosti programiranja omrežja
- Zmanjšani OPEX
- Prilagajanje
- Zmanjšana človeška napaka
- Operativna prilagodljivost
- Povečana možnost za inovacije
Vmesnik za programiranje aplikacij (API)
- API-ji so mehanizmi, ki se uporabljajo za komunikacijo z aplikacijami in drugo programsko opremo.
- API lahko izvaja različne funkcije glede na lokacijo v toku
- Uporablja se za komunikacijo z različnimi komponentami omrežja prek programske opreme
- API-ji so običajno RESTful API-ji
API-ji za prenos reprezentativnega stanja (REST).
- API, ki uporablja REST, se pogosto imenuje RESTful API
- API-ji RESTful uporabljajo metode protokola za prenos hiperteksta (HTTP) za zbiranje in obdelavo podatkov.
Funkcija HTTP | Akcija |
DOBITI | Preberi |
OBJAVI | Ustvari |
POKRIV | Posodobi / spremeni |
POSTAVITE | Posodobi / Zamenjaj |
IZBRIŠI | Izbriši |
Kodi stanja HTTP
HTTP STATUS
KODA |
REZULTAT | POGOSTI RAZLOG |
200 | Ok | Uporaba GET ali POST za izmenjavo podatkov z
API |
201 | Ustvarjeno | Ustvarjanje virov z uporabo klica REST API |
400 | Slaba zahteva | Zahteva ni uspela zaradi težave na strani odjemalca |
401 | Nepooblaščeno | Odjemalec ni preverjen za dostop do spletnega mesta oz
API klic |
403 | Prepovedano | Dostop ni odobren na podlagi dobavljenega
poverilnice |
404 | Ni najdeno | Stran pri HTTP URL lokacija ne obstaja
ali je skrita |
Netmiko Konecview
- Netmiko – knjižnica Python, ki se v veliki meri uporablja za interakcijo z omrežnimi napravami
- Knjižnica več prodajalcev
- Cisco IOS/IOS-XE, NX-OS, požarni zidovi itd.
- Razširjena podpora za funkcionalnost SSH knjižnice Paramiko
- Prehod v konfiguracijske načine
- Pošiljanje ukazov
- Pridobivanje izhodov
- Skrb za pozive da/ne
NAPALM Konecview
- NAPALM – Abstraktna plast avtomatizacije omrežja in programirljivosti s podporo več proizvajalcev
- Zagotavlja funkcije, ki omogočajo:
- Konfiguracijske operacije (zaveza ali povrnitev)
- Pridobite podatke o stanju iz omrežnih naprav
- Vsebuje metode za vzpostavitev povezave z omrežnimi napravami
- Lahko deluje v povezavi z orodji za avtomatizacijo – Ansible
- Ima podporo za različne omrežne OS:
- IOS, IOS-XR, NX-OS, JunOS, EOS itd.
Operacije NAPALM
- Zamenjaj – uporabnikom omogoča zamenjavo obstoječe tekoče konfiguracije s popolnoma novo konfiguracijo.
- Spoji – uporabnikom omogoča združitev sprememb konfiguracije iz a file na tekočo konfiguracijo v napravi.
- Primerjaj – primerjajte na novo predlagano konfiguracijo z obstoječo. Velja samo za operacijo zamenjave in ne za operacijo spajanja.
- Zavrzi – ponastavi konfiguracijo spajanja file na prazno file. Tako ne dovolite uporabe nove konfiguracije v napravi.
- Potrdi – potrdi predlagano konfiguracijo v omrežno napravo. Z drugimi besedami, uporablja se za uvajanje kottaged konfiguracijo.
- Povrni nazaj – Povrni (vrni nazaj) tekočo konfiguracijo na shranjeno konfiguracijo pred zadnjo potrditvijo.
Predlogiranje z Jinja2
- Jinja je sodoben jezik za predloge za Python – oblikovan po predlogah Django
- Uporabniku omogoča enostavno interakcijo s programom Python
- Uporabite podatke za hitro ustvarjanje dinamične vsebine
- Prednosti:
- Dedovanje predloge
- Optimalna pravočasna kompilacija
- Enostavno odpravljanje napak
- Nastavljiva sintaksa
- Pogosto se uporablja z web ogrodja, kot je Flask
- Orodja za upravljanje konfiguracije – Ansible, Nornir itd.
Ločila
Nornir Konecview
- Ogrodje za avtomatizacijo, ki temelji na Pythonu
- Upravljajte inventar omrežja in gostitelja ter zagotovite skupni okvir za pisanje plugins za omrežne naprave in gostitelje
- Zahteva vsaj Python različice 3.6.2
- Večnitno – privzeto je 20 delovnih niti
- Inicializirano z uporabo config file – reference nekaj drugega files
- Gostiteljski inventar file
- skupina file
- Vsi ti fileso napisani v formatu YAML
Nornir Advantages
- Python ali Golang (Gornir)
- Ponovno uporabite obstoječe knjižnice – napalm, netmiko
- Hitro filtriranje gostitelja na podlagi katerega koli atributa ali kombinacije atributov
- Zelo hitro zaradi uporabe niti
- Uporablja se lahko za izdelavo zelo prilagodljivih in razširljivih orodij za avtomatizacijo z uporabo Flask, Django itd.
- Samodejno izvede predpomnjenje in zapre odprte povezave
Dodatni viri in reference
Cisco Press News
Osnove programiranja omrežja in avtomatizacije [Več o tem] CCNP in CCIE Security Core SCOR 350-701 Uradni vodnik za potrdila
https://www.ciscopress.com/store/ccnp-and-ccie-security-core-scor-350-701-official-cert-9780135971970
Študijski vodnik Cisco DevNet Professional DEVCOR 350-901
https://www.ciscopress.com/store/cisco-devnet-professional-devcor-350-901-study-guide-9780137500048
Drugi uporabni viri:
Interview z Vinitom Jainom, glavnim sodelavcem Ciscovih dogodkov
https://community.cisco.com/t5/networking-documents/interview-with-vinit-jain-cisco-s-top-events-contributor/ta-p/3156059
Vinitove publikacije
http://www.ciscopress.com/authors/bio/255ee209-1418-4938-9a42-d3bece2b46c6
Dokumenti / Viri
![]() |
Omrežna avtomatizacija Cisco NX-OS z uporabo Pythona [pdfUporabniški priročnik Omrežna avtomatizacija NX-OS z uporabo Pythona, Omrežna avtomatizacija z uporabo Pythona, z uporabo Pythona |