Тармактык кызматтарды автоматташтыруу же OpenDaylight, Postman жана Vrnetlab аркылуу виртуалдык лабораторияны кантип куруу керек

Тармактык кызматтарды автоматташтыруу же OpenDaylight, Postman жана Vrnetlab аркылуу виртуалдык лабораторияны кантип куруу керек

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

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

ыраазы

  • Керектүү билим
  • бөлүгү 1: кыскача талкуулоо OpenDaylight (мындан ары деп аталат ODL), почтальон и Vrnetlab жана алар бизге эмне үчүн керек
  • бөлүгү 2: виртуалдык лабораториянын сүрөттөлүшү
  • бөлүгү 3: конфигурациялоо OpenDaylight
  • бөлүгү 4: конфигурациялоо Vrnetlab
  • бөлүгү 5: жардамы менен почтальон виртуалдык роутерди туташтыруу (Juniper vMX) Үчүн 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 суроо-талаптарын жөнөтүү каражаты катары кызыкдарбыз. Сиз, албетте, суроо-талаптарды кол менен жөнөтө аласыз, бирок Почтачыда бардыгы абдан ачык көрүнөт жана биздин максаттарыбыз үчүн эң сонун.

Аны изилдегиси келгендер үчүн: ага көптөгөн окуу материалдары жазылган (Мисалы,).

Тармактык кызматтарды автоматташтыруу же OpenDaylight, Postman жана Vrnetlab аркылуу виртуалдык лабораторияны кантип куруу керек

  • Dockerде виртуалдык роутерлерди жайгаштыруу үчүн курал
  • Колдоо: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ж.б.
  • Ачык булак

Абдан кызыктуу, бирок аз белгилүү аспап. Биздин учурда, анын жардамы менен биз кадимки Ubuntu 9000 LTSде Juniper vMX жана Cisco xRV20.04ну иштетебиз.

Ал тууралуу кененирээк бул жерден окуй аласыз долбоор барагы.

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 учурдагы версия Магний SR1 болуп саналат

1) Орнотуу Java OpenJDK 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 (Control Plane) биринчи жолу ишке киргенде, ал vMXде VRR VCP катары иштей тургандыгын аныктаган конфигурация файлын окуйт. Буга чейин бул ишке киргизүү Dockerди ишке киргизүү учурунда ишке ашырылчу, бирок бул VCP ар дайым бир жолу өчүрүлүп күйгүзүлүп турганын билдирген. виртуалдык роутер жеткиликтүү болгонго чейин, натыйжада жүктөө узакка созулду (болжол менен 5 мүнөт) Эми биринчи VCP иштетүү Docker сүрөтүн куруу учурунда аткарылат жана Docker түзүмүн --privileged опциясы менен иштетүү мүмкүн эмес болгондуктан, бул 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ге туташтыруу

түзөлү PUT суроо:

Тармактык кызматтарды автоматташтыруу же 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 кабыл алуу
    • 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.

Роутер байланышы текшерилүүдө

түзөлү ТААНЫШ суроо:

  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 мүнөт күтүү керек болчу PUTАзырынча баары ушул YANG схемасы боюнча түшүрүлөт 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 жана логин/пароль: админ/админ.

6-бөлүк: роутердин конфигурациясын өзгөртүү

Конфигурация алынууда

түзөлү ТААНЫШ суроо:

  1. Суроо сап:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Авторизация өтмөгүндө сиз параметрди коюшуңуз керек Basic Auth жана логин/пароль: админ/админ.

Биз жибердик. "200 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 жана логин/пароль: админ/админ.
  4. Башкылар өтмөгүндө сиз эки аталышты кошушуңуз керек:
    • Тиркеме/xml кабыл алуу
    • Content-Type колдонмо/xml

Жөнөткөндөн кийин сиз "204 Контент жок" статусун алышыңыз керек.

Конфигурация өзгөргөнүн текшерүү үчүн мурунку суроону колдонсоңуз болот. Бирок, мисал үчүн, биз башкасын түзөбүз, ал бизге роутерде конфигурацияланган протоколдор жөнүндө гана маалымат көрсөтөт.

түзөлү ТААНЫШ суроо:

  1. Суроо сап:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protocols
  2. Авторизация өтмөгүндө сиз параметрди коюшуңуз керек Basic Auth жана логин/пароль: админ/админ.

