ProHoster > Pūnaewele > Nā Administration > ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab
ʻO ka hoʻomaʻamaʻa ʻana i nā lawelawe pūnaewele a i ʻole pehea e kūkulu ai i kahi keʻena kikowaena virtual me OpenDaylight, Postman a me Vrnetlab
Ma kēia ʻatikala, e hōʻike wau iā ʻoe pehea e hoʻonohonoho ai ka lā wehe e hana me nā lako pūnaewele, a hōʻike pū i ka hoʻohana ʻana Kahuhahu a maʻalahi RESTCONF nā noi, hiki ke hoʻomaluʻia kēia mea hana. ʻAʻole mākou e hana me ka lakohana, akā, e hoʻonohonoho mākou i nā laboratories virtual liʻiliʻi me kahi alaala hoʻokahi e hoʻohana ana Vrnetlab ma luna Ubuntu 20.04 LTS.
E hōʻike mua wau i nā hoʻonohonoho kikoʻī me ka hoʻohana ʻana i ka laʻana o kahi router Juniper vMX 20.1R1.11, a laila hoʻohālikelike mākou me ka hoʻonohonoho Cisco xRV9000 7.0.2.
Nā mea
ʻIke pono
ʻĀpana 1: kūkākūkā pōkole OpenDaylight (ma hope aku nei ODL), Kahuhahu и Vrnetlab a no ke aha mākou e pono ai iā lākou
ʻĀpana 2: ka wehewehe ʻana o ke keʻena hana virtual
ʻĀpana 3: hoʻopilikino ka lā wehe
ʻĀpana 4: hoʻopilikino Vrnetlab
ʻĀpana 5: ma ka hoohana ana Kahuhahu hoʻohui i ka mea hoʻokele virtual (Juniper vMX) Iā ODL
ʻĀpana 6: kiʻi a hoʻololi i ka hoʻonohonoho router me ka hoʻohana ʻana Kahuhahu и ODL
ʻĀpana 7: hoʻohui iā Cisco xRV9000
hopena
PS
Palapala puke
ʻIke pono
I ʻole e lilo ka ʻatikala i pepa, ua haʻalele wau i kekahi mau kikoʻī loea (me nā loulou i ka palapala kahi e hiki ai iā ʻoe ke heluhelu e pili ana iā lākou).
Ma kēia pili, hāʻawi wau iā ʻoe i nā kumuhana e maikaʻi (akā ʻaʻole pono) e ʻike ma mua o ka heluhelu ʻana:
He kahua SDN wehe no ka hooponopono ana a me ka hoohana ana i na ano a pau, i kākoʻo ʻia e Linux kikowaena
Java i loko
Ma muli o ke Ana Hoʻohālikelike Hana Hana Hoʻohālike (MD-SAL)
Hoʻohana i nā hiʻohiʻona YANG no ka hoʻopuka ʻokoʻa ʻana i nā API RESTCONF no nā polokalamu pūnaewele
ʻO ka module nui no ka hoʻokele pūnaewele. Ma ia mea mākou e kamaʻilio ai me nā mea pili. Mālama ʻia ma kāna API ponoʻī.
Hiki iā ʻoe ke heluhelu hou aku e pili ana i OpenDaylight maanei.
Mea hana hoʻāʻo API
Maʻalahi a maʻalahi hoʻi e hoʻohana
I kā mākou hihia, makemake mākou iā ia i mea e hoʻouna ai i nā noi REST i ka OpenDaylight API. Hiki iā ʻoe, ʻoiaʻiʻo, hoʻouna i nā noi me ka lima, akā ma ka Postman ʻike maopopo loa nā mea āpau a kūpono i kā mākou kumu.
No ka poʻe makemake e ʻeli: ua kākau ʻia ka nui o nā mea aʻo ma luna (Eia kekahi lā).
Mea hana no ka lawe ʻana i nā mea hoʻokele virtual ma Docker
Kākoʻo: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, etc.
Open Source
He mea hana hoihoi akā ʻike iki ʻia. I kā mākou hihia, e hoʻohana mākou iā ia e holo iā Juniper vMX a me Cisco xRV9000 ma kahi Ubuntu 20.04 LTS maʻamau.
Hiki iā ʻoe ke heluhelu hou e pili ana iā ia ma ʻaoʻao papahana.
Mahele 2: Lab
Ma kēia kumu aʻo, e hoʻonohonoho mākou i kēia ʻōnaehana:
Pehea hana i keia hana
Juniper vMX piʻi i loko Docker ipu (by means Vrnetlab) a me nā hana ma ke ʻano he mea hoʻokele virtual maʻamau.
ODL pili i ka router a hiki iā ʻoe ke hoʻomalu iā ia.
Kahuhahu hoʻokuʻu ʻia ma kahi mīkini ʻokoʻa a ma o ia mea mākou e hoʻouna ai i nā kauoha ODL: e hoʻohui / wehe i ke alalai, hoʻololi i ka hoʻonohonoho, etc.
Manaʻo manaʻo no ka mea hana o ka ʻōnaehana
Juniper vMX и ODL makemake i nā kumuwaiwai he nui no kā lākou hana paʻa. Hoʻokahi wale nō vMX noi no 6 Gb o RAM a me 4 cores. No laila, ua hoʻoholo ʻia e hoʻoneʻe i nā "kaumaha" āpau i kahi mīkini ʻokoʻa (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). ʻO ka mea alalai, ʻoiaʻiʻo, ʻaʻole "lele" ma luna o ia, akā lawa ka hana no nā hoʻokolohua liʻiliʻi.
Mahele 3: Hoʻonohonoho i ka OpenDaylight
ʻO ka mana o kēia manawa o ODL i ka manawa o kēia kākau ʻana ʻo Magnesium SR1
1) Hoʻokomo ʻO Java OpenJDK 11 (no ka hoʻokomo kikoʻī hou aku maanei)
ubuntu:~$ sudo apt install default-jdk
2) E huli a hoʻoiho i ka hana hou loa ODLmai kēia wahi
3) Wehe i ka waihona i hoʻoiho ʻia
4) E hele i ka papa kuhikuhi hopena
5) Hoʻomaka ./bin/karaf
Ma kēia ʻanuʻu ODL pono e hoʻomaka a ʻike mākou iā mākou iho i ka console (Hoʻohana ʻia ʻo Port 8181 no ke komo ʻana mai waho, a mākou e hoʻohana ai ma hope).
A laila, hoʻokomo ODL hiʻonai hoʻolālā ʻia e hana me nā protocols NETCONF и RESTCONF. E hana i kēia ma ka console ODL hana mākou:
E hoʻoulu Vrnetlab clone i ka waihona e pili ana mai github:
ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git
E hele i ka papa kuhikuhi vrnetlab:
ubuntu:~$ cd ~/vrnetlab
Maanei hiki iā ʻoe ke ʻike i nā palapala āpau e pono ai e holo. E ʻoluʻolu e hoʻomaopopo ua hana ʻia kahi papa kuhikuhi pili no kēlā me kēia ʻano mea ala ala:
ʻO kēlā me kēia router i kākoʻo ʻia Vrnetlab, loaʻa i kāna kaʻina hana hoʻonohonoho kūʻokoʻa. I ka manawa Juniper vMX pono mākou e hoʻouka i ka waihona .tgz me ke alalai (hiki iā ʻoe ke kiʻi iā ia mai kūhelu paena) i ka papa kuhikuhi vmx a holo i ke kauoha make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Ke kūkulu ʻana i kiʻi vMX e lawe ma kahi o 10-20 mau minuke. ʻO ka manawa kēia e hele ai e kiʻi i ka kofe!
"ʻO kēia no ka mea ʻo ka manawa mua i hoʻomaka ʻia ka VCP (Control Plane), heluhelu ia i kahi faila config e hoʻoholo ai inā e holo ʻo ia ma ke ʻano he VRR VCP ma vMX. Ma mua, ua hana ʻia kēia hoʻomaka ʻana i ka wā hoʻomaka Docker, akā ʻo ia ka manaʻo o ka VCP ua hoʻomaka hou ʻia i hoʻokahi manawa ma mua o ka loaʻa ʻana o ka mea hoʻokele virtual, ka hopena i kahi manawa boot lōʻihi (e pili ana i 5 mau minuke) I kēia manawa ua hana ʻia ka holo mua o ka VCP i ka wā o ke kūkulu ʻana i ke kiʻi Docker, a no ka mea ʻaʻole hiki ke holo ka hale Docker me ka - - koho pono, 'o ia ho'i, hana 'o qemu me ka wikiwiki 'ole o ka lako KVM a no laila, lō'ihi loa ke kūkulu 'ia 'ana. ʻAʻole makaʻu nui no ka mea hana mākou i hoʻokahi kiʻi, akā hoʻomaka mākou i nā mea he nui. "
Ma hope o ka ʻike ʻana i ke kiʻi o kā mākou router 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
E wehe i ka pahu vr-vmx
Hoʻomaka mākou me ke kauoha:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
A laila, hiki iā mākou ke ʻike i ka ʻike e pili ana i nā pahu hana:
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
Ke hoʻokuʻi ʻana i ka router
Hiki ke kiʻi ʻia ka IP address o ke kikowaena pūnaewele o ke alalai me kēia kauoha:
Paʻamau, Vrnetlab hana i ka mea hoʻohana ma ka router vrnetlab/VR-netlab9.
Pili me 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
Hoʻopau kēia i ka hoʻonohonoho router.
Hiki ke loaʻa nā ʻōlelo paipai no nā mea hoʻokele o nā mea kūʻai like ʻole ma papahana github i loko o nā papa kuhikuhi.
Mahele 5: Leta - hoʻohui i ke alalai iā OpenDaylight
Hoʻokomo ʻia ka mea leka uila
No ka hoʻouka ʻana, e hoʻoiho wale i ka polokalamu mai kēia wahi.
Ke hoʻokuʻi ʻana i kahi alalai iā ODL
E hana kākou PUT noi:
Kaila nīnau:
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
He mau papa inoa loko kēia 'ōkuene (Helu inoa XML) no ODL e like me ka hana ʻana i ka node.
Eia kekahi, ʻo ka inoa o ka router node-id, helu kelepona - koa a pēlā aku nō.
ʻO ka laina hoihoi loa ka laina hope loa. Schema-cache-papa kuhikuhi hana i kahi papa kuhikuhi kahi e hoʻoiho ʻia ai nā faila a pau ʻO ka papahana YANG mea hoʻopili i hoʻohui ʻia. Hiki iā ʻoe ke loaʻa iā lākou i loko $ODL_ROOT/cache/jun01_cache.
Ke nānā nei i ka pilina o ke alalai
E hana kākou GET noi:
Kaila nīnau:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
Hoʻouna mākou. Pono e loaʻa kahi kūlana o "200 OK" a me kahi papa inoa o nā mea āpau i kākoʻo ʻia e ka hāmeʻa ʻO ka papahana YANG:
manaʻo hoʻopuka: No kaʻikeʻana i ka hope, i koʻu hihia, pono e kali ma kahi o 10 mau minuke ma hope o ka hoʻokōʻana PUTa hiki i nā mea a pau ʻO ka papahana YANG wehe i ka ukana ODL. A hiki i kēia manawa, i ka wā e hana ai i kēia GET e hōʻike ʻia ka nīnau penei:
Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
Mahele 6: E hoʻololi i ka hoʻonohonoho router
Loaʻa i ka hoʻonohonoho
E hana kākou GET noi:
Kaila nīnau:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
Hoʻouna mākou. Pono e loaʻa ke kūlana "200 OK" a me ka hoʻonohonoho router:
Hana i kahi hoʻonohonoho
E like me ka laʻana, e hana kākou i kēia hoʻonohonoho a hoʻololi iā ia:
protocols {
bgp {
disable;
shutdown;
}
}
E hana kākou POST noi:
Kaila nīnau:
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
Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
Ma ka ʻaoʻao Headers, pono ʻoe e hoʻohui i ʻelua mau poʻo:
E ʻae i ka noi/xml
Palapala maʻiʻo-ʻano/xml
Ma hope o ka hoʻouna ʻana, pono e loaʻa iā lākou ke kūlana "204 No Content"
No ka nānā ʻana ua loli ka hoʻonohonoho, hiki iā ʻoe ke hoʻohana i ka nīnau mua. Akā no ka laʻana, e hana mākou i kahi mea e hōʻike i ka ʻike e pili ana i nā protocols i hoʻonohonoho ʻia ma ke alalai.
E hana kākou GET noi:
Kaila nīnau:
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
Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
Ma hope o ka hoʻokō ʻana i ka noi, e ʻike mākou i kēia:
E hoʻololi i ka hoʻonohonoho
E hoʻololi kākou i ka ʻike e pili ana i ka protocol BGP. Ma hope o kā mākou hana, e like me kēia:
protocols {
bgp {
disable;
}
}
E hana kākou PUT noi:
Kaila nīnau:
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
Mai poina e hoʻololi i nā poʻo ma ka ʻaoʻao Headers i:
E ʻae i ka noi/json
Palapala maʻiʻo-ʻano/json
Ma hope o ka hoʻouna ʻana, e loaʻa iā mākou ka hopena aʻe (Nānā mākou i ka pane me ka hoʻohana ʻana GET noi):
Mahele 7: Hoʻohui i ka Cisco xRV9000
He aha kā mākou e pili ana iā Juniper, ʻae Juniper? E kamaʻilio kākou e pili ana iā Cisco!
Ua loaʻa iaʻu ka xRV9000 version 7.0.2 (he holoholona e pono ai ka 8Gb RAM a me 4 cores. ʻAʻole i loaʻa manuahi, no laila e hoʻopili Cisco) - e holo kāua.
Holo i kahi ipu
ʻAʻole ʻokoʻa ka hana o ka hana ʻana i kahi pahu Docker mai Juniper. Pēlā nō, hoʻokuʻu mākou i ka faila .qcow2 me ke alalai i loko o ka papa kuhikuhi e pili ana i kona inoa (i kēia hihia, xrv9k) a hoʻokō i ke kauoha make docker-image.
Ma hope o kekahi mau minuke, ʻike mākou ua hana ʻia ke kiʻi:
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
Hoʻomaka mākou i ka ipu:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Ma hope o kekahi manawa, ʻike mākou ua hoʻomaka ka ipu:
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
Hoʻohui ma 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
Hoʻohui i ka mea ala ala iā OpenDaylight
Hoʻohui like ʻia me ka vMX. Pono mākou e hoʻololi i nā inoa. PUT noi:
Kāhea ma hope o kekahi manawa GET nīnau e nānā ua pili nā mea a pau:
E hoʻololi i ka hoʻonohonoho
E hoʻonohonoho kākou i kēia hoʻonohonoho:
!
router ospf LAB
mpls ldp auto-config
!
E hana kākou POST noi:
Kaila nīnau:
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
Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
Ma ka ʻaoʻao Headers, pono ʻoe e hoʻohui i ʻelua mau poʻo:
E ʻae i ka noi/json
Palapala maʻiʻo-ʻano/json
Ma hope o kāna hoʻokō ʻana, pono lākou e loaʻa ke kūlana "204 No Content".
E nānā kāua i ka mea i loaʻa iā mākou.
No kēia e hana mākou GET noi:
Kaila nīnau:
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
Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
Ma ka ʻaoʻao ʻae, pono ʻoe e hoʻonohonoho i ka ʻāpana Basic Auth a me ka hoʻopaʻa inoa / ʻōlelo huna: admin/admin.
hopena
I ka huina, e like me kāu i ʻike ai, ʻaʻole ʻokoʻa nā kaʻina hana no ka hoʻopili ʻana iā Cisco a me Juniper i OpenDaylight - wehe kēia i kahi ākea ākea no ka hana. E hoʻomaka ana mai ka hoʻonohonoho hoʻonohonoho ʻana i nā ʻāpana pūnaewele āpau a hoʻopau me ka hana ʻana i kāu mau kulekele pūnaewele ponoʻī.
Ma kēia kumu aʻo, ua hāʻawi wau i nā hiʻohiʻona maʻalahi o ke ʻano e hiki ai iā ʻoe ke launa pū me nā lako pūnaewele me ka hoʻohana ʻana i OpenDaylight. Me ka kānalua ʻole, hiki ke hoʻonui ʻia nā nīnau mai nā hiʻohiʻona ma luna a hoʻonohonoho i nā lawelawe holoʻokoʻa me hoʻokahi kaomi o ka ʻiole - ua kaupalena ʻia nā mea āpau e kou noʻonoʻo *
E hoʻomau 'ia…
PS
Inā ʻike koke ʻoe i kēia mau mea a i ʻole, ua hele a komo i loko o ka ʻuhane o ODL, a laila paipai wau e nānā i ka hoʻomohala ʻana i nā noi ma ka mea hoʻokele ODL. Hiki iā ʻoe ke hoʻomaka mai kēia wahi.