ProHoster > blog > Gweinyddiaeth > Awtomeiddio gwasanaethau rhwydwaith neu sut i adeiladu labordy rhithwir gan ddefnyddio OpenDaylight, Postman a Vrnetlab
Awtomeiddio gwasanaethau rhwydwaith neu sut i adeiladu labordy rhithwir gan ddefnyddio OpenDaylight, Postman a Vrnetlab
Yn yr erthygl hon, byddaf yn dangos i chi sut i sefydlu Golau Dydd Agored gweithio gydag offer rhwydwaith, a hefyd dangos sut i ddefnyddio Postmon ac yn syml RESTCONF ceisiadau, gellir rheoli offer hwn. Ni fyddwn yn gweithio gyda chaledwedd, ond yn hytrach byddwn yn defnyddio labordai rhithwir bach gydag un llwybrydd yn ei ddefnyddio Vrnetlab drosodd Ubuntu LTS 20.04.
Byddaf yn dangos y gosodiadau manwl yn gyntaf gan ddefnyddio'r enghraifft o lwybrydd Juniper vMX 20.1R1.11, ac yna rydym yn ei gymharu â'r gosodiad Cisco xRV9000 7.0.2.
Cynnwys
Gwybodaeth ofynnol
Rhan 1: trafod yn fyr OpenDaylight (o hyn ymlaen ODL), Postmon и Vrnetlab a pham mae eu hangen arnom
Rhan 2: disgrifiad o'r labordy rhithwir
Rhan 3: addasu Golau Dydd Agored
Rhan 4: addasu Vrnetlab
Rhan 5: trwy ddefnyddio Postmon cysylltu llwybrydd rhithwir (Juniper vMX) i ODL
Rhan 6: cael a newid y ffurfweddiad llwybrydd gan ddefnyddio Postmon и ODL
Rhan 7: ychwanegu Cisco xRV9000
Casgliad
PS
Llyfryddiaeth
Gwybodaeth ofynnol
Er mwyn i'r erthygl beidio â throi'n ddalen, fe wnes i hepgor rhai manylion technegol (gyda dolenni i lenyddiaeth lle gallwch chi ddarllen amdanyn nhw).
Yn y cyswllt hwn, rwy'n cynnig pynciau i chi y byddai'n dda (ond bron ddim yn angenrheidiol) eu gwybod cyn darllen:
Yn ein hachos ni, mae gennym ddiddordeb ynddo fel modd o anfon ceisiadau REST i'r OpenDaylight API. Gallwch, wrth gwrs, anfon ceisiadau â llaw, ond yn Postman mae popeth yn edrych yn glir iawn ac yn gweddu i'n dibenion yn berffaith.
I'r rhai sydd eisiau cloddio: mae llawer o ddeunyddiau hyfforddi wedi'u hysgrifennu arno (er enghraifft,).
Offeryn ar gyfer defnyddio llwybryddion rhithwir yn Docker
Yn cefnogi: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ac ati.
Ffynhonnell Agored
Offeryn diddorol iawn ond ychydig yn hysbys. Yn ein hachos ni, byddwn yn ei ddefnyddio i redeg Juniper vMX a Cisco xRV9000 ar Ubuntu 20.04 LTS rheolaidd.
Yn y tiwtorial hwn, byddwn yn sefydlu'r system ganlynol:
Sut mae hwn
Juniper vMX yn codi i mewn Docker cynhwysydd (trwy gyfrwng Vrnetlab) ac yn gweithredu fel y llwybrydd rhithwir mwyaf cyffredin.
ODL wedi'i gysylltu â'r llwybrydd ac yn caniatáu ichi ei reoli.
Postmon ei lansio ar beiriant ar wahân a thrwyddo rydym yn anfon gorchmynion ODL: i gysylltu / dileu'r llwybrydd, newid y ffurfweddiad, ac ati.
Sylwebaeth ar ddyfais y system
Juniper vMX и ODL angen cryn dipyn o adnoddau ar gyfer eu gweithrediad sefydlog. Un yn unig vMX yn gofyn am 6 Gb o RAM a 4 craidd. Felly, penderfynwyd symud yr holl "bwysau trwm" i beiriant ar wahân (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Nid yw'r llwybrydd, wrth gwrs, yn "hedfan" arno, ond mae'r perfformiad yn ddigon ar gyfer arbrofion bach.
Rhan 3: Sefydlu OpenDaylight
Y fersiwn gyfredol o ODL ar adeg ysgrifennu hwn yw Magnesium SR1
1) Gosod Java Agored JDK 11 (ar gyfer gosodiad manylach yma)
ubuntu:~$ sudo apt install default-jdk
2) Dewch o hyd i'r adeilad diweddaraf a'i lawrlwytho ODLfelly
3) Dadsipio'r archif wedi'i lawrlwytho
4) Ewch i'r cyfeiriadur canlyniadol
5) Lansio ./bin/karaf
Ar y cam hwn ODL Dylai ddechrau a byddwn yn cael ein hunain yn y consol (defnyddir Port 8181 ar gyfer mynediad o'r tu allan, y byddwn yn ei ddefnyddio yn nes ymlaen).
Nesaf, gosodwch Nodweddion ODLwedi'i gynllunio i weithio gyda phrotocolau NETCONF и RESTCONF. I wneud hyn yn y consol ODL rydym yn gweithredu:
Pob llwybrydd a gefnogir Vrnetlab, wedi ei weithdrefn setup unigryw ei hun. Pryd Juniper vMX Mae angen i ni uwchlwytho'r archif .tgz gyda'r llwybrydd (gallwch ei lawrlwytho o safle swyddogol) i'r cyfeiriadur vmx a rhedeg y gorchymyn make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Adeiladu delwedd vMX bydd yn cymryd tua 10-20 munud. Mae'n amser mynd i gael coffi!
"Mae hyn oherwydd y tro cyntaf i'r VCP (Control Plane) gael ei gychwyn, mae'n darllen ffeil config sy'n penderfynu a fydd yn rhedeg fel VCP VRR yn vMX. Yn flaenorol, gwnaed y lansiad hwn yn ystod cychwyn Docker, ond roedd hyn yn golygu bod y VCP Roedd bob amser yn ailgychwyn unwaith cyn i'r llwybrydd rhithwir ddod ar gael, gan arwain at amser cychwyn hir (tua 5 munud) Nawr mae rhediad cyntaf y VCP yn cael ei wneud yn ystod adeiladu delwedd y Dociwr, a chan na ellir rhedeg adeiladwaith y Docker gyda'r - -breintiedig opsiwn, mae hyn yn golygu bod qemu yn gweithio heb cyflymiad caledwedd KVM ac felly mae'r adeiladu yn cymryd amser hir iawn.Yn ystod y broses hon, mae llawer o logiau yn allbwn, felly o leiaf gallwch weld beth sy'n mynd ymlaen. Rwy'n meddwl adeiladu hir nid yw mor frawychus oherwydd ein bod yn creu delwedd unwaith, ond rydym yn lansio llawer."
Ar ôl gallwch weld delwedd ein llwybrydd yn 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
Lansio cynhwysydd vr-vmx
Rydym yn dechrau gyda'r gorchymyn:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Nesaf, gallwn weld gwybodaeth am gynwysyddion gweithredol:
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
Cysylltu â'r llwybrydd
Gellir cael cyfeiriad IP rhyngwyneb rhwydwaith y llwybrydd gyda'r gorchymyn canlynol:
Rhagosodiad, Vrnetlab yn creu defnyddiwr ar y llwybrydd vrnetlab/VR-netlab9.
Yn cysylltu â 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
Mae hyn yn cwblhau gosodiad y llwybrydd.
Gellir dod o hyd i argymhellion gosod ar gyfer llwybryddion amrywiol werthwyr yn prosiect github yn y cyfeirlyfrau priodol.
Rhan 5: Postmon - cysylltwch y llwybrydd i OpenDaylight
Mae'r rhain yn ofodau enwau mewnol XML (gofod enw XML) ar gyfer ODL yn ol pa un y mae yn creu nôd.
Ymhellach, yn y drefn honno, enw'r llwybrydd yw nôd-id, cyfeiriad llwybrydd - llu ac yn y blaen.
Y llinell fwyaf diddorol yw'r olaf. Sgema-cache-cyfeiriadur yn creu cyfeiriadur lle mae pob ffeil yn cael ei lawrlwytho Sgema YANG llwybrydd cysylltiedig. Gallwch ddod o hyd iddynt yn $ODL_ROOT/cache/jun01_cache.
Gwirio cysylltiad y llwybrydd
Gadewch i ni greu GET cais:
Llinyn ymholiad:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Ar y tab Awdurdodi, rhaid i chi osod y paramedr Basic Auth a mewngofnodi/cyfrinair: admin/admin.
Rydym yn anfon. Dylai dderbyn statws o "200 OK" a rhestr o'r holl gefnogi gan y ddyfais Sgema YANG:
Sylw: I weld yr olaf, yn fy achos i roedd angen aros tua 10 munud ar ôl y dienyddiad RHOItan y cwbl sgema Yang dadlwytho ymlaen ODL. Hyd at y pwynt hwn, wrth berfformio hyn GET bydd yr ymholiad yn dangos y canlynol:
Ar y tab Awdurdodi, rhaid i chi osod y paramedr Basic Auth a mewngofnodi/cyfrinair: admin/admin.
Rhan 6: Newid cyfluniad y llwybrydd
Cael y cyfluniad
Gadewch i ni greu GET cais:
Llinyn ymholiad:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Ar y tab Awdurdodi, rhaid i chi osod y paramedr Basic Auth a mewngofnodi/cyfrinair: admin/admin.
Rydym yn anfon. Dylai dderbyn y statws "200 OK" a chyfluniad y llwybrydd:
Creu cyfluniad
Er enghraifft, gadewch i ni greu'r cyfluniad canlynol a'i addasu:
protocols {
bgp {
disable;
shutdown;
}
}
Gadewch i ni greu SWYDD cais:
Llinyn ymholiad:
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
Ar y tab Awdurdodi, rhaid i chi osod y paramedr Basic Auth a mewngofnodi/cyfrinair: admin/admin.
Ar y tab Penawdau, mae angen ichi ychwanegu dau bennawd:
Derbyn cais/xml
Cais Math o Gynnwys/xml
Ar ôl anfon, dylent dderbyn y statws "204 Dim Cynnwys"
I wirio bod y ffurfweddiad wedi newid, gallwch ddefnyddio'r ymholiad blaenorol. Ond er enghraifft, byddwn yn creu un arall a fydd yn dangos gwybodaeth yn unig am y protocolau sydd wedi'u ffurfweddu ar y llwybrydd.
Gadewch i ni greu GET cais:
Llinyn ymholiad:
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
Ar y tab Awdurdodi, rhaid i chi osod y paramedr Basic Auth a mewngofnodi/cyfrinair: admin/admin.
Ar ôl gweithredu'r cais, byddwn yn gweld y canlynol:
Newidiwch y cyfluniad
Gadewch i ni newid y wybodaeth am y protocol BGP. Ar ôl ein gweithredoedd, bydd yn edrych fel hyn:
protocols {
bgp {
disable;
}
}
Gadewch i ni greu RHOI cais:
Llinyn ymholiad:
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
Peidiwch ag anghofio newid y penawdau ar y tab Penawdau i:
Derbyn cais/json
Cais Math o Gynnwys/json
Ar ôl anfon, byddwn yn cael y canlyniad canlynol (Rydym yn edrych ar yr ateb gan ddefnyddio GET cais):
Rhan 7: Ychwanegu'r Cisco xRV9000
Beth ydyn ni i gyd am Juniper, ie Juniper? Gadewch i ni siarad am Cisco!
Deuthum o hyd i fersiwn xRV9000 7.0.2 (bwystfil sydd angen 8Gb RAM a 4 cores. Nid yw ar gael yn rhwydd, felly cysylltwch â Cisco) - gadewch i ni ei redeg.
Rhedeg cynhwysydd
Nid yw'r broses o greu cynhwysydd Docker bron yn wahanol i Juniper. Yn yr un modd, rydym yn gollwng y ffeil .qcow2 gyda'r llwybrydd i'r cyfeiriadur sy'n cyfateb i'w enw (yn yr achos hwn, xrv9k) a gweithredu'r gorchymyn make docker-image.
Ar ôl ychydig funudau, gwelwn fod y ddelwedd wedi'i chreu:
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
Rydyn ni'n cychwyn y cynhwysydd:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Ar ôl ychydig, rydym yn edrych bod y cynhwysydd wedi dechrau:
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
Cysylltwch trwy 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
Cysylltu'r llwybrydd i OpenDaylight
Mae adio yn digwydd mewn ffordd hollol debyg i vMX. Does ond angen i ni newid yr enwau. RHOI cais:
Galwch ar ôl ychydig GET ymholiad i wirio bod popeth wedi'i gysylltu:
Newidiwch y cyfluniad
Gadewch i ni sefydlu'r cyfluniad canlynol:
!
router ospf LAB
mpls ldp auto-config
!
Gadewch i ni greu SWYDD cais:
Llinyn ymholiad:
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
Ar y tab Awdurdodi, rhaid i chi osod y paramedr Basic Auth a mewngofnodi/cyfrinair: admin/admin.
Ar y tab Penawdau, mae angen ichi ychwanegu dau bennawd:
Derbyn cais/json
Cais Math o Gynnwys/json
Ar ôl ei weithredu, dylent dderbyn y statws "204 Dim Cynnwys".
Gadewch i ni wirio beth gawsom.
I wneud hyn, byddwn yn creu GET cais:
Llinyn ymholiad:
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
Ar y tab Awdurdodi, rhaid i chi osod y paramedr Basic Auth a mewngofnodi/cyfrinair: admin/admin.
Ar y tab Awdurdodi, rhaid i chi osod y paramedr Basic Auth a mewngofnodi/cyfrinair: admin/admin.
Casgliad
Yn gyfan gwbl, fel y gallech fod wedi sylwi, nid yw'r gweithdrefnau ar gyfer cysylltu Cisco a Juniper ag OpenDaylight yn wahanol - mae hyn yn agor cwmpas eithaf eang ar gyfer creadigrwydd. Gan ddechrau o reoli cyfluniad holl gydrannau'r rhwydwaith a gorffen gyda chreu eich polisïau rhwydwaith eich hun.
Yn y tiwtorial hwn, rwyf wedi rhoi'r enghreifftiau symlaf o sut y gallwch ryngweithio ag offer rhwydwaith gan ddefnyddio OpenDaylight. Heb amheuaeth, gellir gwneud yr ymholiadau o'r enghreifftiau uchod yn llawer mwy cymhleth a sefydlu gwasanaethau cyfan gydag un clic ar y llygoden - mae popeth wedi'i gyfyngu gan eich dychymyg yn unig *
I'w barhau…
PS
Os ydych chi'n sydyn yn gwybod hyn i gyd neu, i'r gwrthwyneb, wedi mynd drwodd ac wedi suddo i enaid ODL, yna rwy'n argymell edrych tuag at ddatblygu cymwysiadau ar y rheolydd ODL. Gallwch chi ddechrau felly.