پرو هوسٽر > بلاگ > انتظاميه > نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو
نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو
هن آرٽيڪل ۾، مان توهان کي ڏيکاريندس ته ڪيئن سيٽ اپ ڪجي کليل ڏينهن جي روشني نيٽ ورڪ سامان سان ڪم ڪرڻ لاء، ۽ پڻ ڏيکاريو ته ڪيئن استعمال ڪجي پوسٽ ۽ سادو RESTCONF درخواستون، هن سامان کي ڪنٽرول ڪري سگهجي ٿو. اسان هارڊويئر سان ڪم نه ڪنداسين، پر ان جي بدران اسان هڪ واحد روٽر استعمال ڪندي ننڍڙن ورچوئل ليبارٽريز کي ترتيب ڏينداسين. Vrnetlab مٿان Ubuntu 20.04 LTS.
مان روٽر جو مثال استعمال ڪندي تفصيلي سيٽنگون ڏيکاريندس جونيپر vMX 20.1R1.11، ۽ پوءِ اسان ان کي سيٽنگ سان ڀيٽيو سسڪو xRV9000 7.0.2.
Contents
گهربل ڄاڻ
1 حصو: مختصر بحث OpenDaylight (هتي او ڊي ايل), پوسٽ и Vrnetlab ۽ ڇو اسان کي ان جي ضرورت آهي
2 حصو: ورچوئل ليبارٽري جي وضاحت
3 حصو: ترتيب ڏيڻ کليل ڏينهن جي روشني
4 حصو: ترتيب ڏيڻ Vrnetlab
5 حصو: استعمال ڪندي پوسٽ ورچوئل روٽر ڳنڍيو (جونيپر vMX) جي طرف او ڊي ايل
6 حصو: حاصل ڪريو ۽ استعمال ڪندي روٽر ترتيب تبديل ڪريو پوسٽ и او ڊي ايل
7 حصوشامل ڪريو Cisco xRV9000
ٿڪل
پي ايس
ببليوگرافي
گهربل ڄاڻ
آرٽيڪل کي شيٽ ۾ تبديل نه ڪرڻ لاء، مون ڪجهه ٽيڪنيڪل تفصيلات کي ختم ڪيو (ادب جي لنڪ سان جتي توهان انهن بابت پڙهي سگهو ٿا).
ان سلسلي ۾، مان توهان کي عنوان پيش ڪريان ٿو ته اهو سٺو هوندو (پر لڳ ڀڳ ضروري ناهي) پڙهڻ کان اڳ ڄاڻڻ:
اسان جي صورت ۾، اسان ان ۾ دلچسپي رکون ٿا REST درخواستون موڪلڻ لاء هڪ وسيلو طور OpenDaylight API ڏانهن. توهان ڪري سگهو ٿا، يقينا، دستي طور تي درخواستون موڪلي سگهو ٿا، پر پوسٽمين ۾ هر شيء بلڪل صاف نظر اچي ٿي ۽ اسان جي مقصدن کي پورو ڪري ٿو.
انهن لاءِ جيڪي کوٽڻ چاهين ٿا: ان تي تمام گهڻو تربيتي مواد لکيو ويو آهي (مثال طور).
Docker ۾ ورچوئل روٽرز کي ترتيب ڏيڻ لاءِ اوزار
سپورٽ: Cisco XRv، Juniper vMX، Arista vEOS، Nokia VSR، وغيره.
اوپن سورس
هڪ تمام دلچسپ پر ٿورڙي ڄاڻ وارو اوزار. اسان جي صورت ۾، اسان ان کي استعمال ڪنداسين Juniper vMX ۽ Cisco xRV9000 تي هلائڻ لاءِ باقاعده Ubuntu 20.04 LTS.
هن قدم تي او ڊي ايل شروع ڪرڻ گهرجي ۽ اسان پاڻ کي ڪنسول ۾ ڳولي سگهنداسين (پورٽ 8181 ٻاهران رسائي لاءِ استعمال ڪيو ويندو آهي، جيڪو اسان بعد ۾ استعمال ڪنداسين).
اڳيون، انسٽال ڪريو ODL خاصيتونپروٽوڪول سان ڪم ڪرڻ لاء ٺهيل NETCONF и RESTCONF. ڪنسول ۾ ائين ڪرڻ لاء او ڊي ايل اسان عمل ڪريون ٿا:
"اهو ئي سبب آهي ته پهريون ڀيرو VCP (ڪنٽرول جهاز) شروع ڪيو ويو آهي، اهو هڪ ترتيب فائل پڙهي ٿو جيڪو اهو طئي ڪري ٿو ته ڇا اهو VRR VCP طور vMX ۾ هلندو. اڳ ۾، اهو لانچ Docker جي شروعات دوران ڪيو ويو هو، پر ان جو مطلب اهو هو ته VCP. ورچوئل راؤٽر جي دستياب ٿيڻ کان اڳ هميشه هڪ ڀيرو ٻيهر شروع ڪيو ويو، نتيجي ۾ هڪ ڊگهو بوٽ ٽائيم (اٽڪل 5 منٽ) هاڻي وي سي پي جو پهريون رن ڊڪر جي تصوير جي تعمير دوران ڪيو ويندو آهي، ۽ جيئن ته ڊڪرر تعمير سان نه هلائي سگهجي ٿو - -privileged آپشن، ان جو مطلب اهو آهي ته qemu ڪم ڪري ٿو بغير KVM هارڊويئر جي تيزيءَ جي ۽ اهڙيءَ طرح تعمير ۾ تمام گهڻو وقت لڳندو آهي. هن عمل دوران، ڪيترائي لاگ آئوٽ ٿين ٿا، تنهنڪري گهٽ ۾ گهٽ توهان ڏسي سگهو ٿا ته ڇا ٿي رهيو آهي. منهنجو خيال آهي ته هڪ ڊگهي تعمير ايترو خوفناڪ نه آهي ڇو ته اسان هڪ ڀيرو هڪ تصوير ٺاهيندا آهيون، پر اسان ڪيترن ئي لانچ ڪندا آهيون.
ان کان پوء توهان اسان جي روٽر جي تصوير ڏسي سگهو ٿا 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
vr-vmx ڪنٽينر لانچ ڪريو
اسان حڪم سان شروع ڪريون ٿا:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
اڳيون، اسان فعال ڪنٽينرز بابت معلومات ڏسي سگھون ٿا:
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
روٽر سان ڳنڍڻ
روٽر جي نيٽ ورڪ انٽرفيس جو IP پتو ھيٺ ڏنل حڪم سان حاصل ڪري سگھجي ٿو:
ڊفالٽ، Vrnetlab روٽر تي صارف ٺاهي ٿو vrnetlab/VR-netlab9.
سان ڳنڍڻ 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
هي روٽر سيٽ اپ مڪمل ڪري ٿو.
مختلف وينڊرز جي روٽرز لاءِ تنصيب جون سفارشون ملي سگھن ٿيون github پروجيڪٽ لاڳاپيل ڊائريڪٽرن ۾.
حصو 5: پوسٽمن - روٽر کي OpenDaylight سان ڳنڍيو
پوسٽمن جي تنصيب
انسٽال ڪرڻ لاء، صرف ايپليڪيشن ڊائون لوڊ ڪريو هتي کان.
روٽر کي ODL سان ڳنڍڻ
اچو ته ٺاهي ڪر درخواست:
پڇا ڳاڇا:
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
اسان موڪليندا آهيون. "200 ٺيڪ" جي حيثيت حاصل ڪرڻ گهرجي ۽ ڊوائيس جي سڀني سپورٽ جي هڪ فهرست يانگ اسڪيما:
جو رايو آهي: بعد ۾ ڏسڻ لاء، منهنجي صورت ۾ ان جي عمل کان پوء اٽڪل 10 منٽ انتظار ڪرڻ ضروري هو ڪرسڀني تائين يانگ اسڪيما تي لوڊ ڪريو او ڊي ايل. هن نقطي تائين، جڏهن هن کي انجام ڏيو GET سوال ھيٺ ڏنل ڏيکاريندو:
اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
حصو 6: روٽر جي ترتيب کي تبديل ڪريو
ٺاھ جوڙ حاصل ڪرڻ
اچو ته ٺاهي GET درخواست:
پڇا ڳاڇا:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
اسان موڪليندا آهيون. "200 ٺيڪ" جي حيثيت حاصل ڪرڻ گهرجي ۽ روٽر جي ترتيب:
ٺاھ ٺاھيو ٺاھ جوڙ
مثال طور، اچو ته ھيٺ ڏنل ٺاھ جوڙ ٺاھيو ۽ ان کي تبديل ڪريو:
protocols {
bgp {
disable;
shutdown;
}
}
اچو ته ٺاهي پوسٽ درخواست:
پڇا ڳاڇا:
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
اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
هيڊرز ٽيب تي، توهان کي ٻه سر شامل ڪرڻ جي ضرورت آهي:
قبول ڪريو ايپليڪيشن/xml
مواد جو قسم ايپليڪيشن/xml
موڪلڻ کان پوء، انهن کي اسٽيٽس حاصل ڪرڻ گهرجي "204 ڪوبه مواد ناهي"
چيڪ ڪرڻ لاء ته ترتيب تبديل ٿي وئي آهي، توهان استعمال ڪري سگهو ٿا پوئين سوال. پر مثال طور، اسان هڪ ٻيو ٺاهينداسين جيڪو صرف روٽر تي ترتيب ڏنل پروٽوڪول بابت معلومات ڏيکاريندو.
اچو ته ٺاهي GET درخواست:
پڇا ڳاڇا:
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
اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
درخواست تي عمل ڪرڻ کان پوء، اسان ھيٺ ڏنل ڏسندا سين:
ترتيب تبديل ڪريو
اچو ته BGP پروٽوڪول بابت معلومات کي تبديل ڪريو. اسان جي عملن کان پوء، اهو هن طرح نظر ايندو:
protocols {
bgp {
disable;
}
}
اچو ته ٺاهي ڪر درخواست:
پڇا ڳاڇا:
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
موڪلڻ کان پوء، اسان هيٺ ڏنل نتيجو حاصل ڪنداسين (اسين استعمال ڪندي جواب کي ڏسو GET درخواست):
حصو 7: Cisco xRV9000 شامل ڪرڻ
اسان سڀ جونيپر بابت ڇا آهيون، ها جونيپر؟ اچو ته Cisco بابت ڳالهايون!
مون کي xRV9000 نسخو 7.0.2 مليو (هڪ جانور جنهن کي 8 جي بي ريم ۽ 4 ڪور جي ضرورت آهي. اهو آزاد طور تي دستياب ناهي، تنهنڪري رابطو ڪريو Cisco) - اچو ته ان کي هلون.
ڪنٽينر هلائڻ
ڊاکر ڪنٽينر ٺاهڻ جو عمل عملي طور تي جونيپر کان مختلف ناهي. اهڙي طرح، اسان .qcow2 فائل کي روٽر سان ان جي نالي سان لاڳاپيل ڊاريڪٽري ۾ ڇڏي ڏيو (هن صورت ۾، xrv9k) ۽ حڪم تي عمل ڪريو. make docker-image.
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
اسان ڪنٽينر شروع ڪريون ٿا:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
ٿوري دير کان پوء، اسان ڏسون ٿا ته ڪنٽينر شروع ٿي چڪو آهي:
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
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
روٽر کي OpenDaylight سان ڳنڍي رهيو آهي
شامل ڪرڻ مڪمل طور تي ساڳئي طريقي سان وي ايم ايڪس سان ٿئي ٿي. اسان کي صرف نالا تبديل ڪرڻ جي ضرورت آهي. ڪر درخواست:
ٿوري دير کان پوءِ فون GET چيڪ ڪرڻ لاء سوال ڪيو ته هر شيء ڳنڍيل آهي:
ترتيب تبديل ڪريو
اچو ته هيٺ ڏنل ترتيب ترتيب ڏيو:
!
router ospf LAB
mpls ldp auto-config
!
اچو ته ٺاهي پوسٽ درخواست:
پڇا ڳاڇا:
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
اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
هيڊرز ٽيب تي، توهان کي ٻه سر شامل ڪرڻ جي ضرورت آهي:
درخواست قبول ڪريو/json
مواد جي قسم جي ايپليڪيشن/json
ان جي عمل کان پوء، ان کي حاصل ڪرڻ گهرجي "204 ڪوبه مواد نه".
اچو ته چيڪ ڪريون ته اسان کي ڇا مليو.
هن کي ڪرڻ لاء، اسان ٺاهينداسين GET درخواست:
پڇا ڳاڇا:
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
اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
ٿڪل
مجموعي طور تي، جيئن توهان محسوس ڪيو هوندو، سسڪو ۽ جونيپر کي OpenDaylight سان ڳنڍڻ جا طريقا مختلف نه آهن - اهو تخليقيت لاء ڪافي وسيع گنجائش پيدا ڪري ٿو. سڀني نيٽ ورڪ حصن جي ترتيب جي انتظام کان شروع ٿيڻ ۽ توهان جي پنهنجي نيٽ ورڪ پاليسين جي ٺهڻ سان ختم ٿيڻ.
هن سبق ۾، مون آسان ترين مثال ڏنا آهن ته توهان ڪيئن نيٽ ورڪ سامان سان رابطو ڪري سگهو ٿا OpenDaylight استعمال ڪندي. بغير ڪنهن شڪ جي، مٿين مثالن مان سوالن کي وڌيڪ پيچيده بڻائي سگهجي ٿو ۽ ماؤس جي هڪ ڪلڪ سان سموريون خدمتون قائم ڪري سگهجن ٿيون - هر شي صرف توهان جي تخيل تائين محدود آهي *
جاري رکڻ گهرجي…
پي ايس
جيڪڏهن توهان اوچتو ئي اهو سڀ ڪجهه ڄاڻو ٿا يا، ان جي برعڪس، گذري ويا آهن ۽ ODL جي روح ۾ غرق ٿي ويا آهن، پوء آئون ODL ڪنٽرولر تي ايپليڪيشنن کي ترقي ڪرڻ جي صلاح ڏيان ٿو. توهان شروع ڪري سگهو ٿا هتي کان.