Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

Энэ нийтлэлд би хэрхэн тохируулахыг танд үзүүлэх болно нээлттэй өдрийн гэрэл сүлжээний тоног төхөөрөмжтэй ажиллах, мөн хэрхэн ашиглахыг харуулах Шуудан зөөгч бөгөөд энгийн RESTCONF хүсэлтээр энэ төхөөрөмжийг хянах боломжтой. Бид техник хангамжтай ажиллахгүй, харин оронд нь нэг чиглүүлэгч ашиглан жижиг виртуал лабораториудыг байрлуулах болно Vrnetlab дууссан Ubuntu 20.04 LTS.

Би эхлээд чиглүүлэгчийн жишээг ашиглан нарийвчилсан тохиргоог харуулах болно Арц vMX 20.1R1.11, дараа нь бид үүнийг тохиргоотой харьцуулна Cisco xRV9000 7.0.2.

Агуулга

  • Шаардлагатай мэдлэг
  • 1-ийн хэсэг: товч ярилц OpenDaylight (цаашид ODL), Шуудан зөөгч и Vrnetlab мөн тэд бидэнд яагаад хэрэгтэй вэ?
  • 2-ийн хэсэг: виртуал лабораторийн тодорхойлолт
  • 3-ийн хэсэг: тохируулах нээлттэй өдрийн гэрэл
  • 4-ийн хэсэг: тохируулах Vrnetlab
  • 5-ийн хэсэг: ашиглах замаар Шуудан зөөгч виртуал чиглүүлэгчийг холбох (Juniper vMX) To ODL
  • 6-ийн хэсэг: ашиглан чиглүүлэгчийн тохиргоог авч өөрчлөх Шуудан зөөгч и ODL
  • 7-ийн хэсэг: Cisco xRV9000-г нэмнэ үү
  • дүгнэлт
  • PS
  • Ном зүй

Шаардлагатай мэдлэг

Нийтлэлийг хуудас болгон хувиргахгүйн тулд би зарим техникийн нарийн ширийн зүйлийг орхигдуулсан (тэдгээрийн талаар унших боломжтой уран зохиолын холбоостой).

Үүнтэй холбогдуулан би танд уншихаас өмнө мэдэх нь зүйтэй (гэхдээ бараг шаардлагагүй) сэдвүүдийг санал болгож байна.

1-р хэсэг: зарим онол

Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

  • Дэмжигдсэн бүх төрлийн сүлжээг удирдах, автоматжуулах нээлттэй SDN платформ Linux Foundation
  • Java дотор
  • Загварт суурилсан үйлчилгээний хийсвэрлэлийн түвшин (MD-SAL) дээр үндэслэсэн
  • Сүлжээний төхөөрөмжүүдийн RESTCONF API-г автоматаар үүсгэхийн тулд YANG загваруудыг ашигладаг

Сүлжээний удирдлагын үндсэн модуль. Түүгээр дамжуулан бид холбогдсон төхөөрөмжүүдтэй харилцах болно. Өөрийн API-ээр дамжуулан удирддаг.

Та OpenDaylight-ийн талаар илүү ихийг уншиж болно энд.

Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

  • API туршилтын хэрэгсэл
  • Энгийн бөгөөд хэрэглэхэд хялбар интерфэйс

Манай тохиолдолд бид үүнийг OpenDaylight API руу REST хүсэлт илгээх хэрэгсэл болгон сонирхож байна. Мэдээжийн хэрэг та хүсэлтийг гараар илгээж болно, гэхдээ 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 ашиглан виртуал лабораторийг хэрхэн байгуулах

Яаж энэ ажлыг хийдэг

  • Juniper vMX дотор босдог Docker сав (архиагаар Vrnetlab) бөгөөд хамгийн түгээмэл виртуал чиглүүлэгчийн үүрэг гүйцэтгэдэг.
  • ODL чиглүүлэгчид холбогдсон бөгөөд үүнийг хянах боломжийг танд олгоно.
  • Шуудан зөөгч тусдаа машин дээр ажиллуулж, түүгээр дамжуулан бид тушаалуудыг илгээдэг ODL: чиглүүлэгчийг холбох / арилгах, тохиргоог өөрчлөх гэх мэт.

Системийн төхөөрөмжийн талаархи тайлбар

Juniper vMX и ODL Тэдний тогтвортой үйл ажиллагаа явуулахын тулд нэлээд их нөөц шаардлагатай. Ганцхан vMX 6 Гб RAM болон 4 цөмтэй байхыг хүсдэг. Тиймээс бүх "хүнд жингүүд" -ийг тусдаа машинд шилжүүлэхээр шийдсэн (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Чиглүүлэгч нь мэдээжийн хэрэг "нисдэггүй" боловч гүйцэтгэл нь жижиг туршилт хийхэд хангалттай.

3-р хэсэг: OpenDaylight-г тохируулах

Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

Үүнийг бичиж байх үеийн ODL-ийн одоогийн хувилбар нь Magnesium SR1 юм

1) Суулгах Java Open JDK 11 (дэлгэрэнгүй суулгахын тулд энд)

ubuntu:~$ sudo apt install default-jdk

2) Хамгийн сүүлийн хувилбарыг олж татаж аваарай ODL Эндээс
3) Татаж авсан архивыг задлах
4) Үүссэн лавлах руу очно уу
5) эхлүүлэх ./bin/karaf

Энэ алхам дээр ODL эхлэх ёстой бөгөөд бид өөрсдийгөө консол дээр олох болно (8181 портыг гаднаас хандахад ашигладаг бөгөөд үүнийг бид дараа нь ашиглах болно).

Дараа нь суулгана уу ODL-ийн онцлогуудпротоколуудтай ажиллахад зориулагдсан NETCONF и RESTCONF. Үүнийг консол дээр хийхийн тулд ODL бид гүйцэтгэдэг:

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

Энэ бол хамгийн энгийн тохиргоо юм. ODL дууссан. (Дэлгэрэнгүй мэдээллийг үзнэ үү энд).

4-р хэсэг: Vrnetlab-ийг тохируулах

Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

Системийн бэлтгэл

Суулгахаас өмнө Vrnetlab та түүний үйл ажиллагаанд шаардлагатай багцуудыг суулгах хэрэгтэй. гэх мэт Docker, Go, 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, өөрийн өвөрмөц тохируулах журамтай. Хэзээ Juniper vMX Бид зүгээр л чиглүүлэгчийн хамт .tgz архивыг байршуулах хэрэгтэй (та эндээс татаж авах боломжтой албан ёсны сайт) vmx сан руу оруулаад тушаалыг ажиллуулна уу make:

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

Зураг бүтээх vMX ойролцоогоор 10-20 минут болно. Кофе уух цаг боллоо!

Яагаад ийм удаан байна гэж та асууж байна уу?

Орчуулга хариулт Энэ асуултын зохиогч:

"Энэ нь анх удаа VCP (Удирдлагын хавтгай) ажиллаж эхлэх үед энэ нь vMX-д VRR VCP байдлаар ажиллах эсэхийг тодорхойлох тохиргооны файлыг уншдагтай холбоотой юм. Өмнө нь энэ ажиллагааг Docker эхлүүлэх үед хийдэг байсан, гэхдээ энэ нь VCP гэсэн үг юм. Виртуал чиглүүлэгчийг ашиглах боломжтой болохоос өмнө үргэлж нэг удаа дахин асаалттай байсан бөгөөд үүний үр дүнд удаан ачаалах хугацаа (ойролцоогоор 5 минут) байсан. Одоо VCP-ийн эхний ажил нь Docker дүрсийг бүтээх явцад хийгдэж байгаа бөгөөд Docker бүтээцийг --ээр ажиллуулах боломжгүй. -давуу эрхтэй сонголт, энэ нь 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 ашиглан виртуал лабораторийг хэрхэн байгуулах

Энэ хүсэлт юу хийдэг вэ?

Бид дотроо зангилаа үүсгэдэг ODL Бидний хандахыг хүсч буй жинхэнэ чиглүүлэгчийн параметрүүдтэй.

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

Эдгээр нь дотоод нэрийн орон зай юм XML (XML нэрийн орон зай) -ийн хувьд ODL үүний дагуу зангилаа үүсгэдэг.

Цаашилбал, чиглүүлэгчийн нэр нь тус тус юм зангилаа ID, чиглүүлэгчийн хаяг - хост гэх мэт.

Хамгийн сонирхолтой мөр бол сүүлчийнх нь. Схемийн кэш лавлах бүх файлуудыг татаж авах директор үүсгэдэг YANG схем холбогдсон чиглүүлэгч. Та тэдгээрийг дотроос олж болно $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 OK" статусыг хүлээн авах ёстой бөгөөд энэ нь төхөөрөмжийн дэмждэг бүх жагсаалтын жагсаалт юм YANG схем:

Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

сэтгэгдэл: Сүүлийнхийг харахын тулд миний хувьд цаазлуулсаны дараа 10 минут хүлээх шаардлагатай болсон путбүгд хүртэл YANG схем дээр буулгана ODL. Энэ хүртэл, үүнийг гүйцэтгэх үед GET асуулга дараахыг харуулах болно.

Сүлжээний үйлчилгээг автоматжуулах эсвэл 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-р хэсэг: Чиглүүлэгчийн тохиргоог өөрчлөх

Тохиргоог авч байна

бүтээцгээе 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 OK" статус болон чиглүүлэгчийн тохиргоог хүлээн авах ёстой:

Сүлжээний үйлчилгээг автоматжуулах эсвэл 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 ашиглан виртуал лабораторийг хэрхэн байгуулах

Тохиргоог устгана уу

бүтээцгээе 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 болон нэвтрэх/нууц үг: админ/админ.

Дуудсан үед GET Протоколын талаархи мэдээлэлтэй хүсэлт гаргахад бид дараахь зүйлийг харах болно.

Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

Нэмэлт:

Тохиргоог өөрчлөхийн тулд хүсэлтийн хэсгийг форматаар илгээх шаардлагагүй XML. Үүнийг мөн форматаар хийж болно JSON.

Үүнийг хийхийн тулд, жишээлбэл, асуулгад пут тохиргоог өөрчлөхийн тулд хүсэлтийн хэсгийг дараахаар солино уу:

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

Гарчиг таб дээрх гарчгийг өөрчлөхөө бүү мартаарай:

  • Програм/json-г хүлээн авна уу
  • Агуулгын төрлийн програм/json

Илгээсний дараа бид дараах үр дүнг авах болно (Бид хариултыг ашиглан харна GET хүсэлт):

Сүлжээний үйлчилгээг автоматжуулах эсвэл OpenDaylight, Postman, Vrnetlab ашиглан виртуал лабораторийг хэрхэн байгуулах

7-р хэсэг: Cisco xRV9000 нэмэх

Бид бүгд Арц гэж юу вэ, тийм ээ Арц? Cisco-ийн талаар ярилцъя!
Би xRV9000 хувилбар 7.0.2 (8Gb RAM, 4 цөм шаардлагатай араатан. Энэ нь чөлөөтэй байхгүй тул холбогдоно уу) олсон. Cisco) - үүнийг ажиллуулцгаая.

Контейнер ажиллуулж байна

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 ашиглан виртуал лабораторийг хэрхэн байгуулах

Хэсэг хугацааны дараа залга 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 ашиглан виртуал лабораторийг хэрхэн байгуулах

Тохиргоог арилгахын тулд ашиглана уу 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 болон нэвтрэх/нууц үг: админ/админ.

дүгнэлт

Нийтдээ та анзаарсан байх, Cisco болон Juniper-ийг OpenDaylight-тай холбох журам нь ялгаатай биш - энэ нь бүтээлч байдлын өргөн цар хүрээг нээж өгдөг. Сүлжээний бүх бүрэлдэхүүн хэсгүүдийн тохиргооны удирдлагаас эхлээд өөрийн сүлжээний бодлогыг бий болгох хүртэл.
Энэ зааварт би OpenDaylight ашиглан сүлжээний төхөөрөмжтэй хэрхэн харьцаж болох хамгийн энгийн жишээг өгсөн. Дээрх жишээнүүдийн асуултуудыг илүү төвөгтэй болгож, хулганын нэг товшилтоор бүх үйлчилгээг тохируулах боломжтой - бүх зүйл зөвхөн таны төсөөллөөр хязгаарлагддаг *

Үргэлжлэл бий…

PS

Хэрэв та энэ бүгдийг гэнэт мэдсэн эсвэл эсрэгээрээ ODL-ийн сэтгэлийг даван туулж, шингэсэн бол ODL хянагч дээр програм хөгжүүлэхийг хайж олохыг зөвлөж байна. Та эхэлж болно Эндээс.

Амжилттай туршилтууд!

Лавлагаа

  1. Vrnetlab: KVM болон Docker ашиглан сүлжээг дуурайх /Брайан Линклеттер
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
  3. YANG / Benoît Claise, Loe Clarke, Jan Lindblad нартай сүлжээний програмчлах чадвар
  4. XML сурах, Хоёр дахь хэвлэл / Erik T. Ray
  5. Үр дүнтэй DevOps / Женнифер Дэвис, Рин Даниэлс

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх