- API chức năng điều khiển cơ bản: Các API này trình bày các chức năng cơ
bản của bộ điều khiển và được các nhà phát triển sử dụng để tạo ra các dịch vụ mạng
- API dịch vụ mạng: Các API này trình các dịch vụ mạng ở hướng Bắc.
- API ứng dụng giao diện hướng Bắc: Các API này trình bày các dịch vụ liên
quan đến ứng dụng được xây dựng trên các dịch vụ mạng.
3.1.3 Định tuyến
Giống như bất kỳ mạng internet nào, mạng SDN yêu cầu chức năng định tuyến. Nói chung, chức năng định tuyến bao gồm một giao thức để thu thập thông tin về topo và điều kiện lưu lượng của mạng, và một thuật tốn để thiết kế các tuyến đường thơng qua mạng. Có hai loại giao thức định tuyến: các giao thức định tuyến nội bộ (IRPs) hoạt động bên trong một hệ thống tự trị (AS), và các giao thức định tuyến bên ngoài (ERPs) hoạt động như một giao thức tự quản.
IRP có liên quan đến việc khám phá topo của các bộ định tuyến trong AS và sau đó xác định tuyến đường tốt nhất đến từng điểm đến dựa trên các chỉ số khác nhau. Hai IRPs được sử dụng rộng rãi là Giao thức Open Shortest Path First (OSPF) và Giao thức Enhance Interio Gateway Routing (EIGRP). Một hệ thống ERP không cần thu thập thông tin chi tiết về lưu lượng. Thay vào đó, mối quan tâm chính đối với hệ thống ERP là xác định khả năng tiếp cận của các mạng và hệ thống kết thúc bên ngồi AS. Vì vậy, ERP thường được thực hiện chỉ trong các nút cạnh kết nối một AS với nhau. Giao thức Border Gateway (BGP) thường được sử dụng cho hệ thống ERP.
Theo truyền thống, chức năng định tuyến được phân phối giữa các bộ định tuyến trong mạng. Mỗi router có trách nhiệm xây dựng một hình ảnh topo của mạng. Đối với định tuyến nội thất, mỗi bộ định tuyến cũng phải thu thập thông tin về kết nối và sự chậm trễ và sau đó tính tốn tuyến đường ưa thích cho mỗi địa chỉ đích IP. Tuy nhiên, trong một mạng lưới điều khiển SDN, nó có ý nghĩa để tập trung hóa các chức năng định tuyến trong bộ điều khiển SDN. Bộ điều khiển có thể phát triển một cái nhìn thống nhất về trạng thái mạng để tính các đường đi ngắn nhất và có thể thực hiện các chính sách định tuyến nhận thức ứng dụng. Các switches trong mặt bằng dữ liệu được giảm bớt gánh nặng xử lý và lưu trữ liên quan đến định tuyến, dẫn đến hiệu suất được cải thiện.
Ứng dụng định tuyến tập trung thực hiện hai chức năng riêng biệt: liên kết phát hiện và quản lý topo.
Đối với phát hiện liên kết, chức năng định tuyến cần phải nhận thức được các liên kết giữa các switches trong mặt bằng dữ liệu. Lưu ý rằng trong trường hợp mạng internet, các liên kết giữa các bộ định tuyến là mạng, trong khi đó cho các switch lớp 2, chẳng hạn như switch Ethernet, các liên kết là các liên kết vật lý trực tiếp. Ngoài ra, phát hiện liên kết phải được thực hiện giữa một router và một hệ thống máy chủ và giữa một bộ định tuyến trong miền của bộ điều khiển này và một bộ định tuyến trong
Người quản lý tơpơ duy trì thơng tin cấu trúc mạng cho mạng và tính tốn các tuyến trong mạng. Tính tốn đường bao gồm việc xác định đường đi ngắn nhất giữa hai nút mặt bằng dữ liệu hoặc giữa nút mặt bằng dữ liệu và máy chủ.
3.2 OPENDAYLIGHT
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 số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 tốn để kiểm số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.
3.2.1 Kiến trúc OpenDaylight
Hình 3.5 cung cấp một cái nhìn ở mức cao về kiến trúc OpenDaylight. Nó bao gồm năm lớp logic, được mô tả thêm trong danh sách sau: