نيٽ ورڪ سروسز جي آٽوميشن يا 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
  • ٿڪل
  • پي ايس
  • ببليوگرافي

گهربل ڄاڻ

آرٽيڪل کي شيٽ ۾ تبديل نه ڪرڻ لاء، مون ڪجهه ٽيڪنيڪل تفصيلات کي ختم ڪيو (ادب جي لنڪ سان جتي توهان انهن بابت پڙهي سگهو ٿا).

ان سلسلي ۾، مان توهان کي عنوان پيش ڪريان ٿو ته اهو سٺو هوندو (پر لڳ ڀڳ ضروري ناهي) پڙهڻ کان اڳ ڄاڻڻ:

حصو 1: ڪجهه نظريو

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

  • هڪ کليل SDN پليٽ فارم هر قسم جي نيٽ ورڪ کي منظم ڪرڻ ۽ خودڪار ڪرڻ لاءِ، جنهن جي حمايت ڪئي وئي آهي لينڪس فائونڊيشن
  • جاوا اندر
  • ماڊل-ڊرائينڊ سروس ايبسٽرڪشن ليول جي بنياد تي (MD-SAL)
  • نيٽ ورڪ ڊوائيسز لاءِ خودڪار طريقي سان RESTCONF APIs پيدا ڪرڻ لاءِ YANG ماڊل استعمال ڪري ٿو

نيٽ ورڪ مينيجمينٽ لاء مکيه ماڊل. اهو ان جي ذريعي آهي ته اسان ڳنڍيل ڊوائيسز سان رابطو ڪنداسين. ان جي پنهنجي API ذريعي منظم.

توهان OpenDaylight بابت وڌيڪ پڙهي سگهو ٿا هتي.

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

  • API جاچ اوزار
  • سادو ۽ استعمال ڪرڻ آسان انٽرفيس

اسان جي صورت ۾، اسان ان ۾ دلچسپي رکون ٿا REST درخواستون موڪلڻ لاء هڪ وسيلو طور OpenDaylight API ڏانهن. توهان ڪري سگهو ٿا، يقينا، دستي طور تي درخواستون موڪلي سگهو ٿا، پر پوسٽمين ۾ هر شيء بلڪل صاف نظر اچي ٿي ۽ اسان جي مقصدن کي پورو ڪري ٿو.

انهن لاءِ جيڪي کوٽڻ چاهين ٿا: ان تي تمام گهڻو تربيتي مواد لکيو ويو آهي (مثال طور).

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

  • Docker ۾ ورچوئل روٽرز کي ترتيب ڏيڻ لاءِ اوزار
  • سپورٽ: Cisco XRv، Juniper vMX، Arista vEOS، Nokia VSR، وغيره.
  • اوپن سورس

هڪ تمام دلچسپ پر ٿورڙي ڄاڻ وارو اوزار. اسان جي صورت ۾، اسان ان کي استعمال ڪنداسين Juniper vMX ۽ Cisco xRV9000 تي هلائڻ لاءِ باقاعده Ubuntu 20.04 LTS.

توھان ان بابت وڌيڪ پڙھي سگھو ٿا تي منصوبي جو صفحو.

حصو 2: ليبارٽري

هن سبق ۾، اسان هيٺ ڏنل سسٽم قائم ڪنداسين:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

ڪيئن هن ڪم ڪندو

  • جونيپر vMX ۾ وڌي ٿو Docker ڪنٽينر (ذريعو Vrnetlab) ۽ سڀ کان عام ورچوئل روٽر طور ڪم ڪري ٿو.
  • او ڊي ايل روٽر سان ڳنڍيل آهي ۽ توهان کي ان کي ڪنٽرول ڪرڻ جي اجازت ڏئي ٿي.
  • پوسٽ هڪ الڳ مشين تي شروع ڪيو ۽ ان جي ذريعي اسان حڪم موڪليندا آهيون او ڊي ايل: روٽر کي ڳنڍڻ / هٽائڻ، ترتيب تبديل ڪرڻ، وغيره.

سسٽم جي ڊوائيس تي تبصرو

