Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Niini nga artikulo, ipakita ko kanimo kung giunsa ang pag-set up OpenDaylight sa pagtrabaho uban sa network ekipo, ug usab sa pagpakita sa unsa nga paagi sa paggamit Postman ug simple RESTCONF hangyo, kini nga ekipo mahimong kontrolado. Dili kami magtrabaho uban sa hardware, apan hinoon kami mag-deploy og gagmay nga virtual nga mga laboratoryo nga adunay usa ka router nga naggamit Vrnetlab sa ibabaw sa Ubuntu 20.04 LTS.

Ipakita nako ang mga detalyado nga setting una gamit ang pananglitan sa usa ka router Juniper vMX 20.1R1.11, ug dayon atong itandi kini sa setting Cisco xRV9000 7.0.2.

Mga sulod

  • Gikinahanglan nga kahibalo
  • Bahin sa 1: hisguti kadiyot OpenDaylight (pagkahuman niini ODL), Postman и Vrnetlab ug nganong kinahanglan nato sila
  • Bahin sa 2: paghulagway sa virtual nga laboratoryo
  • Bahin sa 3: ipasibo OpenDaylight
  • Bahin sa 4: ipasibo Vrnetlab
  • Bahin sa 5: pinaagi sa paggamit Postman ikonektar ang virtual nga router (Juniper vMX) sa ODL
  • Bahin sa 6: pagkuha ug usba ang configuration sa router gamit Postman и ODL
  • Bahin sa 7: idugang ang Cisco xRV9000
  • konklusyon
  • PS
  • Bibliograpiya

Gikinahanglan nga kahibalo

Aron ang artikulo dili mahimong usa ka panid, akong giwala ang pipila ka mga teknikal nga detalye (nga adunay mga link sa literatura diin mahimo nimo mabasa ang bahin niini).

Niini nga koneksyon, gitanyag ko kanimo ang mga hilisgutan nga maayo (apan hapit dili kinahanglan) mahibal-an sa dili pa magbasa:

Bahin 1: pipila ka teorya

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

  • Usa ka bukas nga plataporma sa SDN alang sa pagdumala ug pag-automate sa tanang matang sa mga network, gisuportahan sa Linux Foundation
  • Java sa sulod
  • Base sa Model-Driven Service Abstraction Level (MD-SAL)
  • Gigamit ang mga modelo sa YANG aron awtomatiko nga makamugna ang mga RESTCONF API alang sa mga aparato sa network

Ang nag-unang module alang sa pagdumala sa network. Pinaagi niini kita makigkomunikar sa mga konektadong mga himan. Gidumala pinaagi sa kaugalingon nga API.

Makabasa ka ug dugang bahin sa OpenDaylight dinhi.

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

  • Tool sa pagsulay sa API
  • Yano ug dali gamiton nga interface

Sa among kaso, interesado kami niini isip usa ka paagi sa pagpadala sa mga hangyo sa REST sa OpenDaylight API. Mahimo nimo, siyempre, magpadala mga hangyo nga mano-mano, apan sa Postman ang tanan tan-awon nga klaro kaayo ug hingpit nga nahiangay sa among mga katuyoan.

Alang niadtong gusto nga magkalot: daghang mga materyales sa pagbansay ang gisulat niini (alang sa panig-ingnan).

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

  • Tool alang sa pag-deploy sa mga virtual nga router sa Docker
  • Nagsuporta: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ug uban pa.
  • Open Source

Usa ka makapaikag kaayo apan gamay nga nahibal-an nga instrumento. Sa among kaso, among gamiton kini sa pagpadagan sa Juniper vMX ug Cisco xRV9000 sa usa ka regular nga Ubuntu 20.04 LTS.

Mahimo nimong mabasa ang dugang bahin niini sa panid sa proyekto.

Bahin 2: Lab

Niini nga panudlo, atong i-set up ang mosunod nga sistema:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Unsa nga paagi nga kini nga buhat

  • Juniper vMX misaka sa Docker sudlanan (sa paagi Vrnetlab) ug naglihok isip labing komon nga virtual router.
  • ODL konektado sa router ug nagtugot kanimo sa pagkontrol niini.
  • Postman gilansad sa usa ka bulag nga makina ug pinaagi niini nagpadala kami mga mando ODL: aron makonektar / tangtangon ang router, usba ang configuration, etc.

Komentaryo sa aparato sa sistema

Juniper vMX и ODL nanginahanglan ug daghang mga kapanguhaan alang sa ilang lig-on nga operasyon. Usa ra vMX nangayo og 6 Gb sa RAM ug 4 ka core. Busa, nakahukom nga ibalhin ang tanang "bug-at nga timbang" sa usa ka bulag nga makina (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Ang router, siyempre, dili "molupad" niini, apan ang pasundayag igo na alang sa gagmay nga mga eksperimento.

Bahin 3: I-set up ang OpenDaylight

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Ang kasamtangan nga bersyon sa ODL sa panahon sa pagsulat niini mao ang Magnesium SR1

1) Pag-instalar Java Open JDK 11 (para sa mas detalyado nga pag-install dinhi)

ubuntu:~$ sudo apt install default-jdk

2) Pangitaa ug i-download ang pinakabag-o nga pagtukod ODL gikan dinhi
3) Unzip ang na-download nga archive
4) Adto sa resulta nga direktoryo
5) Paglusad ./bin/karaf

Niini nga lakang ODL kinahanglan magsugod ug makit-an nato ang atong kaugalingon sa console (Port 8181 gigamit alang sa pag-access gikan sa gawas, nga atong gamiton sa ulahi).

Sunod, i-install Mga Feature sa ODLgidisenyo sa pagtrabaho uban sa mga protocol NETCONF и RESTCONF. Aron mahimo kini sa console ODL atong gipatuman:

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

Kini ang pinakasimple nga setup. ODL nahuman. (Alang sa dugang mga detalye, tan-awa dinhi).

Bahin 4: Pag-set up sa Vrnetlab

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Pag-andam sa sistema

Sa wala pa ang pag-instalar Vrnetlab kinahanglan nimo nga i-install ang mga pakete nga gikinahanglan alang sa operasyon niini. Sama sa 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

Pag-instalar sa Vrnetlab

Alang sa pag-instalar Vrnetlab clone ang katugbang nga repository gikan sa github:

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

Lakaw ngadto sa direktoryo vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Dinhi imong makita ang tanan nga mga script nga gikinahanglan sa pagdagan. Palihug timan-i nga ang usa ka katugbang nga direktoryo gihimo alang sa matag matang sa 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

Paghimo usa ka imahe sa router

Ang matag router nga gisuportahan Vrnetlab, adunay kaugalingon nga talagsaon nga pamaagi sa pag-setup. Kanus-a Juniper vMX kinahanglan lang namong i-upload ang .tgz archive sa router (mahimo nimo kini i-download gikan sa opisyal nga site) ngadto sa vmx directory ug padagana ang command make:

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

Pagtukod og imahe vMX moabot ug mga 10-20 ka minuto. Panahon na aron makakuha og kape!

Nganong dugay kaayo, mangutana ka?

Paghubad tubag tagsulat niini nga pangutana:

"Kini tungod kay sa unang higayon nga ang VCP (Control Plane) gisugdan, kini nagbasa sa usa ka config file nga nagtino kung kini modagan ingon nga usa ka VRR VCP sa vMX. Kaniadto, kini nga paglansad gihimo sa panahon sa pagsugod sa Docker, apan kini nagpasabot nga ang VCP kanunay nga gi-restart kausa sa wala pa magamit ang virtual nga router, nga miresulta sa usa ka taas nga oras sa pag-boot (mga 5 minuto) Karon ang una nga pagdagan sa VCP nahimo sa panahon sa pagtukod sa imahe sa Docker, ug tungod kay ang pagtukod sa Docker dili madala sa - -pribilehiyo nga kapilian, kini nagpasabot nga ang qemu nagtrabaho nga walay KVM hardware acceleration ug sa ingon ang pagtukod nagkinahanglan og usa ka taas nga panahon. Atol niini nga proseso daghang mga troso ang output, mao nga labing menos imong makita kung unsa ang nahitabo. Sa akong hunahuna ang usa ka taas nga pagtukod mao dili kaayo makahadlok tungod kay naghimo kami usa ka imahe kausa, apan naglansad kami og daghan.

Human nimo makita ang imahe sa among router sa 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

Ilunsad ang vr-vmx nga sudlanan

Magsugod kami sa mando:

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

Sunod, makita namon ang kasayuran bahin sa aktibo nga mga sudlanan:

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

Pagkonektar sa router

Ang IP address sa network interface sa router mahimong makuha sa mosunod nga sugo:

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

Default, Vrnetlab naghimo sa usa ka user sa router vrnetlab/VR-netlab9.
Pagdugtong sa 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

Nakompleto niini ang setup sa router.

Ang mga rekomendasyon sa pag-install alang sa mga router sa lainlaing mga vendor makita sa github nga proyekto sa tagsa-tagsa nga mga direktoryo.

Bahin 5: Postman - ikonektar ang router sa OpenDaylight

Pag-instalar sa kartero

Aron ma-install, i-download lang ang aplikasyon gikan dinhi.

Pagkonektar sa usa ka router sa ODL

Magbuhat ta ibutang hangyo:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

  1. Pangutana nga string:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Lawas sa hangyo (tab sa lawas):
    <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. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin. Kini gikinahanglan aron ma-access ang ODL:
    Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab
  4. Sa tab nga Mga Header, kinahanglan nimong idugang ang duha ka mga ulohan:
    • Dawata ang aplikasyon/xml
    • Content-Type nga aplikasyon/xml

Nahimo na ang among hangyo. Nagpadala mi. Kung ang tanan na-configure sa husto, nan kinahanglan naton ibalik ang kahimtang nga "201 Gibuhat":

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Unsa ang mahimo niini nga hangyo?

Naghimo kami og node sa sulod ODL uban ang mga parameter sa tinuod nga router nga gusto namong ma-access.

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

Kini ang mga internal nga namespaces XML (XML namespace) alang sa ODL sumala sa diin kini nagmugna node.

Dugang pa, sa tinuud, ang ngalan sa router node-id, adres sa router - panon ug uban pa.

Ang labing makapaikag nga linya mao ang katapusan. Schema-cache-direktoryo naghimo og usa ka direktoryo diin ang tanang mga file ma-download YANG Schema konektado nga router. Makita nimo sila sa $ODL_ROOT/cache/jun01_cache.

Pagsusi sa koneksyon sa router

Magbuhat ta GET hangyo:

  1. Pangutana nga string:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.

Nagpadala mi. Kinahanglan makadawat usa ka status nga "200 OK" ug usa ka lista sa tanan nga gisuportahan sa aparato YANG Schema:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

comment: Aron makita ang ulahi, sa akong kaso kinahanglan nga maghulat mga 10 minuto pagkahuman sa pagpatay ibutanghangtod sa tanan YANG schema pagdiskarga sa ODL. Hangtod niining puntoha, sa pagbuhat niini GET Ang pangutana magpakita sa mosunod:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Kuhaa ang router

Magbuhat ta KINAHANGLAN hangyo:

  1. Pangutana nga string:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.

Bahin 6: Usba ang configuration sa router

Pagkuha sa configuration

Magbuhat ta GET hangyo:

  1. Pangutana nga string:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.

Nagpadala mi. Kinahanglan nga makadawat sa status nga "200 OK" ug ang configuration sa router:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Paghimo og configuration

Isip usa ka pananglitan, buhaton nato ang mosunod nga configuration ug usbon kini:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Magbuhat ta POST hangyo:

  1. Pangutana nga string:
    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. Lawas sa hangyo (tab sa lawas):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.
  4. Sa tab nga Mga Header, kinahanglan nimong idugang ang duha ka mga ulohan:
    • Dawata ang aplikasyon/xml
    • Content-Type nga aplikasyon/xml

Pagkahuman sa pagpadala, kinahanglan nila nga madawat ang status nga "204 No Content"

Aron masusi nga nausab ang configuration, mahimo nimong gamiton ang miaging pangutana. Apan pananglitan, maghimo kami og lain nga magpakita lamang og impormasyon mahitungod sa mga protocol nga gi-configure sa router.

Magbuhat ta GET hangyo:

  1. Pangutana nga string:
    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. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.

Human sa pagpatuman sa hangyo, atong makita ang mosunod:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Usba ang configuration

Usbon nato ang impormasyon bahin sa BGP protocol. Human sa atong mga aksyon, kini tan-awon sama niini:

protocols {
    bgp {
        disable;
    }
}

Magbuhat ta ibutang hangyo:

  1. Pangutana nga string:
    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. Lawas sa hangyo (tab sa lawas):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.
  4. Sa tab nga Mga Header, kinahanglan nimong idugang ang duha ka mga ulohan:
    • Dawata ang aplikasyon/xml
    • Content-Type nga aplikasyon/xml

Gamit ang nauna GET hangyo, atong makita ang mga kausaban:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

I-delete ang configuration

Magbuhat ta KINAHANGLAN hangyo:

  1. Pangutana nga string:
    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. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.

Sa dihang nanawag GET hangyo uban ang impormasyon bahin sa mga protocol, atong makita ang mosunod:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Pagdugang:

Aron mabag-o ang pagsumpo, dili kinahanglan nga ipadala ang lawas sa hangyo sa format XML. Mahimo usab kini sa pormat JSON.

Aron mahimo kini, pananglitan, sa pangutana ibutang para usbon ang configuration, ilisan ang request body sa:

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

