ProHoster > blog > Utawala > Uendeshaji wa huduma za mtandao otomatiki au jinsi ya kujenga maabara pepe kwa kutumia OpenDaylight, Postman na Vrnetlab
Uendeshaji wa huduma za mtandao otomatiki au jinsi ya kujenga maabara pepe kwa kutumia OpenDaylight, Postman na Vrnetlab
Katika makala hii, nitakuonyesha jinsi ya kuanzisha mwanga wa mchana kufanya kazi na vifaa vya mtandao, na pia kuonyesha jinsi ya kutumia Postman na rahisi RESTCONF maombi, vifaa hivi vinaweza kudhibitiwa. Hatutafanya kazi na maunzi, lakini badala yake tutapeleka maabara ndogo za mtandaoni kwa kutumia kipanga njia kimoja Vrnetlab juu Ubuntu 20.04 LTS.
Nitaonyesha mipangilio ya kina kwanza kwa kutumia mfano wa router Mreteni vMX 20.1R1.11, na kisha tunalinganisha na mpangilio Cisco xRV9000 7.0.2.
yaliyomo
Ujuzi unaohitajika
Sehemu ya 1: jadili kwa ufupi OpenDaylight (baadaye ODL), Postman и Vrnetlab na kwa nini tunazihitaji
Sehemu ya 2: maelezo ya maabara ya mtandaoni
Sehemu ya 3: Customize mwanga wa mchana
Sehemu ya 4: Customize Vrnetlab
Sehemu ya 5: kwa kutumia Postman unganisha kipanga njia halisi (Mreteni vMX) kwa ODL
Sehemu ya 6: pata na ubadilishe usanidi wa router kwa kutumia Postman и ODL
Sehemu ya 7: ongeza Cisco xRV9000
Hitimisho
PS
Bibliografia
Ujuzi unaohitajika
Ili nakala hiyo isigeuke kuwa karatasi, niliacha maelezo kadhaa ya kiufundi (pamoja na viungo vya fasihi ambapo unaweza kusoma juu yao).
Katika uhusiano huu, ninakupa mada ambazo itakuwa nzuri (lakini karibu sio lazima) kujua kabla ya kusoma:
Kwa upande wetu, tunavutiwa nayo kama njia ya kutuma maombi ya REST kwa API ya OpenDaylight. Unaweza, bila shaka, kutuma maombi kwa mikono, lakini katika Postman kila kitu kinaonekana wazi sana na kinafaa madhumuni yetu kikamilifu.
Kwa wale ambao wanataka kuchimba: vifaa vingi vya mafunzo vimeandikwa juu yake (kwa mfano).
Zana ya kupeleka ruta pepe kwenye Docker
Inasaidia: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, nk.
Open Source
Chombo cha kuvutia sana lakini kinachojulikana kidogo. Kwa upande wetu, tutaitumia kuendesha Juniper vMX na Cisco xRV9000 kwenye Ubuntu 20.04 LTS ya kawaida.
Mreteni vMX hupanda ndani Docker chombo (kwa njia Vrnetlab) na hufanya kazi kama kipanga njia pepe cha kawaida.
ODL imeunganishwa kwenye kipanga njia na hukuruhusu kuidhibiti.
Postman ilizinduliwa kwenye mashine tofauti na kwa njia hiyo tunatuma amri ODL: kuunganisha / kuondoa router, kubadilisha usanidi, nk.
Maoni juu ya kifaa cha mfumo
Mreteni vMX и ODL zinahitaji rasilimali nyingi kwa operesheni yao thabiti. Moja pekee vMX inauliza 6 Gb ya RAM na cores 4. Kwa hivyo, iliamuliwa kuhamisha "vizito" vyote kwa mashine tofauti (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS) Router, bila shaka, haina "kuruka" juu yake, lakini utendaji ni wa kutosha kwa majaribio madogo.
Sehemu ya 3: Sanidi OpenDaylight
Toleo la sasa la ODL wakati wa uandishi huu ni Magnesium SR1
1) Sakinisha Java Fungua JDK 11 (kwa usakinishaji wa kina zaidi hapa)
ubuntu:~$ sudo apt install default-jdk
2) Tafuta na upakue muundo wa hivi karibuni ODLhivyo
3) Fungua kumbukumbu iliyopakuliwa
4) Nenda kwenye saraka inayosababisha
5) Uzinduzi ./bin/karaf
Katika hatua hii ODL inapaswa kuanza na tutajikuta kwenye koni (Port 8181 inatumika kwa ufikiaji kutoka nje, ambayo tutatumia baadaye).
Ifuatayo, sakinisha Vipengele vya ODLiliyoundwa kufanya kazi na itifaki NETCONF и RESTCONF. Ili kufanya hivyo katika console ODL tunatekeleza:
Kila kipanga njia kinachoungwa mkono Vrnetlab, ina utaratibu wake wa kipekee wa usanidi. Lini Mreteni vMX tunahitaji tu kupakia kumbukumbu ya .tgz na kipanga njia (unaweza kuipakua kutoka tovuti rasmi) kwenye saraka ya vmx na uendesha amri make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Kujenga picha vMX itachukua kama dakika 10-20. Ni wakati wa kwenda kuchukua kahawa!
"Hii ni kwa sababu mara ya kwanza VCP (Ndege ya Kudhibiti) inapoanzishwa, inasoma faili ya usanidi ambayo huamua ikiwa itafanya kazi kama VRR VCP katika vMX. Hapo awali, uzinduzi huu ulifanyika wakati wa kuanzisha Docker, lakini hii ilimaanisha kwamba VCP ilianzishwa tena mara moja kabla ya kipanga njia cha kawaida kupatikana, na kusababisha muda mrefu wa boot (kama dakika 5) Sasa kukimbia kwa kwanza kwa VCP hufanywa wakati wa ujenzi wa picha ya Docker, na kwa kuwa ujenzi wa Docker hauwezi kuendeshwa na - -chaguo la upendeleo, hii inamaanisha kuwa qemu inafanya kazi bila kuongeza kasi ya vifaa vya KVM na kwa hivyo ujenzi huchukua muda mrefu sana. Wakati wa mchakato huu magogo mengi hutolewa, kwa hivyo angalau unaweza kuona kinachoendelea.Nadhani ujenzi wa muda mrefu ni sio ya kutisha kwa sababu tunaunda picha mara moja, lakini tunazindua nyingi."
Baada ya kuona picha ya kipanga njia chetu 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
Zindua chombo cha vr-vmx
Tunaanza na amri:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Ifuatayo, tunaweza kuona habari kuhusu vyombo vinavyotumika:
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
Inaunganisha kwenye router
Anwani ya IP ya kiolesura cha mtandao cha router inaweza kupatikana kwa amri ifuatayo:
Chaguomsingi, Vrnetlab huunda mtumiaji kwenye router vrnetlab/VR-netlab9.
Kuunganishwa na 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
Hii inakamilisha usanidi wa router.
Mapendekezo ya ufungaji kwa ruta za wachuuzi mbalimbali yanaweza kupatikana kwenye mradi wa github katika saraka husika.
Sehemu ya 5: Mtumaji - unganisha kipanga njia kwenye OpenDaylight
Hizi ni nafasi za majina za ndani XML (Nafasi ya majina ya XML) kwa ODL kulingana na ambayo inaunda nodi.
Zaidi, kwa mtiririko huo, jina la router ni kitambulisho cha nodi, anwani ya kipanga njia - jeshi na kadhalika.
Mstari wa kuvutia zaidi ni wa mwisho. Saraka ya akiba ya Schema huunda saraka ambapo faili zote zinapakuliwa Schema ya YANG router iliyounganishwa. Unaweza kuwapata ndani $ODL_ROOT/cache/jun01_cache.
Kuangalia uunganisho wa router
Hebu tuunde GET ombi:
Mfuatano wa hoja:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Kwenye kichupo cha Uidhinishaji, lazima uweke parameter Basic Auth na kuingia/nenosiri: admin/admin.
Tunatuma. Inapaswa kupokea hali ya "Sawa 200" na orodha ya zote zinazotumika na kifaa Schema ya YANG:
Maoni: Ili kuona mwisho, katika kesi yangu ilikuwa ni lazima kusubiri kama dakika 10 baada ya utekelezaji PUTmpaka wote Mpango wa YANG pakua ODL. Hadi wakati huu, wakati wa kufanya hivi GET swala litaonyesha yafuatayo:
Kwenye kichupo cha Uidhinishaji, lazima uweke parameter Basic Auth na kuingia/nenosiri: admin/admin.
Sehemu ya 6: Badilisha usanidi wa router
Kupata usanidi
Hebu tuunde GET ombi:
Mfuatano wa hoja:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Kwenye kichupo cha Uidhinishaji, lazima uweke parameter Basic Auth na kuingia/nenosiri: admin/admin.
Tunatuma. Inapaswa kupokea hali "200 OK" na usanidi wa router:
Unda usanidi
Kama mfano, wacha tuunda usanidi ufuatao na urekebishe:
protocols {
bgp {
disable;
shutdown;
}
}
Hebu tuunde POST ombi:
Mfuatano wa hoja:
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
Kwenye kichupo cha Uidhinishaji, lazima uweke parameter Basic Auth na kuingia/nenosiri: admin/admin.
Kwenye kichupo cha Vichwa, unahitaji kuongeza vichwa viwili:
Kubali programu/xml
Programu ya Aina ya Maudhui/xml
Baada ya kutuma, wanapaswa kupokea hali "204 No Content"
Ili kuangalia kuwa usanidi umebadilika, unaweza kutumia swali lililotangulia. Lakini kwa mfano, tutaunda nyingine ambayo itaonyesha habari tu kuhusu itifaki zilizowekwa kwenye router.
Hebu tuunde GET ombi:
Mfuatano wa hoja:
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
Kwenye kichupo cha Uidhinishaji, lazima uweke parameter Basic Auth na kuingia/nenosiri: admin/admin.
Baada ya kutekeleza ombi, tutaona yafuatayo:
Badilisha usanidi
Wacha tubadilishe habari kuhusu itifaki ya BGP. Baada ya vitendo vyetu, itaonekana kama hii:
protocols {
bgp {
disable;
}
}
Hebu tuunde PUT ombi:
Mfuatano wa hoja:
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
Usisahau kubadilisha vichwa kwenye kichupo cha Vichwa kuwa:
Kubali programu/json
Content-Type application/json
Baada ya kutuma, tutapata matokeo yafuatayo (Tunaangalia jibu kwa kutumia GET ombi):
Sehemu ya 7: Kuongeza Cisco xRV9000
Sisi sote ni nini kuhusu Mreteni, ndio Mreteni? Wacha tuzungumze juu ya Cisco!
Nilipata toleo la xRV9000 7.0.2 (mnyama anayehitaji RAM ya 8Gb na cores 4. Haipatikani kwa uhuru, kwa hiyo wasiliana Cisco) - hebu tukimbie.
Kuendesha chombo
Mchakato wa kuunda chombo cha Docker sio tofauti na Juniper. Vile vile, tunatupa faili ya .qcow2 na router kwenye saraka inayofanana na jina lake (katika kesi hii, xrv9k) na kutekeleza amri. make docker-image.
Baada ya dakika chache, tunaona kwamba picha imeundwa:
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
Tunaanza chombo:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Baada ya muda, tunaona kwamba chombo kimeanza:
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
Unganisha kupitia 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
Kuunganisha kipanga njia kwenye OpenDaylight
Kuongeza hutokea kwa njia sawa kabisa na vMX. Tunahitaji tu kubadilisha majina. PUT ombi:
Piga simu baada ya muda GET swala kuangalia kuwa kila kitu kimeunganishwa:
Badilisha usanidi
Wacha tuweke usanidi ufuatao:
!
router ospf LAB
mpls ldp auto-config
!
Hebu tuunde POST ombi:
Mfuatano wa hoja:
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
Kwenye kichupo cha Uidhinishaji, lazima uweke parameter Basic Auth na kuingia/nenosiri: admin/admin.
Kwenye kichupo cha Vichwa, unahitaji kuongeza vichwa viwili:
Kubali programu/json
Content-Type application/json
Baada ya utekelezaji wake, wanapaswa kupokea hali "204 Hakuna Maudhui".
Wacha tuangalie kile tulichonacho.
Ili kufanya hivyo, tutaunda GET ombi:
Mfuatano wa hoja:
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
Kwenye kichupo cha Uidhinishaji, lazima uweke parameter Basic Auth na kuingia/nenosiri: admin/admin.
Kwenye kichupo cha Uidhinishaji, lazima uweke parameter Basic Auth na kuingia/nenosiri: admin/admin.
Hitimisho
Kwa jumla, kama unaweza kuwa umegundua, taratibu za kuunganisha Cisco na Juniper kwa OpenDaylight hazitofautiani - hii inafungua wigo mpana wa ubunifu. Kuanzia usimamizi wa usanidi wa vipengele vyote vya mtandao na kuishia na kuunda sera zako za mtandao.
Katika somo hili, nimetoa mifano rahisi zaidi ya jinsi unavyoweza kuingiliana na vifaa vya mtandao kwa kutumia OpenDaylight. Bila shaka, maswali kutoka kwa mifano hapo juu yanaweza kufanywa kuwa ngumu zaidi na kusanidi huduma nzima kwa kubofya mara moja kwa panya - kila kitu ni mdogo tu na mawazo yako *
Kuendelea ...
PS
Ikiwa ghafla tayari unajua haya yote au, kinyume chake, umepitia na kuzama ndani ya nafsi ya ODL, basi ninapendekeza kuangalia kuelekea kuendeleza maombi kwenye mtawala wa ODL. Unaweza kuanza hivyo.