OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Bu yazıda sizə necə qurulacağını göstərəcəyəm açıq gün işığı şəbəkə avadanlığı ilə işləmək, həmçinin istifadə qaydalarını göstərmək Poçtalyon və sadə RESTCONF istəkləri, bu avadanlıq nəzarət edilə bilər. Biz hardware ilə işləməyəcəyik, bunun əvəzinə bir marşrutlaşdırıcıdan istifadə edərək kiçik virtual laboratoriyalar yerləşdirəcəyik Vrnetlab üstü üstündə Ubuntu 20.04 LTS.

Əvvəlcə marşrutlaşdırıcının nümunəsindən istifadə edərək ətraflı parametrləri göstərəcəyəm Juniper vMX 20.1R1.11, və sonra onu parametrlə müqayisə edirik Cisco xRV9000 7.0.2.

Məzmun

  • Tələb olunan bilik
  • Часть 1: qısaca müzakirə edin OpenDaylight (bundan sonra ODL), Poçtalyon и Vrnetlab və onlara niyə ehtiyacımız var
  • Часть 2: virtual laboratoriyanın təsviri
  • Часть 3: özəlləşdirmək açıq gün işığı
  • Часть 4: özəlləşdirmək Vrnetlab
  • Часть 5: istifadə etməklə Poçtalyon virtual marşrutlaşdırıcını birləşdirin (Juniper vMX) Üçün ODL
  • Часть 6: istifadə edərək marşrutlaşdırıcının konfiqurasiyasını əldə edin və dəyişdirin Poçtalyon и ODL
  • Часть 7: Cisco xRV9000 əlavə edin
  • Nəticə
  • PS
  • Biblioqrafiya

Tələb olunan bilik

Məqalənin vərəqə çevrilməməsi üçün bəzi texniki təfərrüatları buraxdım (onlar haqqında oxuya biləcəyiniz ədəbiyyata keçidlərlə).

Bununla əlaqədar olaraq sizə oxumadan əvvəl bilmək yaxşı olardı (lakin demək olar ki, lazım deyil) mövzuları təklif edirəm:

1-ci hissə: bəzi nəzəriyyələr

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

  • tərəfindən dəstəklənən bütün növ şəbəkələrin idarə edilməsi və avtomatlaşdırılması üçün açıq SDN platforması Linux Foundation
  • Java daxilində
  • Modelə əsaslanan Xidmət Abstraksiya Səviyyəsinə (MD-SAL) əsaslanır
  • Şəbəkə cihazları üçün avtomatik olaraq RESTCONF API yaratmaq üçün YANG modellərindən istifadə edir

Şəbəkə idarəetməsi üçün əsas modul. Məhz onun vasitəsilə biz qoşulmuş cihazlarla əlaqə saxlayacağıq. Öz API vasitəsilə idarə olunur.

OpenDaylight haqqında daha çox oxuya bilərsiniz burada.

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

  • API test aləti
  • Sadə və istifadəsi asan interfeys

Bizim vəziyyətimizdə, biz OpenDaylight API-ə REST sorğuları göndərmək üçün bir vasitə kimi maraqlıyıq. Siz, əlbəttə ki, sorğuları əl ilə göndərə bilərsiniz, lakin Postman-da hər şey çox aydın görünür və məqsədlərimizə mükəmməl uyğun gəlir.

Qazmaq istəyənlər üçün: üzərində çoxlu təlim materialları yazılıb (məsələn).

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

  • Docker-də virtual marşrutlaşdırıcıların yerləşdirilməsi üçün alət
  • Dəstəkləyir: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR və s.
  • Open Source

Çox maraqlı, lakin az tanınan alət. Bizim vəziyyətimizdə ondan Juniper vMX və Cisco xRV9000-ni adi Ubuntu 20.04 LTS-də işə salmaq üçün istifadə edəcəyik.

Bu barədə ətraflı oxuya bilərsiniz layihə səhifəsi.

2-ci hissə: Laboratoriya

Bu dərslikdə biz aşağıdakı sistemi quracağıq:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Bu necə işləyir

  • Juniper vMX içində yüksəlir yükvuran konteyner (vasitəsilə Vrnetlab) və ən çox yayılmış virtual marşrutlaşdırıcı kimi fəaliyyət göstərir.
  • ODL marşrutlaşdırıcıya qoşulur və onu idarə etməyə imkan verir.
  • Poçtalyon ayrıca maşında işə salınır və onun vasitəsilə biz əmrlər göndəririk ODL: marşrutlaşdırıcıya qoşulmaq / çıxarmaq, konfiqurasiyanı dəyişdirmək və s.

Sistemin cihazına şərh

