Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Այս հոդվածում ես ձեզ ցույց կտամ, թե ինչպես կարգավորել բաց ցերեկային լույս աշխատել ցանցային սարքավորումների հետ, ինչպես նաև ցույց տալ, թե ինչպես օգտագործել Փոստատար և պարզ RESTCONF հարցումները, այս սարքավորումը կարող է վերահսկվել: Մենք չենք աշխատի ապարատային տեխնիկայի հետ, փոխարենը կտեղակայենք փոքր վիրտուալ լաբորատորիաներ՝ մեկ երթուղիչով Վրնետլաբ վերևում Ubuntu LTS 20.04.

Ես նախ ցույց կտամ մանրամասն կարգավորումները՝ օգտագործելով երթուղիչի օրինակը Juniper vMX 20.1R1.11, և այնուհետև մենք այն համեմատում ենք պարամետրի հետ Cisco xRV9000 7.0.2.

Պարունակություն

  • Պահանջվող գիտելիքներ
  • 1- ի մի մասը: համառոտ քննարկել OpenDaylight (այսուհետ ODL), Փոստատար и Վրնետլաբ և ինչու են մեզ դրանք պետք
  • 2- ի մի մասըվիրտուալ լաբորատորիայի նկարագրությունը
  • 3- ի մի մասը: կարգավորել բաց ցերեկային լույս
  • 4- ի մի մասը: կարգավորել Վրնետլաբ
  • 5- ի մի մասը: օգտագործելով Փոստատար միացնել վիրտուալ երթուղիչը (Juniper vMX) Դեպի ODL
  • 6- ի մի մասըՍտացեք և փոխեք երթուղիչի կոնֆիգուրացիան՝ օգտագործելով Փոստատար и ODL
  • 7- ի մի մասըԱվելացնել Cisco xRV9000
  • Ամփոփում
  • PS
  • Մատենագիտություն

Պահանջվող գիտելիքներ

Որպեսզի հոդվածը չվերածվի թերթիկի, ես բաց եմ թողել որոշ տեխնիկական մանրամասներ (գրականության հղումներով, որտեղ կարող եք կարդալ դրանց մասին):

Այս կապակցությամբ առաջարկում եմ ձեզ թեմաներ, որոնք լավ կլիներ (բայց համարյա ոչ պարտադիր) կարդալուց առաջ իմանալ.

Մաս 1. որոշ տեսություն

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

  • Բաց SDN հարթակ բոլոր տեսակի ցանցերի կառավարման և ավտոմատացման համար, որն աջակցում է Linux հիմնադրամ
  • Java ներսում
  • Հիմնվելով մոդելի վրա հիմնված ծառայության վերացական մակարդակի վրա (MD-SAL)
  • Օգտագործում է YANG մոդելները ցանցային սարքերի համար RESTCONF API-ների ավտոմատ ստեղծման համար

Ցանցի կառավարման հիմնական մոդուլը: Հենց դրա միջոցով մենք շփվելու ենք միացված սարքերի հետ։ Կառավարվում է իր սեփական API-ի միջոցով:

Դուք կարող եք կարդալ ավելին OpenDaylight-ի մասին այստեղ.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

  • API փորձարկման գործիք
  • Պարզ և հեշտ օգտագործվող ինտերֆեյս

Մեր դեպքում դա մեզ հետաքրքրում է որպես REST հարցումներ OpenDaylight API-ին ուղարկելու միջոց։ Դուք, իհարկե, կարող եք հարցումներ ուղարկել ձեռքով, բայց Postman-ում ամեն ինչ շատ պարզ է թվում և կատարելապես համապատասխանում է մեր նպատակներին:

Նրանց համար, ովքեր ցանկանում են փորել. դրա վրա գրված են բազմաթիվ ուսումնական նյութեր (օրինակ).

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

  • Docker-ում վիրտուալ երթուղիչների տեղակայման գործիք
  • Աջակցում է՝ Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR և այլն:
  • Open Source

Շատ հետաքրքիր, բայց քիչ հայտնի գործիք: Մեր դեպքում, մենք այն կօգտագործենք Juniper vMX-ը և Cisco xRV9000-ը սովորական Ubuntu 20.04 LTS-ի վրա գործարկելու համար:

Դուք կարող եք ավելին կարդալ դրա մասին այստեղ նախագծի էջ.

Մաս 2. Լաբորատորիա

Այս ձեռնարկում մենք կստեղծենք հետևյալ համակարգը.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Ինչպես է այն աշխատում

  • Juniper vMX ներս է բարձրանում դոկեր կոնտեյներ (միջոցով Վրնետլաբ) և գործում է որպես ամենատարածված վիրտուալ երթուղիչ:
  • ODL միացված է երթուղիչին և թույլ է տալիս կառավարել այն:
  • Փոստատար գործարկվում է առանձին մեքենայի վրա և դրա միջոցով մենք հրամաններ ենք ուղարկում ODLերթուղիչը միացնելու / հեռացնելու, կոնֆիգուրացիան փոխելու և այլն:

Համակարգի սարքի մեկնաբանություն

Juniper vMX и ODL պահանջում են բավականին մեծ ռեսուրսներ դրանց կայուն գործունեության համար: Միայն մեկ vMX խնդրում է 6 Գբ օպերատիվ հիշողություն և 4 միջուկ: Ուստի որոշվեց բոլոր «ծանր քաշայինները» տեղափոխել առանձին մեքենա (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS) Երթուղիչը, իհարկե, չի «թռչում» դրա վրա, բայց կատարումը բավական է փոքր փորձերի համար։

Մաս 3. Ստեղծեք OpenDaylight

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Այս գրելու պահին ODL-ի ներկայիս տարբերակը Magnesium SR1 է

1) Տեղադրեք Java Open JDK 11 (ավելի մանրամասն տեղադրման համար այստեղ)

ubuntu:~$ sudo apt install default-jdk

2) Գտեք և ներբեռնեք վերջին կառուցումը ODL ուստի
3) Բացեք ներբեռնված արխիվը
4) Գնացեք ստացված գրացուցակ
5) Գործարկում ./bin/karaf

Այս քայլին ODL պետք է սկսվի, և մենք կհայտնվենք վահանակում (Պորտ 8181-ն օգտագործվում է դրսից մուտք գործելու համար, որը մենք կօգտագործենք ավելի ուշ):

Հաջորդը, տեղադրեք ODL-ի առանձնահատկություններընախատեսված է արձանագրությունների հետ աշխատելու համար NETCONF и RESTCONF. Դա անելու համար վահանակում ODL մենք իրականացնում ենք.

opendaylight-user@root> feature:install odl-netconf-topology odl-restconf-all

Սա ամենապարզ կարգավորումն է: ODL ավարտված. (Լրացուցիչ մանրամասների համար տե՛ս այստեղ).

Մաս 4. Vrnetlab-ի ստեղծում

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Համակարգի պատրաստում

Նախքան տեղադրումը Վրնետլաբ դուք պետք է տեղադրեք դրա շահագործման համար անհրաժեշտ փաթեթները: Ինչպիսին է դոկեր, գիտ, sshpass:

ubuntu:~$ sudo apt update
ubuntu:~$ sudo apt -y install python3-bs4 sshpass make
ubuntu:~$ sudo apt -y install git
ubuntu:~$ sudo apt install -y 
    apt-transport-https ca-certificates 
    curl gnupg-agent software-properties-common
ubuntu:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
ubuntu:~$ sudo add-apt-repository 
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu 
   $(lsb_release -cs) 
   stable"
ubuntu:~$ sudo apt update
ubuntu:~$ sudo apt install -y docker-ce docker-ce-cli containerd.io

Vrnetlab-ի տեղադրում

Տեղադրման համար Վրնետլաբ կլոնավորեք համապատասխան պահեստը github-ից.

ubuntu:~$ cd ~
ubuntu:~$ git clone https://github.com/plajjan/vrnetlab.git

