ProHoster > Blog > Administrasi > Otomatisasi jasa jaringan atanapi kumaha ngawangun laboratorium virtual nganggo OpenDaylight, Postman sareng Vrnetlab
Otomatisasi jasa jaringan atanapi kumaha ngawangun laboratorium virtual nganggo OpenDaylight, Postman sareng Vrnetlab
Dina tulisan ieu, kuring bakal nunjukkeun anjeun kumaha nyetél cahaya panonpoe pikeun digawe sareng alat jaringan, sarta ogé nunjukkeun kumaha ngagunakeun Tukang pos tur basajan RESTCONF requests, parabot ieu bisa dikawasa. Urang moal bisa dipaké kalawan hardware, tapi gantina urang bakal nyebarkeun laboratorium maya leutik ku router tunggal ngagunakeun Vrnetlab leuwih Ubuntu 20.04 LTS.
Kuring bakal nunjukkeun setélan lengkep heula nganggo conto router Juniper vMX 20.1R1.11, lajeng urang ngabandingkeun éta kalayan setelan Cisco xRV9000 7.0.2.
eusi
pangaweruh diperlukeun
1 bagian: ngabahas sakeudeung OpenDaylight (saterusna ODL), Tukang pos и Vrnetlab sareng naha urang peryogi aranjeunna
2 bagian: pedaran ngeunaan laboratorium virtual
3 bagian: ngaropéa cahaya panonpoe
4 bagian: ngaropéa Vrnetlab
5 bagian: ku ngagunakeun Tukang pos nyambungkeun router virtual (Juniper vMX) ka ODL
6 bagian: meunang sarta ngarobah konfigurasi router ngagunakeun Tukang pos и ODL
7 bagian: nambahkeun Cisco xRV9000
kacindekan
PS
Bibliografi
pangaweruh diperlukeun
Supaya tulisanna henteu janten lambaran, kuring ngaleungitkeun sababaraha rinci téknis (kalayan tautan kana literatur dimana anjeun tiasa maca ngeunaan éta).
Dina sambungan ieu, kuring nawiskeun anjeun topik anu bakal hadé (tapi ampir teu perlu) uninga saméméh maca:
Platform SDN kabuka pikeun ngatur sareng ngajadikeun otomatis sadaya jinis jaringan, dirojong ku Linux Foundation
Jawa jero
Dumasar Model-Driven Service Abstraction Level (MD-SAL)
Ngagunakeun modél YANG pikeun otomatis ngahasilkeun API RESTCONF pikeun alat jaringan
Modul utama pikeun manajemén jaringan. Ngaliwatan éta urang bakal komunikasi sareng alat anu disambungkeun. Diurus ngaliwatan API sorangan.
Anjeun tiasa maca langkung seueur ngeunaan OpenDaylight di dieu.
alat nguji API
Basajan jeung gampang ngagunakeun panganteur
Dina kasus urang, urang museurkeun eta salaku sarana pikeun ngirim requests REST ka OpenDaylight API. Anjeun tiasa, tangtosna, ngirim pamundut sacara manual, tapi dina Postman sadayana katingalina jelas pisan sareng cocog sareng tujuan urang.
Pikeun anu hoyong ngagali: seueur bahan pelatihan anu ditulis dina éta (contona).
Alat pikeun nyebarkeun router virtual di Docker
Ngarojong: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, jsb.
Open Source
Hiji alat pisan metot tapi saeutik dipikawanoh. Dina hal urang, urang bakal make eta pikeun ngajalankeun Juniper vMX na Cisco xRV9000 dina Ubuntu biasa 20.04 LTS.
Anjeun tiasa maca langkung seueur ngeunaan éta di kaca proyék.
Bagian 2: Lab
Dina tutorial ieu, urang bakal nyetél sistem ieu:
Kumaha teu karya ieu
Juniper vMX naék dina Docker wadahna (ku cara Vrnetlab) sareng fungsina salaku router virtual anu paling umum.
ODL disambungkeun ka router tur ngidinan Anjeun pikeun ngadalikeun eta.
Tukang pos diluncurkeun dina mesin anu misah sareng ngalangkungan éta kami ngirim paréntah ODL: pikeun nyambungkeun / miceun router, ngarobah konfigurasi, jsb.
Commentary dina alat tina sistem
Juniper vMX и ODL merlukeun cukup loba sumberdaya pikeun operasi stabil maranéhanana. Hiji-hijina vMX nanyakeun 6 Gb RAM na 4 cores. Ku alatan éta, ieu mutuskeun pikeun mindahkeun sakabéh "beurat beurat" ka mesin misah (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Router, tangtosna, henteu "ngapung" dina éta, tapi prestasina cekap pikeun percobaan leutik.
Bagian 3: Nyetél OpenDaylight
Versi ODL ayeuna dina waktos tulisan ieu nyaéta Magnesium SR1
1) Pasang Java Open JDK 11 (pikeun instalasi nu leuwih lengkep di dieu)
ubuntu:~$ sudo apt install default-jdk
2) Panggihan tur undeur wangunan panganyarna ODLdi dieu
3) Buka zip arsip anu diunduh
4) Pindah ka diréktori hasilna
5) Ngaluncurkeun ./bin/karaf
Dina hambalan ieu ODL kudu ngamimitian jeung urang bakal manggihan diri dina konsol nu (Port 8181 dipaké pikeun aksés ti luar, nu urang bakal make engké).
Salajengna, install Fitur ODLdirancang pikeun digawe sareng protokol NETCONF и RESTCONF. Jang ngalampahkeun ieu dina konsol nu ODL urang laksanakeun:
Pikeun masang Vrnetlab clone gudang saluyu ti github:
ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git
Pindah ka diréktori vrnetlab:
ubuntu:~$ cd ~/vrnetlab
Di dieu anjeun tiasa ningali sadaya skrip anu diperyogikeun pikeun ngajalankeun. Punten dicatet yén diréktori anu saluyu parantos dilakukeun pikeun unggal jinis router:
Unggal router anu dirojong Vrnetlab, boga prosedur setelan unik sorangan. Iraha Juniper vMX urang ngan perlu unggah arsip .tgz jeung router (anjeun bisa ngundeur ti situs resmi) kana diréktori vmx tur ngajalankeun paréntah make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Ngawangun gambar vMX bakal nyandak ngeunaan 10-20 menit. Waktosna kanggo nyandak kopi!
"Ieu kusabab mimiti VCP (Control Plane) dimimitian, éta maca file config anu nangtukeun naha éta bakal dijalankeun salaku VRR VCP di vMX. Saméméhna, peluncuran ieu dilakukeun nalika ngamimitian Docker, tapi ieu hartosna VCP. salawasna restarted sakali saméméh router maya sadia, hasilna waktos boot lila (kira 5 menit) Ayeuna ngajalankeun mimiti VCP dipigawé salila ngawangun gambar Docker, sarta saprak wangunan Docker teu bisa dijalankeun ku - pilihan -privileged, ieu ngandung harti yén qemu jalan tanpa akselerasi hardware KVM sahingga ngawangun butuh waktu anu pohara lila. Salila prosés ieu, loba log kaluaran, jadi sahenteuna bisa ningali naon anu lumangsung.Jigana ngawangun panjang. teu jadi pikasieuneun sabab urang nyieun hiji gambar sakali, tapi urang ngajalankeun loba".
Saatos anjeun tiasa ningali gambar tina router kami di 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
Ngajalankeun wadahna vr-vmx
Urang mimitian ku paréntah:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Salajengna, urang tiasa ningali inpormasi ngeunaan wadah aktip:
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
Nyambungkeun ka router
Alamat IP tina antarmuka jaringan router tiasa didapet ku paréntah di handap ieu:
Standar, Vrnetlab nyiptakeun pamaké on router dina vrnetlab/VR-netlab9.
Nyambung jeung 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
Ieu ngalengkepan setelan router.
Rekomendasi pamasangan pikeun router tina rupa-rupa padagang tiasa dipendakan di proyék github dina diréktori masing-masing.
Bagian 5: Tukang pos - sambungkeun router ka OpenDaylight
Ieu mangrupikeun rohangan ngaran internal XML (spasi ngaran XML) pikeun ODL nurutkeun nu nyiptakeun titik.
Salajengna, masing-masing nami router nyaéta node-id, alamat router - nu boga imah jeung saterusna.
Garis anu paling pikaresepeun nyaéta anu terakhir. Skéma-cache-diréktori nyiptakeun diréktori dimana sadaya file diunduh Skéma YANG router disambungkeun. Anjeun tiasa mendakan aranjeunna dina $ODL_ROOT/cache/jun01_cache.
Mariksa sambungan router
Hayu urang nyieun meunangkeun kahoyong:
string patarosan:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Dina tab Otorisasina, anjeun kedah nyetél parameter Basic Auth jeung login / sandi: admin / admin.
Urang ngirim. Kedah nampi status "200 OK" sareng daptar sadaya anu dirojong ku alat Skéma YANG:
komentar: Pikeun ningali anu terakhir, bisi kuring kedah ngantosan sakitar 10 menit saatos palaksanaan neundeundugi sadayana Skéma YANG ngabongkar momotanana ODL. Nepi ka titik ieu, nalika ngalakukeun ieu meunangkeun query bakal nembongkeun handap:
Dina tab Otorisasina, anjeun kedah nyetél parameter Basic Auth jeung login / sandi: admin / admin.
Bagian 6: Robah konfigurasi router
Meunangkeun konfigurasi
Hayu urang nyieun meunangkeun kahoyong:
string patarosan:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Dina tab Otorisasina, anjeun kedah nyetél parameter Basic Auth jeung login / sandi: admin / admin.
Urang ngirim. Kedah nampi status "200 OK" sareng konfigurasi router:
Jieun konfigurasi
Salaku conto, hayu urang jieun konfigurasi ieu sareng modifikasi:
protocols {
bgp {
disable;
shutdown;
}
}
Hayu urang nyieun POST kahoyong:
string patarosan:
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
Dina tab Otorisasina, anjeun kedah nyetél parameter Basic Auth jeung login / sandi: admin / admin.
Dina tab Headers, anjeun kedah nambihan dua header:
Nampa aplikasi / xml
Eusi-Tipe aplikasi / xml
Saatos ngirim, aranjeunna kedah nampi status "204 No Content"
Pikeun pariksa yén konfigurasi parantos robih, anjeun tiasa nganggo pamundut sateuacana. Tapi contona, urang bakal nyieun hiji sejen nu bakal nembongkeun informasi ukur ngeunaan protokol ngonpigurasi dina router dina.
Hayu urang nyieun meunangkeun kahoyong:
string patarosan:
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
Dina tab Otorisasina, anjeun kedah nyetél parameter Basic Auth jeung login / sandi: admin / admin.
Saatos ngalaksanakeun pamundut, urang bakal ningali ieu:
Robah konfigurasi
Hayu urang ngarobah informasi ngeunaan protokol BGP. Saatos tindakan urang, éta bakal katingali sapertos kieu:
protocols {
bgp {
disable;
}
}
Hayu urang nyieun neundeun kahoyong:
string patarosan:
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
Saatos ngirim, urang bakal nampi hasil di handap ieu (Kami ningali jawaban nganggo meunangkeun kahoyong):
Bagian 7: Nambahan Cisco xRV9000
Naon urang sadayana ngeunaan Juniper, enya Juniper? Hayu urang ngobrol ngeunaan Cisco!
Kuring kapanggih xRV9000 Vérsi 7.0.2 (sato galak anu perlu 8Gb RAM na 4 cores. Teu sadia kalawan bébas, jadi ngahubungan Cisco) - hayu urang ngajalankeun eta.
Ngajalankeun wadah
Prosés nyieun wadah Docker praktis teu béda ti Juniper. Nya kitu, urang leupaskeun file .qcow2 jeung router kana diréktori pakait jeung ngaranna (dina hal ieu, xrv9k) jeung ngaéksekusi paréntah. make docker-image.
Sanggeus sababaraha menit, urang nempo yén gambar geus dijieun:
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
Urang ngamimitian wadahna:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Saatos sababaraha waktos, urang tingali yén wadahna parantos ngamimitian:
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
Sambungkeun 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
Nyambungkeun router ka OpenDaylight
Nambahkeun lumangsung dina cara lengkep sarupa jeung vMX. Urang ngan perlu ngaganti ngaran. neundeun kahoyong:
Telepon sakedapan meunangkeun query pikeun pariksa yen sagalana disambungkeun:
Robah konfigurasi
Hayu urang nyetél konfigurasi ieu:
!
router ospf LAB
mpls ldp auto-config
!
Hayu urang nyieun POST kahoyong:
string patarosan:
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
Dina tab Otorisasina, anjeun kedah nyetél parameter Basic Auth jeung login / sandi: admin / admin.
Dina tab Headers, anjeun kedah nambihan dua header:
Nampa aplikasi/json
Aplikasi Tipe-Konten / json
Saatos dieksekusi, aranjeunna kedah nampi status "204 No Content".
Hayu urang pariksa naon urang meunang.
Jang ngalampahkeun ieu, urang bakal nyieun meunangkeun kahoyong:
string patarosan:
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
Dina tab Otorisasina, anjeun kedah nyetél parameter Basic Auth jeung login / sandi: admin / admin.
Dina tab Otorisasina, anjeun kedah nyetél parameter Basic Auth jeung login / sandi: admin / admin.
kacindekan
Dina total, sakumaha anjeun tiasa perhatikeun, prosedur pikeun nyambungkeun Cisco sareng Juniper ka OpenDaylight henteu bénten - ieu muka ruang lingkup anu lega pikeun kreativitas. Mimitian ti manajemén konfigurasi sadaya komponén jaringan sareng ditungtungan ku nyiptakeun kawijakan jaringan anjeun nyalira.
Dina tutorial ieu, kuring parantos masihan conto pangbasajanna kumaha anjeun tiasa berinteraksi sareng alat jaringan nganggo OpenDaylight. Tanpa ragu, patarosan tina conto di luhur tiasa dilakukeun langkung rumit sareng nyetél sadayana jasa kalayan hiji klik beurit - sadayana ngan ukur ku imajinasi anjeun *
Ngalajengkeun…
PS
Upami anjeun ujug-ujug parantos terang sadayana ieu atanapi, sabalikna, parantos ngaliwat sareng nyerep kana jiwa ODL, maka kuring nyarankeun ningali ka arah ngembangkeun aplikasi dina controller ODL. Anjeun tiasa ngamimitian di dieu.