Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Bu yazımda size nasıl kurulum yapacağınızı anlatacağım. AçıkGünışığı ağ ekipmanıyla çalışmak için ve aynı zamanda nasıl kullanılacağını da gösterecek Postacı ve basit RESTCONF istekler doğrultusunda bu ekipman kontrol edilebilir. Donanımla çalışmayacağız, bunun yerine küçük sanal laboratuvarları tek bir yönlendiriciyle kullanarak dağıtacağız. Vrnetlab üzerinde Ubuntu LTS 20.04.

İlk önce bir yönlendirici örneğini kullanarak ayrıntılı kurulumu göstereceğim Ardıç vMX 20.1R1.11ve ardından bunu ayarla karşılaştırırız Cisco xRV9000 7.0.2.

Içerik

  • Gerekli bilgi
  • Часть 1: kısaca tartışalım OpenDaylight (bundan sonra şu şekilde anılacaktır: ODL), Postacı и Vrnetlab ve neden onlara ihtiyacımız var?
  • Часть 2: sanal laboratuvarın açıklaması
  • Часть 3: yapılandır AçıkGünışığı
  • Часть 4: yapılandır Vrnetlab
  • Часть 5: kullanarak Postacı sanal bir yönlendirici bağlayın (Ardıç vMX) için ODL
  • Часть 6: kullanarak yönlendirici yapılandırmasını alın ve değiştirin Postacı и ODL
  • Часть 7: Cisco xRV9000'i ekleyin
  • Sonuç
  • PS
  • Kaynakça

Gerekli bilgi

Makalenin sayfaya dönüşmesini önlemek için bazı teknik detayları (bunları okuyabileceğiniz literatür bağlantılarıyla birlikte) atladım.

Bu bağlamda okumadan önce bilmenizin iyi olacağı (ancak neredeyse gerekli olmadığı) konuları size öneriyorum:

Bölüm 1: küçük bir teori

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

  • Her türlü ağı yönetmek ve otomatikleştirmek için, aşağıdakiler tarafından desteklenen açık bir SDN platformu: Linux Vakfı
  • Java'nın içi
  • Model Odaklı Hizmet Soyutlama Düzeyini (MD-SAL) temel alır
  • Ağ cihazları için otomatik olarak RESTCONF API oluşturmak üzere YANG modellerini kullanır

Ağ yönetimi için ana modül. Bağlı cihazlarla iletişim kuracağız. Kendi API'si aracılığıyla yönetilir.

OpenDaylight hakkında daha fazlasını okuyabilirsiniz burada.

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

  • API Test Aracı
  • Basit ve kullanımı kolay arayüz

Bizim durumumuzda, REST isteklerini OpenDaylight API'sine göndermenin bir yolu olarak ilgileniyoruz. Elbette istekleri manuel olarak gönderebilirsiniz, ancak Postman'da her şey çok net görünüyor ve amaçlarımız için mükemmel.

Bu konuya dalmak isteyenler için: üzerine birçok eğitim materyali yazılmıştır (örneğin).

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

  • Docker'da sanal yönlendiricileri dağıtmaya yönelik bir araç
  • Destekler: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, vb.
  • Açık Kaynak

Çok ilginç ama az bilinen bir enstrüman. Bizim durumumuzda, onun yardımıyla Juniper vMX ve Cisco xRV9000'i normal Ubuntu 20.04 LTS üzerinde çalıştıracağız.

Onun hakkında daha fazlasını şu adreste okuyabilirsiniz: proje sayfası.

Bölüm 2: laboratuvar çalışması

Bu dersimizde aşağıdaki sistemi kuracağız:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Bu nasıl çalışıyor

  • Ardıç vMX yükselir liman işçisi konteyner (bununla Vrnetlab) ve en yaygın sanal yönlendirici olarak işlev görür.
  • ODL yönlendiriciye bağlanır ve onu kontrol etmenizi sağlar.
  • Postacı ayrı bir makinede başlatıldı ve onun aracılığıyla komutlar gönderiyoruz ODL: bir yönlendiriciyi bağlamak/kaldırmak, yapılandırmayı değiştirmek vb. için.

Sistem tasarımına ilişkin yorumlar

Ardıç vMX и ODL istikrarlı çalışmaları için oldukça fazla kaynak gerektirir. Sadece bir vMX 6 GB RAM ve 4 çekirdek ister. Bu nedenle tüm “ağır sikletlerin” ayrı bir makineye taşınmasına karar verildi (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Yönlendirici elbette üzerinde "uçmuyor", ancak küçük deneyler için yeterli performans var.

Bölüm 3: OpenDaylight'ı Kurma

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Bu yazının yazıldığı sırada ODL'nin mevcut sürümü Magnesium SR1'dir.

1) Kurulum Java OpenJDK 11 (daha detaylı kurulum için burada)

ubuntu:~$ sudo apt install default-jdk

2) En son sürümü bulun ve indirin ODL bundan dolayı
3) İndirilen arşivi açın
4) Ortaya çıkan dizine gidin
5) Başlat ./bin/karaf

Bu adımda ODL başlamamız gerekiyor ve kendimizi konsolda bulacağız (Harici erişim için daha sonra kullanacağımız 8181 numaralı bağlantı noktası kullanılıyor).

Daha sonra kurulumu yapıyoruz ODL Özellikleriprotokollerle çalışacak şekilde tasarlanmıştır NETCONF и RESTCONF. Bunu konsolda yapmak için ODL Yapmak:

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

Bu en basit kurulumdur ODL tamamlanmış. (Daha fazla ayrıntı için okuyabilirsiniz burada).

Bölüm 4: Vrnetlab'ı kurma

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Sistem hazırlığı

Kurulumdan önce Vrnetlab çalışması için gerekli paketleri kurmanız gerekmektedir. Örneğin liman işçisi, 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'ı yükleme

Kurulum için Vrnetlab ilgili depoyu github'dan klonlayın:

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

dizine git vnetlab:

ubuntu:~$ cd ~/vrnetlab

Burada çalıştırmak için gereken tüm komut dosyalarını görebilirsiniz. Lütfen her yönlendirici türü için karşılık gelen bir dizinin oluşturulduğunu unutmayın:

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

Yönlendiricinin görüntüsünü oluşturma

Desteklenen her yönlendirici Vrnetlab, kendine özgü bir kurulum prosedürüne sahiptir. Ne zaman Ardıç vMX Tek yapmamız gereken .tgz arşivini yönlendiriciye yüklemek (şu adresten indirebilirsiniz) resmi sitesi) vmx dizinine gidin ve komutu yürütün make:

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

resim oluşturma vMX yaklaşık 10-20 dakika sürecektir. Gidip kahve yapma zamanı!

Neden bu kadar uzun süre sordun?

çeviri Cevap yazarın bu soruya cevabı:

"Bunun nedeni, VCP'nin (Kontrol Düzlemi) ilk başlatıldığında vMX'te VRR VCP olarak çalışıp çalışmayacağını belirleyen bir yapılandırma dosyasını okumasıdır. Daha önce bu başlatma, Docker başlatma sırasında yapılıyordu ancak bu, VCP'nin her zaman bir kez yeniden başlatıldığı anlamına geliyordu. sanal yönlendirici kullanıma sunulmadan önce, bu da uzun bir önyükleme süresine (yaklaşık 5 dakika) neden oluyor. Artık ilk VCP çalıştırması Docker görüntüsü oluşturma sırasında yapılıyor ve Docker oluşturma --privileged seçeneğiyle çalıştırılamadığı için bu, qemu'nun KVM donanım hızlandırması olmadan çalışır ve bu nedenle oluşturulması çok uzun zaman alır. Bu işlem sırasında çok sayıda günlük çıktısı alınır, böylece en azından neler olduğunu görebilirsiniz. Uzun bir derlemenin o kadar da kötü olmadığını düşünüyorum çünkü bir görüntüyü bir kez oluşturduğumuz için , ancak çoğunu başlatın."

Daha sonra yönlendiricimizin görüntüsünü görebilirsiniz. liman işçisi:

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 kapsayıcısını başlatma

Şu komutla başlatıyoruz:

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

Daha sonra aktif konteynerler hakkındaki bilgileri görebiliriz:

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

Yönlendiriciye bağlanma

Yönlendiricinin ağ arayüzünün IP adresi aşağıdaki komutla elde edilebilir:

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

Varsayılan olarak Vrnetlab yönlendiricide bir kullanıcı oluşturur vrnetlab/VR-netlab9.
Kullanarak bağlanın 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, yönlendirici kurulumunu tamamlar.

Çeşitli satıcıların yönlendiricileri için kurulum önerileri şu adreste bulunabilir: proje github uygun dizinlerde.

Bölüm 5: Postacı - yönlendiriciyi OpenDaylight'a bağlama

Postacıyı Yükleme

Kurulum için uygulamayı indirmeniz yeterli bundan dolayı.

Yönlendiriciyi ODL'ye bağlama

hadi yaratalım PUT rica etmek:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

  1. Sorgu dizesi:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. İstek gövdesi (Gövde sekmesi):
    <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. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin. ODL'ye erişmek için bu gereklidir:
    Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı
  4. Başlıklar sekmesinde iki başlık eklemeniz gerekir:
    • Uygulamayı/xml'i kabul et
    • İçerik Türü uygulaması/xml

Talebimiz tamamlandı. Gönderdik. Her şey doğru yapılandırılmışsa "201 Oluşturuldu" durumunu geri döndürmeliyiz:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Bu istek ne işe yarıyor?

İçeride bir düğüm yaratıyoruz ODL Erişmek istediğimiz gerçek yönlendiricinin parametreleriyle.

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

Bunlar dahili ad alanlarıdır XML (XML ad alanı) için ODL buna göre düğüm oluşturur.

Ayrıca buna göre yönlendiricinin adı düğüm kimliği, yönlendirici adresi - ev sahibi ve benzeri.

En ilginç satır ise sonuncusu. Şema-önbellek-dizini tüm dosyaların indirildiği bir dizin oluşturur YANG Şeması bağlı yönlendirici. Onları içeride bulabilirsin $ODL_ROOT/cache/jun01_cache.

Yönlendirici bağlantısını kontrol etme

hadi yaratalım GET rica etmek:

  1. Sorgu dizesi:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.

Gönderdik. "200 OK" durumu ve desteklenen tüm cihazların bir listesi alınmalıdır YANG Şeması:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Yorumlamak: İkincisini görmek için benim durumumda infazdan sonra yaklaşık 10 dakika beklemek gerekiyordu PUTşimdilik bu kadar YANG şeması tarihinde boşaltılacak ODL. Bu noktaya kadar bunu yaparken GET sorgu aşağıdakileri gösterecektir:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Yönlendiriciyi çıkarma

hadi yaratalım SİL rica etmek:

  1. Sorgu dizesi:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.

Bölüm 6: Yönlendirici yapılandırmasını değiştirme

Yapılandırmayı alma

hadi yaratalım GET rica etmek:

  1. Sorgu dizesi:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.

Gönderdik. "200 OK" durumunu ve yönlendirici yapılandırmasını almalıdır:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Yapılandırma oluşturma

Örnek olarak aşağıdaki konfigürasyonu oluşturup değiştirelim:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

hadi yaratalım POST rica etmek:

  1. Sorgu dizesi:
    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. İstek gövdesi (Gövde sekmesi):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.
  4. Başlıklar sekmesinde iki başlık eklemeniz gerekir:
    • Uygulamayı/xml'i kabul et
    • İçerik Türü uygulaması/xml

Gönderdikten sonra "204 İçerik Yok" durumunu almalısınız.

Yapılandırmanın değiştiğini doğrulamak için önceki sorguyu kullanabilirsiniz. Ancak örnek olması açısından, bize yalnızca yönlendiricide yapılandırılmış protokoller hakkında bilgi gösterecek başka bir tane oluşturacağız.

hadi yaratalım GET rica etmek:

  1. Sorgu dizesi:
    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. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.

İsteği gerçekleştirdikten sonra aşağıdakileri göreceğiz:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Yapılandırmayı değiştirme

BGP protokolü ile ilgili bilgileri değiştirelim. Eylemlerimizden sonra şöyle görünecek:

protocols {
    bgp {
        disable;
    }
}

hadi yaratalım PUT rica etmek:

  1. Sorgu dizesi:
    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. İstek gövdesi (Gövde sekmesi):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.
  4. Başlıklar sekmesinde iki başlık eklemeniz gerekir:
    • Uygulamayı/xml'i kabul et
    • İçerik Türü uygulaması/xml

Öncekini kullanma GET isteğimizde değişiklikleri görüyoruz:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Yapılandırmanın silinmesi

hadi yaratalım SİL rica etmek:

  1. Sorgu dizesi:
    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. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.

çağrıldığında GET Protokoller hakkında bilgi içeren talepte aşağıdakileri göreceğiz:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Ek:

Yapılandırmayı değiştirmek için istek gövdesini şu biçimde göndermeye gerek yoktur: XML. Bu aynı zamanda formatta da yapılabilir. JSON.

Bunu yapmak için örneğin istekte PUT yapılandırmayı değiştirmek için istek metnini şununla değiştirin:

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

Başlıklar sekmesindeki başlıkları şu şekilde değiştirmeyi unutmayın:

  • Uygulamayı/json'u kabul et
  • İçerik Türü uygulaması/json

Gönderdikten sonra aşağıdaki sonucu alıyoruz (Cevaba şunu kullanarak bakıyoruz: GET rica etmek):

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Bölüm 7: Cisco xRV9000'i ekleyin

Juniper hakkında hepimiz neyiz, evet Juniper hakkında? Hadi Cisco'dan konuşalım!
xRV9000'in 7.0.2 sürümünü buldum (8 Gb RAM ve 4 çekirdeğe ihtiyaç duyan bir canavar. Ücretsiz olarak mevcut değil, bu nedenle iletişime geçin Cisco) - hadi başlatalım.

Konteyner çalıştırma

Docker konteyneri oluşturma süreci pratik olarak Juniper'dan farklı değildir. Benzer şekilde, .qcow2 dosyasını yönlendiriciyle birlikte ismine karşılık gelen dizine (bu durumda xrv9k) bırakıyoruz ve komutu çalıştırıyoruz. make docker-image.

Birkaç dakika sonra görüntünün oluşturulduğunu görüyoruz:

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

Konteyneri başlatalım:

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

Bir süre sonra konteynerin başladığını görüyoruz:

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 ile bağlanın:

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

Yönlendiriciyi OpenDaylight'a bağlama

Ekleme vMX'e tamamen benzer şekilde gerçekleşir. Sadece isimleri değiştirmeniz yeterli.
PUT rica etmek:
Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Bir süre sonra aradık GET her şeyin bağlı olup olmadığını kontrol etme isteği:
Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Yapılandırmayı değiştirme

Aşağıdaki konfigürasyonu kuralım:

!
router ospf LAB
 mpls ldp auto-config
!

hadi yaratalım POST rica etmek:

  1. Sorgu dizesi:
    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. İstek gövdesi (Gövde sekmesi):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.
  4. Başlıklar sekmesinde iki başlık eklemeniz gerekir:
    • Uygulamayı/json'u kabul et
    • İçerik Türü uygulaması/json

Yürütüldükten sonra "204 İçerik Yok" durumunu almalısınız.

Ne bulduğumuzu kontrol edelim.
Bunun için yaratacağız GET rica etmek:

  1. Sorgu dizesi:
    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. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.

Yürütmeden sonra aşağıdakileri görmelisiniz:

Ağ hizmetlerinin otomasyonu veya OpenDaylight, Postman ve Vrnetlab kullanılarak sanal laboratuvarın nasıl oluşturulacağı

Yapılandırma kullanımını silmek için SİL:

  1. Sorgu dizesi:
    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. Yetkilendirme sekmesinde parametreyi ayarlamanız gerekir Basic Auth ve kullanıcı adı/şifre: admin/admin.

Sonuç

Toplamda, fark etmiş olabileceğiniz gibi, Cisco ve Juniper'ı OpenDaylight'a bağlama prosedürleri farklı değildir; bu, yaratıcılık için oldukça geniş bir alan açar. Tüm ağ bileşenlerinin yapılandırmalarını yönetmekten başlayarak kendi ağ ilkelerinizi oluşturmaya kadar.
Bu eğitimde OpenDaylight kullanarak ağ ekipmanıyla nasıl etkileşim kurabileceğinize dair basit örnekler verdim. Kuşkusuz, yukarıdaki örneklerden gelen talepler çok daha karmaşık hale getirilebilir ve tüm hizmetler bir fare tıklamasıyla yapılandırılabilir - her şey yalnızca sizin hayal gücünüzle sınırlıdır*

Devam edecek ...

PS

Birdenbire tüm bunları zaten biliyorsanız veya tam tersine, bunları yaşadıysanız ve ODL ruhunuza gömüldüyse, o zaman ODL denetleyicisinde uygulamalar geliştirmeye bakmanızı öneririm. Başlayabilirsin bundan dolayı.

Başarılı deneyler!

Referanslar

  1. Vrnetlab: KVM ve Docker kullanarak ağları taklit edin /Brian Linkletter
  2. OpenDaylight Yemek Kitabı / Mathieu Lemay, Alexis de Talhouet, vd.
  3. YANG / Benoît Claise, Loe Clarke, Jan Lindblad ile Ağ Programlanabilirliği
  4. XML Öğrenmek, İkinci Baskı / Erik T. Ray
  5. Etkili DevOps / Jennifer Davis, Ryn Daniels

Kaynak: habr.com

Yorum ekle