Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

In questo articolo parlerò di come configurare OpenDaylight per lavorare con l'hardware di rete, e mostrerò come attraverso Postman e semplici RESTCONF richieste possiamo gestire questo hardware. Non lavoreremo con il ferro, ma anziché questo, installeremo piccoli laboratori virtuali con un unico router grazie a Vrnetlab sopra Ubuntu 20.04 LTS.

Mostrerò la configurazione in dettaglio prima utilizzando come esempio il router Juniper vMX 20.1R1.11, e poi confronteremo questa configurazione con quella di Cisco xRV9000 7.0.2.

Contenuto

  • Competenze necessarie
  • Parte 1: discuti brevemente OpenDaylight (da qui in avanti ODL), Postman e Vrnetlab e perché sono necessarie
  • Parte 2: descrizione del laboratorio virtuale
  • Parte 3: configurazione OpenDaylight
  • Parte 4: configurazione Vrnetlab
  • Parte 5: utilizzando Postman colleghiamo il router virtuale (Juniper vMX) a ODL
  • Parte 6: otteniamo e modifichiamo la configurazione del router tramite Postman e ODL
  • Parte 7: aggiungiamo Cisco xRV9000
  • Conclusione
  • P.S.
  • Elenco delle fonti

Competenze necessarie

Affinché l'articolo non diventi un poema epico, ho omesso alcuni dettagli tecnici (con i riferimenti alla letteratura dove puoi leggerne).

Pertanto, ti propongo argomenti che sarebbe bene (ma non è obbligatorio) conoscere prima di leggere:

Parte 1: un po' di teoria

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

  • Piattaforma SDN aperta per la gestione e l'automazione di varie reti, supportata da Linux Foundation
  • Java inside
  • Basato su Model-Driven Service Abstraction Level (MD-SAL)
  • Utilizza modelli YANG per creare automaticamente l'API RESTCONF dei dispositivi di rete

Modulo principale per la gestione della rete. È attraverso di esso che comunicheremo con i dispositivi connessi. È gestito tramite la propria API.

Puoi leggere maggiori dettagli su OpenDaylight qui.

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

  • Strumento per il test delle API
  • Interfaccia semplice e intuitiva

In questo caso ci interessa come strumento per inviare richieste REST all'API di OpenDaylight. Certo, è possibile inviare richieste manualmente, ma in Postman tutto appare molto chiaro e si adatta perfettamente ai nostri scopi.

Per chi volesse approfondire: sono stati scritti molti materiali didattici su questo tema (ad esempio).

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

  • Strumento per il dispiegamento di router virtuali in Docker
  • Supporta: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR e altri.
  • Open Source

Strumento molto interessante ma poco conosciuto. In questo caso lo utilizzeremo per avviare Juniper vMX e Cisco xRV9000 su una normale Ubuntu 20.04 LTS.

Puoi leggere ulteriori informazioni su di esso su pagina del progetto.

Parte 2: lavoro di laboratorio

In questo tutorial configuraremo il seguente sistema:

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Come funziona

  • Juniper vMX viene creato in Docker un container (utilizzando Vrnetlab) e funziona come un comune router virtuale.
  • ODL collegato al router e consente di gestirlo.
  • Postman eseguito su una macchina separata e attraverso di esso inviamo comandi ODL: per connettere/disconnettere un router, modificare la configurazione, ecc.

Commento sul dispositivo del sistema

Juniper vMX e ODL richiedono molte risorse per funzionare stabilmente. Solo il vMX richiede 6 Gb di RAM e 4 core. Pertanto, è stata presa la decisione di spostare tutti i "pesanti" su una macchina separata (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Il router, ovviamente, non "vola" su di esso, ma per piccoli esperimenti le prestazioni sono sufficienti.

Parte 3: configurazione di OpenDaylight

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

La versione attuale di ODL al momento della scrittura dell'articolo è: Magnesium SR1

1) Installiamo Java OpenJDK 11 (per istruzioni più dettagliate sull'installazione qui)

ubuntu:~$ sudo apt install default-jdk

2) Troviamo e scarichiamo l'ultima build ODL da qui
3) Estraiamo l'archivio scaricato
4) Ci spostiamo nella directory creata
5) Avviamo .\/bin\/karaf