Juniper vMX и ODL onların sabit işləməsi üçün kifayət qədər çoxlu resurs tələb edir. Yalnız bir vMX 6 Gb RAM və 4 nüvə tələb edir. Buna görə də, bütün "ağır çəkiləri" ayrıca bir maşına köçürmək qərara alındı ​​(Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Router, əlbəttə ki, onun üzərində "uçmur", lakin performans kiçik təcrübələr üçün kifayətdir.

Hissə 3: OpenDaylight-ı quraşdırın

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Bu yazı zamanı ODL-nin hazırkı versiyası Maqnezium SR1-dir

1) Quraşdırın Java Open JDK 11 (daha ətraflı quraşdırma üçün burada)

ubuntu:~$ sudo apt install default-jdk

2) Ən son quruluşu tapın və endirin ODL buradan
3) Yüklənmiş arxivi açın
4) Yaranan kataloqa keçin
5) işə salın ./bin/karaf

Bu addımda ODL başlamalıdır və biz özümüzü konsolda tapacağıq (Port 8181 xaricdən daxil olmaq üçün istifadə olunur, bundan sonra istifadə edəcəyik).

Sonra, quraşdırın ODL Xüsusiyyətləriprotokollarla işləmək üçün nəzərdə tutulmuşdur NETCONF и RESTCONF. Bunu konsolda etmək üçün ODL icra edirik:

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

Bu ən sadə quraşdırmadır. ODL tamamlandı. (Ətraflı məlumat üçün bax burada).

4-cü hissə: Vrnetlab-ın qurulması

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Sistemin hazırlanması

Quraşdırmadan əvvəl Vrnetlab onun işləməsi üçün lazım olan paketləri quraşdırmalısınız. Kimi yükvuran, git, 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 quraşdırılması

Quraşdırmaq üçün Vrnetlab github-dan müvafiq deponu klonlayın:

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

Kataloqa keçin vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Burada işləmək üçün lazım olan bütün skriptləri görə bilərsiniz. Nəzərə alın ki, hər bir marşrutlaşdırıcı növü üçün müvafiq kataloq yaradılıb:

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

Routerin şəklini yaradın

Dəstəklənən hər bir marşrutlaşdırıcı Vrnetlab, özünəməxsus quraşdırma proseduruna malikdir. Nə vaxt Juniper vMX bizə sadəcə olaraq .tgz arxivini marşrutlaşdırıcı ilə yükləmək lazımdır (onu buradan yükləyə bilərsiniz rəsmi saytı) vmx qovluğuna daxil edin və əmri işə salın make:

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

Təsvirin qurulması vMX təxminən 10-20 dəqiqə çəkəcək. Bir az qəhvə içməyə getməyin vaxtı gəldi!

Niyə bu qədər uzun, soruşursan?

Tərcümə cavab bu sualın müəllifi:

"Bu ona görədir ki, VCP (İdarəetmə Təyyarəsi) ilk dəfə işə salındıqda, onun vMX-də VRR VCP kimi çalışıb-çalışmayacağını müəyyən edən konfiqurasiya faylını oxuyur. Əvvəllər bu işəsalma Docker-in işə salınması zamanı həyata keçirilirdi, lakin bu, VCP virtual marşrutlaşdırıcı əlçatan olmamışdan əvvəl həmişə bir dəfə yenidən işə salınırdı, nəticədə uzun yükləmə vaxtı (təxminən 5 dəqiqə) oldu. İndi VCP-nin ilk işə salınması Docker təsvirinin qurulması zamanı həyata keçirilir və Docker quruluşu ilə işləmək mümkün olmadığı üçün - -imtiyazlı seçim, bu o deməkdir ki, qemu KVM hardware sürətləndirilməsi olmadan işləyir və buna görə də qurma çox uzun vaxt aparır. O qədər də qorxulu deyil, çünki biz bir dəfə obraz yaradırıq, amma çoxunu işə salırıq”.

Routerimizin şəklini görə bildikdən sonra yükvuran:

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 konteynerini işə salın

Komanda ilə başlayırıq:

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

Sonra, aktiv konteynerlər haqqında məlumat görə bilərik:

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

Routerə qoşulma

Routerin şəbəkə interfeysinin IP ünvanını aşağıdakı əmrlə əldə etmək olar:

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

Defolt, Vrnetlab marşrutlaşdırıcıda istifadəçi yaradır vrnetlab/VR-netlab9.
ilə əlaqə 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

Bu, marşrutlaşdırıcının quraşdırılmasını tamamlayır.

Müxtəlif təchizatçıların marşrutlaşdırıcıları üçün quraşdırma tövsiyələrini burada tapa bilərsiniz github layihəsi müvafiq kataloqlarda.

5-ci hissə: Poçtalyon - marşrutlaşdırıcını OpenDaylight-a qoşun

