Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

En ĉi tiu artikolo, mi montros al vi kiel agordi Malferma Taglumo labori kun retaj ekipaĵoj, kaj ankaŭ montri kiel uzi Poŝtisto kaj simpla RESTCONF petoj, ĉi tiu ekipaĵo povas esti kontrolita. Ni ne laboros kun aparataro, sed anstataŭe ni deplojos malgrandajn virtualajn laboratoriojn kun ununura enkursigilo uzanta Vrnetlab super Ubuntu 20.04 LTS.

Mi montros la detalajn agordojn unue uzante la ekzemplon de enkursigilo Juniper vMX 20.1R1.11, kaj tiam ni komparas ĝin kun la agordo Cisco xRV9000 7.0.2.

Enhavo

  • Bezonata scio
  • 1-parto: diskuti mallonge OpenDaylight (ĉi-poste ODL), Poŝtisto и Vrnetlab kaj kial ni bezonas ilin
  • 2-parto: priskribo de la virtuala laboratorio
  • 3-parto: personecigi Malferma Taglumo
  • 4-parto: personecigi Vrnetlab
  • 5-parto: uzante Poŝtisto konekti virtualan enkursigilon (Juniper vMX) Al ODL
  • 6-parto: akiru kaj ŝanĝu la agordon de la enkursigilo uzante Poŝtisto и ODL
  • 7-parto: aldonu Cisco xRV9000
  • konkludo
  • PS
  • Bibliografio

Bezonata scio

Por ke la artikolo ne fariĝu folio, mi preterlasis kelkajn teknikajn detalojn (kun ligiloj al literaturo kie oni povas legi pri ili).

Ĉi-rilate mi proponas al vi temojn, kiujn estus bone (sed preskaŭ ne necese) scii antaŭ ol legi:

Parto 1: iu teorio

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

  • Malferma SDN-platformo por administri kaj aŭtomatigi ĉiajn retojn, subtenata de Linukso-Fondaĵo
  • Java interne
  • Surbaze de Model-Driven Service Abstracción Nivelo (MD-SAL)
  • Uzas YANG-modelojn por aŭtomate generi RESTCONF-APIojn por retaj aparatoj

La ĉefa modulo por retadministrado. Ĝuste per ĝi ni komunikados kun konektitaj aparatoj. Administrita per sia propra API.

Vi povas legi pli pri OpenDaylight tie.

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

  • API-testilo
  • Simpla kaj facile uzebla interfaco

En nia kazo, ni interesiĝas pri ĝi kiel rimedo por sendi REST-petojn al la OpenDaylight API. Vi povas, kompreneble, sendi petojn permane, sed en Postman ĉio aspektas tre klara kaj perfekte konvenas al niaj celoj.

Por tiuj, kiuj volas fosi: multaj trejnmaterialoj estis skribitaj sur ĝi (ekzemple).

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

  • Ilo por disfaldi virtualajn enkursigilojn en Docker
  • Subtenoj: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ktp.
  • Malferma Fonto

Tre interesa sed malmulte konata instrumento. En nia kazo, ni uzos ĝin por ruli Juniper vMX kaj Cisco xRV9000 sur regula Ubuntu 20.04 LTS.

Vi povas legi pli pri ĝi ĉe projekto paĝo.

Parto 2: Laboratorio

En ĉi tiu lernilo, ni starigos la sekvan sistemon:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Kiel tio funkcias

  • Juniper vMX leviĝas en Docker ujo (per Vrnetlab) kaj funkcias kiel la plej ofta virtuala enkursigilo.
  • ODL konektita al la enkursigilo kaj permesas vin kontroli ĝin.
  • Poŝtisto lanĉita sur aparta maŝino kaj per ĝi ni sendas komandojn ODL: por konekti/forigi la enkursigilon, ŝanĝi la agordon ktp.

Komentario pri la aparato de la sistemo

Juniper vMX и ODL postulas sufiĉe multajn rimedojn por sia stabila funkciado. Unu nur vMX petas 6 Gb da RAM kaj 4 kernoj. Tial oni decidis movi ĉiujn "pezegojn" al aparta maŝino (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). La enkursigilo, kompreneble, ne "flugas" sur ĝi, sed la agado sufiĉas por malgrandaj eksperimentoj.

Parto 3: Agordu OpenDaylight

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

La nuna versio de ODL en la momento de ĉi tiu skribado estas Magnesium SR1

1) Instalu Java Open JDK 11 (por pli detala instalado tie)

ubuntu:~$ sudo apt install default-jdk

2) Trovu kaj elŝutu la plej novan konstruon ODL de ĉi tie
3) Malfermu la elŝutitan arkivon
4) Iru al la rezulta dosierujo
5) Lanĉo ./bin/karaf

Je ĉi tiu paŝo ODL devus komenci kaj ni trovos nin en la konzolo (Porto 8181 estas uzata por aliro de ekstere, kiun ni uzos poste).

Poste, instalu ODL-Trajtojdesegnita por labori kun protokoloj NETCONF и RESTCONF. Por fari tion en la konzolo ODL ni plenumas:

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

Ĉi tiu estas la plej simpla aranĝo. ODL kompletigita. (Por pliaj detaloj, vidu tie).

Parto 4: Agordo de Vrnetlab

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Sistempreparo

Antaŭ instalado Vrnetlab vi devas instali la pakaĵojn necesajn por ĝia funkciado. Kiel Docker, iri, 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

Instalante Vrnetlab

Instali Vrnetlab klonu la respondan deponejon de github:

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

Iru al dosierujo vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Ĉi tie vi povas vidi ĉiujn skriptojn necesajn por funkcii. Bonvolu noti, ke responda dosierujo estis farita por ĉiu speco de enkursigilo:

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

Kreu bildon de la enkursigilo

Ĉiu enkursigilo kiu estas subtenata Vrnetlab, havas sian propran unikan aranĝan proceduron. Kiam Juniper vMX ni nur bezonas alŝuti la arkivon .tgz per la enkursigilo (vi povas elŝuti ĝin de oficiala retejo) al la dosierujo vmx kaj rulu la komandon make:

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

Konstruante bildon vMX daŭros ĉirkaŭ 10-20 minutojn. Estas tempo iri preni kafon!

Kial tiom longe, vi demandas?

Tradukado la respondo aŭtoro de ĉi tiu demando:

"Ĉi tio estas ĉar la unuan fojon kiam la VCP (Kontrolaviadilo) estas komencita, ĝi legas agordosieron kiu determinas ĉu ĝi funkcios kiel VRR VCP en vMX. Antaŭe, ĉi tiu lanĉo estis farita dum Docker-komenco, sed tio signifis, ke la VCP. estis ĉiam rekomencita unufoje antaŭ ol la virtuala enkursigilo iĝis havebla, rezultigante longan ekfunkciigon (ĉirkaŭ 5 minutojn) Nun la unua funkciado de la VCP estas farita dum la konstruo de la Docker-bildo, kaj ĉar la Docker-konstruaĵo ne povas esti rulita kun la - -privilegia opcio, tio signifas, ke qemu funkcias sen akcelado de aparataro KVM kaj tiel la konstruo daŭras tre longan tempon.Dum ĉi tiu procezo multaj protokoloj estas eligitaj, do almenaŭ vi povas vidi kio okazas.Mi pensas, ke longa konstruo estas. ne tiom timiga ĉar ni kreas bildon unufoje, sed ni lanĉas multajn."

Post vi povas vidi la bildon de nia enkursigilo en 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

Lanĉu vr-vmx-ujon

Ni komencu per la komando:

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

Poste, ni povas vidi informojn pri aktivaj ujoj:

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

Konektante al la enkursigilo

La IP-adreso de la reto-interfaco de la enkursigilo povas esti akirita per la sekva komando:

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

Defaŭlta, Vrnetlab kreas uzanton sur la enkursigilo vrnetlab/VR-netlab9.
Konektante kun 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

Ĉi tio kompletigas la enkursigilon.

Instalaj rekomendoj por enkursigiloj de diversaj vendistoj troveblas ĉe github-projekto en la respektivaj adresaroj.

Parto 5: Leterportisto - konektu la enkursigilon al OpenDaylight

Instalado de leterportisto