A questo punto ODL dovrebbe avviarsi e ci troveremo nella console (Per l'accesso esterno viene utilizzata la porta 8181, che utilizzeremo successivamente).

Ora installiamo ODL Features, progettate per lavorare con i protocolli NETCONF e RESTCONF. A questo scopo, nella console ODL eseguiamo:

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

A questo punto la configurazione più semplice ODL è completata. (Per maggiori dettagli, si può leggere qui).

Parte 4: configurazione di Vrnetlab

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Preparazione del sistema

Prima di installare Vrnetlab è necessario installare i pacchetti richiesti per il suo funzionamento. Come ad esempio 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

Installazione di Vrnetlab

Per l'installazione Vrnetlab cloniamo il repository corrispondente da github:

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

Accediamo alla directory vrnetlab:

ubuntu:~$ cd ~\/vrnetlab

Qui puoi vedere tutti gli script necessari per l'esecuzione. Nota che per ogni tipo di router è stata creata una directory corrispondente:

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

Creiamo l'image del router

Ogni router supportato Vrnetlab, ha la sua procedura di configurazione unica. Nel caso Juniper vMX basta caricare l'archivio .tgz con il router (puoi scaricarlo da sito ufficiale) nella directory vmx ed eseguire il comando make:

ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Copiamo in questa directory l'archivio .tgz con il router
ubuntu:~$ sudo make

La costruzione dell'immagine vMX richiederà circa 10-20 minuti. È il momento giusto per preparare un caffè!

Perché ci vuole così tanto, vi chiederete?

Traduzione risposta dell'autore a questa domanda:

"Questo è dovuto al fatto che, al primo avvio, VCP (Control Plane) legge il file di configurazione, che determina se funzionerà come VCP VRR in vMX. In precedenza, questo avvio avveniva durante l'avvio di Docker, ma ciò significava che VCP veniva sempre riavviato una volta prima che il router virtuale fosse disponibile, il che portava a tempi di avvio lunghi (circa 5 minuti). Ora il primo avvio di VCP avviene durante la costruzione dell'immagine Docker, e poiché la costruzione Docker non può essere eseguita con l'opzione --privileged, questo significa che qemu opera senza accelerazione hardware KVM e, quindi, la costruzione richiede molto tempo. Durante questo processo vengono emessi molti log, quindi, almeno, potrai vedere cosa sta succedendo. Non penso che una costruzione lunga sia così spaventosa, perché creiamo l'immagine una sola volta e la avviamo molte volte."

Dopo, potremo vedere l'immagine del nostro router 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

Avviamo il container vr-vmx

Lo avviamo con il comando:

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

Poi possiamo vedere le informazioni sui container attivi:

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

Colleghiamoci al router

L'indirizzo IP dell'interfaccia di rete del router può essere ottenuto con il seguente comando:

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

Per impostazione predefinita, Vrnetlab crea per il router un utente vrnetlab/VR-netlab9.
Connettiamoci usando ssh:

ubuntu:~$ ssh vrnetlab@172.17.0.2
L'autenticità dell'host '172.17.0.2 (172.17.0.2)' non può essere stabilita.
La fingerprint della chiave ECDSA è SHA256:g9Sfg/k5qGBTOX96WiCWyoJJO9FxjzXYspRoDPv+C0Y.
Sei sicuro di voler continuare a connetterti (sì/no/[fingerprint])? sì
Attenzione: aggiunto permanentemente '172.17.0.2' (ECDSA) all'elenco degli host noti.
Password:
--- JUNOS 20.1R1.11 Kernel 64-bit  JNPR-11.0-20200219.fb120e7_buil
vrnetlab> show version
Modello: vmx
Junos: 20.1R1.11

A questo punto, la configurazione del router è completata.

Le raccomandazioni per l'installazione di router di diversi fornitori possono essere trovate su github del progetto nelle rispettive directory.

Parte 5: Postman - colleghiamo il router a OpenDaylight

Installazione di Postman

Per installarlo, basta scaricare l'applicazione da qui.

Collegamento del router a ODL

Creiamo un richiesta PUT: Stringa di richiesta:

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    Corpo della richiesta (scheda Body):
  2. jun01 172.17.0.2 22 vrnetlab VR-netlab9 false jun01_cache
    Nella scheda Autenticazione è necessario impostare il parametro
  3. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: Nella scheda Intestazioni è necessario aggiungere due intestazioni:
    Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab
  4. Accept application/xml
    • Content-Type application/xml
    • La nostra richiesta è stata formata. Inviamo. Se tutto è stato configurato correttamente, ci dovrebbe tornare lo stato "201 Created":

Cosa fa questa richiesta?

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Stiamo creando un node all'interno

con i parametri del router reale a cui vogliamo accedere. ODL xmlns="urn:TBD:params:xml:ns:yang:network-topology" xmlns="urn:opendaylight:netconf-node-topology"

Questi sono gli spazi dei nomi interni

XML namespace XML () in base ai quali viene creato il node.Successivamente, di conseguenza, il nome del router è ODL node-id

, l'indirizzo del router è e così via.La riga più interessante è l'ultima. host Schema-cache-directory

crea una directory in cui vengono scaricati tutti i file YANG Schema del router collegato. Puoi trovarli in $ODL_ROOT/cache/jun01_cache Verifichiamo la connessione del router GET.

GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/

Creiamo un e username/password: admin/admin. Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.

Invio in corso. Dobbiamo ricevere lo stato "200 OK" e l'elenco di tutti i dispositivi supportati. $ODL_ROOT/cache/jun01_cache:

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Commento: Per vedere l'ultima modifica, nel mio caso è stato necessario attendere circa 10 minuti dopo l'esecuzione. richiesta PUT:, mentre tutto YANG schema verrà estratto su ODL. Fino a quel momento, durante l'esecuzione di questa e username/password: admin/admin. richiesta verrà restituito quanto segue:

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Eliminiamo il router

Creiamo un DELETE Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.

Parte 6: Modifichiamo la configurazione del router

Otteniamo la configurazione

Creiamo un e username/password: admin/admin. Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.

Invio in corso. Dobbiamo ricevere lo stato "200 OK" e la configurazione del router:

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Creiamo una configurazione

Come esempio, creiamo la seguente configurazione e modifichiamola:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Creiamo un POST Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    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. jun01 172.17.0.2 22 vrnetlab VR-netlab9 false jun01_cache
  3. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.
  4. Accept application/xml
    • Content-Type application/xml
    • La nostra richiesta è stata formata. Inviamo. Se tutto è stato configurato correttamente, ci dovrebbe tornare lo stato "201 Created":

Dopo l'invio, dobbiamo ricevere lo stato "204 No Content"

Per verificare che la configurazione sia cambiata, possiamo utilizzare la richiesta precedente. Ma per esempio creeremo un'altra richiesta che ci mostrerà informazioni solo sui protocolli configurati sul router.

Creiamo un e username/password: admin/admin. Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    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. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.

Dopo l'esecuzione della richiesta, vedremo quanto segue:

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Modifichiamo la configurazione

Modificheremo le informazioni sul protocollo BGP. Dopo le nostre azioni, apparirà come segue:

protocols {
    bgp {
        disable;
    }
}

Creiamo un richiesta PUT: Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    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. jun01 172.17.0.2 22 vrnetlab VR-netlab9 false jun01_cache
  3. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.
  4. Accept application/xml
    • Content-Type application/xml
    • La nostra richiesta è stata formata. Inviamo. Se tutto è stato configurato correttamente, ci dovrebbe tornare lo stato "201 Created":

Utilizzando la richiesta precedente, vediamo le modifiche: e username/password: admin/admin. Eliminiamo la configurazione

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

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

Creiamo un DELETE Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    Quando richiamiamo
  2. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.

la richiesta con informazioni sui protocolli, vedremo quanto segue: e username/password: admin/admin. Per modificare la configurazione, non è necessario inviare il corpo della richiesta in formato

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Supplemento:

. Questo può essere fatto anche in formato XMLPer farlo, ad esempio, nella richiesta JSON.

modifica della configurazione sostituiamo il corpo della richiesta con: richiesta PUT: { "junos-conf-protocols:protocols": { "bgp": { "description" : "Modificato in Postman" } } }

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

Non dimenticate di cambiare gli header nella scheda Headers in:

  • Accept application/json
  • Content-Type application/json

Dopo l'invio riceveremo il seguente risultato (Risposta da vedere utilizzando e username/password: admin/admin. richiesta):

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Parte 7: aggiungiamo Cisco xRV9000

Cosa sappiamo tutti di Juniper, sì di Juniper? Parliamo di Cisco!
Ho trovato un xRV9000 versione 7.0.2 (bestia che richiede 8 Gb di RAM e 4 core. Non è disponibile pubblicamente, quindi contattate Cisco) — lo avvieremo.

Avvio del contenitore

Il processo di creazione del contenitore Docker è praticamente identico a quello di Juniper. In modo analogo, carichiamo il file .qcow2 con il router nella directory corrispondente al suo nome, (in questo caso xrv9k) ed eseguiamo il comando make docker-image.

Dopo alcuni minuti vediamo che l'immagine è stata creata:

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

Procediamo ad avviare il contenitore:

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

Dopo un po' controlliamo che il contenitore sia stato avviato:

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

Ci connettiamo tramite ssh:

ubuntu@ubuntu:~$ ssh vrnetlab@172.17.0.2
Password:

RP/0/RP0/CPU0:ios#show version
Lun Lug  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

Colleghiamo il router a OpenDaylight

L'aggiunta avviene in modo assolutamente identico a quella dell'immagine vMX. È necessario solo cambiare i nomi.
richiesta PUT: Stringa di richiesta:
Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Dopo un po' chiamiamo e username/password: admin/admin. la richiesta per verificare che tutto sia collegato:
Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Modifichiamo la configurazione

Configuriamo la seguente configurazione:

!
router ospf LAB
 mpls ldp auto-config
!

Creiamo un POST Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    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. jun01 172.17.0.2 22 vrnetlab VR-netlab9 false jun01_cache
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.
  4. Accept application/xml
    • Accept application/json
    • Content-Type application/json

Dopo la sua esecuzione dovremmo ottenere lo stato "204 No Content".

Controlliamo cosa abbiamo ottenuto.
Per fare ciò creiamo e username/password: admin/admin. Stringa di richiesta:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    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. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.

Dopo l'esecuzione dovresti vedere quanto segue:

Automazione dei servizi di rete o come assemblare un laboratorio virtuale con OpenDaylight, Postman e Vrnetlab

Per rimuovere la configurazione utilizziamo DELETE:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    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. Basic Auth e username/password: admin/admin. Questo è necessario per accedere a ODL: e login/password: admin/admin.

Conclusione

In totale, come avrai notato, le procedure di connessione per Cisco e Juniper a OpenDaylight non differiscono — questo apre un ampio margine di creatività. Dalla gestione delle configurazioni di tutti i componenti della rete, fino alla creazione di politiche di rete personalizzate.
In questo tutorial ho fornito esempi semplici di come interagire con l'hardware di rete tramite OpenDaylight. Senza dubbio, le richieste degli esempi forniti possono diventare molto più complesse e configurare interi servizi con un semplice clic del mouse — tutto è limitato solo dalla tua fantasia.

Continua…

P.S.

Se per caso sai già tutto questo o, al contrario, hai già esplorato e ami ODL, ti consiglio di dare un'occhiata allo sviluppo di applicazioni sul controller ODL. Puoi iniziare da qui.

Buoni esperimenti!

Bibliografia

  1. Vrnetlab: emula reti utilizzando KVM e Docker / Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, Et al
  3. Network Programmability with YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Learning XML, Second Edition / Erik T. Ray
  5. Effective DevOps / Jennifer Davis, Ryn Daniels

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster