ProHoster > Blog > Administrazioa > Sareko zerbitzuen automatizazioa edo OpenDaylight, Postman eta Vrnetlab erabiliz laborategi birtual bat nola eraiki
Sareko zerbitzuen automatizazioa edo OpenDaylight, Postman eta Vrnetlab erabiliz laborategi birtual bat nola eraiki
Artikulu honetan, nola konfiguratu erakutsiko dizut egun argia sareko ekipoekin lan egiteko, eta nola erabili ere erakusteko Postaria eta sinplea RESTCONF eskaerak, ekipo hori kontrolatu daiteke. Ez dugu hardwarearekin lan egingo, baizik eta bideratzaile bakar batekin laborategi birtual txikiak zabalduko ditugu Vrnetlab gorako Ubuntu LTS 20.04.
Ezarpen zehatzak erakutsiko ditut lehenik bideratzaile baten adibidea erabiliz Juniper vMX 20.1R1.11, eta gero ezarpenarekin alderatzen dugu Cisco xRV9000 7.0.2.
Edukia
Beharrezko ezagutzak
Xnumx-ren zati bat: eztabaidatu labur OpenDaylight (aurrerantzean ODL), Postaria и Vrnetlab eta zergatik behar ditugu
Xnumx-ren zati bat: laborategi birtualaren deskribapena
Xnumx-ren zati bat: pertsonalizatu egun argia
Xnumx-ren zati bat: pertsonalizatu Vrnetlab
Xnumx-ren zati bat: erabiliz Postaria konektatu bideratzaile birtuala (Juniper vMX) ra ODL
Xnumx-ren zati bat: lortu eta aldatu bideratzailearen konfigurazioa erabiliz Postaria и ODL
Xnumx-ren zati bat: gehitu Cisco xRV9000
Ondorioa
PS
Bibliografia
Beharrezko ezagutzak
Artikulua fitxa bihur ez dadin, xehetasun tekniko batzuk alde batera utzi ditut (literaturarako estekekin, non horiei buruz irakurtzeko).
Honen harira, irakurri aurretik ondo (baina ia ezinbestekoa) ezagutzea komeni litzatekeen gaiak eskaintzen dizkizut:
Era guztietako sareak kudeatzeko eta automatizatzeko SDN plataforma irekia, onartzen duena Linux Fundazioa
Java barruan
Modeloak bultzatutako zerbitzuen abstrakzio mailan (MD-SAL) oinarrituta
YANG ereduak erabiltzen ditu sareko gailuetarako RESTCONF APIak automatikoki sortzeko
Sareak kudeatzeko modulu nagusia. Horren bidez komunikatuko gara konektatutako gailuekin. Bere APIaren bidez kudeatzen da.
OpenDaylight-i buruz gehiago irakur dezakezu Hemen.
API probak egiteko tresna
Interfaze sinplea eta erabiltzeko erraza
Gure kasuan, OpenDaylight APIra REST eskaerak bidaltzeko bitarteko gisa interesatzen zaigu. Eskaerak eskuz bidal ditzakezu, noski, baina Postman-en dena oso argi ikusten da eta gure helburuetara ezin hobeto egokitzen da.
Zulatu nahi duenarentzat: prestakuntza-material asko idatzi dira bertan (adibidez).
Docker-en bideratzaile birtualak zabaltzeko tresna
Onargarriak: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, etab.
Open Source
Oso tresna interesgarria baina gutxi ezagutzen dena. Gure kasuan, Juniper vMX eta Cisco xRV9000 Ubuntu 20.04 LTS arrunt batean exekutatzeko erabiliko dugu.
Juniper vMX barrura igotzen da Docker edukiontzia (bidez Vrnetlab) eta bideratzaile birtual ohikoena bezala funtzionatzen du.
ODL bideratzailera konektatuta eta hura kontrolatzeko aukera ematen dizu.
Postaria aparteko makina batean abiarazi eta haren bidez komandoak bidaltzen ditugu ODL: bideratzailea konektatzeko/kentzeko, konfigurazioa aldatzeko, etab.
Sistemaren gailuaren iruzkina
Juniper vMX и ODL baliabide asko behar dituzte beren funtzionamendu egonkorra izateko. Bat bakarra vMX 6 Gb RAM eta 4 nukleo eskatzen ditu. Horregatik, "pisu astunak" makina bereizi batera eramatea erabaki zen (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Bideratzaileak, noski, ez du "hegan" egiten, baina errendimendua nahikoa da esperimentu txikietarako.
3. zatia: OpenDaylight konfiguratu
ODL-ren egungo bertsioa hau idazteko momentuan Magnesium SR1 da
1) Instalatu Java Open JDK 11 (instalazio zehatzagoa lortzeko Hemen)
ubuntu:~$ sudo apt install default-jdk
2) Aurkitu eta deskargatu azken eraikuntza ODLberaz,
3) Deskonprimitu deskargatutako artxiboa
4) Sortutako direktoriora joan
5) Abiarazi ./bin/karaf
Urrats honetan ODL hasi beharko litzateke eta kontsolan aurkituko gara (8181 ataka kanpotik sartzeko erabiltzen da, geroago erabiliko duguna).
Ondoren, instalatu ODL Ezaugarriakprotokoloekin lan egiteko diseinatua NETCONF и RESTCONF. Horretarako kontsolan ODL exekutatzen dugu:
Onartzen den bideratzaile bakoitza Vrnetlab, bere konfigurazio prozedura berezia du. Noiz Juniper vMX bideratzailearekin .tgz artxiboa igo besterik ez dugu egin behar (tik deskarga dezakezu gune ofiziala) vmx direktoriora eta exekutatu komandoa make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Irudi bat eraikitzea vMX 10-20 minutu inguru beharko ditu. Kafe bat hartzera joateko ordua da!
"Hau da VCP (Kontrol Hegazkina) abiarazten den lehen aldian, vMX-n VRR VCP gisa exekutatuko den ala ez zehazten duen konfigurazio fitxategi bat irakurtzen duelako. Aurretik, abiarazteko hau Docker abiaraztean egiten zen, baina horrek esan nahi zuen VCP-k bideratzaile birtuala erabilgarri egon baino lehen behin berrabiarazi zen beti, eta ondorioz abiarazte denbora luzea izan zen (5 minutu inguru) Orain VCPren lehen exekuzioa Docker irudia eraikitzean egiten da, eta Dockerren eraikuntza ezin denez exekutatu - -pribilegiatua aukera, horrek esan nahi du qemu KVM hardwarearen azeleraziorik gabe funtzionatzen duela eta, beraz, eraikuntzak oso denbora luzea hartzen du. Prozesu honetan, erregistro asko ateratzen dira, beraz, gutxienez, zer gertatzen ari den ikus dezakezu. ez da hain beldurgarria irudi bat behin sortzen dugulako, baina asko abiarazten ditugu".
Gure bideratzailearen irudia ikusi ondoren Docker:
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
Abiarazi vr-vmx edukiontzia
Aginduarekin hasiko gara:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Jarraian, edukiontzi aktiboei buruzko informazioa ikus dezakegu:
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
Bideratzailera konektatzea
Bideratzailearen sareko interfazearen IP helbidea komando honekin lor daiteke:
Lehenetsia, Vrnetlab erabiltzaile bat sortzen du bideratzailean vrnetlab/VR-netlab9.
konektatzen 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
Honek bideratzailearen konfigurazioa osatzen du.
Hainbat saltzailetako bideratzaileentzako instalazio-gomendioak helbidean aurki daitezke github proiektua dagozkien direktorioetan.
Hauek barneko izen-eremuak dira XML (XML izen-eremua) ODL horren arabera nodoa sortzen du.
Gainera, hurrenez hurren, bideratzailearen izena da nodo-id, bideratzailearen helbidea - ostalari eta abar.
Ildorik interesgarriena azkena da. Eskema-cache-direktorioa fitxategi guztiak deskargatzen diren direktorio bat sortzen du YANG eskema konektatutako bideratzailea. Bertan aurki ditzakezu $ODL_ROOT/cache/jun01_cache.
Bideratzailearen konexioa egiaztatzea
Sor dezagun GET eskaera:
Kontsulta katea:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Baimena fitxan, parametroa ezarri behar duzu Basic Auth eta saioa hasteko/pasahitza: admin/admin.
Bidaltzen dugu. "200 OK" egoera eta gailuak onartzen dituen guztien zerrenda jaso beharko luke YANG eskema:
Comment: Azken hau ikusteko, nire kasuan exekuziotik 10 minutu inguru itxaron behar izan zen PUTguztiak arte YANG eskema deskargatu ODL. Orain arte, hau egitean GET kontsultak honako hau bistaratuko du:
Baimena fitxan, parametroa ezarri behar duzu Basic Auth eta saioa hasteko/pasahitza: admin/admin.
6. zatia: bideratzailearen konfigurazioa aldatu
Konfigurazioa lortzea
Sor dezagun GET eskaera:
Kontsulta katea:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Baimena fitxan, parametroa ezarri behar duzu Basic Auth eta saioa hasteko/pasahitza: admin/admin.
Bidaltzen dugu. "200 OK" egoera eta bideratzailearen konfigurazioa jaso beharko lirateke:
Sortu konfigurazio bat
Adibide gisa, sor dezagun konfigurazio hau eta alda dezagun:
protocols {
bgp {
disable;
shutdown;
}
}
Sor dezagun POST eskaera:
Kontsulta katea:
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
Baimena fitxan, parametroa ezarri behar duzu Basic Auth eta saioa hasteko/pasahitza: admin/admin.
Goiburuak fitxan, bi goiburu gehitu behar dituzu:
Onartu aplikazioa/xml
Eduki-mota aplikazioa/xml
Bidali ondoren, "204 Edukirik ez" egoera jaso beharko lukete
Konfigurazioa aldatu dela egiaztatzeko, aurreko kontsulta erabil dezakezu. Baina adibidez, beste bat sortuko dugu, bideratzailean konfiguratutako protokoloei buruzko informazioa soilik bistaratuko duena.
Sor dezagun GET eskaera:
Kontsulta katea:
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
Baimena fitxan, parametroa ezarri behar duzu Basic Auth eta saioa hasteko/pasahitza: admin/admin.
Eskaera exekutatu ondoren, honako hau ikusiko dugu:
Aldatu konfigurazioa
Alda dezagun BGP protokoloari buruzko informazioa. Gure ekintzen ondoren, itxura hau izango da:
protocols {
bgp {
disable;
}
}
Sor dezagun PUT eskaera:
Kontsulta katea:
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
Ez ahaztu Goiburuak fitxako goiburuak aldatzea honela:
Onartu aplikazioa/json
Eduki-mota aplikazioa/json
Bidali ondoren, emaitza hau lortuko dugu (erantzuna erabiliz ikusten dugu GET eskaera):
7. zatia: Cisco xRV9000 gehitzea
Zer dugu Juniper, bai Juniper? Hitz egin dezagun Ciscori buruz!
xRV9000 7.0.2 bertsioa aurkitu dut (8Gb RAM eta 4 nukleo behar dituen piztia. Ez dago doan eskuragarri, beraz jarri harremanetan Cisco) - exekutatu dezagun.
Edukiontzi bat martxan jartzea
Docker edukiontzi bat sortzeko prozesua ez da ia desberdina Juniperren aldean. Era berean, bideratzailea duen .qcow2 fitxategia bere izenari dagokion direktoriora botatzen dugu (kasu honetan, xrv9k) eta komandoa exekutatzen dugu. make docker-image.
Minutu batzuk igaro ondoren, irudia sortu dela ikusiko dugu:
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
Edukiontziari hasiera emango diogu:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Pixka bat igaro ondoren, edukiontzia hasi dela ikusten dugu:
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
Konektatu ssh bidez:
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
Bideratzailea OpenDaylight-era konektatzea
Gehitzea vMXrekin guztiz antzeko moduan gertatzen da. Izenak aldatu besterik ez dugu egin behar. PUT eskaera:
Deitu pixka bat igaro ondoren GET dena konektatuta dagoela egiaztatzeko kontsulta:
Aldatu konfigurazioa
Konfiguratu dezagun konfigurazio hau:
!
router ospf LAB
mpls ldp auto-config
!
Sor dezagun POST eskaera:
Kontsulta katea:
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
Baimena fitxan, parametroa ezarri behar duzu Basic Auth eta saioa hasteko/pasahitza: admin/admin.
Goiburuak fitxan, bi goiburu gehitu behar dituzu:
Onartu aplikazioa/json
Eduki-mota aplikazioa/json
Exekutatu ondoren, "204 Edukirik ez" egoera jaso beharko lukete.
Ikus dezagun zer lortu dugun.
Horretarako, sortuko dugu GET eskaera:
Kontsulta katea:
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
Baimena fitxan, parametroa ezarri behar duzu Basic Auth eta saioa hasteko/pasahitza: admin/admin.
Exekutatu ondoren, honako hau ikusi beharko zenuke:
Baimena fitxan, parametroa ezarri behar duzu Basic Auth eta saioa hasteko/pasahitza: admin/admin.
Ondorioa
Orotara, ohartuko zinen bezala, Cisco eta Juniper OpenDaylight-ra konektatzeko prozedurak ez dira desberdinak - honek sormenerako esparru zabala zabaltzen du. Sareko osagai guztien konfigurazio-kudeaketatik hasi eta zure sare-politikak sortzearekin amaitu.
Tutorial honetan, OpenDaylight erabiliz sareko ekipoekin elkarreragin dezakezun adibide errazenak eman ditut. Zalantzarik gabe, goiko adibideetako kontsultak askoz konplexuagoak izan daitezke eta zerbitzu osoak konfiguratu daitezke saguaren klik batekin - dena zure irudimenak soilik mugatzen du *
Jarraitu ahal izateko ...
PS
Bat-batean hori guztia dagoeneko ezagutzen baduzu edo, aitzitik, ODLren ariman igaro eta hondoratu bazara, orduan ODL kontrolagailuko aplikazioak garatzea gomendatzen dizut. Hasi zaitezke beraz,.