Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Trong bài viết này tôi sẽ hướng dẫn bạn cách thiết lập mởÁnh sáng ban ngày để làm việc với thiết bị mạng và cũng sẽ chỉ ra cách sử dụng Người phát thơ và đơn giản RESTCONF yêu cầu, thiết bị này có thể được kiểm soát. Chúng tôi sẽ không làm việc với phần cứng mà thay vào đó chúng tôi sẽ triển khai các phòng thí nghiệm ảo nhỏ bằng một bộ định tuyến duy nhất bằng cách sử dụng Vrnetlab hơn Ubuntu 20.04 LTS.

Đầu tiên tôi sẽ trình bày cách thiết lập chi tiết bằng ví dụ về bộ định tuyến Cây bách xù vMX 20.1R1.11, và sau đó chúng tôi so sánh nó với cài đặt Cisco xRV9000 7.0.2.

nội dung

  • Kiến thức cần thiết
  • Часть 1: thảo luận ngắn gọn OpenDaylight (sau đây gọi tắt là ODL), Người phát thơ и Vrnetlab và tại sao chúng ta cần chúng
  • Часть 2: mô tả phòng thí nghiệm ảo
  • Часть 3: cấu hình mởÁnh sáng ban ngày
  • Часть 4: cấu hình Vrnetlab
  • Часть 5: bằng cách sử dụng Người phát thơ kết nối bộ định tuyến ảo (cây bách xù vMX) Đến ODL
  • Часть 6: lấy và thay đổi cấu hình bộ định tuyến bằng cách sử dụng Người phát thơ и ODL
  • Часть 7: thêm Cisco xRV9000
  • Kết luận
  • PS
  • Thư mục

Kiến thức cần thiết

Để ngăn bài viết biến thành một trang giấy, tôi đã bỏ qua một số chi tiết kỹ thuật (kèm theo các liên kết đến tài liệu để bạn có thể đọc về chúng).

Về vấn đề này, tôi gợi ý cho bạn những chủ đề mà bạn nên biết (nhưng hầu như không cần thiết) trước khi đọc:

Phần 1: một chút lý thuyết

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

  • Nền tảng SDN mở để quản lý và tự động hóa tất cả các loại mạng, được hỗ trợ bởi Nền tảng Linux
  • Java bên trong
  • Dựa trên Mức độ trừu tượng dịch vụ hướng mô hình (MD-SAL)
  • Sử dụng mô hình YANG để tự động tạo API RESTCONF cho các thiết bị mạng

Mô-đun chính để quản lý mạng. Thông qua đó chúng ta sẽ giao tiếp với các thiết bị được kết nối. Được quản lý thông qua API riêng của nó.

Bạn có thể đọc thêm về OpenDaylight đây.

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

  • Công cụ kiểm tra API
  • Giao diện đơn giản và dễ sử dụng

Trong trường hợp của chúng tôi, chúng tôi quan tâm đến nó như một phương tiện để gửi các yêu cầu REST tới API OpenDaylight. Tất nhiên, bạn có thể gửi yêu cầu theo cách thủ công, nhưng trong Postman mọi thứ trông rất rõ ràng và hoàn hảo cho mục đích của chúng tôi.

Dành cho những ai muốn tìm hiểu sâu hơn: rất nhiều tài liệu giáo dục đã được viết trên đó (ví dụ).

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

  • Công cụ triển khai bộ định tuyến ảo trong Docker
  • Hỗ trợ: Cisco XRv, Juniper vMX, Arista vEOS, Nokia VSR, v.v.
  • Mã nguồn mở

Một nhạc cụ rất thú vị nhưng ít được biết đến. Trong trường hợp của chúng tôi, với sự trợ giúp của nó, chúng tôi sẽ chạy Juniper vMX và Cisco xRV9000 trên Ubuntu 20.04 LTS thông thường.

Bạn có thể đọc thêm về anh ấy tại trang dự án.

Phần 2: làm việc trong phòng thí nghiệm

Trong hướng dẫn này, chúng ta sẽ thiết lập hệ thống sau:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Làm thế nào nó hoạt động

  • cây bách xù vMX vươn đến phu bến tàu thùng chứa (bằng phương tiện Vrnetlab) và hoạt động như bộ định tuyến ảo phổ biến nhất.
  • ODL được kết nối với bộ định tuyến và cho phép bạn điều khiển nó.
  • Người phát thơ được khởi chạy trên một máy riêng biệt và thông qua nó, chúng tôi gửi lệnh ODL: để kết nối/gỡ bỏ bộ định tuyến, thay đổi cấu hình, v.v.

Bình luận về thiết kế hệ thống

cây bách xù vMX и ODL đòi hỏi khá nhiều nguồn lực để hoạt động ổn định. Chỉ một vMX Yêu cầu 6 GB RAM và 4 lõi. Vì vậy, người ta quyết định chuyển tất cả các “hạng nặng” sang một máy riêng (Heulett Packard Enterprise MicroServer ProLiant Gen8, Ubuntu 20.04 LTS). Tất nhiên, bộ định tuyến không “bay” trên đó, nhưng có đủ hiệu suất cho các thử nghiệm nhỏ.

Phần 3: Thiết lập OpenDaylight

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Phiên bản hiện tại của ODL tại thời điểm viết bài là Magiê SR1

1) Cài đặt Java OpenJDK 11 (để biết thêm cách cài đặt chi tiết đây)

ubuntu:~$ sudo apt install default-jdk

2) Tìm và tải xuống bản dựng mới nhất ODL do đó
3) Giải nén kho lưu trữ đã tải xuống
4) Chuyển đến thư mục kết quả
5) Khởi chạy ./bin/karaf

Ở bước này ODL sẽ bắt đầu và chúng ta sẽ thấy mình trong bảng điều khiển (Để truy cập bên ngoài, cổng 8181 được sử dụng, chúng ta sẽ sử dụng cổng này sau).

Tiếp theo chúng ta cài đặt Tính năng ODL, được thiết kế để hoạt động với các giao thức NETCONF и RESTCONF. Để làm điều này trong bảng điều khiển ODL LÀM:

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

Đây là cách thiết lập đơn giản nhất ODL hoàn thành. (Để biết thêm chi tiết bạn có thể đọc đây).

Phần 4: Thiết lập Vrnetlab

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Chuẩn bị hệ thống

Trước khi cài đặt Vrnetlab bạn cần cài đặt các gói cần thiết để nó hoạt động. Chẳng hạn như phu bến tàu, 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

Cài đặt Vrnetlab

Để cài đặt Vrnetlab sao chép kho lưu trữ tương ứng từ github:

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

Chuyển đến thư mục vrnetlab:

ubuntu:~$ cd ~/vrnetlab

Tại đây bạn có thể thấy tất cả các tập lệnh cần thiết để chạy. Xin lưu ý rằng đối với mỗi loại bộ định tuyến, một thư mục tương ứng đã được tạo:

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

Tạo hình ảnh của bộ định tuyến

Mỗi bộ định tuyến được hỗ trợ Vrnetlab, có quy trình thiết lập riêng. Khi cây bách xù vMX Tất cả những gì chúng ta cần làm là tải kho lưu trữ .tgz lên bằng bộ định tuyến (bạn có thể tải xuống từ trang web chính thức) vào thư mục vmx và thực hiện lệnh make:

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

Xây dựng hình ảnh vMX sẽ mất khoảng 10-20 phút. Đã đến lúc phải đi pha cà phê!

Tại sao lâu như vậy, bạn hỏi?

Dịch câu trả lời câu trả lời của tác giả cho câu hỏi này:

"Điều này là do khi VCP (Mặt phẳng điều khiển) khởi động lần đầu, nó sẽ đọc tệp cấu hình để xác định xem nó có chạy dưới dạng VRR VCP trong vMX hay không. Trước đây, quá trình khởi động này được thực hiện trong quá trình khởi động Docker, nhưng điều này có nghĩa là VCP luôn được khởi động lại một lần trước khi bộ định tuyến ảo khả dụng, dẫn đến thời gian khởi động lâu (khoảng 5 phút) Bây giờ, lần chạy VCP đầu tiên được thực hiện trong quá trình xây dựng hình ảnh Docker và vì bản dựng Docker không thể chạy với tùy chọn --privileged, điều này có nghĩa là qemu chạy mà không cần tăng tốc phần cứng KVM và do đó mất rất nhiều thời gian để xây dựng. Rất nhiều nhật ký được xuất ra trong quá trình này, vì vậy ít nhất bạn có thể thấy điều gì đang diễn ra. Tôi nghĩ rằng một bản dựng dài không đến nỗi tệ vì chúng ta chỉ tạo một hình ảnh một lần , nhưng phóng nhiều."

Sau đó, bạn có thể thấy hình ảnh của bộ định tuyến của chúng tôi trong phu bến tàu:

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

Khởi chạy vùng chứa vr-vmx

Chúng tôi khởi chạy nó bằng lệnh:

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

Tiếp theo chúng ta có thể xem thông tin về các container đang hoạt động:

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

Kết nối với bộ định tuyến

Địa chỉ IP của giao diện mạng của bộ định tuyến có thể được lấy bằng lệnh sau:

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

Mặc định, Vrnetlab tạo người dùng trên bộ định tuyến vrnetlab/VR-netlab9.
Kết nối bằng cách sử dụng 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

Điều này hoàn tất việc thiết lập bộ định tuyến.

Bạn có thể tìm thấy các đề xuất cài đặt cho bộ định tuyến từ nhiều nhà cung cấp khác nhau tại dự án github trong các thư mục thích hợp.

Phần 5: Postman - kết nối router với OpenDaylight

Cài đặt người đưa thư

Để cài đặt, chỉ cần tải xuống ứng dụng do đó.

Kết nối bộ định tuyến với ODL

Hãy tạo ra PUT lời yêu cầu:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

  1. Chuỗi truy vấn:
    PUT http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Nội dung yêu cầu (tab Nội dung):
    <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. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên. Điều này là cần thiết để truy cập ODL:
    Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab
  4. Trên tab Tiêu đề, bạn cần thêm hai tiêu đề:
    • Chấp nhận đơn đăng ký/xml
    • Ứng dụng loại nội dung/xml

Yêu cầu của chúng tôi đã được hoàn thành. Chúng tôi gửi. Nếu mọi thứ đã được định cấu hình chính xác thì chúng ta sẽ trả về trạng thái "201 Đã tạo":

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Yêu cầu này làm gì?

Chúng tôi tạo một nút bên trong ODL với các thông số của bộ định tuyến thực mà chúng ta muốn truy cập.

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

Đây là những không gian tên nội bộ XML (Không gian tên XML) cho ODL theo đó nó tạo ra nút.

Hơn nữa, theo đó, tên của bộ định tuyến là id nút, địa chỉ bộ định tuyến - chủ nhà và vân vân.

Dòng thú vị nhất là dòng cuối cùng. Schema-cache-thư mục tạo một thư mục chứa tất cả các tập tin được tải xuống Lược đồ YANG bộ định tuyến được kết nối. Bạn có thể tìm thấy chúng trong $ODL_ROOT/cache/jun01_cache.

Kiểm tra kết nối bộ định tuyến

Hãy tạo ra GET lời yêu cầu:

  1. Chuỗi truy vấn:
    GET http://10.132.1.202:8181/restconf/operational/network-topology:network-topology/topology/topology-netconf/
  2. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.

Chúng tôi gửi. Sẽ nhận được trạng thái "200 OK" và danh sách tất cả các thiết bị được hỗ trợ Lược đồ YANG:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Bình luận: Để xem cái sau, trong trường hợp của tôi, cần phải đợi khoảng 10 phút sau khi thực hiện PUTđó là tất cả bây giờ lược đồ YANG sẽ được dỡ hàng vào ODL. Tính đến thời điểm này, khi thực hiện việc này GET truy vấn sẽ hiển thị như sau:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Loại bỏ bộ định tuyến

