Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

In diesem Artikel zeige ich Ihnen, wie Sie es einrichten OpenDaylight um mit Netzwerkgeräten zu arbeiten und auch deren Verwendung zu zeigen Postman und einfach RESTKONF Auf Wunsch kann dieses Gerät gesteuert werden. Wir werden nicht mit Hardware arbeiten, sondern kleine virtuelle Labore mit einem einzigen Router einrichten Vrnetlab über Ubuntu LTS 20.04.

Die detaillierten Einstellungen zeige ich zunächst am Beispiel eines Routers Juniper vMX 20.1R1.11, und dann vergleichen wir es mit der Einstellung Cisco xRV9000 7.0.2.

Inhalt

  • Erforderliches Wissen
  • Часть 1: kurz besprechen OpenDaylight (im Folgenden: ODL), Postman и Vrnetlab und warum brauchen wir sie
  • Часть 2: Beschreibung des virtuellen Labors
  • Часть 3: anpassen OpenDaylight
  • Часть 4: anpassen Vrnetlab
  • Часть 5: mit Hilfe Postman Virtuellen Router verbinden (Juniper vMX) bis ODL
  • Часть 6: Rufen Sie die Router-Konfiguration ab und ändern Sie sie mit Postman и ODL
  • Часть 7: Cisco xRV9000 hinzufügen
  • Abschluss
  • PS
  • Referenzliste

Erforderliches Wissen

Damit der Artikel nicht zu einem Blatt wird, habe ich einige technische Details weggelassen (mit Links zu Literatur, in der Sie darüber lesen können).

In diesem Zusammenhang biete ich Ihnen Themen an, die Sie vor dem Lesen kennen sollten (aber fast nicht notwendig sind):

Teil 1: etwas Theorie

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

  • Eine offene SDN-Plattform zur Verwaltung und Automatisierung aller Arten von Netzwerken, unterstützt von Linux Foundation
  • Java drin
  • Basierend auf dem Model-Driven Service Abstraction Level (MD-SAL)
  • Verwendet YANG-Modelle, um automatisch RESTCONF-APIs für Netzwerkgeräte zu generieren

Das Hauptmodul für das Netzwerkmanagement. Dadurch kommunizieren wir mit angeschlossenen Geräten. Verwaltet über eine eigene API.

Lesen Sie mehr über OpenDaylight hier.

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

  • API-Testtool
  • Einfache und benutzerfreundliche Oberfläche

In unserem Fall sind wir daran interessiert, REST-Anfragen an die OpenDaylight-API zu senden. Sie können Anfragen natürlich auch manuell versenden, aber in Postman sieht alles sehr übersichtlich aus und passt perfekt zu unseren Zwecken.

Für diejenigen, die graben wollen: Es wurden viele Schulungsmaterialien darauf geschrieben (beispielsweise).

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

  • Tool zum Bereitstellen virtueller Router in Docker
  • Unterstützt: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR usw.
  • Open Source

Ein sehr interessantes, aber wenig bekanntes Instrument. In unserem Fall werden wir damit Juniper vMX und Cisco xRV9000 auf einem regulären Ubuntu 20.04 LTS ausführen.

Mehr darüber können Sie unter lesen Seite des Projekts.

Teil 2: Labor

In diesem Tutorial richten wir das folgende System ein:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Wie funktioniert das

  • Juniper vMX steigt ein Docker Behälter (mittels Vrnetlab) und fungiert als der am häufigsten verwendete virtuelle Router.
  • ODL mit dem Router verbunden und ermöglicht Ihnen die Steuerung.
  • Postman auf einem separaten Computer gestartet und über ihn senden wir Befehle ODL: Zum Anschließen/Entfernen des Routers, Ändern der Konfiguration usw.

Kommentar zum Gerät des Systems

Juniper vMX и ODL erfordern für ihren stabilen Betrieb recht viele Ressourcen. Nur einer vMX verlangt 6 GB RAM und 4 Kerne. Daher wurde beschlossen, alle „Schwergewichte“ auf eine separate Maschine zu verlagern (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Der Router „fliegt“ darauf natürlich nicht, aber die Leistung reicht für kleine Experimente.

Teil 3: OpenDaylight einrichten

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Die zum Zeitpunkt des Schreibens dieses Artikels aktuelle Version von ODL ist Magnesium SR1

1) Installieren Java-OpenJDK 11 (für eine detailliertere Installation hierher)

