Cisco NX-OS hálózati automatizálás Python használatával
Hálózati automatizálás
- Szoftverhasználati folyamat a hálózat kiépítésének, tesztelésének, telepítésének és hálózatkezelésének automatizálására
- A hálózat hatékonyságának és funkcionalitásának maximalizálása érdekében
- A hálózatok összetettek és terjedelmesek
- Kézi műveletek – több késés
- Az automatizálás agilisabbá és a változásokra érzékenyebbé teszi a hálózatokat
- Előnyök:
- Javított működési hatékonyság
- Csökkentett hibák
Hálózati automatizálási architektúra
Hálózati programozhatóság
- Eszközkészlet a hálózati eszközök üzembe helyezéséhez, kezeléséhez és hibaelhárításához
- Hálózatmérnöki perspektíva – interakció egy eszközzel vagy eszközcsoporttal
- Szoftverfejlesztői perspektíva – a hálózat absztrahálása. Az egész hálózat egyetlen eszköznek látása és szoftveres manipulálása
A hálózati programozhatóság előnyei
- Csökkentett OPEX
- Testreszabás
- Csökkentett emberi hiba
- Működési rugalmasság
- Megnövekedett innovációs lehetőség
Alkalmazásprogramozási felület (API)
- Az API-k olyan mechanizmusok, amelyeket az alkalmazásokkal és más szoftverekkel való kommunikációra használnak.
- Egy API különböző funkciókat hajthat végre attól függően, hogy hol helyezkednek el a folyamatban
- A hálózat különböző összetevőivel való kommunikációra szolgál szoftveren keresztül
- Az API-k általában RESTful API-k
Representational State Transfer (REST) API-k
- A REST-et használó API-t gyakran RESTful API-nak nevezik
- A RESTful API-k Hypertext Transfer Protocol (HTTP) módszereket használnak az adatok összegyűjtésére és kezelésére.
HTTP funkció | Akció |
KAP | Olvas |
POST | Teremt |
TAPASZ | Frissítés/Módosítás |
PUT | Frissítés / Csere |
TÖRÖL | Töröl |
HTTP állapotkódok
HTTP ÁLLAPOT
KÓD |
EREDMÉNY | KÖZÖS OK |
200 | Ok | GET vagy POST használata az adatcseréhez
egy API |
201 | Létrehozva | Erőforrások létrehozása REST API-hívás használatával |
400 | Rossz kérés | A kérés ügyféloldali probléma miatt meghiúsult |
401 | Jogosulatlan | Az ügyfél nem hitelesítette a webhely elérését vagy
API hívás |
403 | Tiltott | Hozzáférés nem biztosított a szolgáltatott adatok alapján
hitelesítő adatok |
404 | Nem található | Oldal a HTTP-n URL hely nem létezik
vagy el van rejtve |
Netmiko végeview
- Netmiko – Python-könyvtár, amelyet széles körben használnak a hálózati eszközökkel való interakcióhoz
- Többszállítós könyvtár
- Cisco IOS/IOS-XE, NX-OS, tűzfalak stb.
- A Paramiko könyvtár SSH funkcióinak kiterjesztett támogatása
- Konfigurációs módokba lépés
- Parancsok küldése
- Kimenetek lekérése
- Ügyeljen az igen/nem felszólításokra
NAPALM Végeview
- NAPALM – Hálózati automatizálási és programozhatósági absztrakciós réteg több gyártó támogatásával
- Olyan funkciókat biztosít, amelyek lehetővé teszik:
- Konfigurációs műveletek (commit vagy rollback)
- Állapotadatok lekérése a hálózati eszközökről
- Tartalmazza a hálózati eszközökkel való kapcsolat létrehozásának módszereit
- Működhet automatizálási eszközökkel – Ansible
- Támogatja a különböző hálózati operációs rendszereket:
- IOS, IOS-XR, NX-OS, JunOS, EOS stb.
NAPALM műveletek
- Csere – Lehetővé teszi a felhasználók számára, hogy lecseréljék a meglévő futó konfigurációt egy teljesen új konfigurációra.
- Egyesítés – Lehetővé teszi a felhasználók számára a konfigurációs módosítások egyesítését a file az eszközön futó konfigurációhoz.
- Összehasonlítás – Hasonlítsa össze az újonnan javasolt konfigurációt a meglévővel. Csak a csereműveletre vonatkozik, az összevonási műveletre nem.
- Elvetés – Visszaállítja az egyesítés konfigurációját file egy üreshez file. Így nem engedi az új konfiguráció alkalmazását az eszközön.
- Végrehajtás – Véglegesíti a javasolt konfigurációt a hálózati eszközön. Más szóval, mint telepítésre használjáktaged konfiguráció.
- Visszaállítás – A futó konfiguráció visszaállítása az utolsó véglegesítés előtt konfigurált állapotra.
Sablonkészítés Jinja2-vel
- A Jinja egy modern sablonnyelv a Python számára – Django sablonok mintájára
- Lehetővé teszi a felhasználó számára, hogy könnyen kommunikáljon a Python programmal
- Az adatok segítségével gyorsan generálhat dinamikus tartalmat
- Előnyök:
- Sablon öröklődés
- Optimális just-in-time összeállítás
- Könnyű hibakeresés
- Konfigurálható szintaxis
- Általánosan használt web keretek, mint például a Flask
- Konfigurációkezelő eszközök – Ansible, Nornir stb.
Határolók
Nornir végeview
- Python alapú automatizálási keretrendszer
- Hálózati és gazdagép-leltár kezelése, valamint közös keretrendszer biztosítása az íráshoz plugins a hálózati eszközök és gazdagépek számára
- Minimális Python 3.6.2-es verzió szükséges
- Többszálú – Alapértelmezés szerint 20 dolgozó szál
- A config segítségével inicializálva file – hivatkozások pár más files
- Gazda leltár file
- Csoport file
- Mindezek files YAML formátumban vannak írva
Nornir Advantages
- Python vagy Golang (Gornir)
- Használja újra a meglévő könyvtárakat – napalm, netmiko
- Gyors gazdagépszűrés bármilyen attribútum vagy attribútumok kombinációja alapján
- Nagyon gyors a szálhasználat miatt
- Használható rendkívül rugalmas és bővíthető automatizálási eszközök készítésére Flask, Django stb.
- Automatikusan gyorsítótárat hajt végre, és bezárja a nyitott kapcsolatokat
Extra források és referenciák
Cisco Press News
Hálózati programozhatóság és automatizálás alapjai [További információ] CCNP és CCIE Security Core SCOR 350-701 hivatalos tanúsítási útmutató
https://www.ciscopress.com/store/ccnp-and-ccie-security-core-scor-350-701-official-cert-9780135971970
Cisco DevNet Professional DEVCOR 350-901 tanulmányi útmutató
https://www.ciscopress.com/store/cisco-devnet-professional-devcor-350-901-study-guide-9780137500048
Egyéb hasznos források:
Interview Vinit Jainnel, a Cisco legfontosabb események közreműködőjével
https://community.cisco.com/t5/networking-documents/interview-with-vinit-jain-cisco-s-top-events-contributor/ta-p/3156059
Vinit kiadványai
http://www.ciscopress.com/authors/bio/255ee209-1418-4938-9a42-d3bece2b46c6
Dokumentumok / Források
![]() |
Cisco NX-OS hálózati automatizálás Python használatával [pdf] Felhasználói kézikönyv NX-OS hálózati automatizálás Python használatával, hálózati automatizálás Python használatával, Python használatával |