جونيپر vMX и او ڊي ايل انهن جي مستحڪم آپريشن لاء ڪافي وسيلن جي ضرورت آهي. صرف هڪ vMX 6 جي بي ريم ۽ 4 ڪور لاءِ پڇي ٿو. تنهن ڪري، اهو فيصلو ڪيو ويو ته سڀني "هيري وزن" کي هڪ الڳ مشين ڏانهن منتقل ڪيو وڃي (Heulett Packard Enterprise MicroServer ProLiant Gen8، Ubuntu 20.04 LTS). روٽر، يقينا، ان تي "پرواز" نٿو ڪري، پر ڪارڪردگي ننڍن تجربن لاء ڪافي آهي.

حصو 3: OpenDaylight سيٽ اپ ڪريو

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

هن لکڻ جي وقت تي ODL جو موجوده نسخو ميگنيشيم SR1 آهي

1) انسٽال ڪريو جاوا OpenJDK 11 (وڌيڪ تفصيلي تنصيب لاءِ هتي)

ubuntu:~$ sudo apt install default-jdk

2) ڳوليو ۽ ڊائون لوڊ ڪريو جديد تعمير او ڊي ايل هتي کان
3) ڊائون لوڊ ٿيل آرڪائيو انزپ ڪريو
4) نتيجو ڊاريڪٽري ڏانھن وڃو
5) لانچ ./bin/karaf

هن قدم تي او ڊي ايل شروع ڪرڻ گهرجي ۽ اسان پاڻ کي ڪنسول ۾ ڳولي سگهنداسين (پورٽ 8181 ٻاهران رسائي لاءِ استعمال ڪيو ويندو آهي، جيڪو اسان بعد ۾ استعمال ڪنداسين).

اڳيون، انسٽال ڪريو ODL خاصيتونپروٽوڪول سان ڪم ڪرڻ لاء ٺهيل NETCONF и RESTCONF. ڪنسول ۾ ائين ڪرڻ لاء او ڊي ايل اسان عمل ڪريون ٿا:

opendaylight-user@root> feature:install odl-netconf-topology odl-restconf-all

هي سڀ کان آسان سيٽ اپ آهي. او ڊي ايل مڪمل. (وڌيڪ تفصيل لاءِ، ڏسو هتي).

حصو 4: Vrnetlab ترتيب ڏيڻ

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

سسٽم جي تياري

انسٽاليشن کان پهريان Vrnetlab توهان کي ان جي آپريشن لاء گهربل پيڪيجز کي انسٽال ڪرڻ جي ضرورت آهي. جيئن ته Docker, اٿي, سي ايس پاس:

ubuntu:~$ sudo apt update
ubuntu:~$ sudo apt -y install python3-bs4 sshpass make
ubuntu:~$ sudo apt -y install git
ubuntu:~$ sudo apt install -y 
    apt-transport-https ca-certificates 
    curl gnupg-agent software-properties-common
ubuntu:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
ubuntu:~$ sudo add-apt-repository 
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
   $(lsb_release -cs) 
   stable"
ubuntu:~$ sudo apt update
ubuntu:~$ sudo apt install -y docker-ce docker-ce-cli containerd.io

Vrnetlab انسٽال ڪرڻ

انسٽال ڪرڻ لاء Vrnetlab github مان لاڳاپيل مخزن کي ڪلون ڪريو:

ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git

ڊاريڪٽري ڏانھن وڃو vrnetlab:

ubuntu:~$ cd ~/vrnetlab

ھتي توھان ڏسي سگھوٿا سڀ اسڪرپٽ ھلائڻ لاءِ گهربل آھن. مهرباني ڪري نوٽ ڪريو ته هر قسم جي روٽر لاءِ هڪ لاڳاپيل ڊاريڪٽري ٺاهي وئي آهي:

ubuntu:~/vrnetlab$ ls
CODE_OF_CONDUCT.md  config-engine-lite        openwrt           vr-bgp
CONTRIBUTING.md     csr                       routeros          vr-xcon
LICENSE             git-lfs-repo.sh           sros              vrnetlab.sh
Makefile            makefile-install.include  topology-machine  vrp
README.md           makefile-sanity.include   veos              vsr1000
ci-builder-image    makefile.include          vmx               xrv
common              nxos                      vqfx              xrv9k

روٽر جي تصوير ٺاھيو