ubuntu:~$ sudo apt install default-jdk

2) Suchen Sie den neuesten Build und laden Sie ihn herunter ODL daher
3) Entpacken Sie das heruntergeladene Archiv
4) Gehen Sie in das resultierende Verzeichnis
5) Starten ./bin/karaf

Bei diesem Schritt ODL sollte starten und wir befinden uns in der Konsole (Port 8181 wird für den Zugriff von außen verwendet, den wir später nutzen werden).

Als nächstes installieren ODL-FunktionenEntwickelt, um mit Protokollen zu arbeiten NETKONF и RESTKONF. Tun Sie dies in der Konsole ODL wir führen aus:

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

Dies ist die einfachste Einrichtung. ODL vollendet. (Weitere Einzelheiten finden Sie unter hier).

Teil 4: Vrnetlab einrichten

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Systemvorbereitung

Vor der Installation Vrnetlab Sie müssen die für den Betrieb erforderlichen Pakete installieren. Sowie 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

Vrnetlab installieren

Zum Installieren Vrnetlab Klonen Sie das entsprechende Repository von Github:

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

Gehen Sie zum Verzeichnis vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Hier sehen Sie alle zur Ausführung erforderlichen Skripte. Bitte beachten Sie, dass für jeden Routertyp ein entsprechendes Verzeichnis erstellt wurde:

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

Erstellen Sie ein Image des Routers

Jeder Router, der unterstützt wird Vrnetlabverfügt über ein eigenes einzigartiges Einrichtungsverfahren. Im Fall von Juniper vMX Wir müssen nur das .tgz-Archiv mit dem Router hochladen (Sie können es herunterladen von offizielle Seite) in das vmx-Verzeichnis und führen Sie den Befehl aus make:

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

Ein Bild aufbauen vMX wird etwa 10-20 Minuten dauern. Es ist Zeit, einen Kaffee zu trinken!

Warum so lange, fragen Sie?

Übersetzung antworte Autor zu dieser Frage:

„Das liegt daran, dass das VCP (Control Plane) beim ersten Start eine Konfigurationsdatei liest, die bestimmt, ob es als VRR-VCP in vMX ausgeführt wird. Zuvor erfolgte dieser Start während des Docker-Starts, aber das bedeutete, dass das VCP wurde immer einmal neu gestartet, bevor der virtuelle Router verfügbar wurde, was zu einer langen Startzeit führte (ca. 5 Minuten). Jetzt erfolgt die erste Ausführung des VCP während des Builds des Docker-Images, und da der Docker-Build nicht mit dem ausgeführt werden kann – -privilegierte Option, das bedeutet, dass qemu ohne KVM-Hardwarebeschleunigung arbeitet und der Build daher sehr lange dauert. Während dieses Prozesses werden viele Protokolle ausgegeben, sodass man zumindest sehen kann, was vor sich geht. Ich denke, ein langer Build Es ist nicht so beängstigend, weil wir ein Image einmal erstellen, aber wir starten viele.“

Danach können Sie das Bild unseres Routers sehen 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

Starten Sie den VR-VMX-Container

Wir beginnen mit dem Befehl:

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

Als nächstes können wir Informationen zu aktiven Containern sehen:

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

Verbindung zum Router herstellen

Die IP-Adresse der Netzwerkschnittstelle des Routers kann mit folgendem Befehl ermittelt werden:

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

Default, Vrnetlab erstellt einen Benutzer auf dem Router vrnetlab/VR-netlab9.
Verbinden mit 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

Damit ist die Router-Einrichtung abgeschlossen.

Installationsempfehlungen für Router verschiedener Hersteller finden Sie unter Github-Projekt in den jeweiligen Verzeichnissen.

Teil 5: Postman – Router mit OpenDaylight verbinden

Postman-Installation

Zur Installation laden Sie einfach die Anwendung herunter daher.

Anschließen eines Routers an ODL

Lasst uns kreieren SETZEN Anfrage:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

  1. Abfragezeichenfolge:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Anforderungstext (Registerkarte „Text“):
    <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. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin. Dies ist für den Zugriff auf das ODL erforderlich:
    Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab
  4. Auf der Registerkarte „Header“ müssen Sie zwei Header hinzufügen:
    • Akzeptieren Sie application/xml
    • Inhaltstyp application/xml

Unsere Anfrage wurde gestellt. Wir senden. Wenn alles richtig konfiguriert wurde, sollten wir den Status „201 erstellt“ zurückgeben:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Was bewirkt diese Anfrage?

Wir erstellen einen Knoten im Inneren ODL mit den Parametern des realen Routers, auf den wir zugreifen möchten.

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

Dies sind interne Namensräume XML (XML-Namespace) Für ODL nach dem es Knoten erstellt.

Weiter ist jeweils der Name des Routers Knoten-ID, Router-Adresse - Gastgeber und so weiter.

Die interessanteste Zeile ist die letzte. Schema-Cache-Verzeichnis erstellt ein Verzeichnis, in das alle Dateien heruntergeladen werden YANG-Schema angeschlossenen Router. Du findest sie in $ODL_ROOT/cache/jun01_cache.

Überprüfen Sie die Verbindung des Routers

Lasst uns kreieren BESTELLE Anfrage:

  1. Abfragezeichenfolge:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.

Wir senden. Sollte den Status „200 OK“ und eine Liste aller vom Gerät unterstützten Geräte erhalten YANG-Schema:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Kommentar: Um Letzteres zu sehen, musste in meinem Fall nach der Hinrichtung etwa 10 Minuten gewartet werden SETZENBis alle YANG-Schema entladen auf ODL. Bis zu diesem Punkt, als ich dies durchführte BESTELLE Die Abfrage zeigt Folgendes an:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Löschen Sie den Router

Lasst uns kreieren LÖSCHEN Anfrage:

  1. Abfragezeichenfolge:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.

Teil 6: Ändern Sie die Router-Konfiguration

Konfiguration abrufen

Lasst uns kreieren BESTELLE Anfrage:

  1. Abfragezeichenfolge:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.

Wir senden. Sollte den Status „200 OK“ und die Router-Konfiguration erhalten:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Erstellen Sie eine Konfiguration

Als Beispiel erstellen wir die folgende Konfiguration und ändern sie:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Lasst uns kreieren jetzt lesen Anfrage:

  1. Abfragezeichenfolge:
    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. Anforderungstext (Registerkarte „Text“):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.
  4. Auf der Registerkarte „Header“ müssen Sie zwei Header hinzufügen:
    • Akzeptieren Sie application/xml
    • Inhaltstyp application/xml

Nach dem Absenden sollten sie den Status „204 No Content“ erhalten.

Um zu überprüfen, ob sich die Konfiguration geändert hat, können Sie die vorherige Abfrage verwenden. Aber wir werden zum Beispiel ein weiteres erstellen, das nur Informationen zu den auf dem Router konfigurierten Protokollen anzeigt.

Lasst uns kreieren BESTELLE Anfrage:

  1. Abfragezeichenfolge:
    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. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.

Nach der Ausführung der Anfrage sehen wir Folgendes:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Ändern Sie die Konfiguration

Lassen Sie uns die Informationen zum BGP-Protokoll ändern. Nach unseren Aktionen wird es so aussehen:

protocols {
    bgp {
        disable;
    }
}

Lasst uns kreieren SETZEN Anfrage:

  1. Abfragezeichenfolge:
    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. Anforderungstext (Registerkarte „Text“):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.
  4. Auf der Registerkarte „Header“ müssen Sie zwei Header hinzufügen:
    • Akzeptieren Sie application/xml
    • Inhaltstyp application/xml

Verwendung des vorherigen BESTELLE Anfrage, wir sehen die Änderungen:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Löschen Sie die Konfiguration

Lasst uns kreieren LÖSCHEN Anfrage:

  1. Abfragezeichenfolge:
    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. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.

Wenn angerufen BESTELLE Anfrage mit Informationen zu den Protokollen, wir werden Folgendes sehen:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Supplement:

Um die Konfiguration zu ändern, ist es nicht erforderlich, den Anforderungstext im Format zu senden XML. Dies kann auch im Format erfolgen JSON.

Dies geschieht beispielsweise in der Abfrage SETZEN Um die Konfiguration zu ändern, ersetzen Sie den Anforderungstext durch:

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

Vergessen Sie nicht, die Überschriften auf der Registerkarte „Überschriften“ zu ändern:

  • Akzeptieren Sie application/json
  • Inhaltstypanwendung/json

Nach dem Absenden erhalten wir folgendes Ergebnis (Wir betrachten die Antwort mit BESTELLE Anfrage):

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Teil 7: Hinzufügen des Cisco xRV9000

Worum geht es uns bei Juniper, ja Juniper? Reden wir über Cisco!
Ich habe xRV9000 Version 7.0.2 gefunden (ein Biest, das 8 GB RAM und 4 Kerne benötigt. Es ist nicht frei verfügbar, also wenden Sie sich an Cisco) – lass es uns ausführen.

Ausführen eines Containers

Der Prozess der Erstellung eines Docker-Containers unterscheidet sich praktisch nicht von Juniper. Ebenso legen wir die .qcow2-Datei mit dem Router in dem Verzeichnis ab, das seinem Namen entspricht (in diesem Fall xrv9k) und führen den Befehl aus make docker-image.

Nach ein paar Minuten sehen wir, dass das Bild erstellt wurde:

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

Wir starten den Container:

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

Nach einer Weile sehen wir, dass der Container gestartet ist:

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

Per SSH verbinden:

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

Den Router mit OpenDaylight verbinden

Das Hinzufügen erfolgt bei vMX ganz ähnlich. Wir müssen nur die Namen ändern.
SETZEN Anfrage:
Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Rufen Sie nach einer Weile an BESTELLE Abfrage, um zu überprüfen, ob alles verbunden ist:
Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Ändern Sie die Konfiguration

Lassen Sie uns die folgende Konfiguration einrichten:

!
router ospf LAB
 mpls ldp auto-config
!

Lasst uns kreieren jetzt lesen Anfrage:

  1. Abfragezeichenfolge:
    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. Anforderungstext (Registerkarte „Text“):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.
  4. Auf der Registerkarte „Header“ müssen Sie zwei Header hinzufügen:
    • Akzeptieren Sie application/json
    • Inhaltstypanwendung/json

Nach der Ausführung sollten sie den Status „204 No Content“ erhalten.

Schauen wir mal, was wir haben.
Dazu erstellen wir BESTELLE Anfrage:

  1. Abfragezeichenfolge:
    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. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.

Nach der Ausführung sollten Sie Folgendes sehen:

Automatisierung von Netzwerkdiensten oder Aufbau eines virtuellen Labors mit OpenDaylight, Postman und Vrnetlab

Um die Konfiguration zu entfernen, verwenden Sie LÖSCHEN:

  1. Abfragezeichenfolge:
    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. Auf der Registerkarte Autorisierung müssen Sie den Parameter festlegen Basic Auth und Login/Passwort: admin/admin.

Abschluss

Insgesamt unterscheiden sich die Verfahren zur Anbindung von Cisco und Juniper an OpenDaylight, wie Sie vielleicht bemerkt haben, nicht – dies eröffnet einen recht großen Spielraum für Kreativität. Angefangen beim Konfigurationsmanagement aller Netzwerkkomponenten bis hin zur Erstellung eigener Netzwerkrichtlinien.
In diesem Tutorial habe ich die einfachsten Beispiele dafür gegeben, wie Sie mit OpenDaylight mit Netzwerkgeräten interagieren können. Ohne Zweifel lassen sich die Abfragen aus den oben genannten Beispielen deutlich komplexer gestalten und ganze Dienste mit einem Mausklick einrichten – alles ist nur durch Ihre Vorstellungskraft begrenzt *

To be continued ...

PS

Wenn Sie das alles plötzlich schon wissen oder im Gegenteil in die Seele von ODL eingetaucht sind, empfehle ich Ihnen, sich mit der Entwicklung von Anwendungen auf dem ODL-Controller zu befassen. Du kannst anfangen daher.

Erfolgreiche Experimente!

Referenzen

  1. Vrnetlab: Netzwerke mit KVM und Docker emulieren /Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
  3. Netzwerkprogrammierbarkeit mit YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. XML lernen, XNUMX. Auflage / Erik T. Ray
  5. Effektives DevOps / Jennifer Davis, Ryn Daniels

Source: habr.com

Kommentar hinzufügen