複製鏈接
請複製以下鏈接發送給好友

OpenFlow

鎖定
OpenFlow,一種網絡通信協議,屬於數據鏈路層,能夠控制網上交換器或路由器的轉發平面(forwarding plane),藉此改變網絡數據包所走的網絡路徑。
外文名
OpenFlow
定    義
網上通信協議
作    用
控制網上交換器或路由器
學    科
計算機
領    域
計算機

OpenFlow歷史

OF的最初概念始於2008年的斯坦福大學。到2009年12月,OpenFlow交換規範1.0版發佈。自成立以來,OpenFlow一直由開放網絡基金會(ONF)管理,ONF是一個致力於開放標準和SDN應用的用户主導型組織。
自其發佈以來,多家公司和OpenDaylight Project等開源項目都支持OpenFlow,甚至還提供了OpenDaylight控制器。思科和博科等其他公司也提供使用OF的控制器,以及Cisco XNC和Brocade Vyatta控制器。

OpenFlow概論

OpenFlow能夠啓動遠程的控制器,經由網絡交換器,決定網絡數據包要由何種路徑通過網絡交換機。這個協議的發明者,將它當成軟件定義網絡(Software-defined networking)的啓動器。 [1] 
OpenFlow允許從遠程控制網絡交換器的數據包轉送表,透過新增、修改與移除數據包控制規則與行動,來改變數據包轉送的路徑。比起用訪問控制表(ACLs) 和路由協議,允許更復雜的流量管理。同時,OpenFlow允許不同供應商用一個簡單,開源的協議去遠程管理交換機(通常提供專有的接口和描述語言)。
OpenFlow協議用來描述控制器和交換機之間交互所用信息的標準,以及控制器和交換機的接口標準。協議的核心部分是用於OpenFlow協議信息結構的集合。
OpenFlow協議支持三種信息類型:Controller-to-Switch,Asynchronous和Symmetric,每一個類型都有多個子類型。Controller-to-Switch信息由控制器發起並且直接用於檢測交換機的狀態。Asynchronous信息由交換機發起並通常用於更新控制器的網絡事件和改變交換機的狀態。Symmetric信息可以在沒有請求的情況下由控制器或交換機發起。

OpenFlow特點

開發者自行製造設備的方法一般是使用PC服務器或專用硬件搭建自己的交換路由設備,受限於主機能裝備的網卡數量, 這種方法不能獲得足夠大密度的端口(一般交換機很容易達到48或者更多的端口,而主機即使插上多塊網卡也很難有這麼多的端口),而且研究設備的交換性能一般也遠不如同價格的商用設備。在這種情況下,OpenFlow論壇提出新的交換設備解決方案必須具有以下四點性質:
第一,設備必須具有商用設備的高性能和低價格的特點;
第二,設備必須能支持各種不同的研究範圍;
第三,設備必須能隔絕實驗流量和運行流量;
第四,設備必須滿足設備製造商封閉平台的要求。

OpenFlow發展

由於OpenFlow對網絡的創新發展起到了巨大的推動作用,因此受到了廣泛的關注和支持。由美國科學基金會(NSF)支持的Global Environment for Network Investigations (GENI)計劃對OpenFlow進行了資金支持並已開始實施“GENI Enterprise”計劃。 [2] 
從2007年提出以來,OpenFlow已經在硬件和軟件支持方面取得了長足的發展。從OpenFlow推出開始,日本NEC就對OpenFlow的相關硬件進行了跟進性的研發,NEC的IP8800/S3640-24T2XW和IP8800/S3640-48T2XW兩款交換機是支持OpenFlow的最成熟的交換機之一。CISCO,Juniper,Toroki,pronto也相繼推出了支持OpenFlow的交換機、路由器無線網絡接入點(AP)等網絡設備。此外,具有OpenFlow功能的AP也已在斯坦福大學進行了部署,標誌着OpenFlow已不再侷限於固網。2009年12月,OpenFlow規範發佈了具有里程碑意義的可用於商業化產品的1.0版本,而且支持規範1.0的軟件indigo也已發佈了Beta版本。OpenFlow相應的支持軟件,如OpenFlow在Wireshark抓包分析工具上的支持插件、OpenFlow的調試工具(liboftrace)、“OpenFlow虛擬計算機仿真”(OpenFlowVMS)等也已日趨成熟。
OpenFlow分別於2008年和2009年連續兩年獲得了SIGCOMM的最佳演示獎,並且享有聲望的MIT Technology Review雜誌把OpenFlow選為十大未來技術,認為其具有實力改變未來的日常生活。此外,喬治亞工學院、哥倫比亞大學多倫多大學以及漢城國立大學分別以講座和工程實踐的方式開設了OpenFlow。OpenFlow已經在美國斯坦福大學、Internet2、日本的JGN2plus以及其他的10-15個科研機構中部署,並將在國家科研骨幹網以及其他科研和生產中應用。OpenFlow的國際覆蓋已經包括日本、葡萄牙意大利西班牙波蘭瑞典等。

OpenFlow網絡組成

OpenFlow網絡由OpenFlowswitch(OpenFlow交換機)、FlowVisor(網絡虛擬化層)和Controller(控制器)三部分組成。OpenFlow交換機進行數據層的轉發;FlowVisor對網絡進行虛擬化;Controller對網絡進行集中控制,實現控制層的功能。OpenFlow網絡的結構示意圖如下:
OpenFlow交換機是整個OpenFlow網絡的核心部件,主要管理數據層的轉發。OpenFlowSwitch擁有一個FlowTable(流表),它只按照流表進行轉發,FlowTable的生成、維護和下發由外置的Controller來實現。這裏的FlowTable並非是指IP五元組(IP源地址、IP目的地址、協議號、源端口、目的端口),OpenFlow1.0規範定義了包括輸入端口、MAC源地址、MAC目的地址、以太網類型、VLANID、IP源地址、IP目的地址、IP端口、TCP源端口、TCP目的端口在內的10個關鍵字(十元組)。FlowTable中的每個關鍵字都可以通配,網絡的運營商可以決定使用何種粒度的流,比如運營商只需要根據目的IP進行路由,那麼FlowTable中就可以只有IP目的地址字段是有效的,其它全為通配。傳統網絡中數據包的流向是人為指定的,雖然交換機、路由器擁有控制權,卻沒有數據流的概念,只進行數據包級別的交換;而在OpenFlow網絡中,統一的Controller取代路由,決定了所有數據包在網絡中傳輸路徑。
OpenFlow採用控制和轉發分離的架構,意味着MAC地址的學習由Controller來實現,VLAN和基本的路由配置也由Controller下發給OpenFlowSwitch。對於三層網絡設備,各類路由器運行在Controller之上,Controller根據需要下發給相應的路由器。當一個Controller同時控制多個OpenFlowSwitch時,它們看起來就像一個大的邏輯交換機。
FlowTable的下發可以是主動的,也可以是被動的。
主動模式:Controller將自己收集的FlowTable信息主動下發給OpenFlowSwitch,隨後OpenFlowSwitch可以直接根據FlowTable進行轉發。
被動模式:OpenFlowSwitch收到數據包後,首先在本地的FlowTable上查找轉發目標端口,如果沒有匹配,則把數據包轉發給Controller,由控制層決定轉發端口,並下發相應的FlowTable。被動模式的好處是網絡設備無需維護全部的FlowTable,只有當實際的流量產生時才向Controller獲取FlowTable記錄並存儲,當記錄老化時可以刪除相應的FlowTable,故可以大大節省存儲器空間。
OpenFlow交換機由FlowTable(流表)、SecureChannel(安全通道)和OpenFlowProtocol(協議)三部分組成。
FlowTable流表:由很多個流表項組成,每個流表項就是一個轉發規則。進入交換機的數據包通過查詢流表來獲得轉發的目的端口。流表項由頭域、計數器和操作組成;其中頭域是個十元組,是流表項的標識;計數器用來計算流表項的統計數據;操作標明瞭與該流表項匹配的數據包應該執行的操作。
Secure Channel:安全通道是連接OpenFlow交換機到控制器的接口。控制器通過這個接口控制和管理交換機,同時控制器接收來自交換機的事件並向交換機發送數據包。交換機和控制器通過安全通道進行通信,而且所有的信息必須按照OpenFlow協議規定的格式來執行。

OpenFlow相關應用

OpenFlow的應用是很廣泛的,這裏我們只是列舉五個比較典型的應用。
OpenFlow在校園網絡中的應用。如果我們可以讓校園網具有OpenFlow特徵,則可以為學生和科研人員實現新協議和新算法提供一個試驗平台。OpenFlow網絡試驗平台不僅更接近真實網絡的複雜度,實驗效果更好,而且可以節約實驗費用。包括斯坦福大學在內的幾所高校已經部署了OpenFlow交換機,取得了很好的實驗效果。
OpenFlow在廣域網移動網絡中的應用。在廣域網和移動網絡中添加具有OpenFlow特徵的節點,將帶來眾多的好處。例如,可以使得固網和移動網絡實現無縫控制、使得VPN的管理更加靈活等。NEC 已經利用OpenFlow控制技術對快速、寬帶的移動網絡進行高效、靈活的網絡管理,並解決了兩個課題。首先,在多個移動通信方式實現動態切換。在移動通信混雜時以及通信環境惡化時,動態切換通信方式,將滿足通信服務所需的服務品質,提供給終端用户。其次,移動迴環網絡的節能。在一天當中通信量相對較少的夜晚時段,可以彙集網絡路徑,關閉多餘的中轉基站的電源,從而節省能源。
OpenFlow在數據中心網絡中的應用。在數據中心網絡中使用OpenFlow交換機,可以使得網絡和計算資源更加緊密的聯繫起來並實現有效的控制。數據中心的數據流量很大,如果不能合理分配傳輸路徑很容易造成數據擁塞,從而影響數據中心的高效運行。若在數據中心網絡中添加OpenFlow交換機,則可以實現路徑優化以及負載均衡,從而使得數據交換更加迅速。
OpenFlow在網絡管理和安全控制中的應用。如果網絡是基於OpenFlow技術實現的,則經過OpenFlow交換機的每個新的數據流都必須由控制器來做出轉發決定。在控制器中可以對這些流按照預先制定的規則進行檢查,然後由控制器指定數據流的傳輸路徑以及流的處理策略,從而更好的控制網絡。更為重要的是,在內部網絡和外網的連接處應用OpenFlow交換機可以通過更改數據流的路徑以及拒絕某些數據流來增強企業內網的安全性。
基於OpenFlow實現SDN(Software Defined Network)。在SDN中,交換設備的數據轉發層和控制層是分離的,因此網絡協議和交換策略的升級只需要改動控制層。OpenFlow在OpenFlow交換機上實現數據轉發,而在控制器上實現數據的轉發控制,從而實現了數據轉發層和控制層的分離。基於OpenFlow實現SDN,則在網絡中實現了軟硬件的分離以及底層硬件的虛擬化,從而為網絡的發展提供了一個良好的發展平台。

OpenFlow影響

由於網絡暴露出了越來越多的弊病以及人們對網絡性能需求的提高,於是研究人員不得不把很多複雜功能加入到路由器的體系結構當中,例如OSPF,BGP,組播,區分服務,流量工程,NAT,防火牆,MPLS等等。這就使得路由器等交換設備越來越臃腫而且性能提升的空間越來越小。
然而與網絡領域的困境截然不同的是,計算機領域實現了日新月異的發展。仔細回顧計算機領域的發展,不難發現其關鍵在於計算機領域找到了一個簡單可用的硬件底層(x86指令集)。由於有了這樣一個公用的硬件底層,所以在軟件方面,不論是應用程序還是操作系統都取得了飛速的發展。很多主張重新設計計算機網絡體系結構的人士認為:網絡可以複製計算機領域的成功經驗來解決網絡所遇到的所有問題。在這種思想的指導下,將來的網絡必將是這樣的:底層的數據通路(交換機、路由器)是“啞的、簡單的、最小的”,並定義一個對外開放的關於流表的公用的API,同時採用控制器來控制整個網絡。未來的研究人員就可以在控制器上自由的調用底層的API來編程,從而實現網絡的創新。
OpenFlow正是這種網絡創新思想的強有力的推動者。OpenFlow交換機將原來完全由交換機/路由器控制的報文轉發過程轉化為由OpenFlow交換機(OpenFlow Switch)和控制服務器(Controller)來共同完成,從而實現了數據轉發和路由控制的分離。控制器可以通過事先規定好的接口操作來控制OpenFlow交換機中的流表,從而達到控制數據轉發的目的。
因此,OpenFlow開啓了一條網絡創新的道路。如果OpenFlow得到廣泛的應用和推廣,則未來的網絡將如曾經的計算機一樣取得日新月異的發展。
參考資料
  • 1.    N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J.Turner.OpenFlow: Enabling innovation in campus networks. SIGCOMM Comput. Commun. Rev.,38(2):69–74,2008
  • 2.    互聯網創新的新軍OpenFlow論壇[J].中國教育網絡,2008,12:26-27