Ayaw kalimti nga usbon ang mga ulohan sa tab nga Mga Header aron:

  • Dawata ang aplikasyon/json
  • Content-Type nga aplikasyon/json

Human ipadala, atong makuha ang mosunod nga resulta (Atong tan-awon ang tubag gamit ang GET hangyo):

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Bahin 7: Pagdugang sa Cisco xRV9000

Unsa ang atong tanan mahitungod sa Juniper, oo Juniper? Maghisgot ta bahin sa Cisco!
Akong nakit-an ang xRV9000 nga bersyon 7.0.2 (usa ka mananap nga nanginahanglan og 8Gb RAM ug 4 nga mga cores. Dili kini libre nga magamit, busa kontaka Cisco) - padaganon nato kini.

Nagdagan sa usa ka sudlanan

Ang proseso sa paghimo sa usa ka sudlanan sa Docker halos walay kalainan sa Juniper. Sa susama, atong ihulog ang .qcow2 file uban sa router ngadto sa direktoryo nga katumbas sa ngalan niini (sa kini nga kaso, xrv9k) ug ipatuman ang sugo make docker-image.

Pagkahuman sa pipila ka minuto, among nakita nga ang imahe nahimo na:

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

Gisugdan namon ang sudlanan:

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

Human sa usa ka panahon, atong tan-awon nga ang sudlanan nagsugod na:

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

Sumpaysumpaya pinaagi sa 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

Pagkonektar sa router sa OpenDaylight

Ang pagdugang mahitabo sa hingpit nga susama nga paagi sa vMX. Kinahanglan lang nga usbon nato ang mga ngalan.
ibutang hangyo:
Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Tawag pagkataudtaod GET pangutana aron masusi nga ang tanan konektado:
Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Usba ang configuration

Atong i-set up ang mosunod nga configuration:

!
router ospf LAB
 mpls ldp auto-config
!

Magbuhat ta POST hangyo:

  1. Pangutana nga string:
    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. Lawas sa hangyo (tab sa lawas):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.
  4. Sa tab nga Mga Header, kinahanglan nimong idugang ang duha ka mga ulohan:
    • Dawata ang aplikasyon/json
    • Content-Type nga aplikasyon/json

Pagkahuman sa pagpatuman niini, kinahanglan nila nga madawat ang status nga "204 No Content".

Atong susihon kung unsa ang atong nakuha.
Aron mahimo kini, maghimo kami GET hangyo:

  1. Pangutana nga string:
    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. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.

Human sa pagpatuman, imong makita ang mosunod:

Pag-automate sa mga serbisyo sa network o kung giunsa paghimo ang usa ka virtual nga laboratoryo gamit ang OpenDaylight, Postman ug Vrnetlab

Aron tangtangon ang paggamit sa configuration KINAHANGLAN:

  1. Pangutana nga string:
    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. Sa tab nga Awtorisasyon, kinahanglan nimo nga itakda ang parameter Basic Auth ug login/password: admin/admin.

konklusyon

Sa kinatibuk-an, sama sa imong namatikdan, ang mga pamaagi sa pagkonektar sa Cisco ug Juniper sa OpenDaylight wala magkalainlain - kini nagbukas sa usa ka halapad nga sakup alang sa pagkamamugnaon. Nagsugod gikan sa pagdumala sa pag-configure sa tanan nga mga sangkap sa network ug natapos sa paghimo sa imong kaugalingon nga mga palisiya sa network.
Sa kini nga panudlo, gihatagan nako ang labing yano nga mga pananglitan kung giunsa nimo makig-uban sa mga kagamitan sa network gamit ang OpenDaylight. Sa walay duhaduha, ang mga pangutana gikan sa mga pananglitan sa ibabaw mahimo nga mas komplikado ug mag-set up sa tibuok nga mga serbisyo sa usa ka pag-klik sa mouse - ang tanan limitado lamang sa imong imahinasyon *

Ipadayon…

PS

Kung sa kalit lang nahibal-an na nimo kining tanan o, sa kasukwahi, nakaagi ug naunlod sa kalag sa ODL, nan girekomenda ko ang pagtan-aw sa pagpalambo sa mga aplikasyon sa ODL controller. Mahimo ka magsugod gikan dinhi.

Malampuson nga mga eksperimento!

Mga reperensiya

  1. Vrnetlab: I-emulate ang mga network gamit ang KVM ug Docker /Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, Et al
  3. Network Programmability uban sa YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Pagkat-on sa XML, Ikaduhang Edisyon / Erik T. Ray
  5. Epektibo nga DevOps / Jennifer Davis, Ryn Daniels

Source: www.habr.com

Idugang sa usa ka comment