نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

اس مضمون میں، میں آپ کو دکھاؤں گا کہ سیٹ اپ کیسے کریں۔ اوپن ڈے لائٹ نیٹ ورک کے سازوسامان کے ساتھ کام کرنے کے لئے، اور یہ بھی دکھائیں کہ کس طرح استعمال کرنا ہے۔ ڈاکیا اور سادہ RESTCONF درخواستوں، اس سامان کو کنٹرول کیا جا سکتا ہے. ہم ہارڈ ویئر کے ساتھ کام نہیں کریں گے، لیکن اس کے بجائے ہم ایک ہی راؤٹر کے ساتھ چھوٹی ورچوئل لیبارٹریز تعینات کریں گے۔ Vrnetlab ختم Ubuntu 20.04 LTS.

میں روٹر کی مثال کا استعمال کرتے ہوئے پہلے تفصیلی ترتیبات دکھاؤں گا۔ Juniper vMX 20.1R1.11، اور پھر ہم اس کا موازنہ ترتیب سے کرتے ہیں۔ Cisco xRV9000 7.0.2.

مواد

  • مطلوبہ علم
  • 1 حصہ: مختصر گفتگو اوپن ڈے لائٹ (اس کے بعد او ڈی ایل۔), ڈاکیا и Vrnetlab اور ہمیں ان کی ضرورت کیوں ہے؟
  • 2 حصہ: ورچوئل لیبارٹری کی تفصیل
  • 3 حصہ: اپنی مرضی کے مطابق بنائیں اوپن ڈے لائٹ
  • 4 حصہ: اپنی مرضی کے مطابق بنائیں Vrnetlab
  • 5 حصہ: کا استعمال کرتے ہوئے ڈاکیا ورچوئل راؤٹر کو جوڑیں (جونیپر وی ایم ایکس) کو۔ او ڈی ایل۔
  • 6 حصہ: کا استعمال کرتے ہوئے روٹر کنفیگریشن حاصل کریں اور تبدیل کریں۔ ڈاکیا и او ڈی ایل۔
  • 7 حصہ: Cisco xRV9000 شامل کریں۔
  • حاصل يہ ہوا
  • PS
  • کتابیات

مطلوبہ علم

مضمون کو شیٹ میں تبدیل نہ کرنے کے لیے، میں نے کچھ تکنیکی تفصیلات (لٹریچر کے لنکس کے ساتھ جہاں آپ ان کے بارے میں پڑھ سکتے ہیں) کو چھوڑ دیا ہے۔

اس سلسلے میں، میں آپ کو ایسے عنوانات پیش کرتا ہوں جنہیں پڑھنے سے پہلے جاننا اچھا ہوگا (لیکن تقریباً ضروری نہیں):

حصہ 1: کچھ نظریہ

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

  • ہر قسم کے نیٹ ورکس کو منظم اور خودکار کرنے کے لیے ایک کھلا SDN پلیٹ فارم، جس کی حمایت کی گئی ہے۔ لینکس فائونڈیشن
  • جاوا اندر
  • ماڈل پر مبنی سروس ایبسٹریکشن لیول (MD-SAL) پر مبنی
  • نیٹ ورک ڈیوائسز کے لیے خودکار طور پر RESTCONF APIs بنانے کے لیے YANG ماڈلز کا استعمال کرتا ہے۔

نیٹ ورک مینجمنٹ کے لیے اہم ماڈیول۔ اس کے ذریعے ہی ہم منسلک آلات کے ساتھ بات چیت کریں گے۔ اس کے اپنے API کے ذریعے منظم۔

آپ OpenDaylight کے بارے میں مزید پڑھ سکتے ہیں۔ یہاں.

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

  • API ٹیسٹنگ ٹول
  • سادہ اور استعمال میں آسان انٹرفیس

ہمارے معاملے میں، ہم OpenDaylight API کو REST درخواستیں بھیجنے کے ایک ذریعہ کے طور پر اس میں دلچسپی رکھتے ہیں۔ آپ بلاشبہ دستی طور پر درخواستیں بھیج سکتے ہیں، لیکن پوسٹ مین میں سب کچھ بالکل واضح نظر آتا ہے اور ہمارے مقاصد کے مطابق ہوتا ہے۔

ان لوگوں کے لئے جو کھودنا چاہتے ہیں: اس پر بہت سارے تربیتی مواد لکھے گئے ہیں (مثال کے طور پر).

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

  • ڈوکر میں ورچوئل راؤٹرز کی تعیناتی کا ٹول
  • سپورٹ کرتا ہے: Cisco XRv، Juniper vMX، Arista vEOS، Nokia VSR، وغیرہ۔
  • کھلا ماخذ

ایک بہت ہی دلچسپ لیکن کم معلوم آلہ۔ ہمارے معاملے میں، ہم اسے جونیپر vMX اور Cisco xRV9000 کو باقاعدہ Ubuntu 20.04 LTS پر چلانے کے لیے استعمال کریں گے۔

آپ اس کے بارے میں مزید پڑھ سکتے ہیں۔ منصوبے کا صفحہ.

حصہ 2: لیب

اس ٹیوٹوریل میں، ہم درج ذیل سسٹم کو ترتیب دیں گے:

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

یہ کیسے کام کرتا ہے

  • جونیپر وی ایم ایکس میں بڑھتا ہے میں Docker کنٹینر (ذریعہ Vrnetlab) اور سب سے عام ورچوئل راؤٹر کے طور پر کام کرتا ہے۔
  • او ڈی ایل۔ روٹر سے منسلک ہے اور آپ کو اسے کنٹرول کرنے کی اجازت دیتا ہے۔
  • ڈاکیا ایک الگ مشین پر لانچ کیا اور اس کے ذریعے ہم کمانڈ بھیجتے ہیں۔ او ڈی ایل۔: روٹر کو جوڑنے / ہٹانے کے لیے، کنفیگریشن کو تبدیل کرنا، وغیرہ۔

سسٹم کے آلے پر تبصرہ

جونیپر وی ایم ایکس и او ڈی ایل۔ ان کے مستحکم آپریشن کے لیے کافی وسائل درکار ہیں۔ بس ایک vMX 6 جی بی ریم اور 4 کور مانگتا ہے۔ لہذا، تمام "ہیوی ویٹ" کو ایک الگ مشین میں منتقل کرنے کا فیصلہ کیا گیا (ہیولٹ پیکارڈ انٹرپرائز مائیکرو سرور ProLiant Gen8، Ubuntu 20.04 LTS)۔ روٹر، کورس کے، اس پر "اڑ" نہیں ہے، لیکن کارکردگی چھوٹے تجربات کے لئے کافی ہے.

حصہ 3: OpenDaylight ترتیب دیں۔

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

اس تحریر کے وقت ODL کا موجودہ ورژن میگنیشیم SR1 ہے۔

1) انسٹال کریں۔ جاوا اوپن جے ڈی کے 11 (مزید تفصیلی تنصیب کے لیے یہاں)

ubuntu:~$ sudo apt install default-jdk

2) تازہ ترین تعمیر تلاش کریں اور ڈاؤن لوڈ کریں۔ او ڈی ایل۔ اس وجہ سے
3) ڈاؤن لوڈ کردہ آرکائیو کو ان زپ کریں۔
4) نتیجے میں آنے والی ڈائریکٹری پر جائیں۔
5) لانچ کریں۔ ./bin/karaf

اس قدم پر او ڈی ایل۔ شروع کرنا چاہئے اور ہم خود کو کنسول میں تلاش کریں گے (پورٹ 8181 باہر سے رسائی کے لئے استعمال کیا جاتا ہے، جسے ہم بعد میں استعمال کریں گے)۔

اگلا، انسٹال کریں او ڈی ایل کی خصوصیاتپروٹوکول کے ساتھ کام کرنے کے لیے ڈیزائن کیا گیا ہے۔ NETCONF и RESTCONF. کنسول میں ایسا کرنے کے لیے او ڈی ایل۔ ہم عملدرآمد کرتے ہیں:

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

یہ سب سے آسان سیٹ اپ ہے۔ او ڈی ایل۔ مکمل (مزید تفصیلات کے لیے دیکھیں یہاں).

حصہ 4: Vrnetlab ترتیب دینا

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

سسٹم کی تیاری

تنصیب سے پہلے۔ Vrnetlab آپ کو اس کے آپریشن کے لیے درکار پیکجز کو انسٹال کرنے کی ضرورت ہے۔ جیسا کہ میں Docker, گٹ, sshpass:

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، اس کا اپنا منفرد سیٹ اپ طریقہ کار ہے۔ کب جونیپر وی ایم ایکس ہمیں صرف روٹر کے ساتھ .tgz آرکائیو اپ لوڈ کرنے کی ضرورت ہے (آپ اسے یہاں سے ڈاؤن لوڈ کر سکتے ہیں۔ سرکاری ویب سائٹ) vmx ڈائریکٹری میں جائیں اور کمانڈ چلائیں۔ make:

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

تصویر بنانا vMX تقریباً 10-20 منٹ لگیں گے۔ یہ کافی لینے کا وقت ہے!

کیوں اتنی دیر، آپ پوچھتے ہیں؟

ترجمہ جواب اس سوال کے مصنف:

"اس کی وجہ یہ ہے کہ جب پہلی بار VCP (کنٹرول پلین) شروع ہوتا ہے، تو یہ ایک کنفگ فائل پڑھتا ہے جو اس بات کا تعین کرتا ہے کہ آیا یہ vMX میں VRR VCP کے طور پر چلے گا۔ اس سے پہلے یہ لانچ Docker کے آغاز کے دوران کیا گیا تھا، لیکن اس کا مطلب یہ تھا کہ VCP ورچوئل راؤٹر کے دستیاب ہونے سے پہلے ہمیشہ ایک بار دوبارہ شروع کیا جاتا تھا، جس کے نتیجے میں بوٹ کا طویل وقت ہوتا ہے (تقریباً 5 منٹ) - مراعات یافتہ آپشن، اس کا مطلب ہے کہ 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

یہ روٹر سیٹ اپ کو مکمل کرتا ہے۔

مختلف دکانداروں کے روٹرز کے لیے انسٹالیشن کی سفارشات پر مل سکتی ہیں۔ گیتوب پروجیکٹ متعلقہ ڈائریکٹریز میں۔

حصہ 5: پوسٹ مین - راؤٹر کو اوپن ڈے لائٹ سے جوڑیں۔

پوسٹ مین کی تنصیب

انسٹال کرنے کے لیے، بس ایپلیکیشن ڈاؤن لوڈ کریں۔ اس وجہ سے.

روٹر کو 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 (XML نام کی جگہ) کے لئے او ڈی ایل۔ جس کے مطابق یہ نوڈ بناتا ہے۔

مزید، بالترتیب، روٹر کا نام ہے node-id, راؤٹر کا پتہ - میزبان اور اسی طرح.

سب سے دلچسپ لائن آخری ہے۔ سکیما کیشے ڈائرکٹری ایک ڈائریکٹری بناتا ہے جہاں تمام فائلیں ڈاؤن لوڈ ہوتی ہیں۔ یانگ سکیما منسلک راؤٹر. آپ انہیں اس میں تلاش کر سکتے ہیں۔ $ODL_ROOT/cache/jun01_cache.

روٹر کا کنکشن چیک کر رہا ہے۔

آئیے تخلیق کرتے ہیں۔ حاصل کریں درخواست:

  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 منٹ انتظار کرنا ضروری تھا۔ رکھسب تک یانگ اسکیما پر اتارنا او ڈی ایل۔. اس مقام تک، جب یہ انجام دے رہے ہیں۔ حاصل کریں استفسار درج ذیل کو ظاہر کرے گا:

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

روٹر کو حذف کریں۔

آئیے تخلیق کرتے ہیں۔ DELETE درخواست:

  1. استفسار کا سلسلہ:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. اجازت دینے والے ٹیب پر، آپ کو پیرامیٹر سیٹ کرنا ہوگا۔ Basic Auth اور لاگ ان/پاس ورڈ: ایڈمن/ایڈمن۔

حصہ 6: روٹر کی ترتیب کو تبدیل کریں۔

ترتیب حاصل کرنا

آئیے تخلیق کرتے ہیں۔ حاصل کریں درخواست:

  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;
    }
}

آئیے تخلیق کرتے ہیں۔ POST درخواست:

  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 کوئی مواد نہیں" کا درجہ ملنا چاہیے۔

یہ چیک کرنے کے لیے کہ کنفیگریشن بدل گئی ہے، آپ پچھلی استفسار استعمال کر سکتے ہیں۔ لیکن مثال کے طور پر، ہم ایک اور بنائیں گے جو صرف روٹر پر کنفیگر کیے گئے پروٹوکولز کے بارے میں معلومات ظاہر کرے گا۔

آئیے تخلیق کرتے ہیں۔ حاصل کریں درخواست:

  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

پچھلے کا استعمال کرتے ہوئے حاصل کریں درخواست کریں، ہم تبدیلیاں دیکھتے ہیں:

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

ترتیب کو حذف کریں۔

آئیے تخلیق کرتے ہیں۔ DELETE درخواست:

  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 اور لاگ ان/پاس ورڈ: ایڈمن/ایڈمن۔

جب بلایا حاصل کریں پروٹوکول کے بارے میں معلومات کے ساتھ درخواست کریں، ہم درج ذیل دیکھیں گے:

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

اضافہ:

ترتیب کو تبدیل کرنے کے لیے، فارمیٹ میں درخواست کا باڈی بھیجنا ضروری نہیں ہے۔ XML. یہ فارمیٹ میں بھی کیا جا سکتا ہے۔ JSON.

ایسا کرنے کے لیے، مثال کے طور پر، استفسار میں رکھ کنفیگریشن کو تبدیل کرنے کے لیے، ریکوسٹ باڈی کو اس سے تبدیل کریں:

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