Գնացեք գրացուցակ vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Այստեղ դուք կարող եք տեսնել բոլոր սկրիպտները, որոնք անհրաժեշտ են գործարկման համար: Խնդրում ենք նկատի ունենալ, որ երթուղիչի յուրաքանչյուր տեսակի համար կազմվել է համապատասխան գրացուցակ.

ubuntu:~/vrnetlab$ ls
CODE_OF_CONDUCT.md  config-engine-lite        openwrt           vr-bgp
CONTRIBUTING.md     csr                       routeros          vr-xcon
LICENSE             git-lfs-repo.sh           sros              vrnetlab.sh
Makefile            makefile-install.include  topology-machine  vrp
README.md           makefile-sanity.include   veos              vsr1000
ci-builder-image    makefile.include          vmx               xrv
common              nxos                      vqfx              xrv9k

Ստեղծեք երթուղիչի պատկեր

Յուրաքանչյուր երթուղիչ, որն ապահովված է Վրնետլաբ, ունի իր յուրահատուկ տեղադրման ընթացակարգը: Երբ Juniper vMX մենք պարզապես պետք է վերբեռնենք .tgz արխիվը երթուղիչով (կարող եք ներբեռնել այն պաշտոնական կայք) դեպի vmx գրացուցակ և գործարկեք հրամանը make:

ubuntu:~$ cd ~/vrnetlab/vmx
ubuntu:~$ # Копируем в эту директорию .tgz архив с роутером
ubuntu:~$ sudo make

Պատկերի կառուցում vMX կտևի մոտ 10-20 րոպե: Ժամանակն է գնալ սուրճ խմելու:

Ինչո՞ւ այդքան երկար, կհարցնեք:

Թարգմանություն պատասխանը այս հարցի հեղինակը.

«Դա պայմանավորված է նրանով, որ առաջին անգամ, երբ VCP (Control Plane) գործարկվում է, այն կարդում է կազմաձևման ֆայլ, որը որոշում է, թե արդյոք այն կաշխատի որպես VRR VCP vMX-ում: Նախկինում այս գործարկումն արվում էր Docker-ի գործարկման ժամանակ, բայց դա նշանակում էր, որ VCP-ն միշտ վերագործարկվել է մեկ անգամ, նախքան վիրտուալ երթուղիչը հասանելի դառնալը, ինչը հանգեցնում է երկար բեռնման ժամանակ (մոտ 5 րոպե): Այժմ VCP-ի առաջին գործարկումը կատարվում է Docker պատկերի կառուցման ժամանակ, և քանի որ Docker build-ը չի կարող գործարկվել. -արտոնյալ տարբերակ, սա նշանակում է, որ qemu-ն աշխատում է առանց KVM ապարատային արագացման և, հետևաբար, կառուցումը շատ երկար է տևում: Այս գործընթացի ընթացքում շատ տեղեկամատյաններ են դուրս գալիս, այնպես որ գոնե դուք կարող եք տեսնել, թե ինչ է կատարվում: Կարծում եմ, որ երկար շինարարություն է կատարվում: այնքան էլ սարսափելի չէ, որովհետև մենք մեկ անգամ պատկեր ենք ստեղծում, բայց շատ ենք գործարկում»:

Այն բանից հետո, երբ դուք կարող եք տեսնել մեր երթուղիչի պատկերը դոկեր:

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

Գործարկել vr-vmx կոնտեյները

Մենք սկսում ենք հրամանով.

ubuntu:~$ sudo docker run -d --privileged --name jun01 b1b2369b453c

Հաջորդը, մենք կարող ենք տեսնել տեղեկատվություն ակտիվ բեռնարկղերի մասին.

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

Միացում երթուղիչին

Երթուղիչի ցանցային ինտերֆեյսի IP հասցեն կարելի է ստանալ հետևյալ հրամանով.

ubuntu:~$ sudo docker inspect --format '{{.NetworkSettings.IPAddress}}' jun01
172.17.0.2

