Mạng được xác định bằng phần mềm (SDN) - Kết nối OpenFlow và OVSDB

theanh

Administrator
Nhân viên
Bài viết này dựa trên kết nối OpenFlow và OVSDB giữa bộ điều khiển SDN và các bộ chuyển mạch dựa trên Openflow và cung cấp thông tin chi tiết về vòng đời kết nối. Chúng tôi sẽ sử dụng bộ điều khiển SDN nguồn mở tức là Bản phát hành Carbon Opendaylight (ODL) và bộ chuyển mạch ảo Openflow tức là OpenVswitch (OVS) phiên bản 2.6.0 để mô tả về kết nối OVSDB và Openflow.

Bộ điều khiển SDN quản lý các bộ chuyển mạch Openflow cơ bản thông qua hai loại kết nối:
  • OVSDB
  • Openflow

Kết nối OVSDB và Openflow

OVSDB là giao thức quản lý cơ sở dữ liệu OVS định nghĩa lược đồ cho cơ sở dữ liệu OVS và thông số kỹ thuật để giao tiếp giữa bộ điều khiển và bộ chuyển mạch. Bộ điều khiển SDN sử dụng giao thức này để điều khiển bộ chuyển mạch OVS bằng cách điền cấu hình mong muốn vào cơ sở dữ liệu của nó.

Thông thường, bộ điều khiển SDN chạy ở chế độ thụ động để lắng nghe các kết nối OVSDB và Openflow từ OVS trên các cổng 6640 và 6653 tương ứng.

Trước tiên, chúng ta hãy khởi động bộ điều khiển ODL, bạn có thể tải xuống từ tại đây. Điều kiện tiên quyết là phải đặt biến môi trường JAVA_HOME trong hệ thống của bạn thành phiên bản Java mới nhất. Chạy ODL rất dễ, chỉ cần thực hiện các bước dưới đây:
  1. Tải xuống bản phân phối ODL từ tại đây.
  2. Giải nén bản phân phối ODL.
  3. Vào thư mục con ‘bin’ nằm trong thư mục cấp cao nhất của gói đã tải xuống.
  4. Chạy lệnh sau để khởi động bộ điều khiển của bạn: karaf
Dưới đây là hình ảnh cho các bước đã thực hiện ở trên:



Vì chúng ta cần quản lý các công tắc OVS mà các kết nối OVSDB và Openflow sẽ được thực hiện, nên các plugin Openflow và OVSDB cần được cài đặt vào ODL. cần thực hiện Bạn có thể thực hiện như sau:



Sau khi cài đặt plugin Openflow và OVSDB, ODL sẽ bắt đầu lắng nghe các kết nối Openflow và OVSDB tại cổng 6653 và 6640 tương ứng. Bạn có thể kiểm tra điều này tại bộ điều khiển bằng cách chạy các lệnh sau:
Mã:
netstat -a | grep 6653
Mã:
netstat -a | grep 6640


Lưu ý rằng OVS switch phải đang chạy trước khi thực hiện bất kỳ lệnh OVS nào. Để chạy OVS trên Ubuntu, hãy chạy lệnh sau với quyền root:
Mã:
sudo /etc/init.d/openvswitch-switch start
Nó có sẵn dưới dạng dịch vụ, vì vậy bạn cũng có thể kiểm tra trạng thái của nó.
Mã:
sudo /etc/init.d/openvswitch-switch status
Khi OVS đang chạy, bạn cũng có thể thực thi các lệnh CLI của nó. Ví dụ,
Mã:
sudo ovs-vsctl show
Dưới đây là hình ảnh cho đầu ra thực thi lệnh ở trên:



Ở phía OVS, lệnh bên dưới được chạy để khởi tạo kết nối OVSDB với bộ điều khiển:
Mã:
ovs-vsctl set-manager tcp::6640
Để xác nhận kết nối đã được thiết lập, có thể chạy lệnh bên dưới, lệnh này hiển thị cờ ‘is_connected’ được đặt thành true trong đầu ra.
Mã:
sudo ovs-vsctl show


Kết nối Openflow được tạo trên cầu nối, do đó bạn có thể tạo cầu nối trên OVS hoặc ODL cũng có thể tạo cầu nối trên OVS bằng cách gửi cấu hình đến OVS thông qua kết nối OVSDB. Qua cầu nối trong OVS, lệnh bên dưới có thể được chạy để kết nối cầu nối với ODL, thiết lập kết nối Openflow giữa ODL và OVS.
Mã:
ovs-vsctl set-controller  tcp: : 6653
Kiểm tra bên dưới để biết chi tiết kết nối của chúng.



Như chúng ta đã thấy từ phía OVS, kết nối OVSDB và Openflow đã được thực hiện và có thể xác minh điều đó ở phía ODL bằng cách chạy các lệnh sau.
Mã:
netstat -a | grep 6653
Mã:
netstat -a | grep 6640
Kiểm tra hình ảnh bên dưới để biết đầu ra của lệnh xác nhận trạng thái kết nối ĐÃ ĐƯỢC THIẾT LẬP:



Vì kết nối OVSDB và Openflow as dựa trên TCP, các tin nhắn được trao đổi giữa ODL và OVS có thể dễ dàng được nắm bắt thông qua phần mềm Wireshark. Kiểm tra hình ảnh nắm bắt gói tin bên dưới hiển thị các tin nhắn được trao đổi trong quá trình thiết lập kết nối.



Trong nhật ký nắm bắt gói tin Wireshark, bạn có thể thấy nhiều tin nhắn Openflow khác nhau được trao đổi giữa bộ điều khiển và OVS trong quá trình thiết lập kết nối.

Như bạn thấy trong quá trình thiết lập kết nối, ODL đã gửi tin nhắn FEATURES_REQUEST Openflow và để phản hồi, ODL đã nhận được FEATURES_REPLY từ OVS. Bên trong các thông báo FEATURES_REPLY, ODL lấy ID đường dẫn dữ liệu (tức là mã định danh duy nhất) của cầu nối OVS, đảm nhiệm việc chuyển tiếp (dựa trên các quy tắc Openflow được OFL cấu hình) lưu lượng giữa các máy ảo được kết nối với các cổng của OVS.

Ở phía OVS, có thể chạy lệnh sau để hiển thị thông tin chi tiết về cầu nối.
Mã:
sudo ovs-ofctl show br-int -OOpenFlow13
Kiểm tra hình ảnh bên dưới để biết đầu ra của lệnh:



Tại đây, bạn có thể thấy FEATURE_REPLY hiển thị ID đường dẫn dữ liệu (ở định dạng hex) của cầu nối trên OVS.

Ngay cả ODL cũng có tính năng DLUX bảng điều khiển cung cấp giao diện web GUI cho bộ điều khiển ODL tại url http://localhost:8181/index.html mà người dùng ODL có thể đăng nhập (theo mặc định tên người dùng và mật khẩu là ‘admin’) và kiểm tra cấu trúc mạng trên trình duyệt của hệ thống nơi ODL đang chạy. Kiểm tra các hình ảnh bên dưới để biết thêm thông tin.





Trong hình ảnh trên, bạn có thể thấy công tắc OVS được hiển thị trong cấu trúc mạng được quản lý bởi bộ điều khiển ODL. Vì chúng tôi chỉ kết nối một công tắc, đó là lý do tại sao chỉ có một nút Openflow được hiển thị. Tại đây, công tắc OVS được hiển thị với ID đường dẫn dữ liệu của nó ở định dạng thập phân.

Để xóa kết nối Openflow với ODL, lệnh bên dưới có thể được chạy tại OVS:
Mã:
ovs-vsctl del-controller
Để xóa kết nối OVSDB với ODL, lệnh bên dưới có thể được chạy tại OVS:
Mã:
ovs-vsctl del-manager
Sau khi kết nối bị xóa, cờ 'is_conncted' là 'true' khi kết nối được thiết lập sẽ biến mất khỏi đầu ra của lệnh CLI 'ovs-vsctl show' của OVS.

Kiểm tra hình ảnh bên dưới để biết kết nối OpenFlow và OVSDB đã xóa được khởi tạo từ phía OVS:



Để gỡ lỗi và khắc phục sự cố, bạn có thể kiểm tra các tệp nhật ký được lưu giữ trong ODL và OVS.

Đường dẫn ghi nhật ký ODL

Khi bản phân phối ODL (mà bạn đã tải xuống) được giải nén và bạn chạy tệp thực thi nhị phân ‘karaf’, thì thư mục con ‘log’ sẽ được tạo, chứa các tệp karaf.log và đường dẫn chung của chúng là: ~/distribution-karaf-<version-number>-<release name>/data/log.

Kiểm tra hình ảnh bên dưới để biết các tệp nhật ký phía ODL.


Đường dẫn ghi nhật ký OVS

Khi OVS đang chạy, nó sẽ tạo tệp nhật ký OVSDB có tên là ‘ovsdb-server.log’ và tệp nhật ký Openflow có tên là ‘ovs-vswitchd.log’ tại đường dẫn:
Mã:
/var/log/openvswitch
Kiểm tra hình ảnh bên dưới để biết các tệp nhật ký phía OVS cho OVSDB (ovsdb-server.log) và các mô-đun Openflow (ovs-vswitchd.log) của OVS.


Mã:
 +===+
Mã:
Bài viết này được đồng tác giả bởi[URL=https://www.linkedin.com/in/tarun-thakur-36b67a19/?utm_source=diendancongnghe.com]Tarun Thakur[/URL].
Tài liệu tham khảo:
 
Back
Bên trên