4. Cấu trúc nội dung của luận án
1.6.2. Bộ điều khiển OpenFlow NOX /POX
Trong mạng OpenFlow, bộ điều khiển OpenFlow (OpenFlow Controller) có thể được coi là phần quan trọng nhất của hệ thống mạng, là nơi tập trung thực hiện các chức năng điều khiển giám sát các nút mạng. Hiện nay, đã có rất nhiều phiên bản bộ điều khiển được sử dụng trên những ngôn ngữ lập trình khác nhau (C/C++, Java, Ruby, Python, vv) được các nhà phát triển đưa ra với các mục đích khác nhau. Một số bộ điều khiển điển hình như: NOX, POX, Beacon, Floodlight, SNAC, vv.
Trong các bộ điều khiển trên thì bộ điều khiển thông dụng nhất là NOX, POX. Vì chức năng điều khiển của NOX và POX [23] giống nhau nên trong phần này sẽ giới thiệu tượng trưng bộ điều khiển NOX. NOX là một phần mềm mã nguồn mở dùng điều khiển các chuyển mạch OpenFlow. Mục đích của NOX nhằm cung cấp một platform cho viết các phần mềm quản lý mạng (như các ứng dụng định tuyến, tường lửa…) sử dụng C++ hoặc Python (do đại học Stanford phát triển).
Mục đích chính của NOX bao gồm:
Cung cấp một platform cho phép người lập trình, phát triển mạng triển khai các ý tưởng mới trong lĩnh vực mạng, sử dụng phần cứng thật. Các nhà phát triển có thể điều khiển tất cả các kết nối trong mạng gồm có: chuyển tiếp, định tuyến, vv. Ngoài ra NOX còn điều khiển cả bảng flow trong chuyển mạch.
Cung cấp phần mềm quản lý mạng hữu ích cho các nhà quản trị mạng, gồm có
việc quản lý tập trung cho tất cả các chuyển mạch trong mạng, điều khiển truy nhập của người dùng.
Phương thức hoạt động của NOX:
NOX chạy riêng rẽ trên một máy và quản lý việc chuyển tiếp các bản tin giữa
các chuyển mạch khác nhau.
NOX cung cấp các giao diện lập trình giúp cho nhà phát triển sử dụng dễ dàng lấy được thông tin về sự kiện trong mạng, can thiệp vào lưu lượng, điều khiển các quyết định định tuyến/chuyển mạch.
Khi có luồng mới xuất hiện trọng mạng, các gói đầu tiên sẽ được gửi đến bộ điều khiển mạng NOX, tại đây có thể thực hiện quyết định xem lúc nào khi nào sẽ chuyển tiếp các gói đi trong mạng, thu thập các thông tin thống kê, chỉnh sửa được gói trong luồng đó hoặc có thể xem thêm được về các gói khác trong cùng luồng để thu thập được thêm nhiều thông tin.
18
Các thành phần của NOX:
Core apps: cung cấp chức năng cho các ứng dụng mạng và các dịch vụ web.
Network apps: các ứng dụng để quản lý mạng
Discovery: theo dõi các liên kết giữa các thiết bị chuyển mạch điều khiển. Topology: cung cấp một bản ghi trong bộ nhớ của tất cả các liên kết hiện lên
trong mạng.
Authenticator: theo dõi vị trí của máy chủ và thiết bị chuyển mạch trên mạng. Routing: là thành phần chịu trách nhiệm tính toán đường truyền.