ProHoster > Blogs > AdministrÄcija > TÄ«kla pakalpojumu automatizÄcija vai virtuÄlÄs laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab
TÄ«kla pakalpojumu automatizÄcija vai virtuÄlÄs laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab
Å ajÄ rakstÄ es jums parÄdÄ«Å”u, kÄ iestatÄ«t atvÄrta diena strÄdÄt ar tÄ«kla aprÄ«kojumu, kÄ arÄ« parÄdÄ«t, kÄ to izmantot Pastnieks un vienkÄrÅ”i RESTCONF pieprasÄ«jumu, Å”o aprÄ«kojumu var kontrolÄt. MÄs nestrÄdÄsim ar aparatÅ«ru, bet tÄ vietÄ izvietosim nelielas virtuÄlÄs laboratorijas ar vienu marÅ”rutÄtÄju Vrnetlab vairÄk Ubuntu LTS 20.04.
Vispirms es parÄdÄ«Å”u detalizÄtus iestatÄ«jumus, izmantojot marÅ”rutÄtÄja piemÄru KadiÄ·is vMX 20.1R1.11, un tad mÄs to salÄ«dzinÄm ar iestatÄ«jumu Cisco xRV9000 7.0.2.
saturs
NepiecieÅ”amÄs zinÄÅ”anas
1. daļa: Ä«si apspriest OpenDaylight (turpmÄk ODL), Pastnieks Šø Vrnetlab un kÄpÄc mums tie ir vajadzÄ«gi
MÅ«su gadÄ«jumÄ tas mÅ«s interesÄ kÄ lÄ«dzekli REST pieprasÄ«jumu nosÅ«tÄ«Å”anai uz OpenDaylight API. PieprasÄ«jumus, protams, var sÅ«tÄ«t arÄ« manuÄli, taÄu PastniekÄ viss izskatÄs ļoti skaidri un lieliski atbilst mÅ«su mÄrÄ·iem.
Tiem, kas vÄlas rakt: uz tÄ ir uzrakstÄ«ts daudz mÄcÄ«bu materiÄlu (piemÄram).
Atbalsta: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR utt.
AtvÄrtÄ koda
Ä»oti interesants, bet maz zinÄms instruments. MÅ«su gadÄ«jumÄ mÄs to izmantosim, lai palaistu Juniper vMX un Cisco xRV9000 parastÄ Ubuntu 20.04 LTS.
Å ajÄ apmÄcÄ«bÄ mÄs iestatÄ«sim Å”Ädu sistÄmu:
KÄ tas darbojas
KadiÄ·is vMX paceļas iekÅ”Ä dokers konteiners (ar lÄ«dzekļiem Vrnetlab) un darbojas kÄ visizplatÄ«tÄkais virtuÄlais marÅ”rutÄtÄjs.
ODL savienots ar marÅ”rutÄtÄju un ļauj to kontrolÄt.
Pastnieks palaista atseviÅ”Ä·Ä maŔīnÄ un caur to mÄs sÅ«tÄm komandas ODL: lai pievienotu / noÅemtu marÅ”rutÄtÄju, mainÄ«tu konfigurÄciju utt.
KomentÄrs par sistÄmas ierÄ«ci
KadiÄ·is vMX Šø ODL prasa diezgan lielus resursus to stabilai darbÄ«bai. Tikai viens vMX prasa 6 Gb RAM un 4 kodolus. TÄpÄc tika nolemts visus "smagsvarus" pÄrvietot uz atseviŔķu maŔīnu (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). RÅ«teris, protams, uz tÄ "nelido", bet veiktspÄja ir pietiekama nelieliem eksperimentiem.
3. daļa: OpenDaylight iestatīŔana
PaÅ”reizÄjÄ ODL versija Ŕī rakstÄ«Å”anas laikÄ ir Magnesium SR1
UzstÄdÄ«Å”anai Vrnetlab klonÄjiet atbilstoÅ”o repozitoriju no github:
ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git
Dodieties uz direktoriju vrnetlab:
ubuntu:~$ cd ~/vrnetlab
Å eit jÅ«s varat redzÄt visus palaiÅ”anai nepiecieÅ”amos skriptus. LÅ«dzu, Åemiet vÄrÄ, ka katram marÅ”rutÄtÄja veidam ir izveidots atbilstoÅ”s direktorijs:
Katrs atbalstÄ«tais marÅ”rutÄtÄjs Vrnetlab, ir sava unikÄla iestatÄ«Å”anas procedÅ«ra. Kad KadiÄ·is vMX mums vienkÄrÅ”i jÄaugÅ”upielÄdÄ .tgz arhÄ«vs ar marÅ”rutÄtÄju (to var lejupielÄdÄt no oficiÄlÄ vietne) uz vmx direktoriju un palaidiet komandu make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # ŠŠ¾ŠæŠøŃŃŠµŠ¼ Š² ŃŃŃ Š“ŠøŃŠµŠŗŃŠ¾ŃŠøŃ .tgz Š°ŃŃ ŠøŠ² Ń ŃŠ¾ŃŃŠµŃŠ¾Š¼
ubuntu:~$ sudo make
TÄla veidoÅ”ana vMX prasÄ«s apmÄram 10-20 minÅ«tes. Laiks doties iedzert kafiju!
"Tas ir tÄpÄc, ka pirmo reizi startÄjot VCP (vadÄ«bas plakne), tas nolasa konfigurÄcijas failu, kas nosaka, vai tas darbosies kÄ VRR VCP vMX. IepriekÅ” Ŕī palaiÅ”ana tika veikta Docker startÄÅ”anas laikÄ, taÄu tas nozÄ«mÄja, ka VCP vienmÄr tika restartÄts vienu reizi, pirms kļuva pieejams virtuÄlais marÅ”rutÄtÄjs, kÄ rezultÄtÄ bija ilgs sÄknÄÅ”anas laiks (apmÄram 5 minÅ«tes). Tagad pirmÄ VCP palaiÅ”ana tiek veikta Docker attÄla izveides laikÄ, un tÄ kÄ Docker bÅ«vÄjumu nevar palaist ar - -privileÄ£Äta opcija, tas nozÄ«mÄ, ka qemu darbojas bez KVM aparatÅ«ras paÄtrinÄjuma, un lÄ«dz ar to izveidoÅ”ana aizÅem ļoti ilgu laiku.Å Ä« procesa laikÄ tiek izvadÄ«ts daudz žurnÄlu, lai vismaz jÅ«s varÄtu redzÄt, kas notiek. ManuprÄt, ir ilga bÅ«vÄÅ”ana. nav tik biedÄjoÅ”i, jo mÄs veidojam attÄlu vienreiz, bet mÄs palaižam daudzus.
PÄc tam, kad bÅ«sit redzÄjis mÅ«su marÅ”rutÄtÄja attÄlu dokers:
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
Palaidiet vr-vmx konteineru
MÄs sÄkam ar komandu:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
TÄlÄk mÄs varam redzÄt informÄciju par aktÄ«vajiem konteineriem:
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
Savienojuma izveide ar marÅ”rutÄtÄju
MarÅ”rutÄtÄja tÄ«kla interfeisa IP adresi var iegÅ«t ar Å”Ädu komandu:
NoklusÄjums, Vrnetlab izveido lietotÄju marÅ”rutÄtÄjÄ vrnetlab/VR-netlab9.
Savienojuma izveide ar 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
Tas pabeidz marÅ”rutÄtÄja iestatÄ«Å”anu.
InstalÄÅ”anas ieteikumus dažÄdu pÄrdevÄju marÅ”rutÄtÄjiem var atrast vietnÄ github projekts attiecÄ«gajos direktorijos.
5. daļa: Pastnieks ā savienojiet marÅ”rutÄtÄju ar OpenDaylight
Pastnieka uzstÄdÄ«Å”ana
Lai instalÄtu, vienkÄrÅ”i lejupielÄdÄjiet lietojumprogrammu tÄtad.
MarÅ”rutÄtÄja pievienoÅ”ana ODL
Izveidosim izlikt pieprasījums:
VaicÄjuma virkne:
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
TÄs ir iekÅ”ÄjÄs nosaukumu telpas XML (XML nosaukumvieta) priekÅ” ODL saskaÅÄ ar kuru tas izveido mezglu.
TurklÄt attiecÄ«gi marÅ”rutÄtÄja nosaukums ir mezgla id, marÅ”rutÄtÄja adrese - saimnieks un tÄ tÄlÄk.
InteresantÄkÄ rinda ir pÄdÄjÄ. Shema-cache-directory izveido direktoriju, kurÄ tiek lejupielÄdÄti visi faili YANG shÄma pievienots marÅ”rutÄtÄjs. JÅ«s varat tos atrast $ODL_ROOT/cache/jun01_cache.
PÄrbauda marÅ”rutÄtÄja savienojumu
Izveidosim GET pieprasījums:
VaicÄjuma virkne:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
CilnÄ AutorizÄcija ir jÄiestata parametrs Basic Auth un pieteikÅ”anÄs/parole: admin/admin.
MÄs sÅ«tÄm. JÄsaÅem statuss "200 OK" un visu ierÄ«ces atbalstÄ«to ierÄ«Äu saraksts YANG shÄma:
KomentÄt: Lai redzÄtu pÄdÄjo, manÄ gadÄ«jumÄ bija jÄgaida apmÄram 10 minÅ«tes pÄc izpildes izliktlÄ«dz visiem YANG shÄma izkraut tÄlÄk ODL. LÄ«dz Å”im brÄ«dim, veicot Å”o GET vaicÄjums parÄdÄ«s sekojoÅ”o:
CilnÄ AutorizÄcija ir jÄiestata parametrs Basic Auth un pieteikÅ”anÄs/parole: admin/admin.
6. daļa: mainiet marÅ”rutÄtÄja konfigurÄciju
KonfigurÄcijas iegÅ«Å”ana
Izveidosim GET pieprasījums:
VaicÄjuma virkne:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
CilnÄ AutorizÄcija ir jÄiestata parametrs Basic Auth un pieteikÅ”anÄs/parole: admin/admin.
MÄs sÅ«tÄm. JÄsaÅem statuss "200 OK" un marÅ”rutÄtÄja konfigurÄcija:
Izveidojiet konfigurÄciju
PiemÄram, izveidosim Å”Ädu konfigurÄciju un pÄrveidosim to:
protocols {
bgp {
disable;
shutdown;
}
}
Izveidosim POST pieprasījums:
VaicÄjuma virkne:
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
CilnÄ AutorizÄcija ir jÄiestata parametrs Basic Auth un pieteikÅ”anÄs/parole: admin/admin.
CilnÄ Galvenes ir jÄpievieno divas galvenes:
PieÅemt pieteikumu/xml
Satura tipa lietojumprogramma/xml
PÄc nosÅ«tÄ«Å”anas viÅiem jÄsaÅem statuss "204 Nav satura"
Lai pÄrbaudÄ«tu, vai konfigurÄcija ir mainÄ«jusies, varat izmantot iepriekÅ”Äjo vaicÄjumu. Bet, piemÄram, mÄs izveidosim citu, kurÄ tiks parÄdÄ«ta informÄcija tikai par marÅ”rutÄtÄjÄ konfigurÄtajiem protokoliem.
Izveidosim GET pieprasījums:
VaicÄjuma virkne:
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
CilnÄ AutorizÄcija ir jÄiestata parametrs Basic Auth un pieteikÅ”anÄs/parole: admin/admin.
MainÄ«sim informÄciju par BGP protokolu. PÄc mÅ«su darbÄ«bÄm tas izskatÄ«sies Å”Ädi:
protocols {
bgp {
disable;
}
}
Izveidosim izlikt pieprasījums:
VaicÄjuma virkne:
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
PÄc nosÅ«tÄ«Å”anas mÄs iegÅ«sim Å”Ädu rezultÄtu (MÄs skatÄmies atbildi, izmantojot GET pieprasÄ«jums):
7. daļa: Cisco xRV9000 pievienoŔana
Kas mÄs vispÄr par KadiÄ·i, jÄ KadiÄ·is? ParunÄsim par Cisco!
Atradu xRV9000 versiju 7.0.2 (zvÄrs kuram vajag 8Gb RAM un 4 kodolus. TÄ nav brÄ«vi pieejama, tÄpÄc sazinieties Cisco) - palaist to.
Konteinera palaiŔana
Docker konteinera izveides process praktiski neatŔķiras no Juniper. LÄ«dzÄ«gi mÄs nolaižam .qcow2 failu ar marÅ”rutÄtÄju direktorijÄ, kas atbilst tÄ nosaukumam (Å”ajÄ gadÄ«jumÄ xrv9k) un izpildÄm komandu make docker-image.
PÄc dažÄm minÅ«tÄm mÄs redzam, ka attÄls ir izveidots:
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
MÄs sÄkam konteineru:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
PÄc kÄda laika mÄs skatÄmies, ka konteiners ir sÄcies:
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
Izveidojiet savienojumu, izmantojot 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
MarÅ”rutÄtÄja pievienoÅ”ana OpenDaylight
PievienoÅ”ana notiek pilnÄ«gi lÄ«dzÄ«gÄ veidÄ ar vMX. Mums tikai jÄmaina nosaukumi. izlikt pieprasÄ«jums:
Zvaniet pÄc kÄda laika GET vaicÄjums, lai pÄrbaudÄ«tu, vai viss ir savienots:
Mainiet konfigurÄciju
IestatÄ«sim Å”Ädu konfigurÄciju:
!
router ospf LAB
mpls ldp auto-config
!
Izveidosim POST pieprasījums:
VaicÄjuma virkne:
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
CilnÄ AutorizÄcija ir jÄiestata parametrs Basic Auth un pieteikÅ”anÄs/parole: admin/admin.
CilnÄ Galvenes ir jÄpievieno divas galvenes:
PieÅemiet lietojumprogrammu/json
Satura tipa lietojumprogramma/json
PÄc tÄ izpildes tiem jÄsaÅem statuss "204 Nav satura".
PÄrbaudÄ«sim, kas mums ir.
Lai to izdarÄ«tu, mÄs izveidosim GET pieprasÄ«jums:
VaicÄjuma virkne:
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
CilnÄ AutorizÄcija ir jÄiestata parametrs Basic Auth un pieteikÅ”anÄs/parole: admin/admin.
CilnÄ AutorizÄcija ir jÄiestata parametrs Basic Auth un pieteikÅ”anÄs/parole: admin/admin.
SecinÄjums
KopumÄ, kÄ jÅ«s, iespÄjams, pamanÄ«jÄt, procedÅ«ras Cisco un Juniper savienoÅ”anai ar OpenDaylight neatŔķiras - tas paver diezgan plaÅ”as iespÄjas radoÅ”umam. SÄkot no visu tÄ«kla komponentu konfigurÄcijas pÄrvaldÄ«bas un beidzot ar savu tÄ«kla politiku izveidi.
Å ajÄ apmÄcÄ«bÄ esmu sniedzis vienkÄrÅ”Äkos piemÄrus, kÄ jÅ«s varat mijiedarboties ar tÄ«kla aprÄ«kojumu, izmantojot OpenDaylight. Bez Å”aubÄm, vaicÄjumus no iepriekÅ” minÄtajiem piemÄriem var padarÄ«t daudz sarežģītÄkus un iestatÄ«t visus pakalpojumus ar vienu peles klikŔķi - visu ierobežo tikai jÅ«su iztÄle *
Lai varÄtu turpinÄt ...
PS
Ja pÄkÅ”Åi to visu jau zinÄt vai, gluži pretÄji, esat izgÄjis cauri un iegrimis ODL dvÄselÄ, tad iesaku meklÄt lietojumprogrammu izstrÄdi uz ODL kontrollera. JÅ«s varat sÄkt tÄtad.