ProHoster > Blog > Administrácia > Automatizácia sieťových služieb alebo ako vybudovať virtuálne laboratórium pomocou OpenDaylight, Postman a Vrnetlab
Automatizácia sieťových služieb alebo ako vybudovať virtuálne laboratórium pomocou OpenDaylight, Postman a Vrnetlab
V tomto článku vám ukážem, ako nastaviť opendaylight pracovať so sieťovým zariadením a tiež ukázať, ako ho používať poštár a jednoduché RESTCONF toto zariadenie možno ovládať. Nebudeme pracovať s hardvérom, ale namiesto toho nasadíme malé virtuálne laboratóriá s použitím jediného smerovača Vrnetlab cez Ubuntu LTS 20.04.
Podrobné nastavenia najskôr ukážem na príklade routera Juniper vMX 20.1R1.11a potom ho porovnáme s nastavením Cisco xRV9000 7.0.2.
Obsah
Požadované znalosti
Часть 1: diskutovať krátko OpenDaylight (ďalej). ODL), poštár и Vrnetlab a prečo ich potrebujeme
Часть 2: popis virtuálneho laboratória
Часть 3: prispôsobiť opendaylight
Часть 4: prispôsobiť Vrnetlab
Часть 5: používaním poštár pripojiť virtuálny smerovač (Juniper vMX) Komu ODL
Часть 6: získajte a zmeňte konfiguráciu smerovača pomocou poštár и ODL
Часть 7: pridajte Cisco xRV9000
Záver
PS
Bibliografia
Požadované znalosti
Aby sa článok nepremenil na list, vynechal som niektoré technické detaily (s odkazmi na literatúru, kde sa o nich dočítate).
V tejto súvislosti vám ponúkam témy, ktoré by bolo dobré (ale takmer nie nevyhnutné) vedieť pred čítaním:
V našom prípade nás zaujíma ako prostriedok na odosielanie REST požiadaviek do OpenDaylight API. Žiadosti môžete samozrejme posielať aj manuálne, ale v Postman vyzerá všetko veľmi prehľadne a dokonale vyhovuje našim účelom.
Pre tých, ktorí chcú kopať: bolo na ňom napísaných veľa školiacich materiálov (napríklad).
Nástroj na nasadenie virtuálnych smerovačov v Dockeri
Podporuje: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR atď.
Open Source
Veľmi zaujímavý, no málo známy nástroj. V našom prípade ho použijeme na spustenie Juniper vMX a Cisco xRV9000 na bežnom Ubuntu 20.04 LTS.
Juniper vMX vstáva v prístavný robotník kontajner (prostredníctvom Vrnetlab) a funguje ako najbežnejší virtuálny smerovač.
ODL pripojený k smerovaču a umožňuje vám ho ovládať.
poštár spustený na samostatnom stroji a cez neho posielame príkazy ODL: pripojenie/odpojenie smerovača, zmena konfigurácie atď.
Komentár k zariadeniu systému
Juniper vMX и ODL vyžadujú pomerne veľa zdrojov na ich stabilnú prevádzku. Iba jeden vMX si pýta 6 Gb RAM a 4 jadrá. Preto bolo rozhodnuté presunúť všetky „ťažké váhy“ do samostatného stroja (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Router na ňom samozrejme „nelieta“, no na malé experimenty výkon stačí.
Časť 3: Nastavenie OpenDaylight
Aktuálna verzia ODL v čase písania tohto článku je Magnesium SR1
1) Nainštalujte Java Open JDK 11 (pre podrobnejšiu inštaláciu tu)
ubuntu:~$ sudo apt install default-jdk
2) Nájdite a stiahnite si najnovšiu zostavu ODLpreto
3) Rozbaľte stiahnutý archív
4) Prejdite do výsledného adresára
5) Spustite ./bin/karaf
V tomto kroku ODL by sa mal spustiť a ocitneme sa v konzole (na prístup zvonku slúži port 8181, ktorý neskôr využijeme).
Ďalej nainštalujte Vlastnosti ODLnavrhnutý na prácu s protokolmi NETCONF и RESTCONF. Ak to chcete urobiť v konzole ODL vykonávame:
Každý podporovaný smerovač Vrnetlab, má svoj vlastný jedinečný postup nastavenia. Kedy Juniper vMX potrebujeme len nahrať archív .tgz s routerom (môžete si ho stiahnuť z oficiálne stránky) do adresára vmx a spustite príkaz make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Budovanie imidžu vMX bude trvať asi 10-20 minút. Je čas ísť na kávu!
"Je to preto, že pri prvom spustení VCP (Control Plane) načíta konfiguračný súbor, ktorý určuje, či bude bežať ako VRR VCP vo vMX. Predtým sa toto spustenie vykonávalo počas spustenia Docker, ale to znamenalo, že VCP bol vždy reštartovaný predtým, ako bol virtuálny smerovač k dispozícii, čo malo za následok dlhý čas spustenia (približne 5 minút) Teraz sa prvé spustenie VCP vykoná počas zostavovania obrazu Docker a keďže zostavu Docker nemožno spustiť pomocou - -privilegovaná možnosť, to znamená, že qemu funguje bez hardvérovej akcelerácie KVM, takže zostavenie trvá veľmi dlho. Počas tohto procesu sa vydáva veľa protokolov, takže aspoň vidíte, čo sa deje. Myslím si, že dlhé zostavovanie je nie je to také strašidelné, pretože vytvoríme obraz raz, ale spustíme ich veľa."
Potom, čo uvidíte obrázok nášho smerovača v prístavný robotník:
ubuntu:~$ sudo docker image list
REPOSITORY TAG IMAGE ID CREATED SIZE
vrnetlab/vr-vmx 20.1R1.11 b1b2369b453c 3 weeks ago 4.43GB
debian stretch 614bb74b620e 7 weeks ago 101MB
Spustite kontajner vr-vmx
Začíname príkazom:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Ďalej môžeme vidieť informácie o aktívnych kontajneroch:
ubuntu:~$ sudo docker container list
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
120f882c8712 b1b2369b453c "/launch.py" 2 minutes ago Up 2 minutes (unhealthy) 22/tcp, 830/tcp, 5000/tcp, 10000-10099/tcp, 161/udp jun01
Pripojenie k smerovaču
IP adresu sieťového rozhrania smerovača je možné získať nasledujúcim príkazom:
Predvolené, Vrnetlab vytvorí používateľa na smerovači vrnetlab/VR-netlab9.
Spája sa s ssh:
ubuntu:~$ ssh [email protected]
The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.
ECDSA key fingerprint is SHA256:g9Sfg/k5qGBTOX96WiCWyoJJO9FxjzXYspRoDPv+C0Y.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.
Password:
--- JUNOS 20.1R1.11 Kernel 64-bit JNPR-11.0-20200219.fb120e7_buil
vrnetlab> show version
Model: vmx
Junos: 20.1R1.11
Tým sa dokončí nastavenie smerovača.
Odporúčania na inštaláciu smerovačov rôznych predajcov nájdete na projekt github v príslušných adresároch.
Toto sú interné menné priestory XML (Menný priestor XML) pre ODL podľa ktorého vytvára uzol.
Ďalej je to názov smerovača node-id, adresa smerovača - hostiteľ a tak ďalej.
Najzaujímavejší riadok je posledný. Adresár Schema-cache- vytvorí adresár, do ktorého sa stiahnu všetky súbory Schéma YANG pripojený router. Nájdete ich v $ODL_ROOT/cache/jun01_cache.
Kontrola pripojenia smerovača
Poďme tvoriť GET dotaz:
Reťazec dopytu:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Na karte Autorizácia musíte nastaviť parameter Basic Auth a prihlasovacie meno/heslo: admin/admin.
Poslali sme. Mal by dostať stav „200 OK“ a zoznam všetkých podporovaných zariadením Schéma YANG:
Komentár: Ak chcete vidieť to posledné, v mojom prípade bolo potrebné počkať asi 10 minút po vykonaní PUTaž do všetkých Schéma YANG vyložiť na ODL. Až do tohto bodu pri vykonávaní tohto GET dotaz zobrazí nasledovné:
Na karte Autorizácia musíte nastaviť parameter Basic Auth a prihlasovacie meno/heslo: admin/admin.
Časť 6: Zmeňte konfiguráciu smerovača
Získanie konfigurácie
Poďme tvoriť GET dotaz:
Reťazec dopytu:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Na karte Autorizácia musíte nastaviť parameter Basic Auth a prihlasovacie meno/heslo: admin/admin.
Poslali sme. Mal by dostať stav „200 OK“ a konfiguráciu smerovača:
Vytvorte konfiguráciu
Ako príklad si vytvorte nasledujúcu konfiguráciu a upravte ju:
protocols {
bgp {
disable;
shutdown;
}
}
Poďme tvoriť POST dotaz:
Reťazec dopytu:
POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
Na karte Autorizácia musíte nastaviť parameter Basic Auth a prihlasovacie meno/heslo: admin/admin.
Na karte Hlavičky musíte pridať dve hlavičky:
Prijmite aplikáciu/xml
Aplikácia typu obsahu/xml
Po odoslaní by mali dostať stav „204 Žiadny obsah“
Ak chcete skontrolovať, či sa konfigurácia zmenila, môžete použiť predchádzajúci dotaz. Ale napríklad vytvoríme ďalší, ktorý bude zobrazovať informácie iba o protokoloch nakonfigurovaných na smerovači.
Poďme tvoriť GET dotaz:
Reťazec dopytu:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
Na karte Autorizácia musíte nastaviť parameter Basic Auth a prihlasovacie meno/heslo: admin/admin.
Po vykonaní požiadavky uvidíme nasledovné:
Zmeňte konfiguráciu
Zmeňme informácie o protokole BGP. Po našich akciách to bude vyzerať takto:
protocols {
bgp {
disable;
}
}
Poďme tvoriť PUT dotaz:
Reťazec dopytu:
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
Po odoslaní dostaneme nasledujúci výsledok (Pozeráme sa na odpoveď pomocou GET žiadosť):
Časť 7: Pridanie Cisco xRV9000
Čo sme všetci o Juniper, áno Juniper? Poďme hovoriť o Cisco!
Našiel som xRV9000 verziu 7.0.2 (beštia, ktorá potrebuje 8Gb RAM a 4 jadrá. Nie je voľne dostupná, preto kontaktujte Cisco) - poďme na to.
Prevádzka kontajnera
Proces vytvárania kontajnera Docker sa prakticky nelíši od Juniperu. Podobne pustíme súbor .qcow2 s routerom do adresára zodpovedajúceho jeho názvu (v tomto prípade xrv9k) a vykonáme príkaz make docker-image.
Po niekoľkých minútach vidíme, že obrázok bol vytvorený:
ubuntu:~$ sudo docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
vrnetlab/vr-xrv9k 7.0.2 54debc7973fc 4 hours ago 1.7GB
vrnetlab/vr-vmx 20.1R1.11 b1b2369b453c 4 weeks ago 4.43GB
debian stretch 614bb74b620e 7 weeks ago 101MB
Spustíme kontajner:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Po chvíli vidíme, že kontajner sa spustil:
ubuntu:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
058c5ecddae3 54debc7973fc "/launch.py" 4 hours ago Up 4 hours (healthy) 22/tcp, 830/tcp, 5000-5003/tcp, 10000-10099/tcp, 161/udp xrv01
Pripojte sa cez ssh:
ubuntu@ubuntu:~$ ssh [email protected]
Password:
RP/0/RP0/CPU0:ios#show version
Mon Jul 6 12:19:28.036 UTC
Cisco IOS XR Software, Version 7.0.2
Copyright (c) 2013-2020 by Cisco Systems, Inc.
Build Information:
Built By : ahoang
Built On : Fri Mar 13 22:27:54 PDT 2020
Built Host : iox-ucs-029
Workspace : /auto/srcarchive15/prod/7.0.2/xrv9k/ws
Version : 7.0.2
Location : /opt/cisco/XR/packages/
Label : 7.0.2
cisco IOS-XRv 9000 () processor
System uptime is 3 hours 22 minutes
Pripojenie smerovača k OpenDaylight
Pridávanie prebieha úplne podobným spôsobom s vMX. Len musíme zmeniť mená. PUT dotaz:
Zavolajte po chvíli GET dotaz na kontrolu, či je všetko pripojené:
Zmeňte konfiguráciu
Nastavíme nasledujúcu konfiguráciu:
!
router ospf LAB
mpls ldp auto-config
!
Poďme tvoriť POST dotaz:
Reťazec dopytu:
POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
Na karte Autorizácia musíte nastaviť parameter Basic Auth a prihlasovacie meno/heslo: admin/admin.
Na karte Hlavičky musíte pridať dve hlavičky:
Prijmite aplikáciu/json
Content-Type application/json
Po jeho vykonaní by mali dostať status „204 No Content“.
Pozrime sa, čo máme.
Aby sme to urobili, vytvoríme GET dotaz:
Reťazec dopytu:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
Na karte Autorizácia musíte nastaviť parameter Basic Auth a prihlasovacie meno/heslo: admin/admin.
Na karte Autorizácia musíte nastaviť parameter Basic Auth a prihlasovacie meno/heslo: admin/admin.
Záver
Celkovo sa, ako ste si mohli všimnúť, postupy pripojenia Cisco a Juniper do OpenDaylight nelíšia – otvára to celkom široký priestor pre kreativitu. Počnúc správou konfigurácie všetkých sieťových komponentov a končiac tvorbou vlastných sieťových politík.
V tomto návode som uviedol najjednoduchšie príklady toho, ako môžete komunikovať so sieťovým zariadením pomocou OpenDaylight. Dopyty z vyššie uvedených príkladov môžu byť nepochybne oveľa zložitejšie a nastaviť celé služby jedným kliknutím myši - všetko je obmedzené iba vašou predstavivosťou *
Ak sa chcete pokračovať ...
PS
Ak toto všetko zrazu už viete, alebo naopak prešli a ponorili sa do duše ODL, potom odporúčam siahnuť po vývoji aplikácií na ODL ovládači. Môžete začať preto.