ProHoster > Blog > Stjórnsýsla > Sjálfvirkni netþjónustu eða hvernig á að byggja upp sýndarrannsóknarstofu með OpenDaylight, Postman og Vrnetlab
Sjálfvirkni netþjónustu eða hvernig á að byggja upp sýndarrannsóknarstofu með OpenDaylight, Postman og Vrnetlab
Í þessari grein mun ég sýna þér hvernig á að setja upp Opið Dagsljós að vinna með netbúnað, og einnig sýna hvernig á að nota Póstþjónn og einfalt RESTCONF beiðnir, er hægt að stjórna þessum búnaði. Við munum ekki vinna með vélbúnað, en í staðinn munum við setja upp litlar sýndarrannsóknarstofur með einum beini sem notar Vnetlab yfir 20.04 Ubuntu LTS.
Ég mun sýna nákvæmar stillingar fyrst með því að nota dæmi um leið Juniper vMX 20.1R1.11, og svo berum við það saman við stillinguna Cisco xRV9000 7.0.2.
efni
Nauðsynleg þekking
Часть 1: ræða stuttlega OpenDaylight (hér eftir ODL), Póstþjónn и Vnetlab og hvers vegna þurfum við þá
Часть 2: lýsing á sýndarrannsóknarstofunni
Часть 3: sérsníða Opið Dagsljós
Часть 4: sérsníða Vnetlab
Часть 5: með því að nota Póstþjónn tengdu sýndarbeini (Juniper vMX) k ODL
Часть 6: fáðu og breyttu leiðarstillingunni með því að nota Póstþjónn и ODL
Часть 7: bæta við Cisco xRV9000
Ályktun
PS
Heimildaskrá
Nauðsynleg þekking
Til þess að greinin breytist ekki í blað sleppti ég nokkrum tæknilegum upplýsingum (með tenglum á bókmenntir þar sem þú getur lesið um þau).
Í þessu sambandi býð ég þér upp á efni sem gott væri (en nánast óþarft) að vita áður en þú lest:
Í okkar tilviki höfum við áhuga á því sem leið til að senda REST beiðnir til OpenDaylight API. Þú getur auðvitað sent beiðnir handvirkt, en í Postman lítur allt mjög skýrt út og hentar okkar tilgangi fullkomlega.
Fyrir þá sem vilja grafa: mikið af þjálfunarefni hefur verið skrifað á það (til dæmis).
Tól til að dreifa sýndarbeini í Docker
Styður: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, osfrv.
Open Source
Mjög áhugavert en lítt þekkt hljóðfæri. Í okkar tilviki munum við nota það til að keyra Juniper vMX og Cisco xRV9000 á venjulegum Ubuntu 20.04 LTS.
Í þessari kennslu munum við setja upp eftirfarandi kerfi:
Hvernig virkar þetta
Juniper vMX rís inn Docker ílát (með tilliti Vnetlab) og virkar sem algengasti sýndarbeini.
ODL tengdur við routerinn og gerir þér kleift að stjórna honum.
Póstþjónn ræst á sérstakri vél og í gegnum hana sendum við skipanir ODL: til að tengja / fjarlægja beininn, breyta stillingum osfrv.
Umsögn um tæki kerfisins
Juniper vMX и ODL krefjast töluverðs fjármagns fyrir stöðugan rekstur þeirra. Aðeins einn vMX biður um 6 Gb af vinnsluminni og 4 kjarna. Þess vegna var ákveðið að færa öll "þungavigtin" í sérstaka vél (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Beininn „flýgur“ auðvitað ekki á honum, en afköstin duga fyrir litlar tilraunir.
Hluti 3: Settu upp OpenDaylight
Núverandi útgáfa af ODL þegar þetta er skrifað er Magnesium SR1
1) Settu upp Java Open JDK 11 (fyrir nánari uppsetningu hér)
ubuntu:~$ sudo apt install default-jdk
2) Finndu og halaðu niður nýjustu byggingunni ODLþess vegna
3) Taktu niður hlaðið skjalasafn
4) Farðu í möppuna sem myndast
5) Ræsa ./bin/karaf
Á þessu skrefi ODL ætti að byrja og við munum finna okkur í stjórnborðinu (Port 8181 er notað fyrir aðgang að utan, sem við munum nota síðar).
Næst skaltu setja upp ODL eiginleikarhannað til að vinna með samskiptareglum NETCONF и RESTCONF. Til að gera þetta í stjórnborðinu ODL við framkvæmum:
Hver leið sem er studdur Vnetlab, hefur sína eigin einstöku uppsetningaraðferð. Hvenær Juniper vMX við þurfum bara að hlaða upp .tgz skjalasafninu með routernum (þú getur halað því niður frá opinbera síða) í vmx skrána og keyrðu skipunina make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Að byggja upp ímynd vMX mun taka um 10-20 mínútur. Það er kominn tími til að fara að fá sér kaffi!
"Þetta er vegna þess að í fyrsta skipti sem VCP (Control Plane) er ræst, les það stillingarskrá sem ákvarðar hvort það mun keyra sem VRR VCP í vMX. Áður var þetta ræst við ræsingu Docker, en þetta þýddi að VCP var alltaf endurræst einu sinni áður en sýndarleiðin varð tiltæk, sem leiddi til langan ræsingartíma (um það bil 5 mínútur) Nú er fyrsta keyrsla á VCP gerð meðan á byggingu Docker myndarinnar stendur, og þar sem Docker byggingu er ekki hægt að keyra með - -forréttindavalkostur, þetta þýðir að qemu virkar án KVM vélbúnaðarhröðunar og þar með tekur byggingin mjög langan tíma.Á meðan á þessu ferli stendur eru mikið af annálum framleitt, svo að minnsta kosti geturðu séð hvað er í gangi.Ég held að það sé löng bygging er ekki svo skelfilegt vegna þess að við búum til ímynd einu sinni, en við hleypum mörgum af stað.“
Eftir að þú getur séð myndina af leiðinni okkar í 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
Ræstu vr-vmx ílát
Við byrjum á skipuninni:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Næst getum við séð upplýsingar um virka ílát:
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
Tengist við beini
Hægt er að fá IP tölu netviðmóts beinisins með eftirfarandi skipun:
Sjálfgefið, Vnetlab býr til notanda á beini vrnetlab/VR-netlab9.
Tengist við 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
Þetta lýkur uppsetningu routersins.
Ráðleggingar um uppsetningu fyrir beina frá ýmsum söluaðilum má finna á github verkefni í viðkomandi möppum.
Part 5: Postman - tengdu beininn við OpenDaylight
Uppsetning póstmanns
Til að setja upp skaltu bara hlaða niður forritinu þess vegna.
Að tengja bein við ODL
Við skulum búa til PUT beiðni:
Fyrirspurnarstrengur:
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
Þetta eru innri nafnarými XML (XML nafnrými) fyrir ODL samkvæmt því sem það býr til hnút.
Ennfremur, í sömu röð, er nafn beinisins hnút-auðkenni, heimilisfang leiðar - gestgjafi og svo framvegis.
Áhugaverðasta línan er sú síðasta. Skema-skyndiminni-skrá býr til möppu þar sem öllum skrám er hlaðið niður YANG kerfi tengdur beini. Þú getur fundið þá í $ODL_ROOT/cache/jun01_cache.
Athugar tenginguna á beini
Við skulum búa til FÁ beiðni:
Fyrirspurnarstrengur:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Á heimildaflipanum verður þú að stilla færibreytuna Basic Auth og innskráningu/lykilorð: admin/admin.
Við sendum. Ætti að fá stöðuna "200 OK" og lista yfir allt sem tækið styður YANG kerfi:
Athugasemd: Til að sjá hið síðarnefnda þurfti í mínu tilfelli að bíða í um 10 mínútur eftir aftöku PUTþangað til allt YANG skema afferma á ODL. Hingað til, þegar þetta er framkvæmt FÁ fyrirspurn mun sýna eftirfarandi:
Á heimildaflipanum verður þú að stilla færibreytuna Basic Auth og innskráningu/lykilorð: admin/admin.
Hluti 6: Breyttu stillingum beinisins
Að sækja stillingar
Við skulum búa til FÁ beiðni:
Fyrirspurnarstrengur:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Á heimildaflipanum verður þú að stilla færibreytuna Basic Auth og innskráningu/lykilorð: admin/admin.
Við sendum. Ætti að fá stöðuna "200 OK" og stillingar beinisins:
Búðu til stillingar
Sem dæmi skulum við búa til eftirfarandi uppsetningu og breyta henni:
protocols {
bgp {
disable;
shutdown;
}
}
Við skulum búa til POST beiðni:
Fyrirspurnarstrengur:
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
Á heimildaflipanum verður þú að stilla færibreytuna Basic Auth og innskráningu/lykilorð: admin/admin.
Á flipanum Hausar þarftu að bæta við tveimur hausum:
Samþykkja umsókn/xml
Content-Type forrit/xml
Eftir sendingu ættu þeir að fá stöðuna „204 Ekkert efni“
Til að athuga hvort uppsetningin hafi breyst geturðu notað fyrri fyrirspurn. En til dæmis munum við búa til annan sem sýnir aðeins upplýsingar um samskiptareglur sem eru stilltar á leiðinni.
Við skulum búa til FÁ beiðni:
Fyrirspurnarstrengur:
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
Á heimildaflipanum verður þú að stilla færibreytuna Basic Auth og innskráningu/lykilorð: admin/admin.
Eftir að hafa framkvæmt beiðnina munum við sjá eftirfarandi:
Breyttu uppsetningunni
Við skulum breyta upplýsingum um BGP siðareglur. Eftir aðgerðir okkar mun það líta svona út:
protocols {
bgp {
disable;
}
}
Við skulum búa til PUT beiðni:
Fyrirspurnarstrengur:
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
Ekki gleyma að breyta hausunum á Headers flipanum í:
Samþykkja umsókn/json
Content-Type forrit/json
Eftir sendingu munum við fá eftirfarandi niðurstöðu (Við skoðum svarið með því að nota FÁ beiðni):
Hluti 7: Bæta við Cisco xRV9000
Hvað erum við öll um Juniper, já Juniper? Við skulum tala um Cisco!
Ég fann xRV9000 útgáfu 7.0.2 (dýr sem þarf 8Gb vinnsluminni og 4 kjarna. Það er ekki ókeypis, svo hafðu samband Cisco) - við skulum keyra það.
Að keyra gám
Ferlið við að búa til Docker ílát er nánast ekkert frábrugðið Juniper. Á sama hátt sleppum við .qcow2 skránni með beininum í möppuna sem samsvarar nafni hennar (í þessu tilviki, xrv9k) og framkvæmum skipunina make docker-image.
Eftir nokkrar mínútur sjáum við að myndin hefur verið búin til:
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ð byrjum ílátið:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Eftir smá stund lítum við út fyrir að gámurinn hafi byrjað:
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
Tengstu í gegnum 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
Að tengja beininn við OpenDaylight
Bæting á sér stað á alveg svipaðan hátt með vMX. Við þurfum bara að breyta nöfnunum. PUT beiðni:
Hringdu eftir smá stund FÁ fyrirspurn til að athuga hvort allt sé tengt:
Breyttu uppsetningunni
Við skulum setja upp eftirfarandi uppsetningu:
!
router ospf LAB
mpls ldp auto-config
!
Við skulum búa til POST beiðni:
Fyrirspurnarstrengur:
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
Á heimildaflipanum verður þú að stilla færibreytuna Basic Auth og innskráningu/lykilorð: admin/admin.
Á flipanum Hausar þarftu að bæta við tveimur hausum:
Samþykkja umsókn/json
Content-Type forrit/json
Eftir framkvæmd hennar ættu þeir að fá stöðuna „204 Ekkert efni“.
Við skulum athuga hvað við fengum.
Til að gera þetta munum við búa til FÁ beiðni:
Fyrirspurnarstrengur:
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
Á heimildaflipanum verður þú að stilla færibreytuna Basic Auth og innskráningu/lykilorð: admin/admin.
Á heimildaflipanum verður þú að stilla færibreytuna Basic Auth og innskráningu/lykilorð: admin/admin.
Ályktun
Á heildina litið, eins og þú hefur kannski tekið eftir, eru verklagsreglur við að tengja Cisco og Juniper við OpenDaylight ekki frábrugðnar - þetta opnar nokkuð mikið svigrúm fyrir sköpunargáfu. Byrjar á stillingarstjórnun allra netþátta og endar með því að búa til þínar eigin netstefnur.
Í þessari kennslu hef ég gefið einföldustu dæmin um hvernig þú getur haft samskipti við netbúnað með því að nota OpenDaylight. Án efa er hægt að gera fyrirspurnirnar úr dæmunum hér að ofan miklu flóknari og setja upp heila þjónustu með einum músarsmelli - allt takmarkast aðeins af ímyndunarafli þínu *
Til að halda áfram ...
PS
Ef þú skyndilega veist allt þetta nú þegar eða hefur þvert á móti farið í gegnum og sokkið í sál ODL, þá mæli ég með því að leita að því að þróa forrit á ODL stjórnandi. Þú getur byrjað þess vegna.