ہیڈرز ٹیب پر ہیڈر کو تبدیل کرنا نہ بھولیں:

  • درخواست قبول کریں/json
  • مواد کی قسم کی درخواست/json

بھیجنے کے بعد، ہمیں درج ذیل نتیجہ ملے گا (ہم استعمال کرتے ہوئے جواب کو دیکھتے ہیں۔ حاصل کریں درخواست):

نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

حصہ 7: Cisco xRV9000 شامل کرنا

ہم سب جونیپر کے بارے میں کیا ہیں، ہاں جونیپر؟ آئیے سسکو کے بارے میں بات کرتے ہیں!
مجھے xRV9000 ورژن 7.0.2 ملا (ایک ایسا جانور جس کو 8 جی بی ریم اور 4 کور کی ضرورت ہے۔ یہ آزادانہ طور پر دستیاب نہیں ہے، لہذا رابطہ کریں سسکو) - آئیے اسے چلائیں۔

کنٹینر چلانا

ڈوکر کنٹینر بنانے کا عمل عملی طور پر جونیپر سے مختلف نہیں ہے۔ اسی طرح، ہم راؤٹر کے ساتھ .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 سے جوڑ رہا ہے۔

شامل کرنا vMX کے ساتھ بالکل اسی طرح ہوتا ہے۔ ہمیں صرف نام بدلنے کی ضرورت ہے۔
رکھ درخواست:
نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

تھوڑی دیر بعد کال کریں۔ حاصل کریں یہ چیک کرنے کے لیے استفسار کریں کہ سب کچھ منسلک ہے:
نیٹ ورک سروسز کی آٹومیشن یا OpenDaylight، Postman اور Vrnetlab کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

ترتیب کو تبدیل کریں۔

آئیے درج ذیل کنفیگریشن ترتیب دیں:

!
router ospf LAB
 mpls ldp auto-config
!

آئیے تخلیق کرتے ہیں۔ POST درخواست:

  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 کوئی مواد نہیں" کا درجہ ملنا چاہیے۔

آئیے چیک کریں کہ ہمیں کیا ملا۔
ایسا کرنے کے لیے، ہم بنائیں گے حاصل کریں درخواست:

  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 کا استعمال کرتے ہوئے ایک ورچوئل لیبارٹری بنانے کا طریقہ

کنفیگریشن کو ہٹانے کے لیے استعمال کریں۔ DELETE:

  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 سے جوڑنے کے طریقہ کار میں فرق نہیں ہے - اس سے تخلیقی صلاحیتوں کے لیے کافی وسیع گنجائش کھل جاتی ہے۔ نیٹ ورک کے تمام اجزاء کے کنفیگریشن مینجمنٹ سے شروع ہو کر آپ کے اپنے نیٹ ورک کی پالیسیوں کی تخلیق کے ساتھ اختتام پذیر ہوتا ہے۔
اس ٹیوٹوریل میں، میں نے آسان ترین مثالیں دی ہیں کہ آپ اوپن ڈے لائٹ کا استعمال کرتے ہوئے نیٹ ورک کے آلات کے ساتھ کیسے تعامل کر سکتے ہیں۔ بلا شبہ، مندرجہ بالا مثالوں سے استفسارات کو زیادہ پیچیدہ بنایا جا سکتا ہے اور ماؤس کے ایک کلک سے پوری خدمات کو ترتیب دیا جا سکتا ہے - سب کچھ صرف آپ کے تخیل سے محدود ہے*

جاری رکھنا ...

PS

اگر آپ کو یہ سب کچھ اچانک معلوم ہو گیا ہے یا، اس کے برعکس، آپ ODL کی روح میں دھنس چکے ہیں، تو میں تجویز کرتا ہوں کہ ODL کنٹرولر پر ایپلی کیشنز تیار کرنے کی طرف دیکھیں۔ آپ شروع کر سکتے ہیں۔ اس وجہ سے.

کامیاب تجربات!

حوالہ جات

  1. Vrnetlab: KVM اور Docker کا استعمال کرتے ہوئے نیٹ ورکس کی تقلید کریں۔ / برائن لنک لیٹر
  2. OpenDaylight Cookbook / Mathieu Lemay، Alexis de Talhouet، Et al
  3. YANG / Benoit Claise، Loe Clarke، Jan Lindblad کے ساتھ نیٹ ورک پروگرامیبلٹی
  4. ایکس ایم ایل سیکھنا، دوسرا ایڈیشن / ایرک ٹی رے
  5. موثر ڈی او اوپس / جینیفر ڈیوس، رین ڈینیئلز

ماخذ: www.habr.com

نیا تبصرہ شامل کریں