ProHoster > Blog > administrasie > Outomatisering van netwerkdienste of hoe om 'n virtuele laboratorium te bou deur OpenDaylight, Postman en Vrnetlab te gebruik
Outomatisering van netwerkdienste of hoe om 'n virtuele laboratorium te bou deur OpenDaylight, Postman en Vrnetlab te gebruik
In hierdie artikel sal ek jou wys hoe om op te stel OopDaglig om met netwerktoerusting te werk, en ook te wys hoe om te gebruik Postman en eenvoudig RESTCONF versoeke, kan hierdie toerusting beheer word. Ons sal nie met hardeware werk nie, maar in plaas daarvan sal ons klein virtuele laboratoriums met 'n enkele router gebruik Vrnetlab verby Ubuntu 20.04 LTS.
Ek sal eers die gedetailleerde instellings wys deur die voorbeeld van 'n router te gebruik Juniper vMX 20.1R1.11, en dan vergelyk ons dit met die instelling Cisco xRV9000 7.0.2.
inhoud
Vereiste kennis
1 deel: bespreek kortliks OpenDaylight (hierna ODL), Postman и Vrnetlab en hoekom het ons hulle nodig
2 deel: beskrywing van die virtuele laboratorium
3 deel: aanpas OopDaglig
4 deel: aanpas Vrnetlab
5 deel: deur die gebruik van Postman koppel virtuele router (Juniper vMX) aan ODL
6 deel: kry en verander die router-konfigurasie met behulp van Postman и ODL
7 deel: voeg Cisco xRV9000 by
Gevolgtrekking
PS
Bibliografie
Vereiste kennis
Om die artikel nie in 'n blad te verander nie, het ek 'n paar tegniese besonderhede weggelaat (met skakels na literatuur waar jy daaroor kan lees).
In hierdie verband bied ek jou onderwerpe aan wat dit goed sal wees (maar amper nie nodig nie) om te weet voordat jy lees:
In ons geval stel ons daarin belang as 'n manier om REST-versoeke na die OpenDaylight API te stuur. Jy kan natuurlik versoeke met die hand stuur, maar in Postman lyk alles baie duidelik en pas dit perfek by ons doeleindes.
Vir diegene wat wil grawe: baie opleidingsmateriaal is daarop geskryf (byvoorbeeld).
Gereedskap vir die implementering van virtuele routers in Docker
Ondersteun: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ens.
Open Source
'n Baie interessante maar min bekende instrument. In ons geval sal ons dit gebruik om Juniper vMX en Cisco xRV9000 op 'n gewone Ubuntu 20.04 LTS te laat loop.
In hierdie tutoriaal sal ons die volgende stelsel opstel:
Hoe werk dit
Juniper vMX styg in Docker houer (deur middel Vrnetlab) en funksioneer as die mees algemene virtuele router.
ODL gekoppel aan die router en laat jou toe om dit te beheer.
Postman op 'n aparte masjien geloods en daardeur stuur ons opdragte ODL: om die router aan te sluit / te verwyder, die konfigurasie te verander, ens.
Kommentaar op die toestel van die stelsel
Juniper vMX и ODL vereis nogal baie hulpbronne vir hul stabiele werking. Slegs een vMX vra vir 6 Gb RAM en 4 kerns. Daarom is besluit om al die "swaargewigte" na 'n aparte masjien te skuif (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Die router "vlieg" natuurlik nie daarop nie, maar die werkverrigting is genoeg vir klein eksperimente.
Deel 3: Stel OpenDaylight op
Die huidige weergawe van ODL ten tye van hierdie skrywe is Magnesium SR1
Elke router wat ondersteun word Vrnetlab, het sy eie unieke opstelprosedure. Wanneer Juniper vMX ons moet net die .tgz-argief met die router oplaai (jy kan dit aflaai vanaf amptelike webwerf) na die vmx-gids en voer die opdrag uit make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Bou 'n beeld vMX sal ongeveer 10-20 minute neem. Dis tyd om koffie te gaan drink!
"Dit is omdat die eerste keer dat die VCP (Beheervliegtuig) begin word, dit 'n konfigurasielêer lees wat bepaal of dit as 'n VRR VCP in vMX sal loop. Voorheen is hierdie bekendstelling tydens Docker-opstart gedoen, maar dit het beteken dat die VCP is altyd een keer herbegin voordat die virtuele router beskikbaar geword het, wat gelei het tot 'n lang selflaaityd (ongeveer 5 minute) Nou word die eerste lopie van die VCP gedoen tydens die bou van die Docker-beeld, en aangesien die Docker-bou nie uitgevoer kan word met die - -bevoorregte opsie, dit beteken dat qemu sonder KVM hardeware versnelling werk en dus neem die bou baie lank.Gedurende hierdie proses word baie logs uitset, so jy kan ten minste sien wat aangaan.Ek dink 'n lang bou is nie so skrikwekkend nie, want ons skep een keer 'n beeld, maar ons begin baie."
Nadat u die beeld van ons router kan sien 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
Begin vr-vmx-houer
Ons begin met die opdrag:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Vervolgens kan ons inligting oor aktiewe houers sien:
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
Koppel aan die router
Die IP-adres van die netwerkkoppelvlak van die router kan verkry word met die volgende opdrag:
Verstek, Vrnetlab skep 'n gebruiker op die router vrnetlab/VR-netlab9.
Verbind met 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
Dit voltooi die roeteerderopstelling.
Installasie-aanbevelings vir routers van verskeie verskaffers kan gevind word by github projek in die onderskeie gidse.
Deel 5: Posman - koppel die router aan OpenDaylight
Posman installasie
Om te installeer, laai net die toepassing af vandaar.
Koppel 'n router aan ODL
Kom ons skep PUT versoek:
Navraagstring:
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
Dit is interne naamruimtes XML (XML naamruimte) vir ODL waarvolgens dit nodus skep.
Verder, onderskeidelik, is die naam van die router node-id, router adres - gasheer en so aan.
Die interessantste lyn is die laaste een. Skema-kas-gids skep 'n gids waar alle lêers afgelaai word YANG Skema gekoppelde router. Jy kan hulle vind in $ODL_ROOT/cache/jun01_cache.
Kontroleer die verbinding van die router
Kom ons skep KRY versoek:
Navraagstring:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Op die Magtiging-oortjie moet u die parameter stel Basic Auth en login/wagwoord: admin/admin.
Ons stuur. Moet 'n status van "200 OK" ontvang en 'n lys van alles wat deur die toestel ondersteun word YANG Skema:
Lewer kommentaar: Om laasgenoemde te sien, was dit in my geval nodig om ongeveer 10 minute na die teregstelling te wag PUTtot almal YANG skema laai aan ODL. Tot op hierdie punt, wanneer dit uitgevoer word KRY navraag sal die volgende vertoon:
Op die Magtiging-oortjie moet u die parameter stel Basic Auth en login/wagwoord: admin/admin.
Deel 6: Verander die roeteerderkonfigurasie
Kry die konfigurasie
Kom ons skep KRY versoek:
Navraagstring:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Op die Magtiging-oortjie moet u die parameter stel Basic Auth en login/wagwoord: admin/admin.
Ons stuur. Behoort die status "200 OK" en die routerkonfigurasie te ontvang:
Skep 'n konfigurasie
As 'n voorbeeld, kom ons skep die volgende konfigurasie en verander dit:
protocols {
bgp {
disable;
shutdown;
}
}
Kom ons skep POS versoek:
Navraagstring:
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
Op die Magtiging-oortjie moet u die parameter stel Basic Auth en login/wagwoord: admin/admin.
Op die Opskrifte-oortjie moet jy twee kopskrifte byvoeg:
Aanvaar aansoek/xml
Inhoud-tipe toepassing/xml
Nadat hulle gestuur is, behoort hulle die status "204 Geen inhoud" te ontvang
Om seker te maak dat die konfigurasie verander het, kan jy die vorige navraag gebruik. Maar ons sal byvoorbeeld 'n ander een skep wat slegs inligting sal vertoon oor die protokolle wat op die router gekonfigureer is.
Kom ons skep KRY versoek:
Navraagstring:
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
Op die Magtiging-oortjie moet u die parameter stel Basic Auth en login/wagwoord: admin/admin.
Nadat ons die versoek uitgevoer het, sal ons die volgende sien:
Verander die konfigurasie
Kom ons verander die inligting oor die BGP-protokol. Na ons optrede sal dit soos volg lyk:
protocols {
bgp {
disable;
}
}
Kom ons skep PUT versoek:
Navraagstring:
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
Moenie vergeet om die opskrifte op die Opskrifte-oortjie te verander na:
Aanvaar aansoek/json
Inhoudtipe toepassing/json
Nadat ons gestuur is, sal ons die volgende resultaat kry (Ons kyk na die antwoord met behulp van KRY versoek):
Deel 7: Voeg die Cisco xRV9000 by
Waaroor gaan ons alles oor Juniper, ja Juniper? Kom ons praat oor Cisco!
Ek het xRV9000 weergawe 7.0.2 gekry ('n dier wat 8 Gb RAM en 4 cores benodig. Dit is nie vrylik beskikbaar nie, so kontak Cisco) - kom ons hardloop dit.
Die bestuur van 'n houer
Die proses om 'n Docker-houer te skep, verskil feitlik nie van Juniper nie. Net so laat ons die .qcow2-lêer met die router in die gids wat ooreenstem met sy naam (in hierdie geval, xrv9k) en voer die opdrag uit make docker-image.
Na 'n paar minute sien ons dat die beeld geskep is:
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
Ons begin die houer:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Na 'n rukkie kyk ons dat die houer begin het:
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
Koppel via 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
Koppel die router aan OpenDaylight
Byvoeging vind plaas op 'n heeltemal soortgelyke manier met vMX. Ons moet net die name verander. PUT versoek:
Bel na 'n rukkie KRY navraag om seker te maak dat alles gekoppel is:
Verander die konfigurasie
Kom ons stel die volgende konfigurasie op:
!
router ospf LAB
mpls ldp auto-config
!
Kom ons skep POS versoek:
Navraagstring:
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
Op die Magtiging-oortjie moet u die parameter stel Basic Auth en login/wagwoord: admin/admin.
Op die Opskrifte-oortjie moet jy twee kopskrifte byvoeg:
Aanvaar aansoek/json
Inhoudtipe toepassing/json
Na die uitvoering daarvan behoort hulle die status "204 Geen inhoud" te kry.
Kom ons kyk wat ons gekry het.
Om dit te doen, sal ons skep KRY versoek:
Navraagstring:
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
Op die Magtiging-oortjie moet u die parameter stel Basic Auth en login/wagwoord: admin/admin.
Op die Magtiging-oortjie moet u die parameter stel Basic Auth en login/wagwoord: admin/admin.
Gevolgtrekking
In totaal verskil die prosedures om Cisco en Juniper aan OpenDaylight te koppel nie, soos u dalk opgemerk het nie - dit maak nogal 'n wye ruimte vir kreatiwiteit oop. Begin van konfigurasiebestuur van alle netwerkkomponente en eindig met die skepping van u eie netwerkbeleide.
In hierdie tutoriaal het ek die eenvoudigste voorbeelde gegee van hoe jy met netwerktoerusting kan kommunikeer deur OpenDaylight te gebruik. Sonder twyfel kan die navrae uit bogenoemde voorbeelde baie meer kompleks gemaak word en hele dienste met een klik van die muis opstel - alles word slegs deur jou verbeelding beperk *
Vervolg…
PS
As jy dit alles skielik reeds weet of, inteendeel, deurgegaan en in die siel van ODL gesink het, dan beveel ek aan om te kyk na die ontwikkeling van toepassings op die ODL-beheerder. Jy kan begin vandaar.