Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

In hoc articulo ostendam tibi quomodo erigas opendaylight ad operandum cum retis instrumentis, et etiam quomodo utendum monstrant Postman Heliconius et simplex RESTCONF' precibus, hoc instrumento agi potest. Non ferramentis laboramus, sed parvas virtualis laboratorias explicabimus uno itinere utendo Vrnetlab super Nov 20.04 Ubuntu.

Singulos occasus ostendam primo utens exemplo itineris Juniperus vMX 20.1R1.11et deinde eam cum occasu comparamus Cisco xRV9000 7.0.2.

contentus

  • requiritur scientia
  • Part 1: De breviter OpenDaylight (inferius Biblia pauperum), Postman Heliconius и Vrnetlab et quid opus est illis
  • Part 2: Descriptio virtualis officinarum
  • Part 3: customize opendaylight
  • Part 4: customize Vrnetlab
  • Part 5: ab usura Postman Heliconius virtual iter itineris connect (Juniperus vMX) Ut Biblia pauperum
  • Part 6: Configuratione iter itineris adepto ac mutare usura Postman Heliconius и Biblia pauperum
  • Part 7: Cisco xRV9000 adde
  • conclusio,
  • PS
  • Bibliographia

requiritur scientia

Ut articulum non verteret in schedam, nonnulla technica singula omisi (cum nexus cum litteris ubi de illis legere potes).

In qua re argumenta tibi offero, quod bonum esset (sed fere non necessarium) ante legere scire;

Pars I: aliqua doctrina

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

  • Aperta SDN suggestum ad omnes retiacula administrandi et automandi, subnixa Linux Foundation
  • Java intus
  • Ex Exemplar agitatae Service Abstractio Level (MD-SAL)
  • Utitur YANG exemplaribus sponte generare RESTCONF APIs ad retiaculis artibus

Modi consectetur ipsum dolor sit amet. Per eam communicabimus cum connexis cogitationibus. Propria API administrata per.

De OpenDaylight legere potes hic.

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

  • API instrumentum temptationis
  • Simplex et facilis ad usum interface

In casu nostro, in eo interest ut medium ad petitiones API OpenDiay mittentes. Petitiones manuales quidem mittere potes, sed in Postman omnia clarissima spectant et ad propositum nostrum perfecte conveniunt.

Nam qui fodere volunt: multa disciplina in ea scripta sunt.exempli gratia).

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

  • Instrumentum disponendi virtualis iter in Docker
  • Adstipulatur: Cisco XRv, Juniperus vMX, Arista vEOS, LG VSR, etc.
  • Patefacio

Valde interesting instrumentum sed parum notum. In casu nostro, ea utemur ad currentem Juniperum vMX et Cisco xRV9000 in Ubuntu regulari 20.04 LTS.

De hoc legere potes project pagina.

Pars II: Lab

In hoc doceo, haec ratio ponemus:

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Quam facit hoc opus

  • Juniperus vMX exoritur Docker continens (per Vrnetlab) et functiones ut iter virtualis frequentissima.
  • Biblia pauperum coniunctum iter itineris permittit regere.
  • Postman Heliconius machinae separatim immissae et per eam mandata mittimus Biblia pauperum: coniungere / removere iter, configurationem mutare, etc.

Commentarius de fabrica systematis

Juniperus vMX и Biblia pauperum opibus satis multum requirunt ad operationem stabilem. Una tantum vMX petit 6 Gb RAM et 4 coros. Ideo placuit omnia "gravida" movere ad machinam separatam.Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Iter, sane, non "volare" in eo, sed effectus parvis experimentis satis est.

Pars III, levate OpenDaylight

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Magnesium SR1 . est Magnesium SRXNUMX

I) Install Java Open JDK 11 (Per accuratiorem institutionem hic)

ubuntu:~$ sudo apt install default-jdk

II) Reperio ac download tardus constructum Biblia pauperum hic
III) Unzip in downloaded archivo
IV) Ite ad inde Directory
5) Launch ./bin/karaf

Hic gradus Biblia pauperum incipiamus et in consolando reperiemus (Portus 8181 ad accessum ab extra ponitur, quo postea utemur).

Deinde, install ODL Featuresdisposito ad opus cum protocols NETCONF и RESTCONF'. Hoc facere in console Biblia pauperum exequimur;

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

Hoc est simplicissimum. Biblia pauperum perficitur. (For more details, see hic).

Pars IV: Profecti sunt Vrnetlab

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Ratio praeparationis

ante installing Vrnetlab necesse est sarcinas instituere ad operationem suam requisitas. Ut as Docker, ad, 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

installing Vrnetlab

ut install Vrnetlab clone in promptuario ex github correspondentes:

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

Vade ad directorium vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Hic videre potes omnia scripta ad currendum necessaria. Nota quaeso quod directorium respondente unicuique itineris genere factum est:

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

Create an imago itineris

Quisque iter quod facit Vrnetlabproprium habet singularem modum procedendi. cum Juniperus vMX nos iustus postulo ut upload in .tgz archive cum iter (potes ex eo download situs officialis) Vmx ad Directory et currunt imperium make:

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

Aedificationem imaginem vMX tollet de 10-20 minuta. Tempus est ut quidam capulus!

Quid tam diu, inquis?

translatione responsio auctor huic quaestioni:

"Hoc est quia primum VCP (Control Plane) incepit, legit fasciculum config quod decernit an currat ut VRR VCP in vMX. Antea haec launch in Docker startup factum est, sed hoc significavit VCP semel semper restarted antequam virtualis itineris promptus factus est, inde in longa tabernus hora (circiter 5 minuta) Nunc primum curriculum VCP factum est in fabrica imaginis Dockerae, et cum Docker constructum currere non potest cum - optio -privilega, hoc significat qemu sine acceleratione hardware KVM operatur et sic aedificatio praelonga accipit. In hoc processu, multa ligna sunt output, ut saltem videre potes quid agatur. Puto longum aedificare. non tam FORMIDULOSUS quia nos simulacrum semel creamus, sed multos mittimus».

Post videre potes imaginem itineris nostri in 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

vr-vmx launch continens

Incipimus cum imperio;

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

Deinceps informationes de vasis activis videre possumus:

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

Connectens ad iter

Inscriptio IP retis interfacies itineris obtineri potest cum sequenti imperio:

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

Default, Vrnetlab user gignit iter in vrnetlab/VR-netlab9.
Connectens cum 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

Hoc iter complet setup.

Suasiones instruitur pro iter itineris variorum venditorum inveniri potest github project in respectivis directoriis.

Pars V: Postman - iungo iter ad OpenDaylight

Postumius institutionem

Ut install, sicut application download hic.

Connectens iter ad ODL

