OpenFlow 交換器(OpenFlow Switch)主要包含以下三種元件:
-
流表(Flow Tables):
- 功能:流表是 OpenFlow 交換器的核心元件之一,負責儲存和管理數據包處理規則。每個流表包含多個流表條目(Flow Entries),每個條目包括匹配域、優先級、計數器、指令和動作。
- 匹配域(Match Fields):用於定義數據包匹配條件,如源 IP 地址、目的 IP 地址、源端口、目的端口、VLAN 標籤、MAC 地址等。
- 動作集(Action Set):指定當數據包匹配到流表條目後應執行的操作,如轉發到特定端口、修改數據包頭字段、丟棄數據包、發送到控制器等。
- 優先級(Priority):用於確定多個匹配條件的優先順序,當數據包匹配到多個流表條目時,優先執行優先級高的條目。
- 計數器(Counters):用於記錄流表條目匹配的數據包數量和字節數,有助於監控流量和統計分析。
-
安全通道(Secure Channel):
- 功能:安全通道是 OpenFlow 交換器與 SDN 控制器之間的通信接口,用於交換控制信息和數據包信息。該通道通常通過加密協議(如 TLS)確保通信的安全性。
- 通信內容:包括控制器向交換器下發的流表條目、指令和配置命令,以及交換器向控制器報告的狀態信息和未匹配的數據包(Packet-in 消息)。
- 雙向通信:通道支持雙向通信,允許控制器和交換器實時交換信息,確保控制器對交換器的實時控制和管理。
-
OpenFlow 協定(OpenFlow Protocol):
- 功能:OpenFlow 協定定義了控制器和交換器之間的通信標準,確保不同廠商的設備能夠互操作。該協定規範了如何創建、修改和刪除流表條目,如何處理未匹配的數據包,以及如何報告交換器狀態。
- 消息類型:
- Packet-in:當數據包未匹配到流表條目時,交換器將數據包發送到控制器,請求處理。
- Packet-out:控制器可以通過 Packet-out 消息指示交換器如何處理特定數據包。
- Flow-mod:控制器通過 Flow-mod 消息添加、修改或刪除流表條目。
- Stats:交換器向控制器報告統計信息和狀態,通過 Stats 消息進行傳遞。
- 靈活性和擴展性:OpenFlow 協定提供了靈活的消息類型和字段定義,允許開發者根據實際需求擴展和定制。
總結
OpenFlow 交換器的三種主要元件——流表、安全通道和 OpenFlow 協定,共同構成了其高效的流量管理和控制系統。流表儲存和執行數據包處理規則,安全通道確保交換器與控制器之間的安全通信,而 OpenFlow 協定提供了統一的標準,使得不同設備之間的互操作成為可能。這些元件相互協作,實現了 SDN 環境中靈活、集中和高效的網路管理。