Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Hauv tsab xov xwm no, kuv yuav qhia koj yuav ua li cas teeb tsa OpenDaylight ua hauj lwm nrog cov khoom siv network, thiab kuj qhia txog kev siv Tus xaib thiab yooj yim RESTCONF thov, cov cuab yeej no tuaj yeem tswj tau. Peb yuav tsis ua hauj lwm nrog kho vajtse, tab sis hloov peb yuav xa me me virtual chaw soj nstuam nrog ib tug router siv Vrnetlab dhau Ubuntu 20.04 LTS.

Kuv yuav qhia cov ncauj lus kom ntxaws ua ntej siv cov piv txwv ntawm lub router Juniper vMX 20.1R1.11, thiab tom qab ntawd peb muab piv nrog qhov teeb tsa Cisco xRV9000 7.0.2.

Txheem

  • Yuav tsum paub
  • Ib feem ntawm 1: tham luv luv OpenDaylight (tom qab no ODL), Tus xaib и Vrnetlab thiab vim li cas peb thiaj xav tau lawv
  • Ib feem ntawm 2: piav qhia ntawm lub chaw sim virtual
  • Ib feem ntawm 3: customize OpenDaylight
  • Ib feem ntawm 4: customize Vrnetlab
  • Ib feem ntawm 5: by siv Tus xaib txuas virtual router (Juniper vMX) Ua ODL
  • Ib feem ntawm 6: tau thiab hloov lub router configuration siv Tus xaib и ODL
  • Ib feem ntawm 7: ntxiv Cisco xRV9000
  • xaus
  • PS
  • Cov ntawv sau cia

Yuav tsum paub

Txhawm rau kom tsab xov xwm tsis hloov mus rau hauv ib daim ntawv, kuv tshem tawm qee qhov kev qhia (nrog rau cov ntawv txuas mus rau cov ntaub ntawv uas koj tuaj yeem nyeem txog lawv).

Hauv qhov kev sib txuas no, kuv muab cov ntsiab lus rau koj tias nws yuav zoo (tab sis yuav luag tsis tsim nyog) kom paub ua ntej nyeem:

Ntu 1: qee qhov kev xav

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

  • Ib qho qhib SDN platform rau kev tswj thiab automating txhua yam kev tes hauj lwm, txhawb los ntawm Linux Foundation
  • Java sab hauv
  • Raws li Model-Driven Service Abstraction Level (MD-SAL)
  • Siv YANG qauv kom tau txais kev tsim RESTCONF APIs rau cov khoom siv hauv network

Lub ntsiab module rau kev tswj network. Nws yog los ntawm nws uas peb yuav sib txuas lus nrog cov khoom siv sib txuas. Tswj los ntawm nws tus kheej API.

Koj tuaj yeem nyeem ntxiv txog OpenDaylight no.

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

  • API test tool
  • Yooj yim thiab yooj yim siv interface

Hauv peb cov ntaub ntawv, peb txaus siab rau nws los ua ib txoj hauv kev xa REST thov rau OpenDaylight API. Koj tuaj yeem, tau kawg, xa cov ntawv thov manually, tab sis hauv Postman txhua yam zoo li meej heev thiab haum rau peb lub hom phiaj zoo kawg nkaus.

Rau cov neeg uas xav khawb: ntau cov ntaub ntawv kawm tau sau rau ntawm nws (piv txwv).

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

  • Cov cuab yeej siv rau kev xa tawm virtual routers hauv Docker
  • Txhawb nqa: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, thiab lwm yam.
  • qhib Tau qhov twg los

Ib tug heev nthuav tab sis tsis paub instrument. Hauv peb cov ntaub ntawv, peb yuav siv nws los khiav Juniper vMX thiab Cisco xRV9000 ntawm ib txwm Ubuntu 20.04 LTS.

Koj tuaj yeem nyeem ntxiv txog nws ntawm nplooj ntawv qhov project.

Part 2: Lab

Hauv qhov kev qhia no, peb yuav teeb tsa cov kab ke hauv qab no:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Yuav ua li cas li no ua hauj lwm

  • Juniper vMX nce hauv docker thawv (los ntawm txhais tau tias Vrnetlab) thiab ua haujlwm raws li qhov feem ntau virtual router.
  • ODL txuas nrog lub router thiab tso cai rau koj los tswj nws.
  • Tus xaib launched ntawm ib lub tshuab cais thiab los ntawm nws peb xa cov lus txib ODL: txhawm rau txuas / tshem tawm lub router, hloov qhov kev teeb tsa, thiab lwm yam.

Cov lus piav qhia ntawm lub cuab yeej ntawm qhov system

Juniper vMX и ODL xav tau ntau cov peev txheej rau lawv txoj haujlwm ruaj khov. Ib leeg xwb vMX nug txog 6 Gb ntawm RAM thiab 4 cores. Yog li ntawd, nws tau txiav txim siab txav tag nrho cov "heavyweights" mus rau ib lub tshuab cais (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Lub router, ntawm chav kawm, tsis "ya" rau nws, tab sis qhov kev ua tau zoo txaus rau kev sim me me.

Ntu 3: Teeb OpenDaylight

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Tam sim no version ntawm ODL thaum lub sijhawm sau ntawv no yog Magnesium SR1

1) Nruab Java Qhib JDK 11 (rau kev txhim kho kom ntxaws ntxiv no)

ubuntu:~$ sudo apt install default-jdk

2) Nrhiav thiab rub tawm qhov tsim tshiab ODL ntawm no
3) Unzip lub downloaded archive
4) Mus rau qhov tshwm sim directory
5) Tua tawm ./bin/karaf

Hauv kauj ruam no ODL yuav tsum pib thiab peb yuav pom peb tus kheej hauv lub console (Chaw nres nkoj 8181 yog siv rau kev nkag los ntawm sab nraud, uas peb yuav siv tom qab).

Tom ntej no, nruab ODL ntatsim los ua haujlwm nrog cov txheej txheem NETCONF и RESTCONF. Txhawm rau ua qhov no hauv console ODL peb execute:

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

Qhov no yog qhov kev teeb tsa yooj yim tshaj plaws. ODL ua tiav. (Yog xav paub ntxiv, saib no).

Part 4: Teeb tsa Vrnetlab

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Kev npaj qhov system

Ua ntej kev teeb tsa Vrnetlab koj yuav tsum tau nruab cov pob khoom xav tau rau nws txoj haujlwm. Xws li 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

Txhim kho Vrnetlab

Rau kev teeb tsa Vrnetlab clone cov ntaub ntawv sib raug zoo los ntawm github:

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

Mus rau phau ntawv qhia vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Ntawm no koj tuaj yeem pom tag nrho cov ntawv sau uas xav tau los khiav. Thov nco ntsoov tias cov ntaub ntawv sib txuas tau tsim rau txhua hom router:

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

Tsim ib daim duab ntawm lub router

Txhua router uas tau txais kev txhawb nqa Vrnetlab, muaj nws tus kheej cov txheej txheem teeb. Thaum twg Juniper vMX Peb tsuas yog yuav tsum rub tawm .tgz archive nrog lub router (koj tuaj yeem rub tawm los ntawm official site) mus rau vmx directory thiab khiav cov lus txib make:

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

Tsim ib daim duab vMX yuav siv li 10-20 feeb. Nws yog lub sij hawm mus noj kas fes!

Vim li cas ntev, koj nug?

Hloov Mus teb tus sau rau lo lus nug no:

"Qhov no yog vim thawj zaug VCP (Control Plane) pib, nws nyeem cov ntaub ntawv teeb tsa uas txiav txim siab seb nws yuav khiav li VRR VCP hauv vMX. Yav dhau los, qhov kev tshaj tawm no tau ua tiav thaum Docker pib, tab sis qhov no txhais tau tias VCP. ib txwm rov pib dua ib zaug ua ntej lub router virtual muaj, ua rau lub sijhawm khau raj ntev (kwv yees 5 feeb) Tam sim no thawj zaug ntawm VCP tau ua tiav thaum lub sijhawm tsim cov duab Docker, thiab txij li Docker tsim tsis tuaj yeem khiav nrog - -privileged kev xaiv, qhov no txhais tau hais tias qemu ua hauj lwm yam tsis muaj KVM kho vajtse acceleration thiab yog li lub tsim yuav siv sij hawm ntev heev.Lub sij hawm tus txheej txheem no, ntau lub cav yog tso zis, yog li tsawg kawg koj yuav pom dab tsi tshwm sim.Kuv xav tias ib tug ntev tsim. tsis txaus ntshai vim tias peb tsim cov duab ib zaug, tab sis peb tso ntau yam. "

Tom qab koj tuaj yeem pom cov duab ntawm peb lub router hauv 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

Tua tawm vr-vmx thawv

Peb pib nrog cov lus txib:

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

Tom ntej no, peb tuaj yeem pom cov ntaub ntawv hais txog cov ntim khoom siv:

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

Txuas rau lub router

IP chaw nyob ntawm lub network interface ntawm router tuaj yeem tau txais nrog cov lus txib hauv qab no:

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

Raws li, Vrnetlab tsim ib tus neeg siv ntawm lub router vrnetlab/VR-netlab9.
Txuas nrog 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

Qhov no ua tiav lub teeb tsa router.

Cov lus pom zoo rau kev teeb tsa rau routers ntawm ntau tus neeg muag khoom tuaj yeem pom ntawm qhov project github nyob rau hauv cov directory.

Part 5: Postman - txuas lub router rau OpenDaylight

Postman installation

Txhawm rau nruab, tsuas yog rub tawm daim ntawv thov ntawm no.

Txuas lub router rau ODL

Wb tsim muab thov:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

  1. Cov kab lus nug:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Thov lub cev (Lub cev tab):
    <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. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin. Qhov no yuav tsum tau nkag mus rau ODL:
    Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab
  4. Ntawm Headers tab, koj yuav tsum ntxiv ob lub headers:
    • Txais daim ntawv thov / xml
    • Content-Type application/xml

Peb tau thov. Peb xa. Yog tias txhua yam raug teeb tsa kom raug, peb yuav tsum rov qab mus rau qhov xwm txheej "201 Tsim":

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Qhov kev thov no ua li cas?

Peb tsim node hauv ODL nrog rau qhov tsis muaj ntawm lub router tiag peb xav nkag mus.

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

Cov no yog cov npe sab hauv XML (XML npe) rau ODL raws li nws tsim node.

Ntxiv mus, feem, lub npe ntawm lub router yog node-id, chaw nyob router - party thiab yog li ntawd.

Cov kab uas ntxim nyiam tshaj plaws yog qhov kawg. Schema-cache-directory tsim ib phau ntawv uas tag nrho cov ntaub ntawv yog downloaded YANG Schema txuas router. Koj tuaj yeem pom lawv hauv $ODL_ROOT/cache/jun01_cache.

Tshawb xyuas qhov txuas ntawm lub router

Wb tsim TAU thov:

  1. Cov kab lus nug:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.

Peb xa. Yuav tsum tau txais cov xwm txheej ntawm "200 OK" thiab cov npe ntawm txhua qhov kev txhawb nqa los ntawm lub cuab yeej YANG Schema:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

saib: Txhawm rau pom qhov kawg, hauv kuv rooj plaub nws yuav tsum tau tos li 10 feeb tom qab kev tua muabmus txog rau tag nrho YANG schema unload rau ODL. Mus txog qhov no, thaum ua qhov no TAU query yuav pom cov hauv qab no:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Rho tawm lub router

Wb tsim RHO TAWM thov:

  1. Cov kab lus nug:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.

Part 6: Hloov lub router configuration

Tau txais lub configuration

Wb tsim TAU thov:

  1. Cov kab lus nug:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.

Peb xa. Yuav tsum tau txais cov xwm txheej "200 OK" thiab kev teeb tsa router:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Tsim ib tug configuration

Ua piv txwv, cia peb tsim cov kev teeb tsa hauv qab no thiab hloov kho nws:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Wb tsim NCEJ thov:

  1. Cov kab lus nug:
    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. Thov lub cev (Lub cev tab):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.
  4. Ntawm Headers tab, koj yuav tsum ntxiv ob lub headers:
    • Txais daim ntawv thov / xml
    • Content-Type application/xml

Tom qab xa, lawv yuav tsum tau txais cov xwm txheej "204 Tsis Muaj Cov Ntsiab Lus"

Txhawm rau txheeb xyuas tias qhov kev teeb tsa tau hloov pauv, koj tuaj yeem siv cov lus nug dhau los. Tab sis piv txwv li, peb yuav tsim lwm qhov uas yuav tso tawm cov ntaub ntawv tsuas yog hais txog cov txheej txheem teeb tsa ntawm lub router.

Wb tsim TAU thov:

  1. Cov kab lus nug:
    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. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.

Tom qab ua tiav qhov kev thov, peb yuav pom cov hauv qab no:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Hloov cov configuration

Cia peb hloov cov ntaub ntawv hais txog BGP raws tu qauv. Tom qab peb ua, nws yuav zoo li no:

protocols {
    bgp {
        disable;
    }
}

Wb tsim muab thov:

  1. Cov kab lus nug:
    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. Thov lub cev (Lub cev tab):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.
  4. Ntawm Headers tab, koj yuav tsum ntxiv ob lub headers:
    • Txais daim ntawv thov / xml
    • Content-Type application/xml

Kev siv yav dhau los TAU thov, peb pom cov kev hloov pauv:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Rho tawm lub configuration

Wb tsim RHO TAWM thov:

  1. Cov kab lus nug:
    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. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.

Thaum hu TAU thov nrog cov ntaub ntawv hais txog cov txheej txheem, peb yuav pom cov hauv qab no:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Ntxiv:

Txhawm rau hloov qhov kev teeb tsa, nws tsis tas yuav xa daim ntawv thov lub cev hauv hom ntawv XML. Qhov no kuj tuaj yeem ua tiav hauv hom JSON.

Ua li no, piv txwv li, hauv cov lus nug muab hloov lub configuration, hloov lub thov lub cev nrog:

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

Tsis txhob hnov ​​​​qab hloov cov headers ntawm Headers tab rau:

  • Txais daim ntawv thov / json
  • Content-Type application/json

Tom qab xa, peb yuav tau txais cov txiaj ntsig hauv qab no (Peb saib cov lus teb siv TAU thov):

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Ntu 7: Ntxiv Cisco xRV9000

Peb txhua tus hais txog Juniper, yog Juniper? Cia peb tham txog Cisco!
Kuv pom xRV9000 version 7.0.2 (ib tug tsiaj nyaum uas xav tau 8Gb RAM thiab 4 cores. Nws tsis muaj kev ywj pheej, yog li hu rau Cisco) - cia peb khiav nws.

Khiav ib lub thawv

Cov txheej txheem ntawm kev tsim lub thawv Docker yog xyaum tsis txawv ntawm Juniper. Ib yam li ntawd, peb tso cov ntaub ntawv .qcow2 nrog lub router rau hauv phau ntawv teev npe sib raug rau nws lub npe (qhov no, xrv9k) thiab ua tiav cov lus txib. make docker-image.

Tom qab ob peb feeb, peb pom tias daim duab tau tsim:

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

Peb pib lub thawv:

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

Tom qab ib pliag, peb saib tias lub thawv tau pib:

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

Txuas ntawm 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

Txuas lub router rau OpenDaylight

Ntxiv tshwm sim nyob rau hauv ib txoj kev zoo sib xws nrog vMX. Peb tsuas yog yuav tsum tau hloov cov npe.
muab thov:
Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Hu tom qab ib pliag TAU nug kom xyuas tias txhua yam txuas nrog:
Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Hloov cov configuration

Cia peb teeb tsa cov kev teeb tsa hauv qab no:

!
router ospf LAB
 mpls ldp auto-config
!

Wb tsim NCEJ thov:

  1. Cov kab lus nug:
    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. Thov lub cev (Lub cev tab):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.
  4. Ntawm Headers tab, koj yuav tsum ntxiv ob lub headers:
    • Txais daim ntawv thov / json
    • Content-Type application/json

Tom qab nws ua tiav, lawv yuav tsum tau txais cov xwm txheej "204 Tsis Muaj Cov Ntsiab Lus".

Cia peb kuaj seb peb tau txais dab tsi.
Ua li no, peb yuav tsim TAU thov:

  1. Cov kab lus nug:
    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. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.

Tom qab ua tiav, koj yuav tsum pom cov hauv qab no:

Automation ntawm cov kev pabcuam hauv network lossis yuav ua li cas los tsim lub chav kuaj virtual siv OpenDaylight, Postman thiab Vrnetlab

Txhawm rau tshem tawm qhov kev teeb tsa siv RHO TAWM:

  1. Cov kab lus nug:
    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. Ntawm Kev Tso Cai tab, koj yuav tsum teeb tsa qhov ntsuas Basic Auth thiab tus ID nkag mus / password: admin/admin.

xaus

Nyob rau hauv tag nrho, raws li tej zaum koj yuav tau pom, cov txheej txheem rau kev txuas Cisco thiab Juniper rau OpenDaylight tsis txawv - qhov no opens ib tug dav Scope rau creativity. Pib los ntawm configuration tswj ntawm tag nrho cov network Cheebtsam thiab xaus nrog cov creation ntawm koj tus kheej network txoj cai.
Hauv qhov kev qhia no, kuv tau muab cov piv txwv yooj yim ntawm qhov koj tuaj yeem cuam tshuam nrog cov cuab yeej siv network siv OpenDaylight. Yog tsis muaj qhov tsis ntseeg, cov lus nug los ntawm cov piv txwv saum toj no tuaj yeem ua ntau qhov nyuaj thiab teeb tsa tag nrho cov kev pabcuam nrog ib tus nas - txhua yam tsuas yog txwv los ntawm koj lub tswv yim *

Kom txuas ntxiv…

PS

Yog tias koj tam sim ntawd twb paub tag nrho cov no lossis, ntawm qhov tsis sib xws, tau dhau mus thiab poob rau hauv tus ntsuj plig ntawm ODL, ces kuv pom zoo kom saib mus rau kev tsim cov ntawv thov ntawm ODL maub los. Koj tuaj yeem pib ntawm no.

Kev sim ua tiav!

Cov lus nug

  1. Vrnetlab: Emulate networks siv KVM thiab Docker /Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
  3. Network Programmability nrog YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Kawm XML, Second Edition / Erik T. Ray
  5. Siv tau DevOps / Jennifer Davis, Ryn Daniels

Tau qhov twg los: www.hab.com

Ntxiv ib saib