OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Ushbu maqolada men sizga qanday sozlashni ko'rsataman ochiq kun tarmoq uskunalari bilan ishlash, shuningdek, qanday foydalanishni ko'rsatish Pochtachi va oddiy RESTCONF so'rovlar bo'lsa, ushbu uskunani boshqarish mumkin. Biz apparat bilan ishlamaymiz, lekin buning o'rniga biz bitta router yordamida kichik virtual laboratoriyalarni joylashtiramiz Vrnetlab ustiga Ubuntu 20.04 LTS.

Men router misolida birinchi navbatda batafsil sozlamalarni ko'rsataman Juniper vMX 20.1R1.11, va keyin biz uni sozlama bilan solishtiramiz Cisco xRV9000 7.0.2.

Mundarija

  • Kerakli bilim
  • 1 qismi: qisqacha muhokama qiling OpenDaylight (keyingi o'rinlarda Oyna), Pochtachi и Vrnetlab va ular bizga nima uchun kerak
  • 2 qismi: virtual laboratoriya tavsifi
  • 3 qismi: moslashtiring ochiq kun
  • 4 qismi: moslashtiring Vrnetlab
  • 5 qismi: yordamida Pochtachi virtual routerni ulash (Juniper vMX) Kimga Oyna
  • 6 qismi: yordamida yo'riqnoma konfiguratsiyasini oling va o'zgartiring Pochtachi и Oyna
  • 7 qismi: Cisco xRV9000 qo'shing
  • xulosa
  • PS
  • Adabiyotlar ro'yxati

Kerakli bilim

Maqola varaq bo'lib qolmasligi uchun men ba'zi texnik tafsilotlarni o'tkazib yubordim (ular haqida o'qishingiz mumkin bo'lgan adabiyotlarga havolalar bilan).

Shu munosabat bilan men sizga o'qishdan oldin bilish yaxshi bo'lgan (lekin deyarli kerak emas) mavzularni taklif qilaman:

1-qism: ba'zi bir nazariya

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

  • tomonidan qo'llab-quvvatlanadigan barcha turdagi tarmoqlarni boshqarish va avtomatlashtirish uchun ochiq SDN platformasi Linux fondi
  • Java ichida
  • Modelga asoslangan xizmat abstraksiya darajasi (MD-SAL) asosida
  • Tarmoq qurilmalari uchun RESTCONF API-larini avtomatik yaratish uchun YANG modellaridan foydalanadi

Tarmoqni boshqarish uchun asosiy modul. U orqali biz ulangan qurilmalar bilan bog'lanamiz. O'zining API orqali boshqariladi.

OpenDaylight haqida ko'proq o'qishingiz mumkin shu yerda.

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

  • API sinov vositasi
  • Oddiy va ishlatish uchun qulay interfeys

Bizning holatda, biz OpenDaylight API-ga REST so'rovlarini yuborish vositasi sifatida qiziqamiz. Siz, albatta, so'rovlarni qo'lda yuborishingiz mumkin, ammo Postman-da hamma narsa juda aniq ko'rinadi va bizning maqsadlarimizga juda mos keladi.

Qazishni istaganlar uchun: unda juda ko'p o'quv materiallari yozilgan (masalan).

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

  • Docker-da virtual routerlarni joylashtirish uchun vosita
  • Qo'llab-quvvatlaydi: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR va boshqalar.
  • Ochiq manbalar

Juda qiziq, ammo kam ma'lum bo'lgan asbob. Bizning holatda, biz undan oddiy Ubuntu 9000 LTS da Juniper vMX va Cisco xRV20.04 ni ishga tushirish uchun foydalanamiz.

Bu haqda ko'proq o'qishingiz mumkin loyiha sahifasi.

2-qism: Laboratoriya

Ushbu qo'llanmada biz quyidagi tizimni o'rnatamiz:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

U qanday ishlaydi

  • Juniper vMX ichida ko'tariladi Docker konteyner (vosita orqali Vrnetlab) va eng keng tarqalgan virtual router sifatida ishlaydi.
  • Oyna routerga ulangan va uni boshqarish imkonini beradi.
  • Pochtachi alohida mashinada ishga tushiriladi va u orqali biz buyruqlar yuboramiz Oyna: routerni ulash/oʻchirish, konfiguratsiyani oʻzgartirish va h.k.

Tizim qurilmasiga sharh

Juniper vMX и Oyna ularning barqaror ishlashi uchun juda katta resurslarni talab qiladi. Faqat bitta vMX 6 Gb operativ xotira va 4 yadro talab qiladi. Shuning uchun barcha "og'ir vaznlilarni" alohida mashinaga ko'chirishga qaror qilindi (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Router, albatta, uning ustida "uchib ketmaydi", lekin unumdorligi kichik tajribalar uchun etarli.

3-qism: OpenDaylight-ni sozlash

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Ushbu yozuv paytida ODL ning joriy versiyasi Magniy SR1 hisoblanadi

1) O'rnatish Java Open JDK 11 (batafsil o'rnatish uchun shu yerda)

ubuntu:~$ sudo apt install default-jdk

2) Eng so'nggi versiyani toping va yuklab oling Oyna shu yerda
3) Yuklab olingan arxivni oching
4) Olingan katalogga o'ting
5) Ishga tushirish ./bin/karaf

Ushbu bosqichda Oyna boshlash kerak va biz o'zimizni konsolda topamiz (8181 porti tashqaridan kirish uchun ishlatiladi, biz undan keyinroq foydalanamiz).

Keyingi, o'rnatish ODL xususiyatlariprotokollar bilan ishlash uchun mo'ljallangan NETCONF и RESTCONF. Buni konsolda qilish uchun Oyna bajaramiz:

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

Bu eng oddiy sozlash. Oyna yakunlandi. (Batafsil ma'lumot uchun qarang shu yerda).

4-qism: Vrnetlab-ni sozlash

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Tizimni tayyorlash

O'rnatishdan oldin Vrnetlab uning ishlashi uchun zarur bo'lgan paketlarni o'rnatishingiz kerak. Kabi Docker, borish, 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 o'rnatilmoqda

O'rnatish uchun Vrnetlab github'dan mos keladigan omborni klonlash:

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

Katalogga o'ting vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Bu yerda siz ishga tushirish uchun zarur bo'lgan barcha skriptlarni ko'rishingiz mumkin. E'tibor bering, har bir router turi uchun tegishli katalog yaratilgan:

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

Routerning rasmini yarating

Qo'llab-quvvatlanadigan har bir router Vrnetlab, o'ziga xos o'rnatish tartibiga ega. Qachon Juniper vMX Biz faqat .tgz arxivini yo'riqnoma bilan yuklashimiz kerak (uni yuklab olishingiz mumkin rasmiy sayt) vmx katalogiga o'ting va buyruqni bajaring make:

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

Tasvir yaratish vMX taxminan 10-20 daqiqa davom etadi. Kofe ichish vaqti keldi!

Nega shuncha uzoq, deb so'rayapsizmi?

Tarjima javob berish bu savolga muallif:

"Buning sababi, VCP (Boshqaruv tekisligi) birinchi marta ishga tushirilganda, u vMX da VRR VCP sifatida ishlashini aniqlaydigan konfiguratsiya faylini o'qiydi. Ilgari bu ishga tushirish Docker ishga tushirilganda amalga oshirilgan, ammo bu VCP virtual marshrutizator mavjud bo'lgunga qadar har doim bir marta qayta ishga tushirilgan, buning natijasida uzoq yuklash vaqti (taxminan 5 daqiqa) Endi VCP ning birinchi ishga tushirilishi Docker tasvirini yaratish jarayonida amalga oshiriladi va Docker tuzilishini - -imtiyozli variant, bu qemu KVM apparat tezlashuvisiz ishlashini bildiradi va shu tariqa qurish juda uzoq vaqt talab etadi.Ushbu jarayon davomida juda ko'p jurnallar chiqariladi, shuning uchun hech bo'lmaganda nima sodir bo'layotganini ko'rishingiz mumkin.Menimcha, uzoq qurilish Bu unchalik qo'rqinchli emas, chunki biz bir marta tasvir yaratamiz, lekin biz ko'p narsalarni ishga tushiramiz."

Shundan so'ng siz bizning routerimizning tasvirini ko'rishingiz mumkin 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 konteynerini ishga tushiring

Biz buyruq bilan boshlaymiz:

ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c

Keyinchalik, faol konteynerlar haqidagi ma'lumotlarni ko'rishimiz mumkin:

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

Routerga ulanish

Routerning tarmoq interfeysining IP-manzilini quyidagi buyruq bilan olish mumkin:

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

Odatiy, Vrnetlab routerda foydalanuvchi yaratadi vrnetlab/VR-netlab9.
Bilan ulanish 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

Bu marshrutizatorni sozlashni yakunlaydi.

Turli sotuvchilarning marshrutizatorlarini o'rnatish bo'yicha tavsiyalarni quyidagi manzilda topishingiz mumkin github loyihasi tegishli kataloglarda.

5-qism: Pochtachi - routerni OpenDaylight-ga ulang

Pochtachi o'rnatish

O'rnatish uchun dasturni yuklab olish kifoya shu yerda.

Routerni ODL ga ulash

Keling, yarataylik But iltimos:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

  1. So'rovlar qatori:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. So‘rovning asosiy qismi (Bosma sahifasi):
    <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. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin. Bu ODL ga kirish uchun talab qilinadi:
    OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin
  4. Sarlavhalar yorlig'ida siz ikkita sarlavha qo'shishingiz kerak:
    • Ilova/xml qabul qiling
    • Kontent turi ilova/xml

Bizning iltimosimiz amalga oshirildi. yuboramiz. Agar hamma narsa to'g'ri sozlangan bo'lsa, biz "201 yaratilgan" holatini qaytarishimiz kerak:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Bu so'rov nima qiladi?

Ichkarida tugun yaratamiz Oyna biz kirishni istagan haqiqiy routerning parametrlari bilan.

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

Bu ichki nom maydonlari XML (XML nom maydoni) uchun Oyna unga ko'ra u tugunni yaratadi.

Keyinchalik, mos ravishda, routerning nomi tugun identifikatori, router manzili - mezbon va hokazo.

Eng qiziqarli qator oxirgisi. Sxema-kesh-katalog barcha fayllar yuklab olinadigan katalog yaratadi YANG sxemasi ulangan router. Siz ularni ichida topishingiz mumkin $ODL_ROOT/cache/jun01_cache.

Routerning ulanishini tekshirish

Keling, yarataylik OLING iltimos:

  1. So'rovlar qatori:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.

yuboramiz. "200 OK" maqomini va qurilma tomonidan qo'llab-quvvatlanadigan barcha ro'yxatni olish kerak YANG sxemasi:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

izoh: Ikkinchisini ko'rish uchun, mening holimda, qatl qilinganidan keyin taxminan 10 daqiqa kutish kerak edi Buthammasigacha YANG sxemasi tushirish Oyna. Shu nuqtaga qadar, buni amalga oshirayotganda OLING so'rovda quyidagilar ko'rsatiladi:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Routerni o'chiring

Keling, yarataylik DELETE iltimos:

  1. So'rovlar qatori:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.

6-qism: Router konfiguratsiyasini o'zgartiring

Konfiguratsiyani olish

Keling, yarataylik OLING iltimos:

  1. So'rovlar qatori:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.

yuboramiz. "200 OK" holatini va yo'riqnoma konfiguratsiyasini olish kerak:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Konfiguratsiya yarating

Misol tariqasida quyidagi konfiguratsiyani yaratamiz va uni o'zgartiramiz:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Keling, yarataylik POST iltimos:

  1. So'rovlar qatori:
    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. So‘rovning asosiy qismi (Bosma sahifasi):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.
  4. Sarlavhalar yorlig'ida siz ikkita sarlavha qo'shishingiz kerak:
    • Ilova/xml qabul qiling
    • Kontent turi ilova/xml

Yuborilgandan so'ng ular "204 Kontent yo'q" maqomini olishlari kerak.

Konfiguratsiya o'zgarganligini tekshirish uchun oldingi so'rovdan foydalanishingiz mumkin. Ammo, masalan, biz faqat marshrutizatorda sozlangan protokollar haqida ma'lumot ko'rsatadigan boshqasini yaratamiz.

Keling, yarataylik OLING iltimos:

  1. So'rovlar qatori:
    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. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.

So'rovni bajargandan so'ng, biz quyidagilarni ko'ramiz:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Konfiguratsiyani o'zgartiring

Keling, BGP protokoli haqidagi ma'lumotlarni o'zgartiraylik. Bizning harakatlarimizdan keyin u quyidagicha ko'rinadi:

protocols {
    bgp {
        disable;
    }
}

Keling, yarataylik But iltimos:

  1. So'rovlar qatori:
    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. So‘rovning asosiy qismi (Bosma sahifasi):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.
  4. Sarlavhalar yorlig'ida siz ikkita sarlavha qo'shishingiz kerak:
    • Ilova/xml qabul qiling
    • Kontent turi ilova/xml

Avvalgisidan foydalanish OLING so'rov, biz o'zgarishlarni ko'ramiz:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Konfiguratsiyani o'chiring

Keling, yarataylik DELETE iltimos:

  1. So'rovlar qatori:
    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. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.

Qo'ng'iroq qilganda OLING protokollar haqida ma'lumot so'raganimizda, biz quyidagilarni ko'ramiz:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Qo'shimcha:

Konfiguratsiyani o'zgartirish uchun so'rov tanasini formatda yuborish shart emas XML. Buni formatda ham qilish mumkin JSON.

Buning uchun, masalan, so'rovda But konfiguratsiyani o'zgartirish uchun so'rov tanasini quyidagi bilan almashtiring:

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

Sarlavhalar yorlig'idagi sarlavhalarni quyidagiga o'zgartirishni unutmang:

  • Ilova/jsonni qabul qiling
  • Kontent turi ilovasi/json

Yuborilgandan so'ng, biz quyidagi natijani olamiz (Biz javobni foydalanib ko'rib chiqamiz OLING so'rov):

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

7-qism: Cisco xRV9000 qo'shish

Juniper haqida hammamiz nima, ha Juniper? Keling, Cisco haqida gapiraylik!
Men xRV9000 7.0.2 versiyasini topdim (8 Gb RAM va 4 yadroga muhtoj bo'lgan hayvon. U bepul mavjud emas, shuning uchun bog'laning. Cisco) - keling, uni ishga tushiramiz.

Konteynerni ishga tushirish

Docker konteynerini yaratish jarayoni Juniperdan deyarli farq qilmaydi. Xuddi shunday, biz router bilan .qcow2 faylini uning nomiga mos keladigan katalogga (bu holda, xrv9k) tushiramiz va buyruqni bajaramiz. make docker-image.

Bir necha daqiqadan so'ng biz rasm yaratilganligini ko'ramiz:

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

Biz konteynerni ishga tushiramiz:

ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc

Biroz vaqt o'tgach, biz konteyner boshlanganini ko'ramiz:

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 orqali ulanish:

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

Routerni OpenDaylight-ga ulash

Qo'shish vMX bilan mutlaqo o'xshash tarzda sodir bo'ladi. Biz faqat nomlarni o'zgartirishimiz kerak.
But iltimos:
OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Birozdan keyin qo'ng'iroq qiling OLING hamma narsa ulanganligini tekshirish uchun so'rov:
OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Konfiguratsiyani o'zgartiring

Keling, quyidagi konfiguratsiyani o'rnatamiz:

!
router ospf LAB
 mpls ldp auto-config
!

Keling, yarataylik POST iltimos:

  1. So'rovlar qatori:
    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. So‘rovning asosiy qismi (Bosma sahifasi):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.
  4. Sarlavhalar yorlig'ida siz ikkita sarlavha qo'shishingiz kerak:
    • Ilova/jsonni qabul qiling
    • Kontent turi ilovasi/json

U amalga oshirilgandan so'ng, ular "204 Kontent yo'q" maqomini olishlari kerak.

Keling, nima borligini tekshirib ko'raylik.
Buning uchun biz yaratamiz OLING iltimos:

  1. So'rovlar qatori:
    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. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.

Amalga oshirilgandan so'ng, siz quyidagilarni ko'rishingiz kerak:

OpenDaylight, Postman va Vrnetlab yordamida tarmoq xizmatlarini avtomatlashtirish yoki virtual laboratoriyani qanday qurish mumkin

Konfiguratsiyani olib tashlash uchun foydalaning DELETE:

  1. So'rovlar qatori:
    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. Avtorizatsiya yorlig'ida siz parametrni o'rnatishingiz kerak Basic Auth va login/parol: admin/admin.

xulosa

Umuman olganda, siz sezganingizdek, Cisco va Juniper-ni OpenDaylight-ga ulash tartiblari farq qilmaydi - bu ijodkorlik uchun juda keng imkoniyatlarni ochadi. Barcha tarmoq komponentlarini konfiguratsiyani boshqarishdan boshlab va o'zingizning tarmoq siyosatingizni yaratishgacha.
Ushbu qo'llanmada men OpenDaylight yordamida tarmoq uskunalari bilan qanday ishlashingiz mumkinligi haqida eng oddiy misollarni keltirdim. Shubhasiz, yuqoridagi misollardagi so'rovlarni ancha murakkablashtirish va sichqonchani bir marta bosish bilan butun xizmatlarni sozlash mumkin - hamma narsa faqat sizning tasavvuringiz bilan cheklangan *

Davomi bor…

PS

Agar siz to'satdan bularning barchasini bilsangiz yoki aksincha, ODL ruhiga kirib borgan bo'lsangiz, men ODL kontrollerida ilovalarni ishlab chiqishni maslahat beraman. Siz boshlashingiz mumkin shu yerda.

Muvaffaqiyatli tajribalar!

Adabiyotlar ro'yxati

  1. Vrnetlab: KVM va Docker yordamida tarmoqlarga taqlid qiling / Brayan Linkletter
  2. OpenDaylight oshxona kitobi / Mathieu Lemay, Aleksis de Talhuet va boshqalar
  3. YANG / Benoît Claise, Loe Clarke, Jan Lindblad bilan tarmoq dasturlash qobiliyati
  4. XMLni o'rganish, Ikkinchi nashr / Erik T. Rey
  5. Samarali DevOps / Jennifer Devis, Ryn Daniels

Manba: www.habr.com

a Izoh qo'shish