أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

في هذه المقالة ، سأوضح لك كيفية الإعداد OpenDaylight للعمل مع معدات الشبكة ، وكذلك لإظهار كيفية استخدامها ساعي البريد وبسيط ريستكونف الطلبات ، يمكن التحكم في هذه المعدات. لن نعمل مع الأجهزة ، ولكن بدلاً من ذلك سننشر مختبرات افتراضية صغيرة باستخدام جهاز توجيه واحد فرنتلاب خلال أوبونتو LTS 20.04.

سأعرض الإعدادات التفصيلية أولاً باستخدام مثال جهاز التوجيه جونيبر vMX 20.1R1.11، ثم نقارنها بالإعداد سيسكو xRV9000 7.0.2.

محتوى

  • المعرفة المطلوبة
  • Часть 1: ناقش بإيجاز OpenDaylight (يشار إليه فيما بعد ODL), ساعي البريد и فرنتلاب ولماذا نحتاجهم
  • Часть 2: وصف المختبر الافتراضي
  • Часть 3: تهيئة OpenDaylight
  • Часть 4: تهيئة فرنتلاب
  • Часть 5: باستخدام ساعي البريد توصيل جهاز التوجيه الظاهري (العرعر vMX) ل ODL
  • Часть 6: الحصول على وتغيير تكوين جهاز التوجيه باستخدام ساعي البريد и ODL
  • Часть 7: إضافة Cisco xRV9000
  • اختتام
  • PS
  • فهرس

المعرفة المطلوبة

لكي لا تتحول المقالة إلى ورقة ، فقد حذفت بعض التفاصيل الفنية (مع روابط للأدب حيث يمكنك أن تقرأ عنها).

في هذا الصدد ، أقدم لك موضوعات من الجيد (ولكن ليس من الضروري تقريبًا) معرفتها قبل القراءة:

الجزء الأول: بعض النظريات

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

  • منصة SDN مفتوحة لإدارة وأتمتة جميع أنواع الشبكات ، مدعومة من مؤسسة لينكس
  • جافا بالداخل
  • بناءً على مستوى تجريد الخدمة المستند إلى النموذج (MD-SAL)
  • يستخدم نماذج YANG لإنشاء واجهات برمجة تطبيقات RESTCONF لأجهزة الشبكة تلقائيًا

الوحدة الرئيسية لإدارة الشبكة. من خلاله سنتواصل مع الأجهزة المتصلة. تدار من خلال API الخاصة بها.

يمكنك قراءة المزيد عن OpenDaylight هنا.

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

  • أداة اختبار API
  • واجهة بسيطة وسهلة الاستخدام

في حالتنا ، نحن مهتمون بها كوسيلة لإرسال طلبات REST إلى OpenDaylight API. يمكنك بالطبع إرسال الطلبات يدويًا ، ولكن في Postman يبدو كل شيء واضحًا للغاية ويناسب أغراضنا تمامًا.

لأولئك الذين يريدون الحفر: تمت كتابة الكثير من المواد التدريبية عليه (مثلا).

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام 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 يرتفع في عامل في حوض السفن حاوية (عن طريق فرنتلاب) ويعمل باعتباره جهاز التوجيه الظاهري الأكثر شيوعًا.
  • ODL متصل بجهاز التوجيه ويسمح لك بالتحكم فيه.
  • ساعي البريد تم إطلاقه على جهاز منفصل ومن خلاله نرسل الأوامر ODL: لتوصيل / إزالة جهاز التوجيه ، وتغيير التكوين ، وما إلى ذلك.

تعليق على جهاز النظام

العرعر vMX и ODL تتطلب الكثير من الموارد لتشغيلها المستقر. واحد فقط vMX يطلب 6 جيجابايت من ذاكرة الوصول العشوائي و 4 نوى. لذلك ، تقرر نقل جميع "الأوزان الثقيلة" إلى آلة منفصلة (Heulett Packard Enterprise MicroServer ProLiant Gen8 ، Ubuntu 20.04 LTS). جهاز التوجيه ، بالطبع ، لا "يطير" عليه ، لكن الأداء يكفي للتجارب الصغيرة.

الجزء 3: إعداد OpenDaylight

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

الإصدار الحالي من ODL في وقت كتابة هذه السطور هو Magnesium SR1

1) التثبيت جافا OpenJDK 11 (لتثبيت أكثر تفصيلا هنا)

ubuntu:~$ sudo apt install default-jdk

2) ابحث عن أحدث إصدار وقم بتنزيله ODL من هنا
3) قم بفك ضغط الأرشيف الذي تم تنزيله
4) انتقل إلى الدليل الناتج
5) إطلاق ./bin/karaf

في هذه الخطوة ODL يجب أن نبدأ وسنجد أنفسنا في وحدة التحكم (يتم استخدام المنفذ 8181 للوصول من الخارج ، والذي سنستخدمه لاحقًا).

بعد ذلك نقوم بالتثبيت ميزات ODLمصممة للعمل مع البروتوكولات NETCONF и ريستكونف. للقيام بذلك في وحدة التحكم ODL ننفذ:

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

هذا هو أبسط إعداد. ODL مكتمل. (لمزيد من التفاصيل ، انظر هنا).

الجزء 4: إعداد Vrnetlab

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

تحضير النظام

قبل التثبيت فرنتلاب تحتاج إلى تثبيت الحزم المطلوبة لتشغيله. مثل عامل في حوض السفن, طائرة نفاثة, com.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

من أجل التثبيت فرنتلاب استنساخ المستودع المقابل من جيثب:

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

اذهب إلى الدليل com.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

قم بإنشاء صورة لجهاز التوجيه

كل جهاز توجيه مدعوم فرنتلاب، لديه إجراء الإعداد الفريد الخاص به. متى العرعر vMX نحتاج فقط إلى تحميل أرشيف .tgz باستخدام جهاز التوجيه (يمكنك تنزيله من الموقع الرسمي) إلى دليل vmx وقم بتشغيل الأمر make:

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

بناء الصورة vMX سيستغرق حوالي 10-20 دقيقة. حان الوقت لتناول بعض القهوة!

لماذا كل هذا الوقت تسأل؟

الترجمة إجابة مؤلف هذا السؤال:

"هذا لأنه في المرة الأولى التي يتم فيها تشغيل VCP (لوحة التحكم) ، يقرأ ملف التكوين الذي يحدد ما إذا كان سيتم تشغيله كـ VRR VCP في vMX. في السابق ، تم إجراء هذا التشغيل أثناء بدء تشغيل Docker ، ولكن هذا يعني أن VCP تمت إعادة تشغيله دائمًا مرة واحدة قبل أن يصبح جهاز التوجيه الافتراضي متاحًا ، مما أدى إلى وقت تشغيل طويل (حوالي 5 دقائق) الآن يتم تنفيذ أول تشغيل لـ VCP أثناء إنشاء صورة Docker ، وبما أنه لا يمكن تشغيل إصدار Docker باستخدام - - خيار ذو امتياز ، وهذا يعني أن qemu يعمل بدون تسريع أجهزة KVM وبالتالي يستغرق البناء وقتًا طويلاً جدًا ، وخلال هذه العملية يتم إخراج الكثير من السجلات ، لذلك يمكنك على الأقل رؤية ما يجري. ليس مخيفًا جدًا لأننا أنشأنا صورة مرة واحدة ، لكننا أطلقنا الكثير ".

بعد أن تتمكن من رؤية صورة جهاز التوجيه الخاص بنا في عامل في حوض السفن:

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 / 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: ساعي البريد - قم بتوصيل جهاز التوجيه بـ 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 وتسجيل الدخول / كلمة المرور: admin / admin. هذا مطلوب للوصول إلى ODL:
    أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab
  4. في علامة التبويب "الرؤوس" ، تحتاج إلى إضافة رأسين:
    • قبول التطبيق / xml
    • تطبيق نوع المحتوى/xml

تم تقديم طلبنا. نحن نرسل. إذا تم تكوين كل شيء بشكل صحيح ، فيجب أن نعيد الحالة "201 تم الإنشاء":

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

ماذا يفعل هذا الطلب؟

نقوم بإنشاء عقدة في الداخل ODL مع معلمات جهاز التوجيه الحقيقي الذي نريد الوصول إليه.

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

هذه مساحات أسماء داخلية XML (مساحة اسم XML) ل ODL وفقًا لذلك يتم إنشاء العقدة.

علاوة على ذلك ، على التوالي ، اسم جهاز التوجيه هو معرّف العقدة، عنوان جهاز التوجيه - مضيف وهلم جرا.

الخط الأكثر إثارة للاهتمام هو الأخير. دليل مخطط ذاكرة التخزين المؤقت ينشئ دليلاً حيث يتم تنزيل جميع الملفات مخطط يانغ جهاز التوجيه المتصل. يمكنك أن تجدهم في $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 وتسجيل الدخول / كلمة المرور: admin / admin.

نحن نرسل. يجب أن تتلقى حالة "200 موافق" وقائمة بكل ما يدعمه الجهاز مخطط يانغ:

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

تعليق: لرؤية هذا الأخير ، في حالتي كان من الضروري الانتظار حوالي 10 دقائق بعد الإعدام ضعحتي الكل مخطط يانغ تفريغ على ODL. حتى هذه النقطة ، عند القيام بذلك للحصول على سيعرض الاستعلام ما يلي:

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام 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 وتسجيل الدخول / كلمة المرور: admin / admin.

الجزء 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 وتسجيل الدخول / كلمة المرور: admin / admin.

نحن نرسل. يجب أن تتلقى الحالة "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 وتسجيل الدخول / كلمة المرور: admin / admin.
  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 وتسجيل الدخول / كلمة المرور: admin / admin.

بعد تنفيذ الطلب سوف نرى ما يلي:

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام 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 وتسجيل الدخول / كلمة المرور: admin / admin.
  4. في علامة التبويب "الرؤوس" ، تحتاج إلى إضافة رأسين:
    • قبول التطبيق / xml
    • تطبيق نوع المحتوى/xml

باستخدام السابق للحصول على طلب ، نرى التغييرات:

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام 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 وتسجيل الدخول / كلمة المرور: admin / admin.

عند الاتصال للحصول على طلب معلومات حول البروتوكولات ، سنرى ما يلي:

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

الملحق:

لتغيير التكوين ، ليس من الضروري إرسال نص الطلب بالتنسيق XML. يمكن القيام بذلك أيضًا بالتنسيق JSON.

للقيام بذلك ، على سبيل المثال ، في الاستعلام ضع لتغيير التكوين ، استبدل نص الطلب بـ:

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

لا تنس تغيير الرؤوس في علامة التبويب "الرؤوس" إلى:

  • قبول الطلب / json
  • تطبيق نوع المحتوى / json

بعد الإرسال ، سوف نحصل على النتيجة التالية (ننظر إلى الإجابة باستخدام للحصول على طلب):

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام OpenDaylight و Postman و Vrnetlab

الجزء 7: إضافة Cisco xRV9000

ما الذي يميزنا جميعًا عن العرعر ، نعم العرعر؟ لنتحدث عن Cisco!
لقد وجدت xRV9000 الإصدار 7.0.2 (وحش يحتاج إلى ذاكرة وصول عشوائي (RAM) بسعة 8 جيجا بايت و 4 نوى. إنه غير متوفر مجانًا ، لذا اتصل سيسكو) - لنشغلها.

تشغيل الحاوية

لا تختلف عملية إنشاء حاوية Docker عمليًا عن Juniper. وبالمثل ، نقوم بإسقاط ملف .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
!

دعونا نخلق سأعين طلب:

  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 وتسجيل الدخول / كلمة المرور: admin / admin.
  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 وتسجيل الدخول / كلمة المرور: admin / admin.

بعد التنفيذ يجب أن ترى ما يلي:

أتمتة خدمات الشبكة أو كيفية إنشاء مختبر افتراضي باستخدام 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 وتسجيل الدخول / كلمة المرور: admin / admin.

اختتام

في المجموع ، كما لاحظت ، لا تختلف إجراءات توصيل Cisco و Juniper بـ OpenDaylight - وهذا يفتح مجالًا واسعًا للإبداع. بدءًا من إدارة التكوين لجميع مكونات الشبكة وانتهاءً بإنشاء سياسات الشبكة الخاصة بك.
في هذا البرنامج التعليمي ، قدمت أبسط الأمثلة لكيفية التفاعل مع معدات الشبكة باستخدام OpenDaylight. بدون شك ، يمكن جعل الاستفسارات الواردة في الأمثلة المذكورة أعلاه أكثر تعقيدًا وإنشاء خدمات كاملة بنقرة واحدة على الماوس - كل شيء محدود فقط بخيالك *

يتبع ...

PS

إذا كنت تعرف كل هذا فجأة بالفعل أو ، على العكس من ذلك ، مررت وغرقت في روح ODL ، فأنا أوصي بالبحث عن تطوير التطبيقات على وحدة تحكم ODL. يمكنك البدء من هنا.

تجارب ناجحة!

مراجع

  1. Vrnetlab: محاكاة الشبكات باستخدام KVM و Docker / بريان لينكليتر
  2. كتاب طبخ OpenDaylight / Mathieu Lemay ، Alexis de Talhouet ، وآخرون
  3. إمكانية برمجة الشبكة مع YANG / Benoît Claise ، Loe Clarke ، Jan Lindblad
  4. تعلم XML ، الإصدار الثاني / Erik T. Ray
  5. DevOps الفعال / جينيفر ديفيس ورين دانيلز

المصدر: www.habr.com

إضافة تعليق