هر روٽر جنهن جي حمايت ڪئي وئي آهي Vrnetlab, ان جي پنهنجي منفرد سيٽ اپ طريقيڪار آهي. جڏهن جونيپر vMX اسان کي صرف روٽر سان .tgz آرڪائيو اپلوڊ ڪرڻ جي ضرورت آهي (توهان ان کي ڊائون لوڊ ڪري سگهو ٿا سرڪاري ويب سائيٽ) ڏانهن وڃو vmx ڊاريڪٽري ۽ حڪم هلائي make:

ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make

تصوير ٺاھڻ vMX اٽڪل 10-20 منٽ لڳندا. اهو وقت آهي وڃڻ جو ڪجهه ڪافي وٺي!

ايترو ڊگهو ڇو، توهان پڇو؟

ترجمو جواب هن سوال جو مصنف:

"اهو ئي سبب آهي ته پهريون ڀيرو 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 پتو ھيٺ ڏنل حڪم سان حاصل ڪري سگھجي ٿو:

ubuntu:~$ sudo docker inspect --format '{{.NetworkSettings.IPAddress}}' jun01
172.17.0.2

ڊفالٽ، 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 سان ڳنڍڻ

اچو ته ٺاهي ڪر درخواست:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

  1. پڇا ڳاڇا:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. جسم جي درخواست (جسم ٽيب):
    <node xmlns="urn:TBD:params:xml:ns:yang:network-topology">
    <node-id>jun01</node-id>
    <host xmlns="urn:opendaylight:netconf-node-topology">172.17.0.2</host>
    <port xmlns="urn:opendaylight:netconf-node-topology">22</port>
    <username xmlns="urn:opendaylight:netconf-node-topology">vrnetlab</username>
    <password xmlns="urn:opendaylight:netconf-node-topology">VR-netlab9</password>
    <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>
    <schema-cache-directory xmlns="urn:opendaylight:netconf-node-topology">jun01_cache</schema-cache-directory>
    </node>
  3. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم. هي ODL تائين رسائي جي ضرورت آهي:
    نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو
  4. هيڊرز ٽيب تي، توهان کي ٻه سر شامل ڪرڻ جي ضرورت آهي:
    • قبول ڪريو ايپليڪيشن/xml
    • مواد جو قسم ايپليڪيشن/xml

اسان جي درخواست ڪئي وئي آهي. اسان موڪليندا آهيون. جيڪڏهن هر شي صحيح ترتيب ڏني وئي هئي، پوء اسان کي "201 ٺاهي" جي حيثيت واپس ڪرڻ گهرجي:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

هي درخواست ڇا ڪندو؟

اسان اندر نوڊ ٺاهيندا آهيون او ڊي ايل حقيقي روٽر جي پيٽرولن سان اسان رسائي ڪرڻ چاهيون ٿا.

xmlns="urn:TBD:params:xml:ns:yang:network-topology"
xmlns="urn:opendaylight:netconf-node-topology"

اهي اندروني نالا آهن كل (XML namespace) لاء او ڊي ايل جنهن جي مطابق اهو نوڊ ٺاهي ٿو.

وڌيڪ، ترتيب سان، روٽر جو نالو آهي node-idروٽر ايڊريس - ميزبان ۽ وغيره تي.

سڀ کان وڌيڪ دلچسپ لائن آخري آهي. اسڪيما-ڪيش-ڊائريڪٽري ڊاريڪٽري ٺاهي ٿي جتي سڀئي فائلون ڊائون لوڊ ڪيون وينديون آهن يانگ اسڪيما ڳنڍيل روٽر. توهان ان ۾ ڳولي سگهو ٿا $ODL_ROOT/cache/jun01_cache.

روٽر جي ڪنيڪشن جي جانچ ڪندي

اچو ته ٺاهي GET درخواست:

  1. پڇا ڳاڇا:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.

اسان موڪليندا آهيون. "200 ٺيڪ" جي حيثيت حاصل ڪرڻ گهرجي ۽ ڊوائيس جي سڀني سپورٽ جي هڪ فهرست يانگ اسڪيما:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

جو رايو آهي: بعد ۾ ڏسڻ لاء، منهنجي صورت ۾ ان جي عمل کان پوء اٽڪل 10 منٽ انتظار ڪرڻ ضروري هو ڪرسڀني تائين يانگ اسڪيما تي لوڊ ڪريو او ڊي ايل. هن نقطي تائين، جڏهن هن کي انجام ڏيو GET سوال ھيٺ ڏنل ڏيکاريندو:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