Faciamus CONLOCO petitio;

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

  1. Query chorda:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Petitio corporis (Corpus 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. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin. Hoc oportet accedere ad ODL:
    Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab
  4. In tab capitis capitis, duos capitis titulos addere debes:
    • Accipere applicationem / xml
    • Content-Type application/xml

Nostra petitio facta est. mittimus. Si omnia recte figurata sunt, tunc status "201 Partum" reddere debemus:

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Quid ista rogatio?

Nodi intra nos creare Biblia pauperum parametris verae itineris accedere volumus.

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

Haec sunt interna spatiis nominalibus XML (XML spatio nominali) Ad Biblia pauperum secundum quem nodi creat.

Praeterea, nomen itineris est nodi-id, oratio iter itineris - exercitum et ita in.

Maxime interesting linea est ultima. Schema-cache-directory creates indicem quo omnes files downloaded YANG Schema connexum iter. Invenies eos in $ODL_ROOT/cache/jun01_cache.

Reprehendo nexum itineris

Faciamus aDEPTO petitio;

  1. Query chorda:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.

mittimus. Status "CC OK" recipere debet et index omnium machinatione fulciuntur YANG Schema:

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

comment: Ad posteritatem videndam, in casu meo, oportuit expectare circiter X minutas post executionem CONLOCOdonec omnia YANG schema unload on Biblia pauperum. Huc usque cum hoc faciendo aDEPTO interrogatione sequentia ostendet:

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Delere iter

Faciamus ERADO petitio;

  1. Query chorda:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.

Pars VI: Mutate configuratione iter itineris

Questus est configuratione

Faciamus aDEPTO petitio;

  1. Query chorda:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.

mittimus. Recipere debere statum "200 OK" et in configuratione itineris:

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Configuratione creare

Exemplum, conformationem hanc faciamus et eam mutemus;

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Faciamus STIPES petitio;

  1. Query chorda:
    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. Petitio corporis (Corpus tab);
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.
  4. In tab capitis capitis, duos capitis titulos addere debes:
    • Accipere applicationem / xml
    • Content-Type application/xml

Post missos, recipiant statum "204 No Content".

Ad reprimendam configurationem mutatam, superiore interrogatione uti potes. Sed exempli gratia aliam creabimus quae tantum informationes ostendet de protocollis in itineris figuratis.

Faciamus aDEPTO petitio;

  1. Query chorda:
    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. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.

Post requisitionem exsecutionis, sequentia videbimus;

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Configuratione mutare

Informationes de BGP protocollo mutemus. Post actiones nostras sic erit:

protocols {
    bgp {
        disable;
    }
}

Faciamus CONLOCO petitio;

  1. Query chorda:
    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. Petitio corporis (Corpus tab);
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.
  4. In tab capitis capitis, duos capitis titulos addere debes:
    • Accipere applicationem / xml
    • Content-Type application/xml

Per priorem aDEPTO petentibus vices videmus;

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Delere configuratione

Faciamus ERADO petitio;

  1. Query chorda:
    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. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.

cum vocantem aDEPTO rogatio cum informatione de protocollis, sequentia videbimus;

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

additur:

Ut figuram mutet, non necesse est ut corpus rogatum in forma mittat XML. Hoc etiam fieri potest in forma JSON.

Hoc facere, e.g. in interrogatione CONLOCO figuram mutare, corpus rogatu repone;

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

Noli oblivisci capitis tab in capitis capitis ad mutare:

  • Accipe applicationem / json
  • Content-Type application/json

His missis, sequentia exitum habebimus (Inspicimus responsionem usura aDEPTO petitio);

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Pars 7: Addens Cisco xRV9000

Quid sumus de Junipero, imo Junipero? Cisco fama!
Inveni xRV9000 versionem 7.0.2 (bestiam quae indiget 8Gb RAM et 4 coros. Non gratis praesto est, sic contactus Scelerisque) — curramus.

Currens vas

Processus faciendi continens Docker a Junipero fere nullus est. Similiter tabulam .qcow2 demittemus cum iter itineris in indicem suo nomine respondentem (hoc in casu, xrv9k) et mandatum exequi. make docker-image.

Paucis minutis videmus imaginem creatam esse;

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

Continens incipimus:

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

Postmodum inspicimus continens quod incepit;

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

Connect per ssh:

ubuntu@ubuntu:~$ ssh [email protected]
Password:

RP/0/RP0/CPU0:ios#show version
Mon Jul  6 12:19:28.036 UTC
Cisco IOS XR Software, Version 7.0.2
Copyright (c) 2013-2020 by Cisco Systems, Inc.

Build Information:
 Built By     : ahoang
 Built On     : Fri Mar 13 22:27:54 PDT 2020
 Built Host   : iox-ucs-029
 Workspace    : /auto/srcarchive15/prod/7.0.2/xrv9k/ws
 Version      : 7.0.2
 Location     : /opt/cisco/XR/packages/
 Label        : 7.0.2

cisco IOS-XRv 9000 () processor
System uptime is 3 hours 22 minutes

Connectens iter ad OpenDaylight

Addens omnino simili modo apud vMX. Non solum necesse est nomina mutare.
CONLOCO petitio;
Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Post a dum voca aDEPTO quaero reprehendo quod omnia connectuntur;
Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Configuratione mutare

Configuratione constituamus sequenti:

!
router ospf LAB
 mpls ldp auto-config
!

Faciamus STIPES petitio;

  1. Query chorda:
    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. Petitio corporis (Corpus tab);
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.
  4. In tab capitis capitis, duos capitis titulos addere debes:
    • Accipe applicationem / json
    • Content-Type application/json

Post eius exsecutionem statum recipere debent "204 Nemo contentus".

Let's check what we got.
Ad hoc nos creabimus aDEPTO petitio;

  1. Query chorda:
    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. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.

Post executionem sequentia debes videre:

Automationem muneris retis vel quomodo virtualem laboratorium aedificare utendo OpenDaylight, Postman et Vrnetlab

Ad removendum configuratione usu ERADO:

  1. Query chorda:
    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. In LICENTIA tab, modulo apponere debes Basic Auth et login/password: admin/admin.

conclusio,

In summa, ut notas, ratio connectendi Cisco et Iunipero cum OpenDaylight non differunt — haec satis late patet in creativity. Proficiscens a configuratione administratione omnium partium retis et finiens cum creatione retis tui ipsius agendi.
In hoc doceo, exempla simplicissima dedi quomodo cum instrumento retis utendo OpenDaylight possis mutuari. Sine dubio, interrogationes ex exemplis praemissis multo magis implicatae et integrae operae erigi possunt cum uno strepita muris - omnia tantum cogitatione tua circumscripta sunt.

Ut continued ...

PS

Si haec omnia subito iam nosti vel e contra, in animam ODL transiisse et demersa, tunc commendo applicationes ad progressionem in ODL moderatoris respicientem. Potes incipere hic.

Prospera experimenta!

Greek New

  1. Vrnetlab: Aemulare retiacula per KVM et Docker /Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, Et al
  3. Programmabilitas retis cum YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Erik T. Ray
  5. Efficax DevOps / Jennifer Davis, Ryn Daniels

Source: www.habr.com

Add a comment