Կանխադրված, Վրնետլաբ ստեղծում է օգտվող երթուղիչի վրա vrnetlab/VR-netlab9.
Կապվելով 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

Սա ավարտում է երթուղիչի կարգավորումը:

Տարբեր վաճառողների երթուղիչների տեղադրման առաջարկությունները կարող եք գտնել այստեղ github նախագիծ համապատասխան գրացուցակներում:

Մաս 5. Փոստատար - միացրեք երթուղիչը OpenDaylight-ին

Փոստատարի տեղադրում

Տեղադրելու համար պարզապես ներբեռնեք հավելվածը ուստի.

Երթուղիչի միացում ODL-ին

Եկեք ստեղծենք PUT հարցում:

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

  1. Հարցման տող.
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Հարցման մարմին (Body ներդիր):
    <node xmlns="urn:TBD:params:xml:ns:yang:network-topology">
    <node-id>jun01</node-id>
    <host xmlns="urn:opendaylight:netconf-node-topology">172.17.0.2</host>
    <port xmlns="urn:opendaylight:netconf-node-topology">22</port>
    <username xmlns="urn:opendaylight:netconf-node-topology">vrnetlab</username>
    <password xmlns="urn:opendaylight:netconf-node-topology">VR-netlab9</password>
    <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>
    <schema-cache-directory xmlns="urn:opendaylight:netconf-node-topology">jun01_cache</schema-cache-directory>
    </node>
  3. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin: Սա պահանջվում է ODL մուտք գործելու համար.
    Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով
  4. Վերնագրերի ներդիրում դուք պետք է ավելացնեք երկու վերնագիր.
    • Ընդունել դիմում/xml
    • Content-Type հավելված/xml

Մեր խնդրանքը կատարվել է։ Մենք ուղարկում ենք. Եթե ​​ամեն ինչ ճիշտ է կազմաձևվել, ապա մենք պետք է վերադարձնենք «201 Ստեղծված» կարգավիճակը.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Ի՞նչ է անում այս խնդրանքը:

Մենք ստեղծում ենք հանգույց ներսում ODL իրական երթուղիչի պարամետրերով, որոնց մենք ցանկանում ենք մուտք գործել:

xmlns="urn:TBD:params:xml:ns:yang:network-topology"
xmlns="urn:opendaylight:netconf-node-topology"

Սրանք ներքին անունների տարածքներ են XML (XML անվանատարածք) Համար ODL ըստ որի ստեղծում է հանգույց։

Հետագայում, համապատասխանաբար, երթուղիչի անվանումն է հանգույց-id, երթուղիչի հասցեն - հյուրընկալող եւ այլն:

Ամենահետաքրքիրը վերջին տողն է. Schema-cache-directory ստեղծում է գրացուցակ, որտեղ ներբեռնվում են բոլոր ֆայլերը Յանգի սխեման միացված երթուղիչ: Դուք կարող եք գտնել դրանք $ODL_ROOT/cache/jun01_cache.

Երթուղիչի միացման ստուգում

Եկեք ստեղծենք GET հարցում:

  1. Հարցման տող.
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:

Մենք ուղարկում ենք. Պետք է ստանա «200 OK» կարգավիճակ և սարքի կողմից աջակցվող բոլորի ցանկը Յանգի սխեման:

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

ՄեկնաբանությունՎերջինիս տեսնելու համար իմ դեպքում պետք էր մահապատժից մոտ 10 րոպե սպասել PUTմինչև բոլորը Յանգի սխեման բեռնաթափել վրա ODL. Մինչև այս կետը սա կատարելիս GET հարցումը կցուցադրի հետևյալը.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Ջնջել երթուղիչը

Եկեք ստեղծենք ՋՆՋԵԼ հարցում:

  1. Հարցման տող.
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:

Մաս 6. Փոխեք երթուղիչի կոնֆիգուրացիան

Ստանալով կոնֆիգուրացիա

Եկեք ստեղծենք GET հարցում:

  1. Հարցման տող.
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:

