改善硬體限制- OpenFlow

OpenFlow原理

軟體定義網路 (SDN) 的具體實現

傳統網路資訊發送的傳輸路徑 (Data Path) 皆由硬體路由器 (Router) 決定,因此造成各硬體自行指定資訊傳輸路徑,在原有路徑失敗的狀況下,將造成大量的重複傳輸,浪費系統資源;且當企業希望更新傳輸方式時,需由資訊人員手動更新硬體內軟體,造成維運成本上升。OpenFlow 則將傳輸路徑的規劃交給專責的控制器 (OpenFlow controller),能視傳輸需要最佳化傳輸路徑,節省企業成本。

當 A、B、D 均需傳送封包至 G ,在原有架構下,無統一控制器、由路由器分派傳輸路徑,三處硬體路由器均會選擇同一路線,即 R3 ,造成 R3 路徑傳輸量重,且其他資源 (R1、R2、R4) 虛置浪費。假若 R3 路徑傳送失敗,ABD 均將指 R2 為新路徑,在 R2 負荷量有限時,僅能完成 A 封包傳送,B 及 D 則均另派至 R4,同樣 R4 僅能完成 B 封包傳送,D 則最後使用 R1 完成傳送。在使用 OpenFlow controller 的狀況下,控制器即可依據資訊傳輸需求,當 R3 路徑失效時,F 點將回傳訊息給控制器,而控制器即指派 A 封包經R1、B 經 R2、C 經 R4完成傳送,避免原有架構下封包 B 及 D 重複需傳送兩次以上才能完成的資源浪費。

OpenFlow 協定分離了資料路徑 (Data Path) 與控制路徑 (Control path) 。數據轉發 (data path) 功能仍駐留在交換器中,但 Control path 的決策單元則轉移到 OpenFlow Controller。OpenFlow Controller 與OpenFlow 通過 OpenFlow 的協定彼此通信,其協定定義了一套訊息組,比如數據包接收、數據包轉發、更改轉發路由表、以及獲取狀態統計等功能。此外, OpenFlow controller 的路由表 (Flow table entry) 能建立封包的處理邏輯,使各類封包能進行其該採取的動作(比如:發送到通信端口、修改字段、或者丟棄)。處理未知封包時, Controller 也得以建立新邏輯,以快速因應未來此類未知封包的處理。

OpenFlow switching

 

OpenFlow Basics