Professional Documents
Culture Documents
OPENDAYLIGHT
I.Giới thiệu
OpenDaylight là phần mềm mã nguồn mở dành cho Software Defined Networking
(SDN) sử dụng giao thức mở cung cấp khả năng kiểm soát tập trung, có khả năng lập
trình được và theo dõi các thiết bị mạng. Giống như nhiều Bộ điều khiển SDNs khác,
OpenDaylight hỗ trợ OpenFlow, cũng như cung cấp các giải pháp mạng khác sẵn sàng
để cài đặt khi có yêu cầu. OpenDaylight cung cấp giao diện cho phép kết nối các thiết
bị mạng nhanh chóng và thông minh để tối ưu hiệu năng mạng. OpenDaylight
Controller cung cấp northbound APIs, được sử dụng bởi các ứng dụng. Các ứng dụng
này sử dụng controller để thu thập thông tin về mạng, chạy các thuật toán để kiểm
soát, phân tích, sau đó sử dụng OpenDaylight Controller tạo các rules mới cho mạng.
OpenDaylight Controller viết bằng ngôn ngữ Java, có nghĩa là có thể sử dụng
OpenDaylight Controller trên bất kì môi trường nào hỗ trợ Java. Tuy nhiên để đạt hiệu
năng tốt nhất, OpenDaylight nên chạy trên môi trường Linux hỗ trợ JVM tối thiểu 1.7
II.Kiến trúc Opendaylight
Kiến trúc Opendaylight gồm 5 lớp logic
- Ứng dụng mạng và dịch vụ: Bao gồm các ứng dụng mạng logic kiểm soát và
giám sát hành vi mạng, và các ứng dụng thương mại. Các ứng dụng này sử dụng bộ
điều khiển để thu thập thông tin mạng, chạy thuật toán để thực hiện phân tích và sau
đó sử dụng bộ điều khiển để sắp xếp các quy tắc mới nếu.
Ví dụ: Dlux(Opendaylight user Experience) ,DdoS(Distributed Denial of Service)
Protection,OpenStack Neutron,SDNI Wrapper,VTN(Virtual Tenant Network)
Coordinator
- API: Một tập hợp các giao diện chung cho các chức năng điều khiển
OpenDaylight. OpenDaylight hỗ trợ khung Open Service Gateway Initiative (OSGi)
và REST hai chiều cho API hướng Bắc. Khung OSGi được sử dụng cho các ứng dụng
sẽ chạy trong không gian địa chỉ giống như bộ điều khiển, trong khi API REST (dựa
trên web) được sử dụng cho các ứng dụng không chạy trong cùng một không gian địa
chỉ (hoặc thậm chí trên cùng một máy) với bộ điều khiển.
- Các chức năng và dịch vụ: Các chức năng và dịch vụ điều khiển SDN
Chú thích:
DOCSIS Abstraction:Data over Cable Service Interface Specification
Abstraction
AAA:Authentication , Authorization & Accounting
LISP service: Locator/Identifier Separation Protocol service
ALTO Protocol Manager: Application Layer Traffic Optimization
Protocol Manager
-Lớp trừu tượng dịch vụ (SAL): Cung cấp một chế độ xem thống nhất các tài
nguyên mặt bằng dữ liệu,để các chức năng điều khiển có thể được thực hiện độc lập
với giao diện và giao thức hướng nam.
- Giao diện và giao thức Southbound: Hỗ trợ OpenFlow, các giao thức khác theo
tiêu chuẩn Nam, và giao diện nhà cung cấp cụ thể.
Chú thích:
OVSDB:Open vSwitch Database Protocol
BGP:Boder Gateway Protocol
PCEP:Path Computation Element Protocol
CAPWAP: Control and Provisioning of Wireless Access Points
SXP:Source-Group Tag eXchange Protocol
SNMP:Simple Network Management Protocol
USC:Unified Secure Channel
SNBI:Secure Network Bootstrapping infrastructure
LACP:Link Aggregation Controll Protocol
PCMM:Packet Cable MultiMedia
COPS:Common Open Policy Service
Có một số khía cạnh đáng lưu ý đối với kiến trúc OpenDaylight. Thứ nhất,
OpenDaylight bao gồm cả mặt bằng điều khiển và chức năng mặt phẳng ứng dụng. Do
đó, OpenDaylight không chỉ là một bộ điều khiển SDN. Điều này cho phép các nhà
quản lý mạng doanh nghiệp và viễn thông lưu trữ phần mềm nguồn mở trên các máy
chủ riêng của họ để xây dựng cấu hình SDN. Các nhà cung cấp có thể sử dụng phần
mềm này để tạo ra các sản phẩm có thêm các chức năng và dịch vụ mặt phẳng ứng
dụng bổ sung.
Một khía cạnh quan trọng thứ hai của thiết kế OpenDaylight là nó không gắn với
OpenFlow hoặc bất kỳ giao diện hướng nam cụ thể nào khác. Điều này cung cấp tính
linh hoạt cao hơn trong việc xây dựng cấu hình mạng SDN. Yếu tố then chốt trong
thiết kế này là SAL cho phép bộ điều khiển hỗ trợ nhiều giao thức trên giao diện
hướng Nam và cung cấp các dịch vụ thống nhất cho các chức năng bộ điều khiển và
cho các ứng dụng SDN. Hình 3.8 minh họa hoạt động của SAL. Khung OSGi cung
cấp liên kết động các plug-in cho các giao thức hướng nam có sẵn. Khả năng của các
giao thức này được trừu tượng hóa thành một tập hợp các tính năng có thể được viện
dẫn bằng các dịch vụ máy điều khiển thông qua một trình quản lý dịch vụ trong SAL.
Người quản lý dịch vụ duy trì một đăng ký để lập bản đồ các yêu cầu dịch vụ để yêu
cầu tính năng. Dựa trên yêu cầu dịch vụ, SAL bản đồ cho các plug-in thích hợp và do
đó sử dụng các giao thức hướng Nam thích hợp nhất để tương tác với một thiết bị
mạng nhất định
Một điểm mạnh trong OpenDaylight là bộ phần mềm được mô đun hóa và có tính
linh hoạt cao. Tất cả các mã được thực hiện trong Java và được chứa trong Java
Virtual Machine (JVM) của riêng nó. Như vậy, nó có thể được triển khai trên bất kỳ
phần cứng và nền tảng hệ điều hành nào hỗ trợ Java.
III.REST
REpresentational State Transfer (REST) là một kiểu kiến trúc được sử dụng để
xác định các APIs. REST đã trở thành một phương thức chuẩn để xây dựng API
hướng Bắc cho bộ điều khiển SDN. Một API REST, hay một API được RESTful
(tuân
thủ các ràng buộc của REST) không phải là một giao thức, ngôn ngữ hoặc tiêu chuẩn
đã được thiết lập. Có tất cả sáu yêu cầu cơ bản mà một API phải tuân theo để
RESTful. Mục tiêu của những ràng buộc này là tối đa hóa khả năng mở rộng và độc
lập/khả năng tương tác của các tương tác phần mềm và cung cấp một phương thức
đơn
giản để xây dựng các API.
REST giả định rằng các khái niệm về truy cập dựa trên web được sử dụng cho sự
tương tác giữa ứng dụng và dịch vụ ở cả hai bên của API. REST không xác định các
chi tiết cụ thể của API nhưng áp đặt các ràng buộc về bản chất của sự tương tác giữa
ứng dụng và dịch vụ. Sáu yêu cầu REST bao gồm:
Client-server
Stateless
Cache
Giao diện thống nhất
Hệ thống được phân lớp
Mã hóa theo yêu cầu
Sau khi Opendaylight được khởi động,ta dùng lệnh feature:list –installed để
hiển thị danh sách các tính năng hiện có của Opendaylight
Sau khi cài đặt và khởi động OpenDaylight,ta tiến hành kết nối topo mạng 3
switch 4 host với bộ điều khiển OpenDaylight
Tại giao diện của Mininet,ta dùng các lệnh:$ pwd
$ cd mininet
$ cd custom
Sau đó ta gõ lệnh sudo mn –controller=remote,ip=192.168.0.115,port=6653 –
custom mnchuyende.py –topo mytopo để nối bộ điều khiển với topo mạng
( trong đó ip=192.168.0.115 là địa chỉ của máy ảo Ubuntu chứa bộ điều khiển
OpenDaylight,mnchuyende.py là file topo mạng 3 switch 4 host)
Vậy là ta đã xây dựng xong topo mạng 3 switch 4 host dùng bộ điều khiển
OpenDaylight
Giao diện Opendaylight khi bật trên web