Մենք ուղարկում ենք. Պետք է ստանա «200 OK» կարգավիճակը և երթուղիչի կազմաձևումը.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Ստեղծեք կոնֆիգուրացիա

Որպես օրինակ՝ եկեք ստեղծենք հետևյալ կոնֆիգուրացիան և փոփոխենք այն.

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Եկեք ստեղծենք POST հարցում:

  1. Հարցման տող.
    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
  2. Հարցման մարմին (Body ներդիր):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:
  4. Վերնագրերի ներդիրում դուք պետք է ավելացնեք երկու վերնագիր.
    • Ընդունել դիմում/xml
    • Content-Type հավելված/xml

Ուղարկելուց հետո նրանք պետք է ստանան «204 No Content» կարգավիճակը

Ստուգելու համար, որ կոնֆիգուրացիան փոխվել է, կարող եք օգտագործել նախորդ հարցումը: Բայց օրինակ, մենք կստեղծենք ևս մեկը, որը կցուցադրի տեղեկատվություն միայն երթուղիչի վրա կազմաձևված արձանագրությունների մասին:

Եկեք ստեղծենք GET հարցում:

  1. Հարցման տող.
    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
  2. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:

Հարցումը կատարելուց հետո մենք կտեսնենք հետևյալը.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Փոխեք կոնֆիգուրացիան

Եկեք փոխենք BGP արձանագրության մասին տեղեկատվությունը։ Մեր գործողություններից հետո այն կունենա հետևյալ տեսքը.

protocols {
    bgp {
        disable;
    }
}

Եկեք ստեղծենք PUT հարցում:

  1. Հարցման տող.
    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
  2. Հարցման մարմին (Body ներդիր):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:
  4. Վերնագրերի ներդիրում դուք պետք է ավելացնեք երկու վերնագիր.
    • Ընդունել դիմում/xml
    • Content-Type հավելված/xml

Օգտագործելով նախորդը GET խնդրանքով, մենք տեսնում ենք փոփոխությունները.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Ջնջել կոնֆիգուրացիան

Եկեք ստեղծենք ՋՆՋԵԼ հարցում:

  1. Հարցման տող.
    DELETE 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
  2. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:

Զանգահարելիս GET հարցում արձանագրությունների մասին տեղեկություններով, մենք կտեսնենք հետևյալը.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Հավելվածը:

Կազմաձևը փոխելու համար անհրաժեշտ չէ հարցումն ուղարկել ձևաչափով XML. Դա կարելի է անել նաև ձևաչափով JSON.

Դա անելու համար, օրինակ, հարցման մեջ PUT կոնֆիգուրացիան փոխելու համար հարցման մարմինը փոխարինեք հետևյալով.

{
    "junos-conf-protocols:protocols": {
        "bgp": {
            "description" : "Changed in postman" 
        }
    }
}

Մի մոռացեք փոխել վերնագրերը Վերնագրերի ներդիրում հետևյալի.

  • Ընդունել դիմումը/json
  • Content-Type հավելված/json

Ուղարկելուց հետո մենք կստանանք հետևյալ արդյունքը (Պատասխանը նայում ենք՝ օգտագործելով GET հարցում):

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Մաս 7. Cisco xRV9000-ի ավելացում

Ինչ ենք մենք բոլորս Juniper, այո Juniper. Եկեք խոսենք Cisco-ի մասին:
Ես գտա xRV9000 տարբերակը 7.0.2 (գազան, որին անհրաժեշտ է 8 Գբ օպերատիվ հիշողություն և 4 միջուկ: Այն անվճար հասանելի չէ, ուստի դիմեք Cisco) - եկեք գործարկենք:

Կոնտեյների վարում

Docker կոնտեյների ստեղծման գործընթացը գործնականում չի տարբերվում Juniper-ից: Նմանապես, մենք .qcow2 ֆայլը երթուղիչով գցում ենք նրա անվանը համապատասխանող գրացուցակի մեջ (այս դեպքում՝ xrv9k) և կատարում հրամանը։ make docker-image.

Մի քանի րոպե անց մենք տեսնում ենք, որ պատկերը ստեղծվել է.

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

Մենք սկսում ենք կոնտեյները.

ubuntu:~$ sudo docker run -d --privileged --name xrv01 54debc7973fc

Որոշ ժամանակ անց մենք տեսնում ենք, որ բեռնարկղը սկսվել է.

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

Միացեք 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

Երթուղիչը միացնելով OpenDaylight-ին

Ավելացումը տեղի է ունենում բոլորովին նման կերպ vMX-ի հետ: Պարզապես պետք է փոխել անունները։
PUT հարցում:
Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Որոշ ժամանակ անց զանգահարեք GET հարցում՝ ստուգելու համար, որ ամեն ինչ միացված է.
Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Փոխեք կոնֆիգուրացիան

Եկեք կարգավորենք հետևյալ կոնֆիգուրացիան.

!
router ospf LAB
 mpls ldp auto-config
!

Եկեք ստեղծենք POST հարցում:

  1. Հարցման տող.
    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
  2. Հարցման մարմին (Body ներդիր):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:
  4. Վերնագրերի ներդիրում դուք պետք է ավելացնեք երկու վերնագիր.
    • Ընդունել դիմումը/json
    • Content-Type հավելված/json

Դրա կատարումից հետո նրանք պետք է ստանան «204 No Content» կարգավիճակը։

Եկեք ստուգենք, թե ինչ ենք ստացել:
Դա անելու համար մենք կստեղծենք GET հարցում:

  1. Հարցման տող.
    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
  2. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:

Կատարումից հետո դուք պետք է տեսնեք հետևյալը.

Ցանցային ծառայությունների ավտոմատացում կամ ինչպես կառուցել վիրտուալ լաբորատորիա OpenDaylight, Postman և Vrnetlab-ի միջոցով

Կազմաձևը հեռացնելու համար օգտագործեք ՋՆՋԵԼ:

  1. Հարցման տող.
    DELETE 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
  2. Թույլտվություն ներդիրում դուք պետք է սահմանեք պարամետրը Basic Auth և մուտք/գաղտնաբառ՝ admin/admin:

Ամփոփում

Ընդհանուր առմամբ, ինչպես նկատեցիք, Cisco-ն և Juniper-ը OpenDaylight-ին միացնելու ընթացակարգերը չեն տարբերվում. սա ստեղծագործության բավականին լայն շրջանակ է բացում: Սկսած ցանցի բոլոր բաղադրիչների կազմաձևման կառավարումից և վերջացրած ձեր սեփական ցանցային քաղաքականության ստեղծմամբ:
Այս ձեռնարկում ես տվել եմ ամենապարզ օրինակները, թե ինչպես կարող եք համագործակցել ցանցային սարքավորումների հետ՝ օգտագործելով OpenDaylight: Անկասկած, վերը նշված օրինակներից հարցումները կարող են շատ ավելի բարդ լինել և մկնիկի մեկ սեղմումով կարգավորել ամբողջ ծառայությունները. ամեն ինչ սահմանափակվում է միայն ձեր երևակայությամբ *

Շարունակելի…

PS

Եթե ​​դուք հանկարծ արդեն գիտեք այս ամենը կամ, ընդհակառակը, անցել եք և խորտակվել ODL-ի հոգու մեջ, ապա խորհուրդ եմ տալիս նայել դեպի ODL կարգավորիչի վրա հավելվածներ մշակելը: Դուք կարող եք սկսել ուստի.

Հաջող փորձեր!

Հիշատակում

  1. Vrnetlab. ընդօրինակել ցանցերը՝ օգտագործելով KVM և Docker / Բրայան Լինկլեթեր
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
  3. Ցանցի ծրագրավորելիություն YANG / Benoît Claise, Loe Clarke, Jan Lindblad-ի հետ
  4. Ուսուցում XML, Երկրորդ հրատարակություն / Erik T. Ray
  5. Արդյունավետ DevOps / Ջենիֆեր Դևիս, Ռայն Դենիելս

Source: www.habr.com

Добавить комментарий