Hãy tạo ra DELETE lời yêu cầu:

  1. Chuỗi truy vấn:
    DELETE http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01
  2. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.

Phần 6: Thay đổi cấu hình bộ định tuyến

Lấy cấu hình

Hãy tạo ra GET lời yêu cầu:

  1. Chuỗi truy vấn:
    GET http://10.132.1.202:8181/restconf/config/network-topology:network-topology/topology/topology-netconf/node/jun01/yang-ext:mount/
  2. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.

Chúng tôi gửi. Sẽ nhận được trạng thái "200 OK" và cấu hình bộ định tuyến:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Tạo cấu hình

Ví dụ: hãy tạo cấu hình sau và thay đổi nó:

protocols {
    bgp {
        disable;
        shutdown;
    }
}

Hãy tạo ra POST lời yêu cầu:

  1. Chuỗi truy vấn:
    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. Nội dung yêu cầu (tab Nội dung):
    <bgp xmlns="http://yang.juniper.net/junos/conf/protocols">
    <disable/>
    <shutdown>
    </shutdown>
    </bgp>
  3. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.
  4. Trên tab Tiêu đề, bạn cần thêm hai tiêu đề:
    • Chấp nhận đơn đăng ký/xml
    • Ứng dụng loại nội dung/xml

Sau khi gửi bạn sẽ nhận được trạng thái "204 No Content"

Bạn có thể sử dụng truy vấn trước đó để xác minh rằng cấu hình đã thay đổi. Nhưng để làm ví dụ, chúng tôi sẽ tạo một cái khác chỉ hiển thị cho chúng tôi thông tin về các giao thức được định cấu hình trên bộ định tuyến.

Hãy tạo ra GET lời yêu cầu:

  1. Chuỗi truy vấn:
    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. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.

Sau khi thực hiện yêu cầu, chúng ta sẽ thấy như sau:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Thay đổi cấu hình

Hãy thay đổi thông tin về giao thức BGP. Sau hành động của chúng ta, nó sẽ trông như thế này:

protocols {
    bgp {
        disable;
    }
}

Hãy tạo ra PUT lời yêu cầu:

  1. Chuỗi truy vấn:
    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. Nội dung yêu cầu (tab Nội dung):
    <protocols xmlns="http://yang.juniper.net/junos/conf/protocols">
    <bgp>
        <disable/>
    </bgp>
    </protocols>
  3. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.
  4. Trên tab Tiêu đề, bạn cần thêm hai tiêu đề:
    • Chấp nhận đơn đăng ký/xml
    • Ứng dụng loại nội dung/xml

Sử dụng trước đó GET yêu cầu, chúng tôi thấy những thay đổi:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Xóa cấu hình

Hãy tạo ra DELETE lời yêu cầu:

  1. Chuỗi truy vấn:
    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. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.

Khi được gọi GET request với thông tin về các giao thức chúng ta sẽ thấy như sau:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Ngoài ra:

Để thay đổi cấu hình, không cần thiết phải gửi nội dung yêu cầu theo định dạng XML. Điều này cũng có thể được thực hiện dưới dạng JSON.

Để làm điều này, ví dụ, trong yêu cầu PUT để thay đổi cấu hình, hãy thay thế phần thân yêu cầu bằng:

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

Đừng quên thay đổi tiêu đề trên tab Tiêu đề thành:

  • Chấp nhận ứng dụng/json
  • Ứng dụng loại nội dung/json

Sau khi gửi chúng tôi nhận được kết quả như sau (Chúng tôi xem câu trả lời bằng cách sử dụng GET lời yêu cầu):

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Phần 7: Thêm Cisco xRV9000

Tất cả chúng ta là gì về Juniper, vâng về Juniper? Hãy nói về Cisco!
Tôi đã tìm thấy xRV9000 phiên bản 7.0.2 (một con thú cần RAM 8Gb và 4 lõi. Nó không có sẵn miễn phí, vì vậy hãy liên hệ Cisco) - hãy khởi chạy nó.

Chạy container

Quá trình tạo vùng chứa Docker thực tế không khác gì Juniper. Tương tự, chúng ta thả file .qcow2 cùng với router vào thư mục tương ứng với tên của nó (trong trường hợp này là xrv9k) và thực hiện lệnh make docker-image.

Sau vài phút chúng ta thấy hình ảnh đã được tạo:

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

Hãy khởi chạy container:

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

Sau một thời gian, chúng ta thấy container đã khởi động:

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

Kết nối qua 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

Kết nối bộ định tuyến với OpenDaylight

Việc thêm diễn ra theo cách hoàn toàn tương tự với vMX. Bạn chỉ cần thay đổi tên.
PUT lời yêu cầu:
Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Một lúc sau chúng tôi gọi GET yêu cầu kiểm tra xem mọi thứ đã được kết nối chưa:
Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Thay đổi cấu hình

Hãy thiết lập cấu hình sau:

!
router ospf LAB
 mpls ldp auto-config
!

Hãy tạo ra POST lời yêu cầu:

  1. Chuỗi truy vấn:
    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. Nội dung yêu cầu (tab Nội dung):
    {
        "processes": {
            "process": [
                {
                    "process-name": "LAB",
                    "default-vrf": {
                        "process-scope": {
                            "ldp-auto-config": [
                                null
                            ]
                        }
                    }
                }
            ]
        }
    }
  3. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.
  4. Trên tab Tiêu đề, bạn cần thêm hai tiêu đề:
    • Chấp nhận ứng dụng/json
    • Ứng dụng loại nội dung/json

Sau khi thực thi, bạn sẽ nhận được trạng thái "204 Không có nội dung".

Hãy kiểm tra những gì chúng ta có.
Đối với điều này, chúng tôi sẽ tạo ra GET lời yêu cầu:

  1. Chuỗi truy vấn:
    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. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.

Sau khi thực hiện bạn sẽ thấy như sau:

Tự động hóa các dịch vụ mạng hoặc cách xây dựng phòng thí nghiệm ảo bằng OpenDaylight, Postman và Vrnetlab

Để xóa cấu hình, hãy sử dụng DELETE:

  1. Chuỗi truy vấn:
    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. Trên tab Ủy quyền, bạn cần đặt tham số Basic Auth và đăng nhập/mật khẩu: quản trị viên/quản trị viên.

Kết luận

Nhìn chung, như bạn có thể nhận thấy, quy trình kết nối Cisco và Juniper với OpenDaylight không khác nhau - điều này mở ra một phạm vi khá rộng cho sự sáng tạo. Bắt đầu từ việc quản lý cấu hình của tất cả các thành phần mạng và kết thúc bằng việc tạo chính sách mạng của riêng bạn.
Trong hướng dẫn này, tôi đã đưa ra các ví dụ đơn giản về cách bạn có thể tương tác với thiết bị mạng bằng OpenDaylight. Không còn nghi ngờ gì nữa, các yêu cầu từ các ví dụ trên có thể phức tạp hơn nhiều và toàn bộ dịch vụ có thể được định cấu hình chỉ bằng một cú nhấp chuột - mọi thứ chỉ bị giới hạn bởi trí tưởng tượng của bạn*

Để được tiếp tục ...

PS

Nếu bạn đột nhiên biết tất cả những điều này hoặc ngược lại, đã trải qua nó và ODL đã ăn sâu vào tâm hồn bạn, thì tôi khuyên bạn nên hướng tới việc phát triển các ứng dụng trên bộ điều khiển ODL. Bạn có thể bắt đầu do đó.

Chúc các thí nghiệm vui vẻ!

Các tài liệu tham khảo

  1. Vrnetlab: Mô phỏng mạng bằng KVM và Docker /Thư liên kết Brian
  2. Sách dạy nấu ăn OpenDaylight / Mathieu Lemay, Alexis de Talhouet, Et al
  3. Khả năng lập trình mạng với YANG / Benoît Claise, Loe Clarke, Jan Lindblad
  4. Học XML, Ấn bản thứ hai / Erik T. Ray
  5. DevOps hiệu quả / Jennifer Davis, Ryn Daniels

Nguồn: www.habr.com

Thêm một lời nhận xét