Meel furan oo SDN ah oo loogu talagalay maaraynta iyo habaynta dhammaan noocyada shabakadaha, oo ay taageerto Foundation Foundation
Java gudaha
Iyada oo ku saleysan Heerka Abstraction Service Model-Driven Service (MD-SAL)
Wuxuu adeegsadaa moodooyinka YANG si uu si toos ah ugu soo saaro RESTCONF APIs ee aaladaha shabakada
Qaybta ugu muhiimsan ee maaraynta shabakada Waa iyada oo aan kula xiriiri doono qalabka ku xiran. Lagu maamulay API u gaar ah.
Waxaad wax badan ka akhrin kartaa Opendaylight halkan.
Qalabka tijaabada API
Fudud oo sahlan in la isticmaalo interface
Xaaladeena, waxaan u xiisaynaynaa si ay ugu dirto codsiyada REST API OpenDaylight. Waxaad, dabcan, codsiyada u diri kartaa gacanta, laakiin gudaha Boostman-ka wax walba aad bay u cad yihiin oo si fiican ugu habboon ujeedooyinkayaga.
Kuwa doonaya inay qodaan: qalab badan oo tababar ah ayaa lagu qoray (tusaale ahaan).
Qalabka lagu geynayo router-ka farsamada ee Docker
Taageerada: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, iwm.
Ilaha furan
Qalab aad u xiiso badan balse yar oo la yaqaan. Xaaladeena, waxaan u isticmaali doonaa inaan ku socodsiino Juniper vMX iyo Cisco xRV9000 Ubuntu 20.04 LTS caadiga ah.
Waxaad wax badan oo ku saabsan ka akhrisan kartaa at bogga mashruuca.
Qaybta 2: Shaybaadhka
Tababarkan, waxaanu dejin doonaa nidaamkan soo socda:
ODL ku xiran router oo kuu ogolaanaya inaad xakameyso.
Boostada lagu bilaabay mishiin gaar ah oo aan u dirno amarro ODL: in la isku xidho/ka saaro router-ka, beddelo qaabaynta, iwm.
Faallo ku saabsan aaladda nidaamka
Juniper vMX и ODL Waxay u baahan yihiin dhaqaale aad u badan si ay u hawlgalaan xasilloon. Mid kaliya vMX wuxuu ku weydiinayaa 6 Gb ee RAM iyo 4 cores. Sidaa darteed, waxaa la go'aamiyay in dhammaan "miisaanka culus" loo wareejiyo mashiin gaar ah (Heulet Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Router-ka, dabcan, ma "duuulo", laakiin waxqabadku wuxuu ku filan yahay tijaabooyin yaryar.
Qeybta 3: Deji iftiinka maalinta furan
Nooca hadda ee ODL wakhtiga qoraalkan waa Magnesium SR1
1) Ku rakib Java Fur JDK 11 ( si aad u faahfaahsan u rakibid halkan)
ubuntu:~$ sudo apt install default-jdk
2) Soo hel oo soo deji dhismihii ugu dambeeyay ODLhalkan
3) Ka fur kaydka la soo dejiyay
4) U tag tusaha ka soo baxay
5) Daahfurka ./bin/karaf
Tallaabadan ODL waa in aan bilownaa oo waxaan ku heli doonaa nafteena console-ka (Port 8181 waxaa loo isticmaalaa gelitaanka dibadda, kaas oo aan isticmaali doono hadhow).
Marka xigta, rakib Tilmaamaha ODLloogu talagalay in lagu shaqeeyo borotokoolka NETCONF и RESTCONF. Si tan loo sameeyo gudaha konsole ODL waanu fulinaa:
Si loo rakibo Vrnetlab ka xidho kaydka u dhigma ee github:
ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git
Tag hagaha vrnetlab:
ubuntu:~$ cd ~/vrnetlab
Halkan waxaad ku arki kartaa dhammaan qoraallada loo baahan yahay si loo socodsiiyo. Fadlan la soco in hage u dhigma loo sameeyay nooc kasta oo router ah:
"Tani waa sababta oo ah markii ugu horeysay ee VCP (Control Plane) la bilaabo, waxay akhrinaysaa faylka qaabeynta kaas oo go'aaminaya in uu u socon doono VRR VCP ee vMX. Markii hore, bilawga waxaa la sameeyay intii lagu jiray bilowga Docker, laakiin tani waxay ka dhigan tahay in VCP Had iyo jeer dib ayaa loo bilaabay hal mar ka hor inta aan la helin router dalwaddii, taasoo keentay waqti dheer oo boot ah (qiyaastii 5 daqiiqo) Hadda socodka ugu horreeya ee VCP waxaa la sameeyaa inta lagu jiro dhismaha sawirka Docker, iyo maadaama dhismaha Docker aan la socon karin - Xulashada mudnaanta leh, tani waxay ka dhigan tahay in qemu uu shaqeeyo iyada oo aan la dardargelin qalabka KVM sidaas darteed dhismuhu wuxuu qaadanayaa waqti aad u dheer. Inta lagu jiro habkan wax badan oo logs ah ayaa soo baxa, markaa ugu yaraan waxaad arki kartaa waxa socda. Waxaan u maleynayaa in dhismo dheer uu yahay ma ahan mid cabsi leh sababtoo ah waxaan abuurnaa muuqaal hal mar, laakiin waxaan bilownay qaar badan."
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
Fur weelka vr-vmx
Waxaan ku bilaabaynaa amarka:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Marka xigta, waxaan arki karnaa macluumaadka ku saabsan weelasha firfircoon:
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
Ku xidhida router-ka
Ciwaanka IP-ga ee isku xirka shabakadda ee router-ka waxaa lagu heli karaa amarka soo socda:
Asal ahaan, Vrnetlab ku abuuraa isticmaale router-ka vrnetlab/VR-netlab9.
Ku xidhidhiyaha 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
Tani waxay dhamaystiraysaa habaynta router.
Talooyinka rakibidda ee router-ka iibiyeyaasha kala duwan ayaa laga heli karaa at mashruuca github tusaha kala duwan.
Qeybta 5: Boostada - ku xir router-ka Opendaylight
Kuwani waa meelo magacyo gudaha ah XML (XML magaca) ee ODL sida ay u abuurto nood.
Dheeraad ah, siday u kala horreeyaan, magaca router waa nood-id, cinwaanka router - ciidankii iyo wixii la mid ah.
Khadka ugu xiisaha badan waa kan ugu dambeeya. Schema-cache-directory abuuraa tusaha meesha dhammaan faylasha la soo dejiyo Qorshaha YANG router ku xiran. Waxaad ka heli kartaa gudaha $ODL_ROOT/cache/jun01_cache.
Hubinta isku xirka router-ka
Aan abuurno GET codsi:
Xadhiga weydiinta:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Waxaan dirnaa. Waa in la helaa xaalad ah "200 OK" iyo liiska dhammaan uu taageeray qalabku Qorshaha YANG:
comment: Si aad u aragto tan dambe, xaaladdeyda waxay ahayd lagama maarmaan in la sugo 10 daqiiqo ka dib fulinta gelinilaa dhammaan Qorshaha YANG soo dejiso ODL. Ilaa heerkan, marka la fulinayo tan GET weydiintu waxay soo bandhigi doontaa kuwan soo socda:
Waxaan dirnaa. Waa in la helaa heerka "200 OK" iyo qaabeynta router:
Samee qaabayn
Tusaale ahaan, aan abuurno qaabeynta soo socota oo aan wax ka beddelno:
protocols {
bgp {
disable;
shutdown;
}
}
Aan abuurno POST codsi:
Xadhiga weydiinta:
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
Tabka Headers, waxaad u baahan tahay inaad ku darto laba madax:
Aqbal codsiga/xml
Codsiga Nooca-Content-ka/xml
Dirista ka dib, waa inay helaan heerka "204 Ma jiraan wax"
Si aad u hubiso in qaabayntu isbedeshay, waxaad isticmaali kartaa waydiintii hore. Laakiin tusaale ahaan, waxaan abuuri doonaa mid kale oo soo bandhigi doona macluumaadka kaliya ee ku saabsan borotokoolka lagu habeeyay router-ka.
Aan abuurno GET codsi:
Xadhiga weydiinta:
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
Kadib fulinta codsiga, waxaan arki doonaa kuwan soo socda:
Beddel qaabeynta
Aynu bedelno macluumaadka ku saabsan borotokoolka BGP. Ficilkeena kadib, waxay u ekaan doontaa sidan:
protocols {
bgp {
disable;
}
}
Aan abuurno gelin codsi:
Xadhiga weydiinta:
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
Ha iloobin inaad u beddesho madaxyada tabka Headers inaad:
Aqbal codsiga/json
Nooca nuxurka codsiga/json
Dirista ka dib, waxaan heli doonaa natiijada soo socota (Waxaan eegnaa jawaabta anagoo adeegsanayna GET codsi):
Qeybta 7: Ku darista Cisco xRV9000
Maxaan ka wada leenahay Juniper, haa Juniper? Aan ka hadalno Cisco!
Waxaan helay xRV9000 nooca 7.0.2 (bahal u baahan 8Gb RAM iyo 4 cores. Si xor ah uma heli karo, markaa la xidhiidh Cisco) - aan wadno.
Ku ordaya weel
Habka abuurista weelka Docker dhab ahaantii kama duwana Juniper. Sidoo kale, waxaan ku rideynaa faylka .qcow2 ee router-ka galka u dhigma magaciisa (xaaladdan, xrv9k) oo fulinta amarka make docker-image.
Dhowr daqiiqo ka dib, waxaan aragnaa in sawirka la sameeyay:
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
Waxaan bilaabaynaa weelka:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Muddo ka dib, waxaan aragnaa in weelku bilaabmay:
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
Ku xidh 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
Ku xidhida router-ka Opendaylight
Ku darista waxay u dhacdaa si gebi ahaanba la mid ah oo leh vMX. Waxaan kaliya u baahanahay inaan bedelno magacyada. gelin codsi:
Wac muddo ka dib GET weydii si aad u hubiso in wax walba ay ku xiran yihiin:
Beddel qaabeynta
Aynu dejinno qaabaynta soo socota:
!
router ospf LAB
mpls ldp auto-config
!
Aan abuurno POST codsi:
Xadhiga weydiinta:
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
Tabka Headers, waxaad u baahan tahay inaad ku darto laba madax:
Aqbal codsiga/json
Nooca nuxurka codsiga/json
Ka dib marka la fuliyo, waa in ay helaan heerka "204 No Content".
Aynu eegno waxa aan helnay.
Si tan loo sameeyo, waxaan abuuri doonaa GET codsi:
Xadhiga weydiinta:
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