Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

I den här artikeln kommer jag att visa dig hur du ställer in öppet dagsljus att arbeta med nätverksutrustning, och även visa hur man använder Postman och enkelt RESTCONF begäran kan denna utrustning styras. Vi kommer inte att arbeta med hårdvara, utan istället kommer vi att distribuera små virtuella laboratorier med en enda router som använder Vnetlab över Ubuntu LTS 20.04.

Jag kommer att visa de detaljerade inställningarna först med exemplet på en router Juniper vMX 20.1R1.11, och sedan jämför vi det med inställningen Cisco xRV9000 7.0.2.

Innehåll

  • Krävd kunskap
  • Часть 1: diskutera kort OpenDaylight (nedan ODL), Postman и Vnetlab och varför behöver vi dem
  • Часть 2: beskrivning av det virtuella laboratoriet
  • Часть 3: konfigurera öppet dagsljus
  • Часть 4: konfigurera Vnetlab
  • Часть 5: genom att använda Postman anslut virtuell router (Juniper vMX) Till ODL
  • Часть 6: hämta och ändra routerns konfiguration med Postman и ODL
  • Часть 7: lägg till Cisco xRV9000
  • Slutsats
  • PS
  • Bibliografi

Krävd kunskap

För att artikeln inte ska förvandlas till ett blad har jag utelämnat några tekniska detaljer (med länkar till litteratur där du kan läsa om dem).

I detta sammanhang erbjuder jag dig ämnen som det skulle vara bra (men nästan inte nödvändigt) att känna till innan du läser:

Del 1: lite teori

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

  • En öppen SDN-plattform för hantering och automatisering av alla typer av nätverk, med stöd av Linux Foundation
  • Java inuti
  • Baserat på modelldriven tjänstabstraktionsnivå (MD-SAL)
  • Använder YANG-modeller för att automatiskt generera RESTCONF API:er för nätverksenheter

Huvudmodulen för nätverkshantering. Det är genom den vi kommer att kommunicera med anslutna enheter. Hanteras genom sitt eget API.

Du kan läsa mer om OpenDaylight här.

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

  • API-testverktyg
  • Enkelt och lättanvänt gränssnitt

I vårt fall är vi intresserade av det som ett sätt att skicka REST-förfrågningar till OpenDaylight API. Du kan naturligtvis skicka förfrågningar manuellt, men i Postman ser allt väldigt tydligt ut och passar våra syften perfekt.

För den som vill gräva: mycket utbildningsmaterial har skrivits på den (exempelvis).

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

  • Verktyg för att distribuera virtuella routrar i Docker
  • Stöder: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, etc.
  • Open Source

Ett mycket intressant men föga känt instrument. I vårt fall kommer vi att använda den för att köra Juniper vMX och Cisco xRV9000 på en vanlig Ubuntu 20.04 LTS.

Du kan läsa mer om det på projektsida.

Del 2: Lab

I den här handledningen kommer vi att ställa in följande system:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Hur fungerar den här

  • Juniper vMX stiger in Hamnarbetare behållare (med hjälp av Vnetlab) och fungerar som den vanligaste virtuella routern.
  • ODL ansluten till routern och låter dig styra den.
  • Postman startas på en separat maskin och genom den skickar vi kommandon ODL: för att ansluta/ta bort routern, ändra konfigurationen etc.

Kommentar om systemets enhet

Juniper vMX и ODL kräver ganska mycket resurser för att de ska fungera stabilt. Bara en vMX ber om 6 Gb RAM och 4 kärnor. Därför beslutades det att flytta alla "tungviktarna" till en separat maskin (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Routern "flyger" förstås inte på den, men prestandan räcker för små experiment.

Del 3: Ställ in OpenDaylight

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Den nuvarande versionen av ODL när detta skrivs är Magnesium SR1

1) Installera Java Open JDK 11 (för mer detaljerad installation här)

ubuntu:~$ sudo apt install default-jdk

2) Hitta och ladda ner den senaste versionen ODL hence
3) Packa upp det nedladdade arkivet
4) Gå till den resulterande katalogen
5) Starta ./bin/karaf

I detta steg ODL bör starta och vi kommer att befinna oss i konsolen (Port 8181 används för åtkomst utifrån, vilket vi kommer att använda senare).

Installera sedan ODL-funktionerdesignad för att fungera med protokoll NETCONF и RESTCONF. För att göra detta i konsolen ODL vi kör:

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

Detta är den enklaste inställningen. ODL avslutad. (För mer information, se här).

Del 4: Konfigurera Vrnetlab

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Systemförberedelse

Innan installationen Vnetlab du måste installera de paket som krävs för dess drift. Till exempel Hamnarbetare, , 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

Installerar Vrnetlab

För installation Vnetlab klona motsvarande arkiv från github:

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

Gå till katalogen vnetlab:

ubuntu:~$ cd ~/vrnetlab

Här kan du se alla skript som behövs för att köras. Observera att en motsvarande katalog har skapats för varje typ av router:

ubuntu:~/vrnetlab$ ls
CODE_OF_CONDUCT.md  config-engine-lite        openwrt           vr-bgp
CONTRIBUTING.md     csr                       routeros          vr-xcon
LICENSE             git-lfs-repo.sh           sros              vrnetlab.sh
Makefile            makefile-install.include  topology-machine  vrp
README.md           makefile-sanity.include   veos              vsr1000
ci-builder-image    makefile.include          vmx               xrv
common              nxos                      vqfx              xrv9k

Skapa en bild av routern

Varje router som stöds Vnetlab, har sin egen unika installationsprocedur. När Juniper vMX vi behöver bara ladda upp .tgz-arkivet med routern (du kan ladda ner det från officiell plats) till vmx-katalogen och kör kommandot make:

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

Att bygga en bild vMX tar cirka 10-20 minuter. Det är dags att gå och dricka kaffe!

Varför så länge, frågar du?

översättning svar författare till denna fråga:

"Detta beror på att första gången VCP (Control Plane) startas läser den en konfigurationsfil som avgör om den kommer att köras som en VRR VCP i vMX. Tidigare gjordes denna lansering under Docker-starten, men detta innebar att VCP:n startades alltid om en gång innan den virtuella routern blev tillgänglig, vilket resulterade i en lång uppstartstid (ca 5 minuter) Nu görs den första körningen av VCP under byggandet av Docker-avbildningen, och eftersom Docker-bygget inte kan köras med - -privilegierad alternativ, detta betyder att qemu fungerar utan KVM-hårdvaruacceleration och därför tar bygget väldigt lång tid.Under denna process matas många loggar ut, så du kan åtminstone se vad som pågår.Jag tror att det är ett långt bygge är inte så skrämmande för att vi skapar en bild en gång, men vi lanserar många."

Efter att du kan se bilden av vår router i Hamnarbetare:

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

Starta vr-vmx-behållaren

Vi börjar med kommandot:

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

Därefter kan vi se information om aktiva behållare:

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

Ansluter till routern

IP-adressen för routerns nätverksgränssnitt kan erhållas med följande kommando:

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

Standard, Vnetlab skapar en användare på routern vrnetlab/VR-netlab9.
Ansluter med 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

Detta slutför routerinstallationen.

Installationsrekommendationer för routrar från olika leverantörer finns på github-projekt i respektive katalog.

Del 5: Postman - anslut routern till OpenDaylight

Postman installation

För att installera, ladda bara ner applikationen hence.

Ansluta en router till ODL

Låt oss skapa SÄTTA begäran:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

  1. Frågesträng:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Begäran text (brödfliken):
    <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. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin. Detta krävs för att komma åt ODL:
    Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab
  4. På fliken Rubriker måste du lägga till två rubriker:
    • Acceptera ansökan/xml
    • Content-Type application/xml

Vår begäran har gjorts. Vi skickar. Om allt var korrekt konfigurerat bör vi returnera statusen "201 Skapad":

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Vad gör denna begäran?

Vi skapar nod inuti ODL med parametrarna för den riktiga routern vi vill komma åt.

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

Dessa är interna namnutrymmen XML (XML-namnutrymme) För ODL enligt vilken den skapar nod.

Vidare är respektive namnet på routern nod-id, routeradress - värd och så vidare.

Den mest intressanta raden är den sista. Schema-cache-katalog skapar en katalog där alla filer laddas ner YANG Schema ansluten router. Du kan hitta dem i $ODL_ROOT/cache/jun01_cache.

Kontrollerar routerns anslutning

Låt oss skapa begäran:

  1. Frågesträng:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.

Vi skickar. Bör få statusen "200 OK" och en lista över alla som stöds av enheten YANG Schema:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Kommentar: För att se det senare var det i mitt fall nödvändigt att vänta cirka 10 minuter efter avrättningen SÄTTAtills alla YANG schema lossa på ODL. Fram till denna punkt, när du utför detta fråga kommer att visa följande:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Ta bort routern

Låt oss skapa RADERA begäran:

  1. Frågesträng:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.

Del 6: Ändra routerkonfigurationen

Hämta konfigurationen

Låt oss skapa begäran:

  1. Frågesträng:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.

Vi skickar. Bör få statusen "200 OK" och routerns konfiguration:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Skapa en konfiguration

Som ett exempel, låt oss skapa följande konfiguration och ändra den:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Låt oss skapa POST begäran:

  1. Frågesträng:
    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. Begäran text (brödfliken):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.
  4. På fliken Rubriker måste du lägga till två rubriker:
    • Acceptera ansökan/xml
    • Content-Type application/xml

Efter sändning bör de få statusen "204 Inget innehåll"

För att kontrollera att konfigurationen har ändrats kan du använda föregående fråga. Men till exempel kommer vi att skapa en annan som endast visar information om de protokoll som konfigurerats på routern.

Låt oss skapa begäran:

  1. Frågesträng:
    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. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.

Efter att ha utfört begäran kommer vi att se följande:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Ändra konfigurationen

Låt oss ändra informationen om BGP-protokollet. Efter våra handlingar kommer det att se ut så här:

protocols {
    bgp {
        disable;
    }
}

Låt oss skapa SÄTTA begäran:

  1. Frågesträng:
    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. Begäran text (brödfliken):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.
  4. På fliken Rubriker måste du lägga till två rubriker:
    • Acceptera ansökan/xml
    • Content-Type application/xml

Använder föregående begäran ser vi ändringarna:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Ta bort konfigurationen

Låt oss skapa RADERA begäran:

  1. Frågesträng:
    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. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.

När du ringer begäran med information om protokollen kommer vi att se följande:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Tillägg:

För att ändra konfigurationen är det inte nödvändigt att skicka förfrågningstexten i formatet XML. Detta kan också göras i formatet JSON.

För att göra detta, till exempel i frågan SÄTTA för att ändra konfigurationen ersätter du förfrågans text med:

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

Glöm inte att ändra rubrikerna på fliken Rubriker till:

  • Acceptera applikation/json
  • Content-Type application/json

Efter att ha skickat kommer vi att få följande resultat (Vi tittar på svaret med hjälp av begäran):

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Del 7: Lägga till Cisco xRV9000

Vad handlar vi om Juniper, ja Juniper? Låt oss prata om Cisco!
Jag hittade xRV9000 version 7.0.2 (en best som behöver 8Gb RAM och 4 kärnor. Den är inte fritt tillgänglig, så kontakta Cisco) - låt oss köra det.

Köra en container

Processen att skapa en Docker-behållare skiljer sig praktiskt taget inte från Juniper. På liknande sätt släpper vi .qcow2-filen med routern i katalogen som motsvarar dess namn (i det här fallet xrv9k) och kör kommandot make docker-image.

Efter några minuter ser vi att bilden har skapats:

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

Vi startar behållaren:

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

Efter ett tag ser vi att behållaren har startat:

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

Anslut via 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

Ansluter routern till OpenDaylight

Addering sker på ett helt liknande sätt med vMX. Vi behöver bara byta namn.
SÄTTA begäran:
Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Ring efter ett tag fråga för att kontrollera att allt är anslutet:
Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

Ändra konfigurationen

Låt oss ställa in följande konfiguration:

!
router ospf LAB
 mpls ldp auto-config
!

Låt oss skapa POST begäran:

  1. Frågesträng:
    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. Begäran text (brödfliken):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.
  4. På fliken Rubriker måste du lägga till två rubriker:
    • Acceptera applikation/json
    • Content-Type application/json

Efter dess körning bör de få statusen "204 Inget innehåll".

Låt oss kolla vad vi har.
För att göra detta kommer vi att skapa begäran:

  1. Frågesträng:
    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. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.

Efter körning bör du se följande:

Automatisering av nätverkstjänster eller hur man bygger ett virtuellt laboratorium med OpenDaylight, Postman och Vrnetlab

För att ta bort konfigurationen använd RADERA:

  1. Frågesträng:
    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. På fliken Auktorisering måste du ställa in parametern Basic Auth och inloggning/lösenord: admin/admin.

Slutsats

Totalt sett skiljer sig inte procedurerna för att ansluta Cisco och Juniper till OpenDaylight, som du kanske har märkt – detta öppnar upp för ett ganska stort utrymme för kreativitet. Börjar från konfigurationshantering av alla nätverkskomponenter och slutar med skapandet av dina egna nätverkspolicyer.
I den här handledningen har jag gett de enklaste exemplen på hur du kan interagera med nätverksutrustning med OpenDaylight. Utan tvekan kan frågorna från ovanstående exempel göras mycket mer komplexa och konfigurera hela tjänster med ett musklick - allt begränsas bara av din fantasi *

Fortsättning ...

PS

Om du plötsligt redan vet allt detta eller tvärtom har gått igenom och sjunkit in i ODLs själ, så rekommenderar jag att du ser till att utveckla applikationer på ODL-kontrollern. Du kan börja hence.

Lyckade experiment!

referenser

  1. Vrnetlab: Emulera nätverk med KVM och Docker /Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
  3. Nätverksprogrammerbarhet med YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Learning XML, andra upplagan / Erik T. Ray
  5. Effektiv DevOps / Jennifer Davis, Ryn Daniels

Källa: will.com

Lägg en kommentar