Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Kulesi sihloko, ngizokukhombisa indlela yokusetha I-OpenDaylight ukusebenza ngemishini yenethiwekhi, futhi ubonise nendlela yokusebenzisa Postman futhi elula RESTCONF izicelo, le mishini ingalawulwa. Ngeke sisebenze nge-hardware, kodwa esikhundleni salokho sizofaka amalabhorethri amancane asebenzisa umzila owodwa osetshenziswayo I-Vrnetlab phezu Ubuntu 20.04 LTS.

Ngizobonisa izilungiselelo ezinemininingwane kuqala ngisebenzisa isibonelo somzila Ijunipha vMX 20.1R1.11, bese siyiqhathanisa nesilungiselelo Cisco xRV9000 7.0.2.

Okuqukethwe

  • Ulwazi oludingekayo
  • Ingxenye ye-1: xoxani kafushane I-OpenDaylight (ngemuva kwalokhu I-ODL), Postman и I-Vrnetlab futhi kungani sizidinga
  • Ingxenye ye-2: incazelo yelabhorethri ebonakalayo
  • Ingxenye ye-3: ngezifiso I-OpenDaylight
  • Ingxenye ye-4: ngezifiso I-Vrnetlab
  • Ingxenye ye-5: ngokusebenzisa Postman xhuma irutha ebonakalayo (Ijunipha vMX) Ku I-ODL
  • Ingxenye ye-6: thola futhi uguqule ukucushwa kwe-router usebenzisa Postman и I-ODL
  • Ingxenye ye-7: engeza i-Cisco xRV9000
  • isiphetho
  • PS
  • I-Bibliography

Ulwazi oludingekayo

Ukuze i-athikili ingaphenduki ibe ishidi, ngiyekile imininingwane ethile yobuchwepheshe (enezixhumanisi zezincwadi lapho ungafunda ngakho).

Kulokhu, ngikunikeza izihloko okungaba kuhle (kodwa cishe akudingekile) ukuze wazi ngaphambi kokuzifunda:

Ingxenye 1: ithiyori ethile

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

  • Inkundla ye-SDN evulekile yokuphatha nokwenza ngokuzenzakalela zonke izinhlobo zamanethiwekhi, ezisekelwa yi Linux Foundation
  • Java ngaphakathi
  • Ngokusekelwe kuModel-Driven Service Abstraction Level (MD-SAL)
  • Isebenzisa amamodeli e-YANG ukwenza ngokuzenzakalela ama-API e-RESTCONF kumadivayisi enethiwekhi

Imojula eyinhloko yokuphathwa kwenethiwekhi. Kungaso lapho sizoxhumana namadivayisi axhunyiwe. Iphethwe nge-API yayo.

Ungafunda kabanzi nge-OpenDaylight lapha.

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

  • Ithuluzi lokuhlola i-API
  • Simple futhi kulula ukuyisebenzisa interface

Esimeni sethu, sinentshisekelo kuyo njengendlela yokuthumela izicelo ze-REST ku-OpenDaylight API. Yebo, ungathumela izicelo mathupha, kodwa ku-Postman yonke into ibukeka icace kakhulu futhi ivumelana nezinjongo zethu ngokuphelele.

Kulabo abafuna ukumba: kubhalwe kuyo izinto eziningi zokuqeqesha (isibonelo).

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

  • Ithuluzi lokuphakela amarutha abonakalayo ku-Docker
  • Isekela: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, njll.
  • Open Source

Ithuluzi elithakazelisa kakhulu kodwa elaziwa kancane. Esimweni sethu, sizoyisebenzisa ukusebenzisa iJuniper vMX neCisco xRV9000 ku-Ubuntu 20.04 LTS evamile.

Ungafunda kabanzi ngakho ku ikhasi lephrojekthi.

Ingxenye 2: Ilebhu

Kulesi sifundo, sizosetha isistimu elandelayo:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Kanjani lo msebenzi

  • Ijunipha vMX avuke angene Docker isitsha (ngendlela I-Vrnetlab) futhi isebenza njengerutha ebonakalayo evamile.
  • I-ODL ixhunywe kumzila futhi ikuvumela ukuthi uyilawule.
  • Postman yethulwe emshinini ohlukile futhi ngawo sithumela imiyalo I-ODL: ukuxhuma / ukususa i-router, ukushintsha ukucushwa, njll.

Amazwana kudivayisi yesistimu

Ijunipha vMX и I-ODL zidinga izinsiza eziningi ekusebenzeni kwazo okuzinzile. Eyodwa kuphela vMX icela u-6 Gb we-RAM nama-cores angu-4. Ngakho-ke, kwanqunywa ukuhambisa zonke "isisindo esisindayo" emshinini ohlukile (I-Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). I-router, yiqiniso, "ayindizi" kuyo, kodwa ukusebenza kwanele ekuhloleni okuncane.

Ingxenye 3: Setha i-OpenDaylight

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Inguqulo yamanje ye-ODL ngesikhathi salokhu kubhala i-Magnesium SR1

1) Faka I-Java OpenJDK 11 (ukufaka imininingwane eyengeziwe lapha)

ubuntu:~$ sudo apt install default-jdk

2) Thola futhi ulande ukwakhiwa kwakamuva I-ODL kusuka lapha
3) Vula unzip ingobo yomlando elandiwe
4) Iya kuhlu lwemibhalo oluwumphumela
5) Yethula ./bin/karaf

Kulesi sinyathelo I-ODL kufanele siqale futhi sizozithola siku-console (Port 8181 isetshenziselwa ukufinyelela ngaphandle, esizoyisebenzisa kamuva).

Okulandelayo, faka Izici ze-ODLyakhelwe ukusebenza ngamaphrothokholi I-NETCONF и RESTCONF. Ukwenza lokhu ku-console I-ODL senza:

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

Lokhu ukusetha okulula. I-ODL kuqediwe. (Ukuze uthole imininingwane eyengeziwe, bheka lapha).

Ingxenye 4: Ukusetha i-Vrnetlab

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Ukulungiselela uhlelo

Ngaphambi kokufakwa I-Vrnetlab udinga ukufaka amaphakheji adingekayo ekusebenzeni kwayo. Njenge Docker, Git, 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

Ifaka i-Vrnetlab

Ukufakwa I-Vrnetlab hlanganisa indawo yokugcina ehambisanayo kusuka ku-github:

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

Iya kusiqondisi i-vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Lapha ungabona zonke izikripthi ezidingekayo ukuze usebenze. Sicela uqaphele ukuthi uhla lwemibhalo oluhambisanayo lwenzelwe uhlobo ngalunye lwerutha:

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

Dala isithombe somzila

Irutha ngayinye esekelwayo I-Vrnetlab, inenqubo yayo yokusetha eyingqayizivele. Nini Ijunipha vMX sidinga nje ukulayisha ingobo yomlando ye-.tgz ngerutha (ungayilanda kuyo isayithi elisemthethweni) kumkhombandlela we-vmx bese ugijima umyalo make:

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

Ukwakha isithombe vMX kuzothatha cishe imizuzu eyi-10-20. Isikhathi sokuyolanda ikhofi!

Kungani isikhathi eside kangaka, ubuza?

Ukuhumusha impendulo umbhali walo mbuzo:

"Lokhu kungenxa yokuthi okokuqala ngqa i-VCP (Control Plane) ifunda ifayela lokucushwa elinquma ukuthi izosebenza njenge-VRR VCP ku-vMX. Ngaphambilini, lokhu kwethulwa kwakwenziwa ngesikhathi i-Docker iqala, kodwa lokhu kwakusho ukuthi i-VCP. yayihlala iqalwa kabusha kanye ngaphambi kokuba i-router ebonakalayo itholakale, okuholela esikhathini eside sokuqalisa (cishe imizuzu emi-5) Manje ukugijima kokuqala kwe-VCP kwenziwa ngesikhathi sokwakhiwa kwesithombe se-Docker, futhi njengoba ukwakhiwa kwe-Docker akukwazi ukuqhutshwa nge- - -inketho enelungelo, lokhu kusho ukuthi i-qemu isebenza ngaphandle kokusheshiswa kwehadiwe ye-KVM futhi ngaleyo ndlela ukwakha kuthatha isikhathi eside kakhulu.Phakathi nale nqubo, amalogi amaningi ayakhishwa, ngakho-ke okungenani ungabona ukuthi kwenzekani.Ngicabanga ukwakha okude akwethusi kangako ngoba sakha isithombe kanye, kodwa sethula eziningi."

Ngemuva kokuthi ungabona isithombe serutha yethu ku 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

Yethula isiqukathi se-vr-vmx

Siqala ngomyalo:

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

Okulandelayo, singabona ulwazi mayelana neziqukathi ezisebenzayo:

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

Ixhumeka kumzila

Ikheli le-IP le-interface yenethiwekhi ye-router ingatholakala ngomyalo olandelayo:

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

Ngokuzenzakalelayo I-Vrnetlab idala umsebenzisi kumzila vrnetlab/VR-netlab9.
Ukuxhumana ne 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

Lokhu kuqeda ukusethwa kwerutha.

Izincomo zokufakwa kwama-routers abathengisi abahlukahlukene zingatholakala ku- github iphrojekthi kunkhombandlela efanele.

Ingxenye 5: I-Postman - xhuma irutha ku-OpenDaylight

Ukufakwa kwe-postman

Ukufaka, vele ulande uhlelo lokusebenza kusuka lapha.

Ixhuma irutha ku-ODL

Asidale PUT isicelo:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

  1. Iyunithi yezinhlamvu yombuzo:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Cela umzimba (Ithebhu yomzimba):
    <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. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin. Lokhu kuyadingeka ukuze ufinyelele i-ODL:
    Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab
  4. Kuthebhu Yezinhloko, udinga ukwengeza izihloko ezimbili:
    • Yamukela uhlelo lokusebenza/xml
    • Uhlelo lokusebenza lohlobo lokuqukethwe/xml

Isicelo sethu senziwe. Siyathumela. Uma yonke into ilungiswe ngendlela efanele, kufanele sibuyisele isimo esithi "201 Created":

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Senzani lesi sicelo?

Sakha i-node ngaphakathi I-ODL namapharamitha womzila wangempela esifuna ukufinyelela kuwo.

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

Lezi izikhala zamagama zangaphakathi XML (Isikhala segama se-XML) ye- I-ODL eyakha ngayo i-node.

Ngaphezu kwalokho, ngokulandelana, igama le-router lithi i-node-id, ikheli lerutha - Bamba njalonjalo.

Umugqa othakazelisa kakhulu ngowokugcina. Uhla lwemibhalo ye-schema-cache idala uhla lwemibhalo lapho wonke amafayela alandwa khona I-YANG Schema irutha exhunyiwe. Ungawathola ngaphakathi $ODL_ROOT/cache/jun01_cache.

Ihlola uxhumo lomzila

Asidale Thola isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.

Siyathumela. Kufanele ithole isimo sokuthi "200 OK" kanye nohlu lwakho konke okusekelwa idivayisi I-YANG Schema:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Amazwana: Ukubona okwakamuva, esimweni sami kwakudingeka ngilinde cishe imizuzu eyi-10 ngemva kokubulawa PUTkuze kube konke I-YANG schema khipha kuvuliwe I-ODL. Kuze kube manje, lapho wenza lokhu Thola umbuzo uzobonisa okulandelayo:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Susa irutha

Asidale SUSA isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.

Ingxenye 6: Shintsha ukucushwa kwerutha

Ithola ukucushwa

Asidale Thola isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.

Siyathumela. Kufanele ithole isimo "200 OK" kanye nokucushwa kwerutha:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Dala ukumisa

Njengesibonelo, masidale ukucushwa okulandelayo futhi sikulungise:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Asidale I-POST isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    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. Cela umzimba (Ithebhu yomzimba):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.
  4. Kuthebhu Yezinhloko, udinga ukwengeza izihloko ezimbili:
    • Yamukela uhlelo lokusebenza/xml
    • Uhlelo lokusebenza lohlobo lokuqukethwe/xml

Ngemva kokuthumela, kufanele bathole isimo esithi "204 No Content"

Ukuhlola ukuthi ukucushwa kushintshile, ungasebenzisa umbuzo wangaphambilini. Kodwa ngokwesibonelo, sizodala enye ezobonisa ulwazi kuphela mayelana namaphrothokholi amisiwe kumzila.

Asidale Thola isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    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. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.

Ngemva kokwenza isicelo, sizobona okulandelayo:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Shintsha ukumisa

Ake siguqule ulwazi mayelana nephrothokholi ye-BGP. Ngemuva kwezenzo zethu, izobukeka kanje:

protocols {
    bgp {
        disable;
    }
}

Asidale PUT isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    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. Cela umzimba (Ithebhu yomzimba):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.
  4. Kuthebhu Yezinhloko, udinga ukwengeza izihloko ezimbili:
    • Yamukela uhlelo lokusebenza/xml
    • Uhlelo lokusebenza lohlobo lokuqukethwe/xml

Ukusebenzisa okwedlule Thola isicelo, sibona izinguquko:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Susa ukumisa

Asidale SUSA isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    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. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.

Uma ufona Thola isicelo ngolwazi mayelana nemigomo, sizobona okulandelayo:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Ukwengeza:

Ukuze ushintshe ukucushwa, akudingekile ukuthumela indikimba yesicelo ngefomethi XML. Lokhu kungenziwa futhi ngefomethi I-JSON.

Ukwenza lokhu, isibonelo, embuzweni PUT ukushintsha ukumisa, buyisela indikimba yesicelo ngokuthi:

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

Ungakhohlwa ukushintsha izihloko kuthebhu Yezihlokwana zibe:

  • Yamukela uhlelo lokusebenza/json
  • Uhlelo lokusebenza lohlobo lokuqukethwe/json

Ngemva kokuthumela, sizothola umphumela olandelayo (Sibheka impendulo sisebenzisa Thola isicelo):

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Ingxenye 7: Ukwengeza i-Cisco xRV9000

Siyini sonke ngeJuniper, yebo iJuniper? Ake sikhulume ngoCisco!
Ngithole inguqulo ye-xRV9000 7.0.2 (isilo esidinga i-RAM engu-8Gb nama-cores angu-4. Ayitholakali mahhala, ngakho xhumana Cisco) - masiyiqhube.

Ukuqhuba isitsha

Inqubo yokudala isitsha se-Docker ayifani neze neJuniper. Ngokufanayo, silahla ifayela elithi .qcow2 elinomzila kunkomba ehambisana negama layo (kulokhu, xrv9k) bese sikhipha umyalo. make docker-image.

Ngemuva kwemizuzu embalwa, sibona ukuthi isithombe senziwe:

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

Siqala isitsha:

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

Ngemva kwesikhashana, sibheka ukuthi isitsha sesiqalile:

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

Xhuma nge-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

Ixhuma irutha ku-OpenDaylight

Ukwengeza kwenzeka ngendlela efanayo ngokuphelele nge-vMX. Sidinga nje ukushintsha amagama.
PUT isicelo:
Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Afone emva kwesikhashana Thola buza ukuhlola ukuthi yonke into ixhunyiwe:
Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Shintsha ukumisa

Masimise ukucushwa okulandelayo:

!
router ospf LAB
 mpls ldp auto-config
!

Asidale I-POST isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    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. Cela umzimba (Ithebhu yomzimba):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.
  4. Kuthebhu Yezinhloko, udinga ukwengeza izihloko ezimbili:
    • Yamukela uhlelo lokusebenza/json
    • Uhlelo lokusebenza lohlobo lokuqukethwe/json

Ngemva kokukhishwa kwayo, kufanele bathole isimo esithi "204 No Content".

Ake sihlole esinakho.
Ukuze senze lokhu, sizodala Thola isicelo:

  1. Iyunithi yezinhlamvu yombuzo:
    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. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.

Ngemuva kokwenza, kufanele ubone okulandelayo:

Ukuzenzakalela kwezinsizakalo zenethiwekhi noma indlela yokwakha ilabhorethri ebonakalayo usebenzisa i-OpenDaylight, i-Postman ne-Vrnetlab

Ukususa ukusetshenziswa kokucushwa SUSA:

  1. Iyunithi yezinhlamvu yombuzo:
    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. Kuthebhu yokugunyazwa, kufanele usethe ipharamitha Basic Auth kanye nokungena/iphasiwedi: admin/admin.

isiphetho

Sekukonke, njengoba ungase uqaphele, izinqubo zokuxhuma i-Cisco neJuniper ku-OpenDaylight azihlukani - lokhu kuvula ububanzi obubanzi bokusungula. Kusukela ekuphathweni kokucushwa kwazo zonke izingxenye zenethiwekhi futhi kugcine ngokudala izinqubomgomo zakho zenethiwekhi.
Kulesi sifundo, nginikeze izibonelo ezilula zokuthi ungaxhumana kanjani nezisetshenziswa zenethiwekhi usebenzisa i-OpenDaylight. Ngaphandle kokungabaza, imibuzo evela ezibonelweni ezingenhla ingenziwa ibe yinkimbinkimbi kakhulu futhi imise izinsiza zonke ngokuchofoza okukodwa kwegundane - yonke into ikhawulelwe ngomcabango wakho kuphela *

Kuzoqhubeka ...

PS

Uma kungazelelwe usuvele wazi konke lokhu noma, ngokuphambene nalokho, usudlule futhi wacwila emphefumulweni we-ODL, ngincoma ukuthi ubheke ekuthuthukiseni izinhlelo zokusebenza kusilawuli se-ODL. Ungaqala kusuka lapha.

Ukuhlola okuyimpumelelo!

Izinkomba

  1. I-Vrnetlab: Lingisa amanethiwekhi usebenzisa i-KVM ne-Docker / UBrian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, Et al
  3. Ukuhleleka kwenethiwekhi nge-YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Ukufunda i-XML, Uhlelo Lwesibili / u-Erik T. Ray
  5. I-DevOps Ephumelelayo / uJennifer Davis, uRyn Daniels

Source: www.habr.com

Engeza amazwana