ProHoster > Блог > Isakoso > Adaṣiṣẹ ti awọn iṣẹ nẹtiwọọki tabi bii o ṣe le kọ ile-iwosan foju kan nipa lilo OpenDaylight, Postman ati Vrnetlab
Adaṣiṣẹ ti awọn iṣẹ nẹtiwọọki tabi bii o ṣe le kọ ile-iwosan foju kan nipa lilo OpenDaylight, Postman ati Vrnetlab
Ninu nkan yii, Emi yoo fihan ọ bi o ṣe le ṣeto Ṣii imọlẹ oju-ọjọ lati ṣiṣẹ pẹlu awọn ẹrọ nẹtiwọki, ati tun fihan bi o ṣe le lo Oluṣapẹẹrẹ ati ki o rọrun RESTCONF Awọn ibeere, ẹrọ yii le ṣakoso. A yoo ko ṣiṣẹ pẹlu hardware, sugbon dipo a yoo ran awọn kekere foju kaarun pẹlu kan nikan olulana lilo Vrnetlab lori Ubuntu 20.04 LTS.
Emi yoo ṣafihan awọn eto alaye ni akọkọ nipa lilo apẹẹrẹ ti olulana Juniper vMX 20.1R1.11, ati lẹhinna a ṣe afiwe rẹ pẹlu eto Cisco xRV9000 7.0.2.
Awọn akoonu
Imọye ti a beere
Apakan ti 1: jiroro ni soki Ṣiimọlẹ Oju-ọjọ (lẹhin ODL), Oluṣapẹẹrẹ и Vrnetlab ati idi ti a nilo wọn
Apakan ti 2: apejuwe ti awọn foju yàrá
Apakan ti 3: ṣe akanṣe Ṣii imọlẹ oju-ọjọ
Apakan ti 4: ṣe akanṣe Vrnetlab
Apakan ti 5: nipa lilo Oluṣapẹẹrẹ so olulana foju (Juniper vMX) si ODL
Apakan ti 6: gba ki o si yi olulana iṣeto ni lilo Oluṣapẹẹrẹ и ODL
Apakan ti 7: fi Cisco xRV9000
ipari
PS
Iwe akosile
Imọye ti a beere
Ni ibere fun nkan naa lati ma yipada si iwe kan, Mo fi awọn alaye imọ-ẹrọ diẹ silẹ (pẹlu awọn ọna asopọ si awọn iwe-iwe nibiti o ti le ka nipa wọn).
Ni asopọ yii, Mo fun ọ ni awọn akọle pe yoo dara (ṣugbọn kii ṣe pataki) lati mọ ṣaaju kika:
Ninu ọran wa, a nifẹ ninu rẹ bi ọna fun fifiranṣẹ awọn ibeere REST si OpenDaylight API. O le, nitorinaa, firanṣẹ awọn ibeere pẹlu ọwọ, ṣugbọn ni Postman ohun gbogbo han kedere ati pe o baamu awọn idi wa ni pipe.
Fun awọn ti o fẹ lati ma wà: ọpọlọpọ awọn ohun elo ikẹkọ ti kọ lori rẹ (fun apẹẹrẹ).
Irinṣẹ fun imuṣiṣẹ awọn onimọ ipa-ọna ni Docker
Awọn atilẹyin: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, ati bẹbẹ lọ.
Orisun Orisun
A gan awon sugbon kekere mọ irinse. Ninu ọran wa, a yoo lo lati ṣiṣẹ Juniper vMX ati Cisco xRV9000 lori Ubuntu 20.04 LTS deede.
Juniper vMX ga soke ni Docker apoti (nipasẹ ọna Vrnetlab) ati awọn iṣẹ bi olulana foju wọpọ julọ.
ODL ti sopọ si olulana ati ki o faye gba o lati sakoso o.
Oluṣapẹẹrẹ ṣe ifilọlẹ lori ẹrọ lọtọ ati nipasẹ rẹ a firanṣẹ awọn aṣẹ ODL: lati sopọ / yọ olulana, yi iṣeto ni, ati be be lo.
Ọrọìwòye lori ẹrọ ti eto naa
Juniper vMX и ODL nilo awọn orisun pupọ pupọ fun iṣẹ iduroṣinṣin wọn. Ọkan nikan vMX béèrè fun 6 Gb ti Ramu ati 4 ohun kohun. Nitorinaa, o pinnu lati gbe gbogbo “awọn iwuwo iwuwo” si ẹrọ ti o yatọ (Heulet Packard Idawọlẹ MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Olulana, dajudaju, ko "fò" lori rẹ, ṣugbọn iṣẹ naa to fun awọn idanwo kekere.
Apá 3: Ṣeto Opendaylight
Ẹya lọwọlọwọ ti ODL ni akoko kikọ yii jẹ magnẹsia SR1
Kọọkan olulana ti o ti wa ni atilẹyin Vrnetlab, ni ilana iṣeto alailẹgbẹ tirẹ. Nigbawo Juniper vMX a kan nilo lati gbe pamosi .tgz pẹlu olulana (o le ṣe igbasilẹ lati ọdọ osise ojula) si itọsọna vmx ati ṣiṣe aṣẹ naa make:
ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make
Ṣiṣe aworan kan vMX yoo gba nipa 10-20 iṣẹju. O to akoko lati lọ gba diẹ ninu kofi!
"Eyi jẹ nitori igba akọkọ ti VCP (Iṣakoso Plane) bẹrẹ, o ka faili atunto kan ti o pinnu boya yoo ṣiṣẹ bi VRR VCP ni vMX. Ni iṣaaju, ifilọlẹ yii ni a ṣe lakoko ibẹrẹ Docker, ṣugbọn eyi tumọ si pe VCP nigbagbogbo tun bẹrẹ ni ẹẹkan ṣaaju ki olulana foju di wa, Abajade ni akoko bata gigun (nipa awọn iṣẹju 5) Bayi ṣiṣe akọkọ ti VCP ti ṣe lakoko kikọ aworan Docker, ati pe nitori kọ Docker ko le ṣiṣẹ pẹlu - -aṣayan anfani, eyi tumọ si pe qemu ṣiṣẹ laisi isare ohun elo KVM ati nitorinaa kikọ naa gba akoko pipẹ pupọ. Lakoko ilana yii, ọpọlọpọ awọn akọọlẹ ti njade, nitorinaa o kere ju o le rii ohun ti n ṣẹlẹ. kii ṣe ẹru nitori pe a ṣẹda aworan ni ẹẹkan, ṣugbọn a ṣe ifilọlẹ ọpọlọpọ. ”
Lẹhin ti o le rii aworan ti olulana wa ni 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
Lọlẹ vr-vmx eiyan
A bẹrẹ pẹlu aṣẹ:
ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c
Nigbamii, a le rii alaye nipa awọn apoti ti nṣiṣe lọwọ:
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
Nsopọ si olulana
Adirẹsi IP ti wiwo nẹtiwọọki ti olulana le ṣee gba pẹlu aṣẹ atẹle:
Aiyipada, Vrnetlab ṣẹda olumulo lori olulana vrnetlab/VR-netlab9.
Nsopọ pẹlu 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
Eyi pari iṣeto olulana.
Awọn iṣeduro fifi sori ẹrọ fun awọn olulana ti awọn olutaja oriṣiriṣi ni a le rii ni github ise agbese ninu awọn oludari ilana.
Apá 5: Postman – so olulana to Opendaylight
Postman fifi sori
Lati fi sori ẹrọ, kan ṣe igbasilẹ ohun elo naa lati ibi.
Nsopọ olulana si ODL
Jẹ ká ṣẹda fi ìbéèrè:
Okun ibere:
PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
Iwọnyi jẹ awọn aaye orukọ inu XML (Aaye orukọ XML) fun ODL gẹgẹ bi eyi ti o ṣẹda ipade.
Siwaju sii, lẹsẹsẹ, orukọ olulana jẹ ipade-id, olulana adirẹsi - ogun ati bẹbẹ lọ.
Awọn julọ awon ila ni awọn ti o kẹhin. Sito-kaṣe-liana ṣẹda liana nibiti gbogbo awọn faili ti wa ni igbasilẹ Eto YANG ti sopọ olulana. O le wa wọn ninu $ODL_ROOT/cache/jun01_cache.
Ṣiṣayẹwo asopọ ti olulana
Jẹ ká ṣẹda gba ìbéèrè:
Okun ibere:
GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
Lori taabu Iwe-aṣẹ, o gbọdọ ṣeto paramita naa Basic Auth ati wiwọle / ọrọigbaniwọle: admin/admin.
A firanṣẹ. Yẹ ki o gba ipo ti "200 O dara" ati atokọ ti gbogbo atilẹyin nipasẹ ẹrọ naa Eto YANG:
Ọrọìwòye: Lati wo igbehin, ninu ọran mi o jẹ dandan lati duro nipa awọn iṣẹju 10 lẹhin ipaniyan fititi gbogbo Eto YANG unload lori ODL. Titi di aaye yii, nigba ṣiṣe eyi gba ibeere yoo ṣe afihan atẹle naa:
Lori taabu Iwe-aṣẹ, o gbọdọ ṣeto paramita naa Basic Auth ati wiwọle / ọrọigbaniwọle: admin/admin.
Apá 6: Yi olulana iṣeto ni
Ngba iṣeto ni
Jẹ ká ṣẹda gba ìbéèrè:
Okun ibere:
GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
Lori taabu Iwe-aṣẹ, o gbọdọ ṣeto paramita naa Basic Auth ati wiwọle / ọrọigbaniwọle: admin/admin.
A firanṣẹ. Yẹ ki o gba ipo "200 O dara" ati iṣeto ni olulana:
Ṣẹda iṣeto ni
Bi apẹẹrẹ, jẹ ki a ṣẹda iṣeto ni atẹle ki o tun ṣe:
protocols {
bgp {
disable;
shutdown;
}
}
Jẹ ká ṣẹda post ìbéèrè:
Okun ibere:
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
Lori taabu Iwe-aṣẹ, o gbọdọ ṣeto paramita naa Basic Auth ati wiwọle / ọrọigbaniwọle: admin/admin.
Lori taabu Awọn akọle, o nilo lati ṣafikun awọn akọle meji:
Gba ohun elo/xml
Ohun elo-Iru akoonu/xml
Lẹhin fifiranṣẹ, wọn yẹ ki o gba ipo "204 Ko si akoonu"
Lati ṣayẹwo pe atunto ti yipada, o le lo ibeere iṣaaju. Ṣugbọn fun apẹẹrẹ, a yoo ṣẹda ọkan miiran ti yoo ṣafihan alaye nikan nipa awọn ilana ti a tunto lori olulana.
Jẹ ká ṣẹda gba ìbéèrè:
Okun ibere:
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
Lori taabu Iwe-aṣẹ, o gbọdọ ṣeto paramita naa Basic Auth ati wiwọle / ọrọigbaniwọle: admin/admin.
Lẹhin ṣiṣe ibeere naa, a yoo rii atẹle naa:
Yi iṣeto ni pada
Jẹ ki a yi alaye pada nipa ilana BGP. Lẹhin awọn iṣe wa, yoo dabi eyi:
protocols {
bgp {
disable;
}
}
Jẹ ká ṣẹda fi ìbéèrè:
Okun ibere:
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
Maṣe gbagbe lati yi awọn akọle pada lori taabu Awọn akọle si:
Gba ohun elo / json
Ohun elo-Iru akoonu/json
Lẹhin fifiranṣẹ, a yoo gba abajade atẹle (A wo idahun ni lilo gba ìbéèrè):
Apá 7: Fifi Cisco xRV9000
Kini gbogbo wa nipa Juniper, bẹẹni Juniper? Jẹ ká soro nipa Cisco!
Mo ti ri xRV9000 version 7.0.2 (ẹranko kan ti o nilo 8Gb Ramu ati 4 ohun kohun. Ko si larọwọto, ki kan si Cisco) - jẹ ki a ṣiṣẹ.
Nṣiṣẹ a eiyan
Ilana ti ṣiṣẹda apoti Docker kan ko yatọ si Juniper. Bakanna, a ju faili .qcow2 silẹ pẹlu olulana sinu itọsọna ti o baamu si orukọ rẹ (ninu ọran yii, xrv9k) ati ṣiṣe aṣẹ naa make docker-image.
Lẹhin iṣẹju diẹ, a rii pe a ti ṣẹda aworan naa:
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
A bẹrẹ apoti:
ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc
Lẹhin igba diẹ, a rii pe eiyan naa ti bẹrẹ:
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
Sopọ nipasẹ 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
Nsopọ olulana si Opendaylight
Ṣafikun waye ni ọna ti o jọra patapata pẹlu vMX. A kan nilo lati yi awọn orukọ pada. fi ìbéèrè:
Pe lẹhin igba diẹ gba ibeere lati ṣayẹwo pe ohun gbogbo ti sopọ:
Yi iṣeto ni pada
Jẹ ki a ṣeto iṣeto ni atẹle:
!
router ospf LAB
mpls ldp auto-config
!
Jẹ ká ṣẹda post ìbéèrè:
Okun ibere:
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
Lori taabu Iwe-aṣẹ, o gbọdọ ṣeto paramita naa Basic Auth ati wiwọle / ọrọigbaniwọle: admin/admin.
Lori taabu Awọn akọle, o nilo lati ṣafikun awọn akọle meji:
Gba ohun elo / json
Ohun elo-Iru akoonu/json
Lẹhin ipaniyan rẹ, wọn yẹ ki o gba ipo “204 Ko si akoonu”.
Jẹ ki a ṣayẹwo ohun ti a ni.
Lati ṣe eyi, a yoo ṣẹda gba ìbéèrè:
Okun ibere:
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
Lori taabu Iwe-aṣẹ, o gbọdọ ṣeto paramita naa Basic Auth ati wiwọle / ọrọigbaniwọle: admin/admin.
Lori taabu Iwe-aṣẹ, o gbọdọ ṣeto paramita naa Basic Auth ati wiwọle / ọrọigbaniwọle: admin/admin.
ipari
Lapapọ, bi o ti le ṣe akiyesi, awọn ilana fun sisopọ Sisiko ati Juniper si OpenDaylight ko yatọ - eyi ṣii aaye jakejado fun ẹda. Bibẹrẹ lati iṣakoso iṣeto ni gbogbo awọn paati nẹtiwọọki ati ipari pẹlu ṣiṣẹda awọn ilana nẹtiwọọki tirẹ.
Ninu ikẹkọ yii, Mo ti fun ni awọn apẹẹrẹ ti o rọrun julọ ti bii o ṣe le ṣe ajọṣepọ pẹlu ohun elo nẹtiwọọki nipa lilo OpenDaylight. Laisi iyemeji, awọn ibeere lati awọn apẹẹrẹ ti o wa loke le jẹ idiju pupọ ati ṣeto gbogbo awọn iṣẹ pẹlu titẹ kan ti Asin - ohun gbogbo ni opin nikan nipasẹ oju inu rẹ *
A tun ma a se ni ojo iwaju…
PS
Ti o ba ti mọ gbogbo eyi lojiji tabi, ni ilodi si, ti lọ nipasẹ ati rì sinu ẹmi ODL, lẹhinna Mo ṣeduro wiwa si awọn ohun elo idagbasoke lori oludari ODL. O le bẹrẹ lati ibi.