Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

Дар ин мақола, ман ба шумо нишон медиҳам, ки чӣ гуна насб кардан лозим аст рӯзи кушод бо таҷҳизоти шабакавӣ кор кардан, инчунин тарзи истифода бурдани онро нишон диҳед хаткашон ва содда RESTCONF талаб карда шавад, ин тачхизотро идора кардан мумкин аст. Мо бо сахтафзор кор намекунем, аммо ба ҷои он мо лабораторияҳои хурди виртуалиро бо як роутер истифода хоҳем кард Vrnetlab дар болои Либерти 20.04 LTS.

Ман аввал танзимоти муфассалро бо истифода аз мисоли роутер нишон медиҳам Juniper vMX 20.1R1.11, ва он гоҳ мо онро бо танзим муқоиса мекунем Cisco xRV9000 7.0.2.

Мундариҷа

  • Дониши зарурӣ
  • Қисми 1: мухтасар мухокима кунед OpenDaylight (минбаъд ODL), хаткашон и Vrnetlab ва чаро мо ба онҳо ниёз дорем
  • Қисми 2: тавсифи лабораторияи виртуалӣ
  • Қисми 3: танзим кунед рӯзи кушод
  • Қисми 4: танзим кунед Vrnetlab
  • Қисми 5: бо истифода хаткашон роутери виртуалиро пайваст кунед (Juniper vMX) Ба ODL
  • Қисми 6: конфигуратсияи роутерро истифода баред ва тағир диҳед хаткашон и ODL
  • Қисми 7: илова Cisco xRV9000
  • хулоса
  • PS
  • Библиография

Дониши зарурӣ

Барои он ки мақола ба варақ табдил наёбад, ман баъзе тафсилоти техникиро сарфи назар кардам (бо истинодҳо ба адабиёт, ки шумо метавонед дар бораи онҳо хонед).

Дар робита ба ин, ман ба шумо мавзӯъҳоеро пешниҳод мекунам, ки пеш аз хондан хуб мебуд (вале қариб зарур нест):

Қисми 1: баъзе назария

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

  • Платформаи кушодаи SDN барои идора ва автоматикунонии ҳама гуна шабакаҳо, ки аз ҷониби Фонди Linux
  • Java дар дохили
  • Дар асоси сатҳи абстраксияи хидматрасонии моделӣ (MD-SAL)
  • Моделҳои YANG-ро барои ба таври худкор тавлид кардани API-ҳои RESTCONF барои дастгоҳҳои шабакавӣ истифода мебарад

Модули асосӣ барои идоракунии шабака. Маҳз тавассути он мо бо дастгоҳҳои пайвастшуда муошират хоҳем кард. Тавассути API-и худ идора карда мешавад.

Шумо метавонед дар бораи OpenDaylight бештар хонед дар ин ҷо.

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

  • Воситаи санҷиши API
  • Интерфейси оддӣ ва ба осонӣ истифодашаванда

Дар ҳолати мо, мо ба он ҳамчун воситаи фиристодани дархостҳои REST ба API OpenDaylight манфиатдорем. Шумо метавонед, албатта, дархостҳоро дастӣ фиристед, аммо дар 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 баланд мешавад Доктор контейнер (бо воситаи Vrnetlab) ва ҳамчун роутери маъмултарини виртуалӣ фаъолият мекунад.
  • ODL ба роутер пайваст ва ба шумо имкон медиҳад, ки онро идора кунед.
  • хаткашон дар мошини алохида ба кор андохта мешавад ва ба воситаи он мо фармонхо мефиристем ODL: барои пайваст кардан / хориҷ кардани роутер, тағир додани конфигуратсия ва ғайра.

Шарҳ дар бораи дастгоҳи система

Juniper vMX и ODL барои кори муътадили онхо захирахои хеле зиёдро талаб мекунанд. Танҳо як vMX 6 Гб хотираи оперативӣ ва 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 шумо бояд бастаҳои барои кори он заруриро насб кунед. Ба мисли Доктор, рафтан, 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 (Ҳавопаймои идоракунӣ) оғоз мешавад, он файли конфигуратсияро мехонад, ки муайян мекунад, ки он ҳамчун 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 дар роутер корбар эҷод мекунад 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 ва логин / парол: admin/admin. Ин барои дастрасӣ ба ODL лозим аст:
    Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab
  4. Дар ҷадвали Сарлавҳаҳо, шумо бояд ду сарлавҳа илова кунед:
    • Ариза/xml-ро қабул кунед
    • Барномаи Content-Type/xml

