ProHoster > Блог > Nchịkwa > Akpaaka nke ọrụ netwọk ma ọ bụ otu esi arụ ụlọ nyocha mebere site na iji OpenDaylight, Postman na Vrnetlab
Akpaaka nke ọrụ netwọk ma ọ bụ otu esi arụ ụlọ nyocha mebere site na iji OpenDaylight, Postman na Vrnetlab
N'isiokwu a, m ga-egosi gị otu esi edozi Mepee ìhè ụbọchị iji ngwa netwọk rụọ ọrụ, ma gosikwa otu esi eji Postman na mfe RESTCONF Arịrịọ, akụrụngwa a nwere ike ịchịkwa. Anyị agaghị arụ ọrụ na ngwaike, mana kama anyị ga-ebuga obere ụlọ nyocha nke nwere otu rawụta na-eji Vrnetlab gafere Ubuntu 20.04 LTS.
M ga-ebu ụzọ gosi ntọala zuru ezu site na iji ihe atụ nke rawụta Juniper vMX 20.1R1.11, wee jiri ya tụnyere ntọala ahụ Cisco xRV9000 7.0.2.
Ihe
Ihe omuma achọrọ
Part 1: tụlee nkenke Opendaylight (nke a gachara ODL), Postman и Vrnetlab na gịnị mere anyị ji chọọ ha
Part 2: nkọwa nke mebere laabu
Part 3: hazie Mepee ìhè ụbọchị
Part 4: hazie Vrnetlab
Part 5: site n'iji Postman jikọọ rawụta mebere (Juniper vMX) Iji ODL
Part 6: nweta ma gbanwee nhazi nke rawụta site na iji Postman и ODL
Part 7: tinye Cisco xRV9000
nkwubi
PS
Akwụkwọ akụkọ
Ihe omuma achọrọ
Ka akụkọ ahụ wee ghara ịghọ mpempe akwụkwọ, ewepụrụ m ụfọdụ nkọwa teknụzụ (nwere njikọ na akwụkwọ ndị ị nwere ike ịgụ banyere ha).
Na njikọ a, m na-enye gị isiokwu na ọ ga-adị mma (ma ọ fọrọ nke nta ka ọ bụrụ na ọ dịghị mkpa) ịmara tupu ị gụọ:
N'ọnọdụ anyị, anyị nwere mmasị na ya dịka ụzọ maka izipu arịrịọ REST na OpenDaylight API. Ị nwere ike, n'ezie, iji aka gị ziga arịrịọ, mana na Postman ihe niile na-ele anya nke ọma ma dabara na ebumnuche anyị nke ọma.
Maka ndị na-achọ igwu ala: e dewo ọtụtụ ihe ọzụzụ na ya (dịka ọmụmaatụ).
Ngwa maka ibugharị ndị na-anya ụgbọ ala na Docker
Na-akwado: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, wdg.
Isi Iyi
Ngwá ọrụ na-adọrọ nnọọ mmasị mana obere ama ama. N'ọnọdụ anyị, anyị ga-eji ya na-agba Juniper vMX na Cisco xRV9000 na Ubuntu 20.04 LTS mgbe niile.
Juniper vMX na-ebili na Docker akpa (site n'aka Vrnetlab) ma na-arụ ọrụ dị ka onye rawụta mebere nke ọma.
ODL jikọọ na rawụta ma na-enye gị ohere ijikwa ya.
Postman ulo oru na a iche iche igwe na site na ya anyị na-eziga iwu ODL: iji jikọọ / wepụ rawụta, gbanwee nhazi, wdg.
Nkọwa na ngwaọrụ nke usoro
Juniper vMX и ODL chọrọ nnukwu ego maka ịrụ ọrụ kwụsiri ike. Otu naanị vMX na-arịọ maka 6 GB nke RAM na 4 cores. Ya mere, e kpebiri ịkwaga "ihe dị arọ" niile na igwe dị iche (Heulet Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Onye rawụta, n'ezie, anaghị "efe efe" na ya, mana arụmọrụ zuru oke maka obere nnwale.
Akụkụ 3: Tọọ Opendaylight
Ụdị ODL dị ugbu a n'oge edere bụ Magnesium SR1
1) Wụnye Java mepere JDK 11 (maka nrụnye zuru oke ebe a)
ubuntu:~$ sudo apt install default-jdk
2) Chọta wee budata ihe owuwu kacha ọhụrụ ODLsite n'ebe a
3) Mepee ebe nchekwa ebudatara
4) Gaa na ndekọ ndekọ nke ga-apụta
5) Mwepụta ./bin/karaf
Na nzọụkwụ a ODL kwesịrị ịmalite na anyị ga-ahụ onwe anyị na njikwa (Port 8181 na-eji maka ịnweta site n'èzí, nke anyị ga-eji emechaa).
Na-esote, wụnye Njirimara ODLemebere ka ọ rụọ ọrụ na protocol NETCONF и RESTCONF. Iji mee nke a na console ODL anyị na-eme:
Onye ọ bụla rawụta na-akwado Vrnetlab, nwere usoro nhazi nke ya pụrụ iche. Mgbe ole Juniper vMX naanị anyị kwesịrị ibulite .tgz Archive na rawụta (ị nwere ike ibudata ya na ukara saịtị) gaa na vmx ndekọ ma mee iwu ahụ make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Iwulite onyonyo vMX ga-ewe ihe dị ka 10-20 nkeji. Ọ bụ oge ịga nweta kọfị!
"Nke a bụ n'ihi na oge mbụ VCP (Control Plane) malitere, ọ na-agụ faịlụ nhazi nke na-ekpebi ma ọ ga-agba ọsọ dị ka VRR VCP na vMX. Na mbụ, a na-eme mmalite a n'oge mmalite Docker, ma nke a pụtara na VCP. A na-amaliteghachi mgbe niile otu ugboro tupu onye rawụta mebere adị, na-ebute ogologo oge buut (ihe dị ka nkeji 5) Ugbu a, a na-eme ọsọ mbụ nke VCP n'oge a na-ewu ihe onyonyo Docker, yana ebe ọ bụ na enweghị ike iji ya rụọ ọrụ Docker. nhọrọ -privileged, nke a pụtara na qemu na-arụ ọrụ na-enweghị ngwa ngwa KVM ngwaike ma si otú a na-ewu ụlọ na-ewe ogologo oge. N'oge usoro a, a na-emepụta ọtụtụ ndekọ ndekọ, ya mere ọ dịkarịa ala ị nwere ike ịhụ ihe na-eme. Ọ bụghị egwu n'ihi na anyị na-emepụta ihe oyiyi otu ugboro, mana anyị na-ebupụta ọtụtụ."
Mgbe ị ga-ahụ foto nke router anyị 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
Ẹkedori akpa vr-vmx
Anyị na-amalite na iwu:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Na-esote, anyị nwere ike ịhụ ozi gbasara arịa na-arụ ọrụ:
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
Jikọọ na rawụta
Enwere ike nweta adreesị IP nke interface netwọk nke rawụta site na iwu a:
Ndabere, Vrnetlab na-emepụta onye ọrụ na rawụta vrnetlab/VR-netlab9.
Jikọọ na 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
Nke a na-emecha ntọala rawụta.
Enwere ike ịchọta ndụmọdụ ntinye maka ndị na-anya ụgbọ ala nke ndị na-ere ahịa dị iche iche na github oru ngo n'ime akwụkwọ ndekọ aha dị iche iche.
Nkebi 5: Onye nzi ozi-jikọọ rawụta na OpenDaylight
Ndị a bụ oghere aha dị n'ime XML (Oghere aha XML) maka ODL dị ka nke ọ na-emepụta ọnụ.
Ọzọkwa, n'otu n'otu, aha nke rawụta bụ ọnụ-id, adreesị rawụta - usu na ndị ọzọ.
Ahịrị kacha adọrọ mmasị bụ nke ikpeazụ. Schema-cache-ndekọ na-emepụta ndekọ ebe ebudatara faịlụ niile Atụmatụ YANG ejikọrọ rawụta. Ị nwere ike ịhụ ha n'ime $ODL_ROOT/cache/jun01_cache.
Na-enyocha njikọ nke rawụta
Ka anyị mepụta GET arịrịọ:
eriri ajụjụ:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Na taabụ ikike, ị ga-edozi oke Basic Auth na nbanye / paswọọdụ: admin/admin.
Anyị na-eziga. Kwesịrị ịnata ọkwa nke "200 OK" yana ndepụta ngwaọrụ niile kwadoro Atụmatụ YANG:
comment: Iji hụ nke ikpeazụ, n'ọnọdụ m, ọ dị mkpa ichere ihe dị ka nkeji 10 mgbe e gbuchara ya Tinyeruo mgbe niile YANG atụmatụ budata na ODL. Ruo ebe a, mgbe ị na-eme nke a GET ajụjụ ga-egosipụta ihe ndị a:
Na taabụ ikike, ị ga-edozi oke Basic Auth na nbanye / paswọọdụ: admin/admin.
Nkebi nke 6: Gbanwee nhazi nke rawụta
Inweta nhazi
Ka anyị mepụta GET arịrịọ:
eriri ajụjụ:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Na taabụ ikike, ị ga-edozi oke Basic Auth na nbanye / paswọọdụ: admin/admin.
Anyị na-eziga. Kwesịrị ịnata ọkwa "200 OK" na nhazi nke rawụta:
Mepụta nhazi
Dịka ọmụmaatụ, ka anyị mepụta nhazi ndị a wee gbanwee ya:
protocols {
bgp {
disable;
shutdown;
}
}
Ka anyị mepụta POST arịrịọ:
eriri ajụjụ:
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
Na taabụ ikike, ị ga-edozi oke Basic Auth na nbanye / paswọọdụ: admin/admin.
Na taabụ nkụnye eji isi mee, ịkwesịrị ịgbakwunye nkụnye eji isi mee abụọ:
Nabata ngwa/xml
Ngwa ụdị ọdịnaya/xml
Mgbe ha zigachara, ha kwesịrị ịnata ọkwa "204 enweghị ọdịnaya"
Iji lelee na nhazi ahụ agbanweela, ịnwere ike iji ajụjụ gara aga. Mana dịka ọmụmaatụ, anyị ga-emepụta nke ọzọ nke ga-egosipụta ozi naanị gbasara protocol ahaziri na rawụta.
Ka anyị mepụta GET arịrịọ:
eriri ajụjụ:
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
Na taabụ ikike, ị ga-edozi oke Basic Auth na nbanye / paswọọdụ: admin/admin.
Mgbe emechara arịrịọ ahụ, anyị ga-ahụ ihe ndị a:
Gbanwee nhazi
Ka anyị gbanwee ozi gbasara protocol BGP. Mgbe omume anyị gasịrị, ọ ga-adị ka nke a:
protocols {
bgp {
disable;
}
}
Ka anyị mepụta Tinye arịrịọ:
eriri ajụjụ:
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
Echefula ịgbanwe nkụnye eji isi mee na taabụ nkụnye eji isi mee ka ọ bụrụ:
Nabata ngwa/json
Ngwa ụdị ọdịnaya/json
Mgbe izipuchara, anyị ga-enweta nsonaazụ a (Anyị na-elele azịza ya site na iji GET arịrịọ):
Nkeji 7: Ịgbakwunye Cisco xRV9000
Kedu ihe anyị niile gbasara Juniper, ee Juniper? Ka anyị kwuo maka Cisco!
Achọtara m ụdị xRV9000 7.0.2 (anụ ọhịa chọrọ 8Gb RAM na cores 4. Ọ naghị adị n'efu, yabụ kpọtụrụ Cisco) - ka anyị gbaa ya.
Na-agba ọsọ akpa
Usoro imepụta akpa Docker adịghị iche na Juniper. N'otu aka ahụ, anyị na-atụba faịlụ .qcow2 na rawụta n'ime ndekọ aha ya (na nke a, xrv9k) wee mee iwu ahụ. make docker-image.
Mgbe nkeji ole na ole gachara, anyị na-ahụ na emepụtara onyonyo a:
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
Anyị na-amalite akpa ahụ:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Mgbe obere oge gasịrị, anyị na-ele anya na akpa ahụ amalitela:
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
Jikọọ site na 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
Kpọọ mgbe obere oge gasịrị GET ajụjụ ka ịlele na ejikọrọ ihe niile:
Gbanwee nhazi
Ka anyị hazie nhazi ndị a:
!
router ospf LAB
mpls ldp auto-config
!
Ka anyị mepụta POST arịrịọ:
eriri ajụjụ:
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
Na taabụ ikike, ị ga-edozi oke Basic Auth na nbanye / paswọọdụ: admin/admin.
Na taabụ nkụnye eji isi mee, ịkwesịrị ịgbakwunye nkụnye eji isi mee abụọ:
Nabata ngwa/json
Ngwa ụdị ọdịnaya/json
Mgbe emechara ya, ha kwesịrị ịnata ọkwa "204 enweghị ọdịnaya".
Ka anyị lelee ihe anyị nwetara.
Iji mee nke a, anyị ga-emepụta GET arịrịọ:
eriri ajụjụ:
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
Na taabụ ikike, ị ga-edozi oke Basic Auth na nbanye / paswọọdụ: admin/admin.
Na taabụ ikike, ị ga-edozi oke Basic Auth na nbanye / paswọọdụ: admin/admin.
nkwubi
Na mkpokọta, dịka ị chọpụtala, usoro maka ijikọ Cisco na Juniper na OpenDaylight adịghị iche - nke a na-emepe ohere dị ukwuu maka imepụta ihe. Malite na njikwa nhazi nke akụrụngwa netwọkụ niile na-ejedebe na imepụta iwu netwọkụ nke gị.
N'ime nkuzi a, enyela m ihe atụ kachasị mfe nke otu ị ga-esi mekọrịta ngwa netwọk site na iji OpenDaylight. Obi abụọ adịghị ya, ajụjụ ndị sitere na ihe atụ ndị dị n'elu nwere ike ime ka ọ dịkwuo mgbagwoju anya ma jiri otu ọpịpị nke òké guzobe ọrụ niile - ihe niile na-ejedebe naanị site n'echiche gị *
Ka ga-aga n'ihu…
PS
Ọ bụrụ na ị maralarị ihe ndị a niile na mberede ma ọ bụ, n'ụzọ megidere nke ahụ, gafere wee banye n'ime mkpụrụ obi nke ODL, a na m akwado ileba anya na mmepe ngwa na onye njikwa ODL. Ị nwere ike ịmalite site n'ebe a.