ProHoster > Blog > Administrasyon an > Otomatik sèvis rezo oswa ki jan yo bati yon laboratwa vityèl lè l sèvi avèk OpenDaylight, Postman ak Vrnetlab
Otomatik sèvis rezo oswa ki jan yo bati yon laboratwa vityèl lè l sèvi avèk OpenDaylight, Postman ak Vrnetlab
Nan atik sa a, mwen pral montre w kouman yo mete kanpe opendaylight pou travay ak ekipman rezo, epi tou montre kijan pou yo itilize post-man ak senp RESTCONF demann, ekipman sa a ka kontwole. Nou pa pral travay ak pyès ki nan konpitè, men olye nou pral deplwaye ti laboratwa vityèl ak yon sèl routeur lè l sèvi avèk Vrnetlab sou Ubuntu 20.04 LTS.
Mwen pral montre anviwònman yo detaye premye lè l sèvi avèk egzanp lan nan yon routeur Juniper vMX 20.1R1.11, ak Lè sa a, nou konpare li ak anviwònman an Cisco xRV9000 7.0.2.
Content
Konesans obligatwa
KONNEN pati: diskite yon ti tan OpenDaylight (apwe sa ODL), post-man и Vrnetlab e poukisa nou bezwen yo
KONNEN pati: deskripsyon laboratwa vityèl la
KONNEN pati: personnaliser opendaylight
KONNEN pati: personnaliser Vrnetlab
KONNEN pati: lè l sèvi avèk post-man konekte routeur vityèl (Juniper vMX) Pou ODL
KONNEN pati: jwenn ak chanje konfigirasyon routeur la lè l sèvi avèk post-man и ODL
KONNEN pati: ajoute Cisco xRV9000
Konklizyon
PS
Bibliyografi
Konesans obligatwa
Pou atik la pa tounen yon fèy, mwen te omisyone kèk detay teknik (ak lyen ki mennen nan literati kote ou ka li sou yo).
Nan koneksyon sa a, mwen ofri w sijè ke li ta bon (men prèske pa nesesè) konnen anvan li:
Nan ka nou an, nou enterese nan li kòm yon mwayen pou voye demann REST nan API OpenDaylight. Ou ka, nan kou, voye demann manyèlman, men nan Postman tout bagay sanble trè klè ak kostim objektif nou parfe.
Pou moun ki vle fouye: yo te ekri anpil materyèl fòmasyon sou li (pou egzanp).
Zouti pou deplwaye routeurs vityèl nan Docker
Sipòte: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, elatriye.
Louvri sous
Yon enstriman trè enteresan men li pa konnen. Nan ka nou an, nou pral sèvi ak li pou kouri Juniper vMX ak Cisco xRV9000 sou yon Ubuntu 20.04 LTS regilye.
Nan leson patikilye sa a, nou pral mete kanpe sistèm sa a:
Kijan travay sa a
Juniper vMX leve nan Koupre veso (pa vle di Vrnetlab) ak fonksyone kòm routeur vityèl ki pi komen.
ODL konekte ak routeur la epi pèmèt ou kontwole li.
post-man te lanse sou yon machin separe epi atravè li nou voye kòmandman ODL: konekte / retire routeur la, chanje konfigirasyon an, elatriye.
Kòmantè sou aparèy la nan sistèm nan
Juniper vMX и ODL mande anpil resous pou operasyon ki estab yo. Youn sèlman vMX mande pou 6 Gb RAM ak 4 nwayo. Se poutèt sa, li te deside deplase tout "pwa lou yo" nan yon machin separe (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Routeur la, nan kou, pa "vole" sou li, men pèfòmans lan se ase pou ti eksperyans.
Pati 3: Mete kanpe OpenDaylight
Vèsyon aktyèl la nan ODL nan moman sa a ekri se Manyezyòm SR1
Chak routeur ki sipòte Vrnetlab, gen pwòp pwosedi konfigirasyon inik li yo. Kilè Juniper vMX nou jis bezwen telechaje achiv la .tgz ak routeur la (ou ka telechaje li nan sit ofisyèl) nan anyè vmx a epi kouri lòd la make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Bati yon imaj vMX pral pran apeprè 10-20 minit. Li lè pou ale pran yon ti kafe!
"Sa a se paske premye fwa VCP a (Kontwòl Avyon) kòmanse, li li yon fichye konfigirasyon ki detèmine si li pral kouri kòm yon VRR VCP nan vMX. Anvan sa, lansman sa a te fèt pandan demaraj Docker, men sa vle di ke VCP a. te toujou rekòmanse yon fwa anvan routeur vityèl la te vin disponib, sa ki lakòz yon tan long bòt (apeprè 5 minit) Koulye a, premye kouri nan VCP a fè pandan bati a nan imaj la Docker, epi depi konstriksyon an Docker pa ka kouri ak - -opsyon privilejye, sa vle di ke qemu travay san akselerasyon KVM pyès ki nan konpitè e konsa bati a pran yon tan trè long.Pandan pwosesis sa a, yon anpil nan mòso bwa yo pwodiksyon, kidonk omwen ou ka wè sa k ap pase. se pa tèlman pè paske ke nou kreye yon imaj yon fwa, men nou lanse anpil."
Apre ou ka wè imaj la nan routeur nou an nan Koupre:
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
Lanse veso vr-vmx
Nou kòmanse ak kòmandman an:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Apre sa, nou ka wè enfòmasyon sou resipyan aktif:
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
Konekte ak routeur la
Ou ka jwenn adrès IP nan koòdone rezo routeur la ak lòd sa a:
Default, Vrnetlab kreye yon itilizatè sou routeur la vrnetlab/VR-netlab9.
Konekte ak 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
Sa a konplete konfigirasyon routeur la.
Ou ka jwenn rekòmandasyon enstalasyon pou routeurs plizyè machann nan pwojè github nan anyè respektif yo.
Pati 5: Postman - konekte routeur la ak OpenDaylight
Sa yo se espas non entèn yo XML (espas non XML) pou ODL dapre ki li kreye ne.
Pli lwen, respektivman, non an nan routeur la se ne-id, adrès routeur - lame ak sou sa.
Liy ki pi enteresan an se dènye a. Chema-kachèt-anyè kreye yon anyè kote tout fichye yo telechaje YANG Schema routeur konekte. Ou ka jwenn yo nan $ODL_ROOT/cache/jun01_cache.
Tcheke koneksyon an nan routeur la
Ann kreye JWENN demann:
Chaîne demann:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Sou tab la Otorizasyon, ou dwe mete paramèt la Basic Auth ak login/modpas: admin/admin.
Nou voye. Ta dwe resevwa yon estati "200 OK" ak yon lis tout aparèy ki sipòte YANG Schema:
Kòmantè: Pou wè lèt la, nan ka mwen an li te nesesè yo rete tann apeprè 10 minit apre ekzekisyon an PUTjiska tout YANG chema dechaje sou ODL. Jiska pwen sa a, lè w ap fè sa JWENN rekèt pral montre bagay sa yo:
Sou tab la Otorizasyon, ou dwe mete paramèt la Basic Auth ak login/modpas: admin/admin.
Pati 6: Chanje konfigirasyon routeur la
Jwenn konfigirasyon an
Ann kreye JWENN demann:
Chaîne demann:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Sou tab la Otorizasyon, ou dwe mete paramèt la Basic Auth ak login/modpas: admin/admin.
Nou voye. Ta dwe resevwa estati "200 OK" ak konfigirasyon routeur la:
Kreye yon konfigirasyon
Kòm yon egzanp, ann kreye konfigirasyon sa a epi modifye li:
protocols {
bgp {
disable;
shutdown;
}
}
Ann kreye POST demann:
Chaîne demann:
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
Sou tab la Otorizasyon, ou dwe mete paramèt la Basic Auth ak login/modpas: admin/admin.
Sou tab la Headers, ou bezwen ajoute de headers:
Aksepte aplikasyon/xml
Content-Type aplikasyon/xml
Apre yo fin voye yo, yo ta dwe resevwa estati "204 Pa gen kontni"
Pou tcheke konfigirasyon an chanje, ou ka itilize rechèch anvan an. Men, pou egzanp, nou pral kreye yon lòt ki pral montre enfòmasyon sèlman sou pwotokòl yo configuré sou routeur la.
Ann kreye JWENN demann:
Chaîne demann:
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
Sou tab la Otorizasyon, ou dwe mete paramèt la Basic Auth ak login/modpas: admin/admin.
Apre egzekite demann lan, nou pral wè bagay sa yo:
Chanje konfigirasyon an
Ann chanje enfòmasyon sou pwotokòl BGP la. Apre aksyon nou yo, li pral sanble sa a:
protocols {
bgp {
disable;
}
}
Ann kreye PUT demann:
Chaîne demann:
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
Apre voye, nou pral jwenn rezilta sa a (Nou gade repons lan lè l sèvi avèk JWENN demann):
Pati 7: Ajoute Cisco xRV9000 la
Ki sa nou tout sou Juniper, wi Juniper? Ann pale de Cisco!
Mwen te jwenn vèsyon xRV9000 7.0.2 (yon bèt ki bezwen 8Gb RAM ak 4 nwayo. Li pa disponib gratis, kidonk kontakte Cisco) - ann kouri li.
Kouri yon veso
Pwosesis pou kreye yon veso Docker se pratikman pa diferan de Juniper. Menm jan an tou, nou lage fichye .qcow2 ak routeur la nan anyè ki koresponn ak non li (nan ka sa a, xrv9k) epi egzekite kòmandman an. make docker-image.
Apre kèk minit, nou wè ke imaj la te kreye:
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
Nou kòmanse veso a:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Apre yon ti tan, nou gade ke veso a te kòmanse:
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
Konekte 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
Konekte routeur la ak OpenDaylight
Ajoute rive nan yon fason konplètman menm jan ak vMX. Nou jis bezwen chanje non yo. PUT demann:
Rele apre yon ti tan JWENN demann pou tcheke si tout bagay konekte:
Chanje konfigirasyon an
Ann mete konfigirasyon sa a:
!
router ospf LAB
mpls ldp auto-config
!
Ann kreye POST demann:
Chaîne demann:
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
Sou tab la Otorizasyon, ou dwe mete paramèt la Basic Auth ak login/modpas: admin/admin.
Sou tab la Headers, ou bezwen ajoute de headers:
Aksepte aplikasyon/json
Content-Type aplikasyon/json
Apre ekzekisyon li yo, yo ta dwe resevwa estati "204 Pa gen kontni".
Ann tcheke sa nou jwenn.
Pou fè sa, nou pral kreye JWENN demann:
Chaîne demann:
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
Sou tab la Otorizasyon, ou dwe mete paramèt la Basic Auth ak login/modpas: admin/admin.
Sou tab la Otorizasyon, ou dwe mete paramèt la Basic Auth ak login/modpas: admin/admin.
Konklizyon
An total, jan ou ka remake, pwosedi yo pou konekte Cisco ak Juniper ak OpenDaylight pa diferan - sa a ouvè yon gwo dimansyon pou kreyativite. Kòmanse nan jesyon konfigirasyon tout eleman rezo yo epi fini ak kreyasyon pwòp politik rezo ou yo.
Nan leson patikilye sa a, mwen bay egzanp ki pi senp sou fason ou ka kominike avèk ekipman rezo lè l sèvi avèk OpenDaylight. San okenn dout, demann ki soti nan egzanp ki anwo yo ka vin pi konplèks epi mete tout sèvis yo ak yon sèl klike sou sourit la - tout bagay limite sèlman pa imajinasyon ou *
A kontinye…
PS
Si ou toudenkou deja konnen tout bagay sa yo oswa, okontrè, te ale nan ak koule nan nanm nan ODL, Lè sa a, mwen rekòmande gade nan direksyon pou devlope aplikasyon sou kontwolè ODL la. Ou ka kòmanse kon sa.