Өтүнүчтү аткаргандан кийин, биз төмөнкүлөрдү көрөбүз:

Тармактык кызматтарды автоматташтыруу же OpenDaylight, Postman жана Vrnetlab аркылуу виртуалдык лабораторияны кантип куруу керек

Конфигурацияны өзгөртүү

BGP протоколу жөнүндө маалыматты өзгөртөлү. Биздин иш-аракеттерибизден кийин мындай болот:

protocols {
    bgp {
        disable;
    }
}

түзөлү PUT суроо:

  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 кабыл алуу
    • Content-Type колдонмо/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 жана логин/пароль: админ/админ.

Чакырганда ТААНЫШ протоколдор жөнүндө маалымат менен суроо-талап, биз төмөнкүлөрдү көрөбүз:

Тармактык кызматтарды автоматташтыруу же OpenDaylight, Postman жана Vrnetlab аркылуу виртуалдык лабораторияны кантип куруу керек

менен толукталсын:

Конфигурацияны өзгөртүү үчүн суроо-талаптын текстин форматта жөнөтүүнүн кереги жок XML. Бул форматта да жасалышы мүмкүн JSON.

Бул үчүн, мисалы, суроо-талапта PUT конфигурацияны өзгөртүү үчүн сурамдын корпусун төмөнкү менен алмаштырыңыз:

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

Башкылар өтмөгүндөгү аталыштарды төмөнкүгө өзгөртүүнү унутпаңыз:

  • Application/json кабыл алыңыз
  • Content-Type колдонмо/json

Жөнөткөндөн кийин биз төмөнкү натыйжаны алабыз (Жообун колдонуу менен карайбыз ТААНЫШ өтүнүч):

Тармактык кызматтарды автоматташтыруу же 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ге толугу менен окшош жол менен ишке ашат. Сиз жөн гана ысымдарды өзгөртүү керек.
PUT суроо:
Тармактык кызматтарды автоматташтыруу же OpenDaylight, Postman жана Vrnetlab аркылуу виртуалдык лабораторияны кантип куруу керек

Бир аздан кийин чалабыз ТААНЫШ баары байланыштуу экенин текшерүү үчүн өтүнүч:
Тармактык кызматтарды автоматташтыруу же OpenDaylight, Postman жана Vrnetlab аркылуу виртуалдык лабораторияны кантип куруу керек

Конфигурацияны өзгөртүү

Төмөнкү конфигурацияны орнотобуз:

!
router ospf LAB
 mpls ldp auto-config
!

түзөлү POST суроо:

  1. Суроо сап:
    POST http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
  2. Сурамдын негизги бөлүгү (Түзмөк өтмөгү):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Авторизация өтмөгүндө сиз параметрди коюшуңуз керек Basic Auth жана логин/пароль: админ/админ.
  4. Башкылар өтмөгүндө сиз эки аталышты кошушуңуз керек:
    • Application/json кабыл алыңыз
    • Content-Type колдонмо/json

Аны ишке ашыргандан кийин, сиз "204 Контент жок" статусун алышыңыз керек.

Келгиле, бизде эмне бар экенин текшерип көрөлү.
Бул үчүн биз түзөбүз ТААНЫШ суроо:

  1. Суроо сап:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/xrv01/yang-ext:mount/Cisco-IOS-XR-ipv4-ospf-cfg:ospf
  2. Авторизация өтмөгүндө сиз параметрди коюшуңуз керек Basic Auth жана логин/пароль: админ/админ.

Аткаруудан кийин сиз төмөнкүлөрдү көрүшүңүз керек:

Тармактык кызматтарды автоматташтыруу же OpenDaylight, Postman жана Vrnetlab аркылуу виртуалдык лабораторияны кантип куруу керек

Конфигурацияны жок кылуу үчүн колдонуңуз ӨЧҮРҮҮ:

  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 / Бенуа Клэйз, Лое Кларк, Ян Линдблад менен тармактык программалоо
  4. Learning XML, Second Edition / Erik T. Ray
  5. Натыйжалуу DevOps / Jennifer Davis, Ryn Daniels

Source: www.habr.com

Комментарий кошуу