在OpenFlow協議的規范中,控制器需要和配置好的交換機進行通信。而交換機在正常工作之前需要對其特性以及資源進行配置,才能正常工作。而這些配置超出了OpenFlow協議規范的范圍,理應由其他的配置協議來完成,而OF-Config(OpenFlow Management and Configuration Protocol)協議就是一種配置OpenFlow交換機的一種協議。OF-CONFIG由ONF于2012年1月提出,目前已經演化到1.2版本。OF-CONFIG協議與OpenFlow協議的關系如圖2.2所示。
作為一種交換機配置協議,OF-CONFIG的主要功能主要包括配置交換機連接的多個控制器信息、端口和隊列等資源的配置和分配以及端口等資源的狀態修改等。此外,OF-CONFIG作為一個配置協議,OF-CONFIG要求鏈接必須是安全的可靠的。OF-CONFIG支持通過多個配置點上對同一個交換機進行配置,同時也支持同一個配置點對多個交換機進行配置,從而滿足實際網絡配置和運維的需求。
為了滿足OpenFlow版本更新的需求,OF-CONFIG采用XML來描述其數據結構。此外,在初始版本中也規定了采用NETCONF協議作為傳輸協議。由于其并沒有和數據交換直接相關,所以相對于對實時性要求高的OpenFlow等南向協議而言,OF-CONFIG協議對實時性要求并不高。
圖2.2 OF-CONFIG 與OpenFlow以及OpenFlow Switch之間的關系圖
原理OF-CONFIG協議定義了一系列的數據結構,用于描述協議的動作和內容。通過OpenFlow Configuration Point(OpenFlow配置點)來遠程配置控制器信息、交換機特性以及端口和隊列等相關資源來完成交換機配置。OpenFlow配置點本質上就是運行著OF-CONFIG客戶端進程的計算機,其可以是普通的服務器,也可以運行在部署控制器的系統中。最新的1.2版本的OF-CONFIG協議支持OpenFlow1.3版本的交換機的主要配置如下:
配置datapath(在OF-CONFIG協議中稱為OpenFlow邏輯交換機)連接的控制器信息,支持配置多個控制器信息,實現備份。配置交換機的端口和隊列,實現資源的分配遠程改變端口的狀態以及特性完成OpenFlow交換機與OpenFlow控制器之間安全鏈接的證書配置發現OpenFlow邏輯交換機的能力配置VXLAN、NV-GRE等隧道協議OF-CONFIG采用XML來描述其數據結構,并通過NETCONF協議來傳輸其內容。其最頂層的數據結構圖如圖2.3所示。其中OpenFlow Capable Switch是有OpenFlow Logical Switch實例化出來的一個數據結構,用于與OpenFlow配置節點通信,并由配置節點對其屬性進行配置。OpenFlow邏輯交換機是指對OpenFlow交換機實體的邏輯描述,用于指導交換機進行相關動作,也是與OpenFlow控制器通信的實體。OpenFlow邏輯交換機擁有包括端口,隊列,流表等資源。
作為OpenFlow的伴侶協議,OF-CONFIG很好地彌補了OpenFlow協議規范之外的內容。在OpenFlow協議的SDN框架中,OF-CONFIG需完成交換機的配置工作,包括將其連接到指定的控制器。當交換機和控制器連接建立之后,將通過OpenFlow協議來傳遞信息。從面向對象的角度看,OpenFlow協議規范的范圍僅負責指導交換機對數據流進行操作而無法對交換機的資源進行配置,而配置部分工作由獨立的OF-CONFIG協議來完成,這個設計非常符合面向對象的設計理念。
作為伴侶協議,OF-CONFIG協議是對OpenFlow協議的補充。其設計動機、設計目的和實現方式等方式都不一樣。同時,OpenFlow邏輯交換機的某些屬性可以通過OpenFlow協議和OF-CONFIG協議兩種方式來進行配置,所以兩個協議也有相互重疊的地方。表2.1[2]展示了OpenFlow和OF-CONFIG的差異。
OpenFlow |
OF-CONFIG | |
設計動機 | 修改流表項等規則來指導通過OpenFlow交換機的網絡數據包的修改和轉發等動作。 | 通過遠端的配置點來對多個OpenFlow交換機進行配置,簡化網絡運維工作。 |
傳輸 | 通過TCP,TSL或者SSL來傳輸OpenFlow比特流。 | 通過XML來描述數據,并通過NETCONF來傳輸。 |
協議終結點 |
(1) OpenFlow控制器(代理或者中間層在交換機看來就是控制器) (2) OpenFlow交換機/datapath |
(1)OF-CONFIG配置點 (2) OpenFlow使能交換機 |
使用示例 | OpenFlow控制器下發一條流表項指導交換機將從端口1進入的數據包丟棄。 | 通過OF-CONFIG配置點將某個OpenFlow使能交換機連接到指定的控制器。 |
作為OpenFlow的伴侶協議,OF-CONFIG的版本更新緊跟OpenFlow協議的版本演進節奏。自2012年發布的OF-CONFIG 1.0版本之后,為支持OpenFlow協議的新版本特性,不斷更新協議版本,于2014年更新到OF-CONFIG 1.2版本,從而支持OpenFlow1.3版本協議的新特性。
隨著SDN的發展,OpenFlow不再是唯一的,也不再是必須的選項。但是無論選擇哪一種南向協議,都需要通過交換機配置協議,所以相比OpenFlow而言,OF-CONFIG似乎更有生命力。因此筆者看好OF-CONFIG在SDN發展的很長一段時間內將擁有穩定的技術市場,這個趨勢和OpenFlow的發展有很大的關系,但是OF-CONFIG不會隨著OpenFlow的可能消亡而失去競爭力。
與OF-CONFIG類似的配置協議還有OVSDB,其專門為OpenVSwitch的數據庫配置服務,可用于創建網橋并配置。而隨著OpenVSwitch的流行,OVSDB的曝光率相比要遠高于OF-CONFIG,所以兩者在技術上是一種競爭關系。但是OF-CONFIG適用于所有支持OpenFlow協議的交換機,包括軟件交換機和硬件交換機,而OVSDB只支持OpenVSwitch交換機。這點差異使得OF-CONFIG在物理交換機環境下占有一定優勢。
作者簡介:
李呈,2014/09-至今,北京郵電大學信息與通信工程學院未來網絡理論與應用實驗室(FNL實驗室)攻讀碩士研究生。
個人博客:www.muzixing.com