Por instali, simple elŝutu la aplikaĵon de ĉi tie.

Konekti enkursigilon al ODL

Ni kreu metu peto:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

  1. Demanda ĉeno:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Petokorpo (Korpo langeto):
    <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. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin. Ĉi tio estas bezonata por aliri la ODL:
    Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab
  4. Sur la langeto Kapoj, vi devas aldoni du kapojn:
    • Akceptu aplikaĵon/xml
    • Enhavo-Tipa aplikaĵo/xml

Nia peto estas farita. Ni sendas. Se ĉio estis agordita ĝuste, tiam ni devus redoni la statuson "201 Kreita":

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Kion faras ĉi tiu peto?

Ni kreas nodon interne ODL kun la parametroj de la vera enkursigilo, kiun ni volas aliri.

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

Ĉi tiuj estas internaj nomspacoj XML (XML-nomspaco) por ODL laŭ kiu ĝi kreas nodon.

Plue, respektive, la nomo de la enkursigilo estas nodo-id, enkursigilo-adreso - gastiganto kaj tiel plu.

La plej interesa linio estas la lasta. Skemo-kaŝmemoro-dosierujo kreas dosierujon kie ĉiuj dosieroj estas elŝutitaj YANG-Skemo konektita enkursigilo. Vi povas trovi ilin en $ODL_ROOT/cache/jun01_cache.

Kontrolante la konekton de la enkursigilo

Ni kreu GET peto:

  1. Demanda ĉeno:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.

Ni sendas. Devus ricevi statuson de "200 OK" kaj liston de ĉiuj subtenataj de la aparato YANG-Skemo:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

komento: Por vidi ĉi tiun lastan, en mia kazo necesis atendi ĉirkaŭ 10 minutojn post la ekzekuto metuĝis ĉiuj YANG-skemo malŝarĝi plu ODL. Ĝis ĉi tiu punkto, kiam vi faras ĉi tion GET demando montros la jenon:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Forigu la enkursigilon

Ni kreu DELETE peto:

  1. Demanda ĉeno:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.

Parto 6: Ŝanĝu la agordon de la enkursigilo

Akiro de la agordo

Ni kreu GET peto:

  1. Demanda ĉeno:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.

Ni sendas. Devus ricevi la statuson "200 OK" kaj la enkursigilo-konfiguracion:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Kreu agordon

Ekzemple, ni kreu la sekvan agordon kaj modifu ĝin:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Ni kreu POST peto:

  1. Demanda ĉeno:
    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. Petokorpo (Korpo langeto):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.
  4. Sur la langeto Kapoj, vi devas aldoni du kapojn:
    • Akceptu aplikaĵon/xml
    • Enhavo-Tipa aplikaĵo/xml

Post sendo, ili devus ricevi la statuson "204 Neniu Enhavo"

Por kontroli, ke la agordo ŝanĝiĝis, vi povas uzi la antaŭan demandon. Sed ekzemple ni kreos alian, kiu montros informojn nur pri la protokoloj agorditaj sur la enkursigilo.

Ni kreu GET peto:

  1. Demanda ĉeno:
    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. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.

Post plenumi la peton, ni vidos la jenon:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Ŝanĝu la agordon

Ni ŝanĝu la informojn pri la BGP-protokolo. Post niaj agoj, ĝi aspektos jene:

protocols {
    bgp {
        disable;
    }
}

Ni kreu metu peto:

  1. Demanda ĉeno:
    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. Petokorpo (Korpo langeto):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.
  4. Sur la langeto Kapoj, vi devas aldoni du kapojn:
    • Akceptu aplikaĵon/xml
    • Enhavo-Tipa aplikaĵo/xml

Uzante la antaŭan GET peto, ni vidas la ŝanĝojn:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Forigu la agordon

Ni kreu DELETE peto:

  1. Demanda ĉeno:
    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. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.

Kiam oni vokas GET peto kun informoj pri la protokoloj, ni vidos la jenon:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Aldono:

Por ŝanĝi la agordon, ne necesas sendi la peton en la formato XML. Ĉi tio ankaŭ povas esti farita en la formato JSON.

Por fari tion, ekzemple, en la konsulto metu por ŝanĝi la agordon, anstataŭigu la peton per:

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

Ne forgesu ŝanĝi la kapliniojn sur la langeto Headers al:

  • Akceptu aplikaĵon/json
  • Enhavo-Tipa aplikaĵo/json

Post sendo, ni ricevos la sekvan rezulton (Ni rigardas la respondon uzante GET peto):

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Parto 7: Aldono de Cisco xRV9000

Kion ni ĉiuj estas pri Junipero, jes Junipero? Ni parolu pri Cisco!
Mi trovis xRV9000 version 7.0.2 (besto kiu bezonas 8Gb RAM kaj 4 kernojn. Ĝi ne estas libere havebla, do kontaktu Cisco) - ni kuru ĝin.

Kurante ujon

La procezo krei Docker-ujon preskaŭ ne diferencas de Juniper. Simile, ni faligas la .qcow2-dosieron kun la enkursigilo en la dosierujon respondan al ĝia nomo (en ĉi tiu kazo, xrv9k) kaj plenumas la komandon make docker-image.

Post kelkaj minutoj, ni vidas, ke la bildo estas kreita:

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

Ni komencas la ujon:

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

Post iom da tempo, ni rigardas, ke la ujo komenciĝis:

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

Konekti per 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

Konektante la enkursigilon al OpenDaylight

Aldono okazas en tute simila maniero kun vMX. Ni nur bezonas ŝanĝi la nomojn.
metu peto:
Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Voku post iom da tempo GET demandu por kontroli, ke ĉio estas konektita:
Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Ŝanĝu la agordon

Ni agordu la sekvan agordon:

!
router ospf LAB
 mpls ldp auto-config
!

Ni kreu POST peto:

  1. Demanda ĉeno:
    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. Petokorpo (Korpo langeto):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.
  4. Sur la langeto Kapoj, vi devas aldoni du kapojn:
    • Akceptu aplikaĵon/json
    • Enhavo-Tipa aplikaĵo/json

Post ĝia ekzekuto, ili devus ricevi la statuson "204 Sen Enhavo".

Ni kontrolu, kion ni ricevis.
Por fari tion, ni kreos GET peto:

  1. Demanda ĉeno:
    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. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.

Post ekzekuto, vi devus vidi la jenon:

Aŭtomatigo de retservoj aŭ kiel konstrui virtualan laboratorion uzante OpenDaylight, Postman kaj Vrnetlab

Por forigi la agordon uzu DELETE:

  1. Demanda ĉeno:
    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. Sur la langeto Rajtigo, vi devas agordi la parametron Basic Auth kaj ensaluto/pasvorto: admin/admin.

konkludo

Entute, kiel vi eble rimarkis, la proceduroj por konekti Cisco kaj Juniper al OpenDaylight ne diferencas - ĉi tio malfermas sufiĉe larĝan amplekson por kreivo. Komencante de agorda administrado de ĉiuj retaj komponantoj kaj finiĝante kun la kreado de viaj propraj retaj politikoj.
En ĉi tiu lernilo, mi donis la plej simplajn ekzemplojn pri kiel vi povas interagi kun retaj ekipaĵoj uzante OpenDaylight. Sen dubo, la demandoj de la supraj ekzemploj povas fariĝi multe pli kompleksaj kaj agordi tutajn servojn per unu klako de la muso - ĉio estas limigita nur de via imago *

Daŭrigota…

PS

Se vi subite jam scias ĉion ĉi aŭ, male, trapasis kaj enprofundiĝis en la animon de ODL, tiam mi rekomendas rigardi por disvolvi aplikaĵojn sur la ODL-regilo. Vi povas komenci de ĉi tie.

Sukcesaj eksperimentoj!

Referencoj

  1. Vrnetlab: Emulu retojn uzante KVM kaj Docker /Brian Linkletter
  2. OpenDaylight Kuirlibro / Mathieu Lemay, Alexis de Talhouet, Et al
  3. Reta Programebleco kun YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Lernado de XML, Dua Eldono / Erik T. Ray
  5. Efika DevOps / Jennifer Davis, Ryn Daniels

fonto: www.habr.com

Aldoni komenton