Дархости мо ба миён омад. мефиристем. Агар ҳама чиз дуруст танзим шуда бошад, пас мо бояд ҳолати "201 Сохташуда" -ро баргардонем:

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

Ин дархост чӣ кор мекунад?

Мо гиреҳ дар дохили он эҷод мекунем ODL бо параметрҳои роутери воқеӣ мо мехоҳем дастрасӣ пайдо кунем.

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

Инҳо фазои номҳои дохилӣ мебошанд XML (Фазои номи XML) барои ODL мувофиқи он гиреҳ эҷод мекунад.

Минбаъд, мутаносибан, номи роутер аст node-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 ва логин / парол: admin/admin.

мефиристем. Бояд мақоми "200 OK" ва рӯйхати ҳамаеро, ки дастгоҳ дастгирӣ мекунад, гирад Схемаи YANG:

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

шарҳ: Барои дидани охирин, дар ҳолати ман, пас аз қатл тақрибан 10 дақиқа интизор шудан лозим буд гузоштато ҳама Схемаи YANG фуровардан ODL. То ин вақт, ҳангоми иҷрои ин GET пурсиш инҳоро нишон медиҳад:

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

Роутерро нест кунед

биёед эҷод кунем БЕҲТАРИН дархост:

  1. Сатри пурсиш:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Дар ҷадвали Авторизатсия шумо бояд параметрро таъин кунед Basic Auth ва логин / парол: admin/admin.

Қисми 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 ва логин / парол: admin/admin.

мефиристем. Бояд мақоми "200 OK" ва конфигуратсияи роутерро қабул кунад:

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз 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 ва логин / парол: admin/admin.
  4. Дар ҷадвали Сарлавҳаҳо, шумо бояд ду сарлавҳа илова кунед:
    • Ариза/xml-ро қабул кунед
    • Барномаи Content-Type/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 ва логин / парол: 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-ро қабул кунед
    • Барномаи Content-Type/xml

Истифодаи пештара GET дархост, мо тағиротро мебинем:

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

Конфигуратсияро нест кунед

биёед эҷод кунем БЕҲТАРИН дархост:

  1. Сатри пурсиш:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
  2. Дар ҷадвали Авторизатсия шумо бояд параметрро таъин кунед Basic Auth ва логин / парол: admin/admin.

Ҳангоми занг задан GET дархост бо маълумот дар бораи протоколҳо, мо инҳоро мебинем:

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

Илова кардани:

Барои тағир додани конфигуратсия, фиристодани мақоми дархост дар формат шарт нест XML. Ин метавонад дар формат низ анҷом дода шавад JSON.

Барои ин, масалан, дар дархост гузошта барои тағир додани конфигуратсия, мақоми дархостро бо: иваз кунед:

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

Фаромӯш накунед, ки сарлавҳаҳоро дар ҷадвали Сарлавҳаҳо ба:

  • Ариза/json қабул кунед
  • Барномаи Content-Type/json

Пас аз фиристодан, мо натиҷаи зеринро мегирем (Мо ба ҷавоб бо истифода аз GET дархост):

Автоматикунонии хидматҳои шабакавӣ ё чӣ гуна сохтани лабораторияи виртуалӣ бо истифода аз OpenDaylight, Postman ва Vrnetlab

Қисми 7: Илова кардани Cisco xRV9000

Мо ҳама дар бораи Арча чӣ ҳастем, ҳа Арча? Биёед дар бораи Cisco сӯҳбат кунем!
Ман версияи xRV9000-ро ёфтам 7.0.2 (ҳайвоне, ки ба 8 Гб 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
!

биёед эҷод кунем 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 ва логин / парол: admin/admin.
  4. Дар ҷадвали Сарлавҳаҳо, шумо бояд ду сарлавҳа илова кунед:
    • Ариза/json қабул кунед
    • Барномаи Content-Type/json

Пас аз иҷрои он, онҳо бояд мақоми "204 No Content" -ро гиранд.

Биёед бубинем, ки чӣ дорем.
Барои ин, мо эҷод мекунем 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 ва логин / парол: 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 / Матью Лемай, Алексис де Талхует, ва дигарон
  3. Барномасозии шабака бо YANG / Benoît Claise, Ло Кларк, Ян Линдблад
  4. Омӯзиши XML, Нашри дуюм / Erik T. Ray
  5. DevOps самаранок / Ҷенифер Дэвис, Рин Даниэлс

Манбаъ: will.com

Илова Эзоҳ