• Controller trong khái niệm OpenFlow là yếu tố cơ bản và là trung tâm của mạng SDN, nó như là đầu não, điều khiển mọi hành động của tất cả các thiết bị vật lý SDN mà nó quản lý. Hệ điều hành trên controller chính nó không điều khiển mạng, mà nó chỉ giúp cho giao diện lập trình API điều khiển mạng. Vì thế về cơ bản, việc giải quyết các bài toán điều khiển mạng được thực hiện nhờ các ứng dụng được triển khai trên cơ sở API của hệ điều hành controller. Cần lưu ý rằng giao diện lập trình này phải đủ tính tổng quát để hỗ trợ được nhiều ứng dụng từ đó có thể giải quyết được các vấn đề điều khiển mạng.
Hình 12:Bộ điều khiển của SDN
Hình 12 cho thấy chi tiết của một bộ điều khiển SDN. Hình này mô tả các mô-đun cung cấp các chức năng cốt lõi của bộ điều khiển và các giao diện hướng bắc (NBI) cũng như hướng nam (SBI). API hướng Nam được sử dụng để giao tiếp với các thiết bị SDN, API này dùng giao thức OpenFlow – giao thức đang dần được chuẩn hóa trong mạng SDN. Với giao diện hướng Bắc, hiện nay vẫn có nhiều API nhưng chưa có API nào được phổ biến như OpenFlow dùng trong SBI. Ví dụ Floodlight sử dụng một API Java còn OpenDaylight sử dụng API RESTful
Nhóm 10 33
cho các ứng dụng phía trên. Các API hướng Bắc đại diện cho một sự đổi mới và hợp tác giữa các nhà cung cấp và cộng đồng nguồn mở.
• Khác với cách giải thích thông thường thuật ngữ Network OS là một hệ điều hành tích hợp với các bộ giao thức mạng, trong trường hợp này thuật ngữ NOS được hiểu là một hệ thống phần mềm hỗ trợ giám sát, truy nhập, điều khiển các tài nguyên của toàn bộ mạng chứ không phải là của từng thiết bị. NOS sẽ hình thành các dữ liệu về trạng thái của tất cả tài nguyên mạng và hỗ trợ các ứng dụng điều khiển truy nhập vào chúng.
• Giao diện API của hệ điều hành mạng có các đặc tính cơ bản sau:
➢ Thứ nhất, giao diện API đó cung cấp khả năng tạo ra các ứng dụng trên cơ sở mô hình điều khiển tập trung, nghĩa là các ứng dụng được viết ra sao cho toàn bộ mạng được biểu diễn trên một bộ máy.
➢ Thứ hai, giao diện API cung cấp khả năng tạo ra các ứng dụng ở mức ảo hóa cao (ví dụ tên người sử dụng, tên của host), chứ không phải là các tham số cấu hình cấp thấp (ví dụ IP, MAC address). Điều này cho phép thực hiện các câu lệnh điều khiển mà không phụ thuộc vào topo cơ bản của mạng. Dĩ nhiên việc làm này yêu cầu một sự ánh xạ tương ứng giữa lớp ảo hóa cấp cao và các cấu hình cấp thấp.
• Các thiết bị chuyển mạch OpenFlow là đối tượng chịu điều khiển gián tiếp từ NOS. Controller về nguyên tắc sẽ làm việc trên một server kết nối tới mạng, và có thể là: một Controller điều khiển toàn bộ các switch OpenFlow; hoặc một Controller điều khiển một bộ các switch cụ thể nào đó; hoặc có thể là một Controller điều khiển một switch trong mạng. Controller hỗ trợ giao diện để tạo ra, chỉnh sửa, xóa bỏ, điều khiển các cấu hình trong các bảng Flow table của các switch OpenFlow.
• Có một điều rất quan trọng khi sử dụng nhiều Controller trong mạng SDN đó là tất cả các Controller phải có chung một topo mạng trong mọi thời điểm. Topo mạng đó có thể là topo về các switche, hoặc sự phân bố người dùng, host hay các thành phần, dịch vụ khác của mạng. Vì thế một trong những bài toán quan trọng nhất được xử lý bởi NOS là giám sát mạng thường xuyên để xây dựng topo mạng một cách thống nhất.
• Ở thời điểm hiện tại, người ta đã tạo ra nhiều controller cho SDN, ví dụ: NOX, Beacon, Maestro, Trema, SNAC, Helios, BigSwitch. Tuy nhiện việc cùng lúc sử dùng nhiều controllers khác loại với nhau vẫn chưa thể thực hiện được.