Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Å ajā rakstā es jums parādÄ«Å”u, kā iestatÄ«t atvērta diena strādāt ar tÄ«kla aprÄ«kojumu, kā arÄ« parādÄ«t, kā to izmantot Pastnieks un vienkārÅ”i RESTCONF pieprasÄ«jumu, Å”o aprÄ«kojumu var kontrolēt. Mēs nestrādāsim ar aparatÅ«ru, bet tā vietā izvietosim nelielas virtuālās laboratorijas ar vienu marÅ”rutētāju Vrnetlab vairāk Ubuntu LTS 20.04.

Vispirms es parādÄ«Å”u detalizētus iestatÄ«jumus, izmantojot marÅ”rutētāja piemēru KadiÄ·is vMX 20.1R1.11, un tad mēs to salÄ«dzinām ar iestatÄ«jumu Cisco xRV9000 7.0.2.

saturs

  • NepiecieÅ”amās zināŔanas
  • 1. daļa: Ä«si apspriest OpenDaylight (turpmāk ODL), Pastnieks Šø Vrnetlab un kāpēc mums tie ir vajadzÄ«gi
  • 2. daļa: virtuālās laboratorijas apraksts
  • 3. daļa: pielāgot atvērta diena
  • 4. daļa: pielāgot Vrnetlab
  • 5. daļa: izmantojot Pastnieks pievienojiet virtuālo marÅ”rutētāju (KadiÄ·is vMX) lÄ«dz ODL
  • 6. daļa: iegÅ«stiet un mainiet marÅ”rutētāja konfigurāciju, izmantojot Pastnieks Šø ODL
  • 7. daļa: pievienojiet Cisco xRV9000
  • Secinājums
  • PS
  • Bibliogrāfija

NepiecieŔamās zināŔanas

Lai raksts nepārvērstos par lapu, dažas tehniskas detaļas izlaidu (ar saitēm uz literatūru, kur par tām var palasīt).

SaistÄ«bā ar to piedāvāju tēmas, kuras bÅ«tu labi (bet gandrÄ«z nevajag) zināt pirms lasÄ«Å”anas:

1. daļa: dažas teorijas

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

  • Atvērta SDN platforma visu veidu tÄ«klu pārvaldÄ«bai un automatizÄ“Å”anai, ko atbalsta Linux fonds
  • Java iekŔā
  • Pamatojoties uz modeļa vadÄ«tu pakalpojumu abstrakcijas lÄ«meni (MD-SAL)
  • Izmanto YANG modeļus, lai automātiski Ä£enerētu RESTCONF API tÄ«kla ierÄ«cēm

Galvenais tÄ«kla pārvaldÄ«bas modulis. TieÅ”i caur to mēs sazināsimies ar pievienotajām ierÄ«cēm. Pārvalda, izmantojot savu API.

Jūs varat lasīt vairāk par OpenDaylight Ŕeit.

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

  • API testÄ“Å”anas rÄ«ks
  • VienkārÅ”s un ērti lietojams interfeiss

MÅ«su gadÄ«jumā tas mÅ«s interesē kā lÄ«dzekli REST pieprasÄ«jumu nosÅ«tÄ«Å”anai uz OpenDaylight API. PieprasÄ«jumus, protams, var sÅ«tÄ«t arÄ« manuāli, taču Pastniekā viss izskatās ļoti skaidri un lieliski atbilst mÅ«su mērÄ·iem.

Tiem, kas vēlas rakt: uz tā ir uzrakstīts daudz mācību materiālu (piemēram).

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

  • RÄ«ks virtuālo marÅ”rutētāju izvietoÅ”anai programmā Docker
  • Atbalsta: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR utt.
  • Atvērtā koda

Ļoti interesants, bet maz zināms instruments. Mūsu gadījumā mēs to izmantosim, lai palaistu Juniper vMX un Cisco xRV9000 parastā Ubuntu 20.04 LTS.

Vairāk par to varat lasīt vietnē projekta lapa.

2. daļa: Lab

Å ajā apmācÄ«bā mēs iestatÄ«sim Ŕādu sistēmu:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Kā tas darbojas

  • KadiÄ·is vMX paceļas iekŔā dokers konteiners (ar lÄ«dzekļiem Vrnetlab) un darbojas kā visizplatÄ«tākais virtuālais marÅ”rutētājs.
  • ODL savienots ar marÅ”rutētāju un ļauj to kontrolēt.
  • Pastnieks palaista atseviŔķā maŔīnā un caur to mēs sÅ«tām komandas ODL: lai pievienotu / noņemtu marÅ”rutētāju, mainÄ«tu konfigurāciju utt.

Komentārs par sistēmas ierīci

KadiÄ·is vMX Šø ODL prasa diezgan lielus resursus to stabilai darbÄ«bai. Tikai viens vMX prasa 6 Gb RAM un 4 kodolus. Tāpēc tika nolemts visus "smagsvarus" pārvietot uz atseviŔķu maŔīnu (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). RÅ«teris, protams, uz tā "nelido", bet veiktspēja ir pietiekama nelieliem eksperimentiem.

3. daļa: OpenDaylight iestatÄ«Å”ana

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

PaÅ”reizējā ODL versija Ŕī rakstÄ«Å”anas laikā ir Magnesium SR1

1) Instalējiet Java OpenJDK 11 (lai iegÅ«tu sÄ«kāku uzstādÄ«Å”anu Å”eit)

ubuntu:~$ sudo apt install default-jdk

2) Atrodiet un lejupielādējiet jaunāko versiju ODL tātad
3) Izpakojiet lejupielādēto arhīvu
4) Dodieties uz iegūto direktoriju
5) Palaist ./bin/karaf

Šajā solī ODL jāsāk un mēs nonāksim konsolē (piekļuvei no ārpuses tiek izmantots ports 8181, ko izmantosim vēlāk).

Tālāk instalējiet ODL funkcijasparedzēts darbam ar protokoliem NETCONF Šø RESTCONF. Lai to izdarÄ«tu konsolē ODL mēs izpildām:

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

Šī ir vienkārŔākā iestatīŔana. ODL pabeigts. (Sīkāku informāciju sk Ŕeit).

4. daļa: Vrnetlab iestatīŔana

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Sistēmas sagatavoÅ”ana

Pirms uzstādÄ«Å”anas Vrnetlab jāinstalē tās darbÄ«bai nepiecieÅ”amās pakotnes. Tādas kā dokers, iet, 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 instalēŔana

UzstādÄ«Å”anai Vrnetlab klonējiet atbilstoÅ”o repozitoriju no github:

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

Dodieties uz direktoriju vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Å eit jÅ«s varat redzēt visus palaiÅ”anai nepiecieÅ”amos skriptus. LÅ«dzu, ņemiet vērā, ka katram marÅ”rutētāja veidam ir izveidots atbilstoÅ”s direktorijs:

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

Izveidojiet marÅ”rutētāja attēlu

Katrs atbalstÄ«tais marÅ”rutētājs Vrnetlab, ir sava unikāla iestatÄ«Å”anas procedÅ«ra. Kad KadiÄ·is vMX mums vienkārÅ”i jāaugÅ”upielādē .tgz arhÄ«vs ar marÅ”rutētāju (to var lejupielādēt no oficiālā vietne) uz vmx direktoriju un palaidiet komandu make:

ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # ŠšŠ¾ŠæŠøруŠµŠ¼ Š² эту Š“ŠøрŠµŠŗтŠ¾Ń€Šøю .tgz Š°Ń€Ń…ŠøŠ² с рŠ¾ŃƒŃ‚ŠµŃ€Š¾Š¼
ubuntu:~$ sudo make

Tēla veidoÅ”ana vMX prasÄ«s apmēram 10-20 minÅ«tes. Laiks doties iedzert kafiju!

Kāpēc tik ilgi, jūs jautājat?

TulkoŔana atbildi autors uz Ŕo jautājumu:

"Tas ir tāpēc, ka pirmo reizi startējot VCP (vadÄ«bas plakne), tas nolasa konfigurācijas failu, kas nosaka, vai tas darbosies kā VRR VCP vMX. IepriekÅ” Ŕī palaiÅ”ana tika veikta Docker startÄ“Å”anas laikā, taču tas nozÄ«mēja, ka VCP vienmēr tika restartēts vienu reizi, pirms kļuva pieejams virtuālais marÅ”rutētājs, kā rezultātā bija ilgs sāknÄ“Å”anas laiks (apmēram 5 minÅ«tes). Tagad pirmā VCP palaiÅ”ana tiek veikta Docker attēla izveides laikā, un tā kā Docker bÅ«vējumu nevar palaist ar - -privileģēta opcija, tas nozÄ«mē, ka qemu darbojas bez KVM aparatÅ«ras paātrinājuma, un lÄ«dz ar to izveidoÅ”ana aizņem ļoti ilgu laiku.Å Ä« procesa laikā tiek izvadÄ«ts daudz žurnālu, lai vismaz jÅ«s varētu redzēt, kas notiek. Manuprāt, ir ilga bÅ«vÄ“Å”ana. nav tik biedējoÅ”i, jo mēs veidojam attēlu vienreiz, bet mēs palaižam daudzus.

Pēc tam, kad bÅ«sit redzējis mÅ«su marÅ”rutētāja attēlu dokers:

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

Palaidiet vr-vmx konteineru

Mēs sākam ar komandu:

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

Tālāk mēs varam redzēt informāciju par aktīvajiem konteineriem:

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

Savienojuma izveide ar marÅ”rutētāju

MarÅ”rutētāja tÄ«kla interfeisa IP adresi var iegÅ«t ar Ŕādu komandu:

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

Noklusējums, Vrnetlab izveido lietotāju marÅ”rutētājā vrnetlab/VR-netlab9.
Savienojuma izveide ar 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

Tas pabeidz marÅ”rutētāja iestatÄ«Å”anu.

InstalÄ“Å”anas ieteikumus dažādu pārdevēju marÅ”rutētājiem var atrast vietnē github projekts attiecÄ«gajos direktorijos.

5. daļa: Pastnieks ā€” savienojiet marÅ”rutētāju ar OpenDaylight

Pastnieka uzstādīŔana

Lai instalētu, vienkārÅ”i lejupielādējiet lietojumprogrammu tātad.

MarÅ”rutētāja pievienoÅ”ana ODL

Izveidosim izlikt pieprasījums:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

  1. Vaicājuma virkne:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Pieprasījuma pamatteksts (cilne Pamatteksts):
    <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. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin. Tas ir nepiecieÅ”ams, lai piekļūtu ODL:
    Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab
  4. Cilnē Galvenes ir jāpievieno divas galvenes:
    • Pieņemt pieteikumu/xml
    • Satura tipa lietojumprogramma/xml

Mūsu pieprasījums ir izteikts. Mēs sūtām. Ja viss bija pareizi konfigurēts, mums jāatgriež statuss "201 Izveidots":

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Ko dara Ŕis pieprasījums?

Mēs izveidojam mezglu iekÅ”pusē ODL ar reālā marÅ”rutētāja parametriem, kuram vēlamies piekļūt.

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

Tās ir iekŔējās nosaukumu telpas XML (XML nosaukumvieta) priekÅ” ODL saskaņā ar kuru tas izveido mezglu.

Turklāt attiecÄ«gi marÅ”rutētāja nosaukums ir mezgla id, marÅ”rutētāja adrese - saimnieks un tā tālāk.

Interesantākā rinda ir pēdējā. Shema-cache-directory izveido direktoriju, kurā tiek lejupielādēti visi faili YANG shēma pievienots marÅ”rutētājs. JÅ«s varat tos atrast $ODL_ROOT/cache/jun01_cache.

Pārbauda marÅ”rutētāja savienojumu

Izveidosim GET pieprasījums:

  1. Vaicājuma virkne:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.

Mēs sūtām. Jāsaņem statuss "200 OK" un visu ierīces atbalstīto ierīču saraksts YANG shēma:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Komentēt: Lai redzētu pēdējo, manā gadÄ«jumā bija jāgaida apmēram 10 minÅ«tes pēc izpildes izliktlÄ«dz visiem YANG shēma izkraut tālāk ODL. LÄ«dz Å”im brÄ«dim, veicot Å”o GET vaicājums parādÄ«s sekojoÅ”o:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Dzēsiet marÅ”rutētāju

Izveidosim DELETE pieprasījums:

  1. Vaicājuma virkne:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.

6. daļa: mainiet marÅ”rutētāja konfigurāciju

Konfigurācijas iegūŔana

Izveidosim GET pieprasījums:

  1. Vaicājuma virkne:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.

Mēs sÅ«tām. Jāsaņem statuss "200 OK" un marÅ”rutētāja konfigurācija:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Izveidojiet konfigurāciju

Piemēram, izveidosim Ŕādu konfigurāciju un pārveidosim to:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Izveidosim POST pieprasījums:

  1. Vaicājuma virkne:
    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. Pieprasījuma pamatteksts (cilne Pamatteksts):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.
  4. Cilnē Galvenes ir jāpievieno divas galvenes:
    • Pieņemt pieteikumu/xml
    • Satura tipa lietojumprogramma/xml

Pēc nosÅ«tÄ«Å”anas viņiem jāsaņem statuss "204 Nav satura"

Lai pārbaudÄ«tu, vai konfigurācija ir mainÄ«jusies, varat izmantot iepriekŔējo vaicājumu. Bet, piemēram, mēs izveidosim citu, kurā tiks parādÄ«ta informācija tikai par marÅ”rutētājā konfigurētajiem protokoliem.

Izveidosim GET pieprasījums:

  1. Vaicājuma virkne:
    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. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.

Pēc pieprasÄ«juma izpildes mēs redzēsim sekojoÅ”o:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Mainiet konfigurāciju

MainÄ«sim informāciju par BGP protokolu. Pēc mÅ«su darbÄ«bām tas izskatÄ«sies Ŕādi:

protocols {
    bgp {
        disable;
    }
}

Izveidosim izlikt pieprasījums:

  1. Vaicājuma virkne:
    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. Pieprasījuma pamatteksts (cilne Pamatteksts):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.
  4. Cilnē Galvenes ir jāpievieno divas galvenes:
    • Pieņemt pieteikumu/xml
    • Satura tipa lietojumprogramma/xml

Izmantojot iepriekŔējo GET pieprasÄ«jumu, mēs redzam izmaiņas:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Dzēst konfigurāciju

Izveidosim DELETE pieprasījums:

  1. Vaicājuma virkne:
    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. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.

Kad sauc GET pieprasÄ«jumu ar informāciju par protokoliem, mēs redzēsim sekojoÅ”o:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Papildinājums:

Lai mainītu konfigurāciju, nav nepiecieŔams nosūtīt pieprasījuma pamattekstu formātā XML. To var izdarīt arī formātā JSON.

Lai to izdarītu, piemēram, vaicājumā izlikt lai mainītu konfigurāciju, aizstājiet pieprasījuma pamattekstu ar:

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

Neaizmirstiet mainīt galvenes cilnē Galvenes uz:

  • Pieņemiet lietojumprogrammu/json
  • Satura tipa lietojumprogramma/json

Pēc nosÅ«tÄ«Å”anas mēs iegÅ«sim Ŕādu rezultātu (Mēs skatāmies atbildi, izmantojot GET pieprasÄ«jums):

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

7. daļa: Cisco xRV9000 pievienoŔana

Kas mēs vispār par Kadiķi, jā Kadiķis? Parunāsim par Cisco!
Atradu xRV9000 versiju 7.0.2 (zvērs kuram vajag 8Gb RAM un 4 kodolus. Tā nav brīvi pieejama, tāpēc sazinieties Cisco) - palaist to.

Konteinera palaiŔana

Docker konteinera izveides process praktiski neatŔķiras no Juniper. LÄ«dzÄ«gi mēs nolaižam .qcow2 failu ar marÅ”rutētāju direktorijā, kas atbilst tā nosaukumam (Å”ajā gadÄ«jumā xrv9k) un izpildām komandu make docker-image.

Pēc dažām minūtēm mēs redzam, ka attēls ir izveidots:

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

Mēs sākam konteineru:

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

Pēc kāda laika mēs skatāmies, ka konteiners ir sācies:

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

Izveidojiet savienojumu, izmantojot 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

MarÅ”rutētāja pievienoÅ”ana OpenDaylight

PievienoŔana notiek pilnīgi līdzīgā veidā ar vMX. Mums tikai jāmaina nosaukumi.
izlikt pieprasījums:
Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Zvaniet pēc kāda laika GET vaicājums, lai pārbaudītu, vai viss ir savienots:
Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Mainiet konfigurāciju

Iestatīsim Ŕādu konfigurāciju:

!
router ospf LAB
 mpls ldp auto-config
!

Izveidosim POST pieprasījums:

  1. Vaicājuma virkne:
    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. Pieprasījuma pamatteksts (cilne Pamatteksts):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.
  4. Cilnē Galvenes ir jāpievieno divas galvenes:
    • Pieņemiet lietojumprogrammu/json
    • Satura tipa lietojumprogramma/json

Pēc tā izpildes tiem jāsaņem statuss "204 Nav satura".

Pārbaudīsim, kas mums ir.
Lai to izdarītu, mēs izveidosim GET pieprasījums:

  1. Vaicājuma virkne:
    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. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.

Pēc izpildes jums vajadzētu redzēt sekojoÅ”o:

Tīkla pakalpojumu automatizācija vai virtuālās laboratorijas izveide, izmantojot OpenDaylight, Postman un Vrnetlab

Lai noņemtu konfigurāciju, izmantojiet DELETE:

  1. Vaicājuma virkne:
    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. Cilnē Autorizācija ir jāiestata parametrs Basic Auth un pieteikÅ”anās/parole: admin/admin.

Secinājums

Kopumā, kā jÅ«s, iespējams, pamanÄ«jāt, procedÅ«ras Cisco un Juniper savienoÅ”anai ar OpenDaylight neatŔķiras - tas paver diezgan plaÅ”as iespējas radoÅ”umam. Sākot no visu tÄ«kla komponentu konfigurācijas pārvaldÄ«bas un beidzot ar savu tÄ«kla politiku izveidi.
Å ajā apmācÄ«bā esmu sniedzis vienkārŔākos piemērus, kā jÅ«s varat mijiedarboties ar tÄ«kla aprÄ«kojumu, izmantojot OpenDaylight. Bez Å”aubām, vaicājumus no iepriekÅ” minētajiem piemēriem var padarÄ«t daudz sarežģītākus un iestatÄ«t visus pakalpojumus ar vienu peles klikŔķi - visu ierobežo tikai jÅ«su iztēle *

Lai varētu turpināt ...

PS

Ja pēkŔņi to visu jau zināt vai, gluži pretēji, esat izgājis cauri un iegrimis ODL dvēselē, tad iesaku meklēt lietojumprogrammu izstrādi uz ODL kontrollera. JÅ«s varat sākt tātad.

Veiksmīgus eksperimentus!

Atsauces

  1. Vrnetlab: Emulējiet tīklus, izmantojot KVM un Docker / Braiens Linkleters
  2. OpenDaylight pavārgrāmata / Mathieu Lemay, Alexis de Talhouet, Et al
  3. TÄ«kla programmējamÄ«ba ar YANG / BenoĆ®t Claise, Loe Clarke, Jan Lindblad
  4. XML apguve, otrais izdevums / Eriks T. Rejs
  5. Efektīvi izstrādātāji / Dženifera Deivisa, Rains Danielss

Avots: www.habr.com

Pievieno komentāru