Poçtalyon quraşdırılması

Quraşdırmaq üçün proqramı yükləmək kifayətdir buradan.

Routerin ODL-ə qoşulması

Yaradaq PUT sorğu:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

  1. Sorğu sətri:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Sorğunun əsas hissəsi (Bədən nişanı):
    <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. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin. ODL-ə daxil olmaq üçün bu tələb olunur:
    OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması
  4. Başlıqlar sekmesinde iki başlıq əlavə etməlisiniz:
    • Tətbiq/xml qəbul edin
    • Məzmun növü proqram/xml

Müraciətimiz edilib. göndəririk. Hər şey düzgün konfiqurasiya edilibsə, o zaman "201 Yaradıldı" statusunu qaytarmalıyıq:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Bu sorğu nə edir?

İçəridə node yaradırıq ODL daxil olmaq istədiyimiz real marşrutlaşdırıcının parametrləri ilə.

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

Bunlar daxili ad boşluqlarıdır XML (XML ad sahəsi) üçün ODL ona görə node yaradır.

Bundan əlavə, müvafiq olaraq, marşrutlaşdırıcının adıdır node-id, marşrutlaşdırıcının ünvanı - sahib və s.

Ən maraqlı xətt sonuncudur. Sxem-keş-kataloq bütün faylların yükləndiyi qovluq yaradır YANG Sxemi qoşulmuş marşrutlaşdırıcı. Onları içərisində tapa bilərsiniz $ODL_ROOT/cache/jun01_cache.

Routerin əlaqəsinin yoxlanılması

Yaradaq GET sorğu:

  1. Sorğu sətri:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.

göndəririk. "200 OK" statusu və cihaz tərəfindən dəstəklənənlərin siyahısını almalıdır YANG Sxemi:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Qeyd: Sonuncunu görmək üçün mənim vəziyyətimdə edamdan sonra təxminən 10 dəqiqə gözləmək lazım idi PUThamısına qədər YANG sxemi üzərinə boşaltın ODL. Bu nöqtəyə qədər, bunu həyata keçirərkən GET sorğu aşağıdakıları göstərəcək:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Routeri silin

Yaradaq DELETE sorğu:

  1. Sorğu sətri:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.

Hissə 6: Router konfiqurasiyasını dəyişdirin

Konfiqurasiya əldə edilir

Yaradaq GET sorğu:

  1. Sorğu sətri:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.

göndəririk. "200 OK" statusunu və marşrutlaşdırıcının konfiqurasiyasını almalıdır:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Konfiqurasiya yaradın

Nümunə olaraq aşağıdakı konfiqurasiyanı yaradaq və onu dəyişdirək:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Yaradaq POST sorğu:

  1. Sorğu sətri:
    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. Sorğunun əsas hissəsi (Bədən nişanı):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.
  4. Başlıqlar sekmesinde iki başlıq əlavə etməlisiniz:
    • Tətbiq/xml qəbul edin
    • Məzmun növü proqram/xml

Göndərdikdən sonra onlar "204 Məzmun yoxdur" statusunu almalıdırlar.

Konfiqurasiyanın dəyişdiyini yoxlamaq üçün əvvəlki sorğudan istifadə edə bilərsiniz. Ancaq məsələn, yalnız marşrutlaşdırıcıda konfiqurasiya edilmiş protokollar haqqında məlumatı göstərəcək başqa birini yaradacağıq.

Yaradaq GET sorğu:

  1. Sorğu sətri:
    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. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.

Sorğunu yerinə yetirdikdən sonra aşağıdakıları görəcəyik:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Konfiqurasiyanı dəyişdirin

BGP protokolu haqqında məlumatları dəyişdirək. Hərəkətlərimizdən sonra belə görünəcək:

protocols {
    bgp {
        disable;
    }
}

Yaradaq PUT sorğu:

  1. Sorğu sətri:
    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. Sorğunun əsas hissəsi (Bədən nişanı):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.
  4. Başlıqlar sekmesinde iki başlıq əlavə etməlisiniz:
    • Tətbiq/xml qəbul edin
    • Məzmun növü proqram/xml

Əvvəlki istifadə GET sorğuda dəyişiklikləri görürük:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Konfiqurasiyanı silin

Yaradaq DELETE sorğu:

  1. Sorğu sətri:
    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. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.

Zəng edəndə GET protokollar haqqında məlumat tələb etsəniz, aşağıdakıları görəcəyik:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Əlavə:

Konfiqurasiyanı dəyişdirmək üçün sorğu orqanını formatda göndərmək lazım deyil XML. Bu formatda da edilə bilər JSON.

Bunu etmək üçün, məsələn, sorğuda PUT konfiqurasiyanı dəyişdirmək üçün sorğunun əsas hissəsini aşağıdakılarla əvəz edin:

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

Başlıqlar sekmesinde başlıqları dəyişdirməyi unutmayın:

  • Application/json qəbul edin
  • Məzmun Tipli proqram/json

Göndərdikdən sonra aşağıdakı nəticəni alacağıq (Cavabdan istifadə edərək baxırıq GET sorğu):

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

7-ci hissə: Cisco xRV9000-in əlavə edilməsi

Ardıc haqqında hamımız nəyik, bəli Juniper? Gəlin Cisco haqqında danışaq!
Mən xRV9000 7.0.2 versiyasını tapdım (8Gb RAM və 4 nüvəyə ehtiyacı olan heyvan. O, sərbəst mövcud deyil, ona görə də əlaqə saxlayın Cisco) - gəlin onu işə salaq.

Konteyneri idarə etmək

Docker konteynerinin yaradılması prosesi praktiki olaraq Juniper-dən fərqlənmir. Eynilə, biz marşrutlaşdırıcı ilə .qcow2 faylını onun adına uyğun qovluğa (bu halda xrv9k) atırıq və əmri yerinə yetiririk. make docker-image.

Bir neçə dəqiqədən sonra görüntünün yaradıldığını görürük:

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

Konteynerə başlayırıq:

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

Bir müddət sonra konteynerin işə düşdüyünü görürük:

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 vasitəsilə qoşulun:

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

Routerin OpenDaylight-a qoşulması

Əlavə etmə vMX ilə tamamilə oxşar şəkildə baş verir. Sadəcə adları dəyişdirməliyik.
PUT sorğu:
OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Bir müddət sonra zəng edin GET hər şeyin bağlı olduğunu yoxlamaq üçün sorğu:
OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Konfiqurasiyanı dəyişdirin

Aşağıdakı konfiqurasiyanı quraq:

!
router ospf LAB
 mpls ldp auto-config
!

Yaradaq POST sorğu:

  1. Sorğu sətri:
    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. Sorğunun əsas hissəsi (Bədən nişanı):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.
  4. Başlıqlar sekmesinde iki başlıq əlavə etməlisiniz:
    • Application/json qəbul edin
    • Məzmun Tipli proqram/json

Onun icrasından sonra onlar "204 Məzmun yoxdur" statusunu almalıdırlar.

Nə əldə etdiyimizi yoxlayaq.
Bunun üçün biz yaradacağıq GET sorğu:

  1. Sorğu sətri:
    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. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.

İcradan sonra aşağıdakıları görməlisiniz:

OpenDaylight, Postman və Vrnetlab istifadə edərək şəbəkə xidmətlərinin avtomatlaşdırılması və ya virtual laboratoriyanın necə qurulması

Konfiqurasiyanı aradan qaldırmaq üçün istifadə edin DELETE:

  1. Sorğu sətri:
    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. Avtorizasiya sekmesinde parametri təyin etməlisiniz Basic Auth və giriş/parol: admin/admin.

Nəticə

Ümumilikdə, qeyd etdiyiniz kimi, Cisco və Juniper-in OpenDaylight-a qoşulması prosedurları fərqlənmir - bu, yaradıcılıq üçün kifayət qədər geniş imkanlar açır. Bütün şəbəkə komponentlərinin konfiqurasiyasının idarə edilməsindən başlayaraq öz şəbəkə siyasətinizin yaradılmasına qədər.
Bu dərslikdə mən OpenDaylight istifadə edərək şəbəkə avadanlığı ilə necə qarşılıqlı əlaqə qura biləcəyinizlə bağlı ən sadə nümunələri verdim. Şübhəsiz ki, yuxarıdakı nümunələrdən sorğular daha mürəkkəbləşdirilə və siçanın bir kliklə bütün xidmətləri qura bilər - hər şey yalnız sizin təsəvvürünüzlə məhdudlaşır *

Davam etmək üçün ...

PS

Əgər birdən bütün bunları bilirsinizsə və ya əksinə, ODL-nin ruhuna daxil olmusunuzsa, onda mən ODL nəzarətçisində proqramların hazırlanmasına baxmağı məsləhət görürəm. Başlaya bilərsiniz buradan.

Uğurlu eksperimentlər!

References

  1. Vrnetlab: KVM və Docker istifadə edərək şəbəkələri təqlid edin /Brian Linkletter
  2. OpenDaylight Cookbook / Mathieu Lemay, Alexis de Talhouet, et al
  3. YANG / Benoît Claise, Loe Clarke, Jan Lindblad ilə şəbəkə proqramlaşdırması
  4. XML Öyrənilməsi, İkinci Nəşr / Erik T. Ray
  5. Effektiv DevOps / Jennifer Davis, Ryn Daniels

Mənbə: www.habr.com

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