1.4. Giao thức OpenFlow
1.4.5. Quản lý các mục luồng trong bộ chuyển mạch Openflow
Trong Openflow, mục luồng là thông tin quan trọng quyết định cách thức xử lý gói tin trên hệ thống mạng. Mục luồng có vai trị phân nhóm các gói tin thành các luồng tương ứng, đưa ra các chính sách bộ chuyển mạch sẽ áp dụng đối với các gói tin. Do sự thay đổi thường xuyên của lưu lượng mạng nên mỗi mục luồng có giá trị trong một khoảng thời gian nhất định. Để quản lý hiệu quả các mục luồng giảm thiểu sự chiếm dụng tài nguyên trên bộ chuyển mạch trong điều kiện thay đổi liên tục như vậy, Openflow quy định các phương thức tạo và quản lý luồng.
Cài đặt, chỉnh sửa và xóa các mục luồng
Trong Openflow, các mục luồng có thể được cài đặt theo hai cách:
Thơng thường phương pháp này được áp dụng cho các mục luồng tồn tại vĩnh viễn nhằm tạo những luật xử lý gói tin ổn định trong suốt q trình hoạt động của bộ chuyển mạch.
- Đáp ứng theo gói tin (reactive): Khi có sự kiện table-miss xảy ra, bộ chuyển mạch tạo
bản tin packet-in và gửi tới bộ điều khiển. Bộ điều khiển căn cứ vào thơng tin thuộc tính của gói tin để cài đặt một mục luồng tương ứng. Hình 1.8. Trong quá trình hoạt động, các phần mềm ứng dụng có thể chỉnh sửa các mục luồng đã có.
Thiết lập thời gian chờ cho các mục luồng
Để giới hạn thời gian tồn tại của các mục luồng trên bộ chuyển mạch khi mục luồng khơng cịn giá trị do các gói tin thuộc luồng khơng cịn xuất hiện, Openflow cho phép thiết lập thời gian chờ cho mỗi mục luồng với hai tham số:
(1) Thời gian chờ liên gói tin (idle timeout hay inactive timeout): là khoảng thời gian tối đa chờ gói tin tiếp theo thuộc cùng một luồng tính từ khi bộ chuyển mạch nhận được gói tin sau cùng. Vượt quá thời gian này, luồng sẽ kết thúc và mục luồng sẽ bị xóa khỏi bộ chuyển mạch.
(2) Thời gian chờ cứng (hard timeout hay active timeout): là khoảng thời gian tồn tại tối đa của một luồng. Nếu tham số này được thiết lập, khi mục luồng đạt đến khoảng thời gian chờ hard timeout tính từ khi nó được tạo ra, mục luồng sẽ bị xóa khỏi bộ chuyển mạch bất kể các gói tin của luồng tương ứng có tiếp tục xuất hiện nữa hay khơng. Mục đích của thời gian chờ hard timeout là để bảo vệ bộ chuyển mạch khỏi sự chiếm dụng tài
nguyên bộ nhớ bởi các luồng tấn cơng có chủ đích.
Tùy theo phạm vi, mục đích nhận dạng và xử lý luồng, các mục luồng có thể thiết lập hoặc không thiết lập tham số thời gian chờ idle timeout và hard timeout. Nếu không thiết lập hai
tham số này, mục luồng sẽ tồn tại vĩnh viễn trong bộ chuyển mạch. Việc thiết lập thời gian chờ cho các mục luồng được thực hiện khi cài đặt hoặc chỉnh sửa các mục luồng.
Thống kê các mục luồng
Như đã trình bày ở trên, trong mỗi mục luồng có chứa các bộ đếm thống kê tổng số gói tin, tổng dung lượng lưu lượng khớp với mỗi mục luồng, thời gian tồn tại của mỗi mục luồng. Trong quá trình hoạt động, bộ điều khiển có thể yêu cầu truy vấn giá trị các bộ đếm này từ bộ chuyển mạch hoặc thống kê số mục luồng đang tồn tại theo một điều kiện nào đó. Các số liệu thống kê từ các mục luồng có ý nghĩa quan trọng khơng chỉ trong quản lý các mục luồng mà cịn cho các ứng dụng quản trị và điều hành mạng.