روٽر کي ختم ڪريو

اچو ته ٺاهي حذف درخواست:

  1. پڇا ڳاڇا:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.

حصو 6: روٽر جي ترتيب کي تبديل ڪريو

ٺاھ جوڙ حاصل ڪرڻ

اچو ته ٺاهي GET درخواست:

  1. پڇا ڳاڇا:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.

اسان موڪليندا آهيون. "200 ٺيڪ" جي حيثيت حاصل ڪرڻ گهرجي ۽ روٽر جي ترتيب:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

ٺاھ ٺاھيو ٺاھ جوڙ

مثال طور، اچو ته ھيٺ ڏنل ٺاھ جوڙ ٺاھيو ۽ ان کي تبديل ڪريو:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

اچو ته ٺاهي پوسٽ درخواست:

  1. پڇا ڳاڇا:
    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
  2. جسم جي درخواست (جسم ٽيب):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
  4. هيڊرز ٽيب تي، توهان کي ٻه سر شامل ڪرڻ جي ضرورت آهي:
    • قبول ڪريو ايپليڪيشن/xml
    • مواد جو قسم ايپليڪيشن/xml

موڪلڻ کان پوء، انهن کي اسٽيٽس حاصل ڪرڻ گهرجي "204 ڪوبه مواد ناهي"

چيڪ ڪرڻ لاء ته ترتيب تبديل ٿي وئي آهي، توهان استعمال ڪري سگهو ٿا پوئين سوال. پر مثال طور، اسان هڪ ٻيو ٺاهينداسين جيڪو صرف روٽر تي ترتيب ڏنل پروٽوڪول بابت معلومات ڏيکاريندو.

اچو ته ٺاهي GET درخواست:

  1. پڇا ڳاڇا:
    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
  2. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.

درخواست تي عمل ڪرڻ کان پوء، اسان ھيٺ ڏنل ڏسندا سين:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

ترتيب تبديل ڪريو

اچو ته BGP پروٽوڪول بابت معلومات کي تبديل ڪريو. اسان جي عملن کان پوء، اهو هن طرح نظر ايندو:

protocols {
    bgp {
        disable;
    }
}

اچو ته ٺاهي ڪر درخواست:

  1. پڇا ڳاڇا:
    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
  2. جسم جي درخواست (جسم ٽيب):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
  4. هيڊرز ٽيب تي، توهان کي ٻه سر شامل ڪرڻ جي ضرورت آهي:
    • قبول ڪريو ايپليڪيشن/xml
    • مواد جو قسم ايپليڪيشن/xml

اڳوڻي استعمال ڪندي GET درخواست ڪريو، اسان تبديليون ڏسون ٿا:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

سيٽنگ کي ختم ڪريو

اچو ته ٺاهي حذف درخواست:

  1. پڇا ڳاڇا:
    DELETE 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
  2. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.

جڏهن سڏيو ويو GET پروٽوڪول جي باري ۾ معلومات سان گڏ درخواست، اسان هيٺ ڏنل ڏسندا سين:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

اضافي

ترتيب کي تبديل ڪرڻ لاء، اهو ضروري ناهي ته فارميٽ ۾ درخواست جسم موڪلڻ لاء كل. اهو پڻ فارميٽ ۾ ڪري سگهجي ٿو JSON.

ائين ڪرڻ لاء، مثال طور، سوال ۾ ڪر ترتيب کي تبديل ڪرڻ لاء، درخواست واري جسم کي تبديل ڪريو:

{
    "junos-conf-protocols:protocols": {
        "bgp": {
            "description" : "Changed in postman" 
        }
    }
}

هيڊرز ٽيب تي هيڊر تبديل ڪرڻ نه وساريو:

  • درخواست قبول ڪريو/json
  • مواد جي قسم جي ايپليڪيشن/json

موڪلڻ کان پوء، اسان هيٺ ڏنل نتيجو حاصل ڪنداسين (اسين استعمال ڪندي جواب کي ڏسو GET درخواست):

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

حصو 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 سان ڳنڍي رهيو آهي

شامل ڪرڻ مڪمل طور تي ساڳئي طريقي سان وي ايم ايڪس سان ٿئي ٿي. اسان کي صرف نالا تبديل ڪرڻ جي ضرورت آهي.
ڪر درخواست:
نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

ٿوري دير کان پوءِ فون GET چيڪ ڪرڻ لاء سوال ڪيو ته هر شيء ڳنڍيل آهي:
نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

ترتيب تبديل ڪريو

اچو ته هيٺ ڏنل ترتيب ترتيب ڏيو:

!
router ospf LAB
 mpls ldp auto-config
!

اچو ته ٺاهي پوسٽ درخواست:

  1. پڇا ڳاڇا:
    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
  2. جسم جي درخواست (جسم ٽيب):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.
  4. هيڊرز ٽيب تي، توهان کي ٻه سر شامل ڪرڻ جي ضرورت آهي:
    • درخواست قبول ڪريو/json
    • مواد جي قسم جي ايپليڪيشن/json

ان جي عمل کان پوء، ان کي حاصل ڪرڻ گهرجي "204 ڪوبه مواد نه".

اچو ته چيڪ ڪريون ته اسان کي ڇا مليو.
هن کي ڪرڻ لاء، اسان ٺاهينداسين GET درخواست:

  1. پڇا ڳاڇا:
    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
  2. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.

عمل ڪرڻ کان پوء، توھان کي ھيٺ ڏنل ڏسڻ گھرجي:

نيٽ ورڪ سروسز جي آٽوميشن يا OpenDaylight، Postman ۽ Vrnetlab استعمال ڪندي هڪ ورچوئل ليبارٽري ڪيئن ٺاهيو

ٺاھ جوڙ کي ختم ڪرڻ لاء استعمال ڪريو حذف:

  1. پڇا ڳاڇا:
    DELETE 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
  2. اختيار ڪرڻ واري ٽئب تي، توهان کي پيٽرول مقرر ڪرڻ گهرجي Basic Auth ۽ لاگ ان/پاسورڊ: منتظم/ منتظم.

ٿڪل

مجموعي طور تي، جيئن توهان محسوس ڪيو هوندو، سسڪو ۽ جونيپر کي OpenDaylight سان ڳنڍڻ جا طريقا مختلف نه آهن - اهو تخليقيت لاء ڪافي وسيع گنجائش پيدا ڪري ٿو. سڀني نيٽ ورڪ حصن جي ترتيب جي انتظام کان شروع ٿيڻ ۽ توهان جي پنهنجي نيٽ ورڪ پاليسين جي ٺهڻ سان ختم ٿيڻ.
هن سبق ۾، مون آسان ترين مثال ڏنا آهن ته توهان ڪيئن نيٽ ورڪ سامان سان رابطو ڪري سگهو ٿا OpenDaylight استعمال ڪندي. بغير ڪنهن شڪ جي، مٿين مثالن مان سوالن کي وڌيڪ پيچيده بڻائي سگهجي ٿو ۽ ماؤس جي هڪ ڪلڪ سان سموريون خدمتون قائم ڪري سگهجن ٿيون - هر شي صرف توهان جي تخيل تائين محدود آهي *

جاري رکڻ گهرجي…

پي ايس

جيڪڏهن توهان اوچتو ئي اهو سڀ ڪجهه ڄاڻو ٿا يا، ان جي برعڪس، گذري ويا آهن ۽ ODL جي روح ۾ غرق ٿي ويا آهن، پوء آئون ODL ڪنٽرولر تي ايپليڪيشنن کي ترقي ڪرڻ جي صلاح ڏيان ٿو. توهان شروع ڪري سگهو ٿا هتي کان.

ڪامياب تجربا!

حوالا

  1. Vrnetlab: KVM ۽ Docker استعمال ڪندي نيٽ ورڪ کي نقل ڪريو / برائن لنڪ ليٽر
  2. OpenDaylight Cookbook / Mathieu Lemay، Alexis de Talhouet، Et al
  3. نيٽ ورڪ پروگراميبلٽي سان يانگ / بينوئٽ ڪليس، لو ڪلارڪ، جان لنڊبلاد
  4. سکيا XML، سيڪنڊ ايڊيشن / ايرڪ ٽي ري
  5. مؤثر DevOps / Jennifer Davis، Ryn Daniels

جو ذريعو: www.habr.com

تبصرو شامل ڪريو