Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

W tym artykule opowiem, jak skonfigurować OpenDaylight do pracy z urządzeniami sieciowymi, a także pokażę, jak za pomocą Postman i prostych zapytaniach RESTCONF można zarządzać tymi urządzeniami. Nie będziemy pracować z fizycznym sprzętem, zamiast tego uruchomimy małe wirtualne laboratoria z jednym, jedynym routerem za pomocą Vrnetlab na Szczegółową konfigurację pokażę najpierw na przykładzie routera Ubuntu 20.04 LTS.

Juniper vMX 20.1R1.11 , a potem porównamy ją z konfiguracjąCisco xRV9000 7.0.2 Wymagana wiedza.

Spis treści

  • : krótko omawiamy
  • Part 1OpenDaylight (dalej jako ODL i dlaczego będzie nam potrzebna), Postman i na : opis wirtualnego laboratorium
  • Część 2Część 3
  • : konfigurujemyCzęść 4 OpenDaylight
  • Część 5Część 4 na
  • : za pomocąpodłączamy wirtualny router ( Postman Juniper vMX) doCzęść 6 i dlaczego będzie nam potrzebna
  • : pobieramy i zmieniamy konfigurację routera za pomocąCzęść 7 Postman i i dlaczego będzie nam potrzebna
  • : dodajemy Cisco xRV9000Lista literatury
  • Podsumowanie
  • P.S.
  • Aby artykuł nie stał się zbyt długi, pominąłem niektóre szczegóły techniczne (z linkami do literatury, w której można je przeczytać).

: krótko omawiamy

W związku z tym proponuję tematy, które warto (choć nie jest to konieczne) znać przed przeczytaniem:

NETCONF

Otwarta platforma SDN do zarządzania i automatyzacji różnych sieci, wspierana przez

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

  • Linux Foundation Java wewnątrz
  • Oparta na Model-Driven Service Abstraction Level (MD-SAL)
  • Używa modeli YANG do automatycznego tworzenia RESTCONF API urządzeń sieciowych
  • Główny moduł do zarządzania siecią. To przez niego będziemy komunikować się z podłączonymi urządzeniami. Zarządzany przez swoje własne API.

Więcej informacji o OpenDaylight można znaleźć

Narzędzie do testowania API tutaj.

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

  • Prosty i wygodny interfejs
  • W naszym przypadku jest dla nas interesujące jako środek do wysyłania zapytań REST do API OpenDaylight. Można oczywiście ręcznie wysyłać zapytania, ale w Postman wszystko wygląda bardzo przejrzyście i idealnie nadaje się do naszych celów.

Dla tych, którzy chcą zgłębić temat: napisano wiele materiałów szkoleniowych na jego temat (

Narzędzie do wdrażania wirtualnych routerów w Dockerzena przykład).

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

  • Obsługuje: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR i inne.
  • Open Source
  • Bardzo interesujące, ale mało znane narzędzie. W naszym przypadku za jego pomocą uruchomimy Juniper vMX i Cisco xRV9000 na zwykłym Ubuntu 20.04 LTS.

Więcej informacji na jego temat można znaleźć na

stronie projektu Część 2: laboratoria.

Część 2: laboratoria

W ramach tego samouczka skonfigurujemy następujący system:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Jak to działa

  • ) do jest uruchamiany w Docker kontenerze (za pomocą na) i działa jak zwykły wirtualny router.
  • i dlaczego będzie nam potrzebna jest podłączony do routera i umożliwia jego zarządzanie.
  • Postman jest uruchomiony na osobnej maszynie i przez niego wysyłamy komendy i dlaczego będzie nam potrzebna: do podłączenia/odłączenia routera, zmiany konfiguracji itd.

Komentarz do urządzenia systemu

) do i i dlaczego będzie nam potrzebna wymagają dość dużych zasobów do swojej stabilnej pracy. Sam vMX prosi o 6 Gb pamięci RAM i 4 rdzenie. Dlatego podjęto decyzję, aby przenieść wszystkich "ciężkich" na osobną maszynę (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Router, oczywiście, nie "lata" tam, ale na małe eksperymenty wydajności wystarcza.

Część 3: konfigurujemy OpenDaylight

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Aktualna wersja ODL w momencie pisania artykułu – Magnesium SR1

1) Instalujemy Java OpenJDK 11 (po szczegółową instalację tutaj)

ubuntu:~$ sudo apt install default-jdk

2) Znajdujemy i pobieramy najnowszą wersję i dlaczego będzie nam potrzebna stąd
3) Rozpakowujemy pobrany archiwum
4) Przechodzimy do uzyskanej katalogu
5) Uruchamiamy .\/bin\/karaf

Na tym etapie i dlaczego będzie nam potrzebna powinien się uruchomić i znajdziemy się w konsoli (Aby uzyskać dostęp z zewnątrz, używany jest port 8181, z którego skorzystamy później).

Następnie instalujemy ODL Features, przeznaczone do pracy z protokołami. JSON i zapytaniach RESTCONF można zarządzać tymi urządzeniami. Nie będziemy pracować z fizycznym sprzętem, zamiast tego uruchomimy małe wirtualne laboratoria z jednym, jedynym routerem za pomocąW tym celu w konsoli i dlaczego będzie nam potrzebna wykonujemy:

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

Na tym kończy się najprostsza konfiguracja. (Bardziej szczegółowe informacje można znaleźć i dlaczego będzie nam potrzebna Część 4: konfigurujemy Vrnetlab tutaj).

Przygotowanie systemu

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Przed instalacją

konieczne jest zainstalowanie wymaganych do jego działania pakietów. Takich jak na git Docker, 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:

Instalacja Vrnetlab

Aby zainstalować

klonujemy odpowiednie repozytorium z github: na ubuntu:~$ cd ~ ubuntu:~$ git clone https:\/\/github.com\/plajjan\/vrnetlab.git

vrnetlab

Przechodzimy do katalogu ubuntu:~$ cd ~\/vrnetlab:

Tutaj można zobaczyć wszystkie skrypty potrzebne do uruchomienia. Zauważ, że dla każdego typu routera stworzono odpowiadający katalog:

Tutaj można zobaczyć wszystkie skrypty niezbędne do uruchomienia. Zwróć uwagę, że dla każdego typu routera utworzono odpowiedni katalog:

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

Tworzymy obraz routera

Każdy router, który jest wspierany na, ma swoją unikalną procedurę konfiguracji. W przypadku ) do wystarczy wrzucić archiwum .tgz z routerem (można je pobrać z oficjalnej strony) do katalogu vmx i wykonać polecenie make:

ubuntu:~$ cd ~\/vrnetlab\/vmx
ubuntu:~$ # Kopiujemy do tego katalogu archiwum .tgz z routerem
ubuntu:~$ sudo make

Tworzenie obrazu vMX zajmie około 10-20 minut. To idealny czas, aby zrobić sobie kawę!

Dlaczego to tyle trwa, zapytacie?

Tłumaczenie odpowiedzi autora na to pytanie:

"Jest to związane z tym, że podczas pierwszego uruchomienia VCP (Control Plane) odczytuje plik konfiguracyjny, który określa, czy będzie działał jako VRR VCP w vMX. Wcześniej uruchomienie to odbywało się podczas uruchamiania Dockera, ale oznaczało to, że VCP zawsze był uruchamiany ponownie, zanim wirtualny router stał się dostępny, co prowadziło do długiego czasu ładowania (około 5 minut). Teraz pierwsze uruchomienie VCP odbywa się podczas budowy obrazu Dockera, a ponieważ budowa Dockera nie może być uruchomiona z parametrem —privileged, oznacza to, że qemu działa bez sprzętowego przyspieszenia KVM i w związku z tym budowa zajmuje bardzo dużo czasu. W trakcie tego procesu generowana jest duża ilość logów, więc przynajmniej będziecie mogli zobaczyć, co się dzieje. Myślę, że długotrwała budowa nie jest taka straszna, ponieważ obraz tworzymy tylko raz, a uruchamiamy go wiele razy."

Po tym będzie można zobaczyć obraz naszego routera w 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

Uruchamiamy kontener vr-vmx

Uruchamiamy poleceniem:

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

Następnie możemy zobaczyć informacje o aktywnych kontenerach:

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

Łączymy się z routerem

Adres IP interfejsu sieciowego routera można uzyskać za pomocą następującego polecenia:

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

Domyślnie, na tworzy u routera użytkownika vrnetlab/VR-netlab9.
Łączymy się za pomocą ssh:

ubuntu:~$ ssh vrnetlab@172.17.0.2
Nie można ustalić autentyczności hosta '172.17.0.2 (172.17.0.2)'.
Odcisk klucza ECDSA to SHA256:g9Sfg/k5qGBTOX96WiCWyoJJO9FxjzXYspRoDPv+C0Y.
Czy na pewno chcesz kontynuować połączenie (tak/nie/[odcisk])? tak
Ostrzeżenie: Na stałe dodano '172.17.0.2' (ECDSA) do listy znanych hostów.
Hasło:
--- JUNOS 20.1R1.11 Jądro 64-bitowe JNPR-11.0-20200219.fb120e7_buil
vrnetlab> show version
Model: vmx
Junos: 20.1R1.11

Na tym konfiguracja routera jest zakończona.

Zalecenia dotyczące instalacji routerów różnych producentów można znaleźć na projekcie github w odpowiednich katalogach.

Część 5: Postman — łączymy router z OpenDaylight

Instalacja Postman

Aby zainstalować, wystarczy pobrać aplikację stąd.

Podłączenie routera do ODL

Utworzymy Żądanie PUT: Linia żądania:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    Treść żądania (zakładka Body):
  2. jun01 172.17.0.2 22 vrnetlab VR-netlab9 false jun01_cache
    Na zakładce Authorization należy ustawić parametr
  3. Basic Auth i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: Na zakładce Headers należy dodać dwa nagłówki:
    Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab
  4. Accept application/xml
    • Content-Type application/xml
    • Nasze żądanie zostało utworzone. Wysyłamy. Jeśli wszystko zostało poprawnie skonfigurowane, powinniśmy otrzymać status "201 Created":

Co robi to żądanie?

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Tworzymy node wewnątrz

z parametrami rzeczywistego routera, do którego chcemy uzyskać dostęp. i dlaczego będzie nam potrzebna xmlns="urn:TBD:params:xml:ns:yang:network-topology" xmlns="urn:opendaylight:netconf-node-topology"

To wewnętrzne przestrzenie nazw

Przestrzeń nazw XML XML () według których tworzy node.Dalej, odpowiednio, nazwa routera to i dlaczego będzie nam potrzebna node-id

, adres routera — hosti td. Najciekawsza linia — ostatnia. Schema-cache-directory

tworzy katalog, do którego pobierane są wszystkie pliki YANG Schema podłączonego routera. Można je znaleźć w $ODL_ROOT/cache/jun01_cache Sprawdzamy połączenie routera GET.

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

Utworzymy i login/hasło: admin/admin. Linia żądania:

  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 i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.

Wysyłamy. Powinienem otrzymać status "200 OK" oraz listę wszystkich obsługiwanych urządzeniem. $ODL_ROOT/cache/jun01_cache:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Komentarz: Aby zobaczyć najnowsze, w moim przypadku musiałem poczekać około 10 minut po wykonaniu. Żądanie PUT:, aż wszystko YANG sсhema wyeksportowane na i dlaczego będzie nam potrzebna. Do tego momentu podczas wykonywania tego i login/hasło: admin/admin. żądania zostanie wyświetlone następujące:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Usuwamy router

Utworzymy USUŃ Linia żądania:

  1. PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
    USUŃ http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Basic Auth i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.

Część 6: Zmieniamy konfigurację routera

Pobieramy konfigurację

Utworzymy i login/hasło: admin/admin. Linia żądania:

  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 i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.

Wysyłamy. Powinienem otrzymać status "200 OK" oraz konfigurację routera:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Tworzymy konfigurację

Jako przykład utworzymy następującą konfigurację i ją zmodyfikujemy:

protokóły {
    bgp {
        wyłącz;
        zamknij;
    }
}

Utworzymy POST Linia żądania:

  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:protokóły
  2. jun01 172.17.0.2 22 vrnetlab VR-netlab9 false jun01_cache
  3. Basic Auth i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.
  4. Accept application/xml
    • Content-Type application/xml
    • Nasze żądanie zostało utworzone. Wysyłamy. Jeśli wszystko zostało poprawnie skonfigurowane, powinniśmy otrzymać status "201 Created":

Po wysłaniu powinienem otrzymać status "204 Brak zawartości".

Aby sprawdzić, czy konfiguracja się zmieniła, można skorzystać z poprzedniego żądania. Ale dla przykładu utworzymy jeszcze jedno, które wyświetli nam informacje tylko o skonfigurowanych na routerze protokołach.

Utworzymy i login/hasło: admin/admin. Linia żądania:

  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:protokóły
  2. Basic Auth i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.

Po wykonaniu żądania zobaczymy następujące:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Zmiana konfiguracji

Zmienimy informacje o protokole BGP. Po naszych modyfikacjach będzie wyglądać to następująco:

protokóły {
    bgp {
        wyłącz;
    }
}

Utworzymy Żądanie PUT: Linia żądania:

  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:protokóły
  2. jun01 172.17.0.2 22 vrnetlab VR-netlab9 false jun01_cache
  3. Basic Auth i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.
  4. Accept application/xml
    • Content-Type application/xml
    • Nasze żądanie zostało utworzone. Wysyłamy. Jeśli wszystko zostało poprawnie skonfigurowane, powinniśmy otrzymać status "201 Created":

Korzystając z poprzedniego i login/hasło: admin/admin. żądania, widzimy zmiany:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Usuwamy konfigurację

Utworzymy USUŃ Linia żądania:

  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/yang-ext:mount/junos-conf-root:configuration/junos-conf-protocols:protokóły
  2. Basic Auth i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.

Przy wywołaniu i login/hasło: admin/admin. żądania z informacjami o protokołach zobaczymy następujące:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Uzupełnienie:

Aby zmienić konfigurację, nie trzeba wysyłać ciała żądania w formacie XML. Można to zrobić także w formacie YANG.

Na przykład w żądaniu Żądanie PUT: zmiany konfiguracji zmienimy ciało żądania na:

{
    "junos-conf-protocols:protokóły": {
        "bgp": {
            "opis" : "Zmienione w postmanie" 
        }
    }
}

Nie zapomnij zmienić nagłówków na zakładce Headers na:

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

Po wysłaniu otrzymamy następujący wynik (sprawdź odpowiedź używając i login/hasło: admin/admin. żądania):

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Część 7: dodajemy Cisco xRV9000

Co my ciągle o Juniperze, o Juniperze? Porozmawiajmy o Cisco!
Mam xRV9000 w wersji 7.0.2 (potwór, który potrzebuje 8GB RAM i 4 rdzenie. Nie jest dostępny w otwartej sprzedaży, więc proszę o kontakt w Cisco) — to uruchomimy.

Uruchamianie kontenera

Proces tworzenia kontenera Docker praktycznie nie różni się od Junipera. Podobnie, wrzucamy plik .qcow2 z routerem do katalogu, który odpowiada jego nazwie (w tym przypadku xrv9k) i wykonujemy polecenie make docker-image.

Za kilka minut widzimy, że obraz został utworzony:

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

Uruchamiamy kontener:

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

Po chwili sprawdzamy, że kontener się uruchomił:

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

Łączymy się przez ssh:

ubuntu@ubuntu:~$ ssh vrnetlab@172.17.0.2
Hasło:

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.

Informacje o budowie:
 Stworzone przez     : ahoang
 Stworzone w     : Fri Mar 13 22:27:54 PDT 2020
 Host budowy   : iox-ucs-029
 Workspace    : \/auto\/srcarchive15\/prod\/7.0.2\/xrv9k\/ws
 Wersja      : 7.0.2
 Lokalizacja     : \/opt\/cisco\/XR\/packages\/\n Etykieta        : 7.0.2

cisco IOS-XRv 9000 () procesor
Czas pracy systemu wynosi 3 godziny 22 minuty

Podłączamy router do OpenDaylight

Dodanie przebiega zupełnie analogicznie do obrazu vMX. Trzeba tylko zmienić nazwy.
Żądanie PUT: Linia żądania:
Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Po chwili wywołujemy i login/hasło: admin/admin. żądanie, aby sprawdzić, że wszystko się podłączyło:
Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Zmiana konfiguracji

Skonfigurujemy następującą konfigurację:

!
router ospf LAB
 mpls ldp auto-config
!

Utworzymy POST Linia żądania:

  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 i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.
  4. Accept application/xml
    • Accept application/json
    • Content-Type application/json

Po jego wykonaniu powinniśmy otrzymać status "204 No Content".

Sprawdźmy, co osiągnęliśmy.
W tym celu stworzymy i login/hasło: admin/admin. Linia żądania:

  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 i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.

Po wykonaniu powinieneś zobaczyć następujące:

Automatyzacja usług sieciowych, czyli jak stworzyć wirtualne laboratorium przy użyciu OpenDaylight, Postman i Vrnetlab

Do usunięcia konfiguracji używamy USUŃ:

  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 i login/hasło: admin/admin. Jest to wymagane do uzyskania dostępu do ODL: i login/hasło: admin/admin.

Podsumowanie

Jak mogłeś zauważyć, procedury podłączania Cisco i Juniper do OpenDaylight nie różnią się - otwiera to dość szeroką przestrzeń dla kreatywności. Od zarządzania konfiguracjami wszystkich komponentów sieci, po tworzenie własnych polityk sieciowych.
W tym poradniku przedstawiłem najprostsze przykłady tego, jak można współpracować z urządzeniami sieciowymi za pomocą OpenDaylight. Bez wątpienia zapytania z przedstawionych przykładów można znacznie skomplikować i konfigurować całe usługi jednym kliknięciem – wszystko ograniczone jest tylko twoją wyobraźnią.

Ciąg dalszy nastąpi…

P.S.

Jeśli przypadkiem już to wszystko wiesz lub przeciwnie, przeszedłeś przez to i OpenDaylight ci się spodobał, to polecam przyjrzeć się rozwijaniu aplikacji na kontrolerze ODL. Możesz zacząć stąd.

Udanych eksperymentów!

Bibliografia

  1. Vrnetlab: Emuluj sieci za pomocą KVM i Dockera / Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet i in.
  3. Programowalność sieci z YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Ucz się XML, drugie wydanie / Erik T. Ray
  5. Skuteczny DevOps / Jennifer Davis, Ryn Daniels

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster