OpenFlow 百度詞條

OpenFlow

編輯本段起源

隨着互聯網的發展,今天的互聯網業務對互聯網提出了越來越高的傳輸質量要求,如何修改互聯網以滿足新業務的需求,出現了改良派和改革派兩種不同的做法。改良派認爲可以在原有的基礎設施上添加新的協議來解決問題,改革派則認爲必須推到一切重來。改革派向自己提出這樣的兩個問題:“就自己目前掌握的知識,如果我從一個全新的開始設計互聯網,我會怎麼做”和“15年後的互聯網應該是什麼樣子”。爲此,改革派們開始了一系列新的設計方案,OpenFlow就是改革派提出的一種新型網絡交換模型,與此相應的,他們還成立了0penFlow交換機論壇(The OpenFlow Switch Consorlium,後文簡稱0penFlow論壇)。
與那些動輒成立多年的論壇相比,0penFlow論壇只是於2008年剛剛成立的新興組織。0penFlow論壇起源於斯坦福大學的“Clean slate”計劃(斯坦福大學的“Clean slate ”計劃是一個致力於研究重新設計互聯網的項目,這個計劃目前支持了大約10個不同方向致力於重新設計互聯網的項目),最早的成員只有斯坦福大學的高性能網絡研究組(The High Perfomance Networking Group)。隨着論壇的發展,目前0penFlow論壇已經變成一個由大學的研究者和網絡管理者共同組成的開放論壇,吸引了來自麻省理工學院加州理工學院等著名高校的教授以及Deutsche Telekom這樣的大型電信公司的網絡一線工程師加盟。論壇歡迎任何希望對網絡進行革新的人加入,但有一個前提是加入者不能爲任何網絡設備製造商工作。作爲未來互聯網的設計者之一,0penFlow論壇希望防止製造商的利益衝突被引入論壇。
0penFlow論壇主要解決的是重新設計互聯網的實驗環境問題。在純的實驗網上總難以有足夠多的實際用戶或者足夠大的網絡拓撲來測試新協議的性能和功能,最好的方法是將運行新協議的實驗網絡嵌入實際運營的網絡,利用實際的網絡環境來檢驗新協議的可行性和存在的問題。
傳統的解決方案有兩種,要求設備製造商完全開放平臺接口或實驗者自行製造設備。設備製造商完全開放平臺接口讓研究者可以使用商用網絡設備進行二次開發,尋找實驗協議與傳統協議並存的方法。但是,直接開放網絡設備的開發接口對設備提供商而言是一場噩夢,一方面與商用平臺的封閉性相沖突,開放開發的二次接口無疑會有暴露自身技術細節的風險,爲競爭對手提供了機會,或者爲新興廠家提供了進入行業的門檻。
OpenFlow的特點
開發者自行製造設備的方法一般是使用PC服務器或專用硬件搭建自己的交換路由設備,受限於主機能裝備的網卡數量, 這種方法不能獲得足夠大密度的端口(一般交換機很容易達到48或者更多的端口,而主機即使插上多塊網卡也很難有這麼多的端口),而且研究設備的交換性能一般也遠不如同價格的商用設備。在這種情況下,0penFlow論壇提出新的交換設備解決方案必須具有以下四點性質:
第一,設備必須具有商用設備的高性能和低價格的特點;
第二,設備必須能支持各種不同的研究範圍;
第三,設備必須能隔絕實驗流量和運行流量;
第四,設備必須滿足設備製造商封閉平臺的要求。

編輯本段發展

由於OpenFlow對網絡的創新發展起到了巨大的推動作用,因此受到了廣泛的關注和支持。由美國科學基金會(NSF)支持的Global Environment for Network Investigations (GENI)計劃對OpenFlow進行了資金支持並已開始實施“GENI Enterprise”計劃
從07年提出到現在,OpenFlow已經在硬件和軟件支持方面取得了長足的發展。從OpenFlow推出開始,日本NEC就對OpenFlow的相關硬件進行了跟進性的研發,NEC的IP8800/S3640-24T2XW和IP8800/S3640-48T2XW兩款交換機是支持OpenFlow的最成熟的交換機之一。CISCO,Junifer,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對網絡創新的影響
由於現在的網絡暴露出了越來越多的弊病以及人們對網絡性能需求的提高,於是研究人員不得不把很多複雜功能加入到路由器的體系結構當中,例如OSPF,BGP,組播,區分服務,流量工程,NAT,防火牆,MPLS等等。這就使得路由器等交換設備越來越臃腫而且性能提升的空間越來越小。
然而與網絡領域的困境截然不同的是,計算機領域實現了日新月異的發展。仔細回顧計算機領域的發展,不難發現其關鍵在於計算機領域找到了一個簡單可用的硬件底層(x86指令集)。由於有了這樣一個公用的硬件底層,所以在軟件方面,不論是應用程序還是操作系統都取得了飛速的發展。現在很多主張重新設計計算機網絡體系結構的人士認爲:網絡可以複製計算機領域的成功來解決現在網絡所遇到的所有問題。在這種思想的指導下,將來的網絡必將是這樣的:底層的數據通路交換機路由器)是“啞的、簡單的、最小的”,並定義一個對外開放的關於流表的公用的API,同時採用控制器來控制整個網絡。未來的研究人員就可以在控制器上自由的調用底層的API來編程,從而實現網絡的創新。
OpenFlow正是這種網絡創新思想的強有力的推動者。OpenFlow交換機將原來完全由交換機/路由器控制的報文轉發過程轉化爲由OpenFlow交換機(OpenFlow Switch)和控制服務器(Controller)來共同完成,從而實現了數據轉發和路由控制的分離。控制器可以通過事先規定好的接口操作來控制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,則在網絡中實現了軟硬件的分離以及底層硬件的虛擬化,從而爲網絡的發展提供了一個良好的發展平臺。

編輯本段網絡組成

[1-3]OpenFlow網絡由OpenFlow交換機、FlowVisor和Controller三部分組成。OpenFlow交換機進行數據層的轉發;FlowVisor對網絡進行虛擬化;Controller對網絡進行集中控制,實現控制層的功能。OpenFlow網絡的結構示意圖如下:
OpenFlow交換機
OpenFlow交換機是整個OpenFlow網絡的核心部件,主要管理數據層的轉發。OpenFlow交換機接收到數據包後,首先在本地的流表上查找轉發目標端口,如果沒有匹配,則把數據包轉發給Controller,由控制層決定轉發端口。
OpenFlow交換機的組成
OpenFlow交換機由流表、安全通道和OpenFlow協議三部分組成。
安全通道是連接OpenFlow交換機到控制器的接口。控制器通過這個接口控制和管理交換機,同時控制器接收來自交換機的事件並向交換機發送數據包交換機和控制器通過安全通道進行通信,而且所有的信息必須按照OpenFlow協議規定的格式來執行。
OpenFlow協議用來描述控制器和交換機之間交互所用信息的標準,以及控制器和交換機的接口標準。協議的核心部分是用於OpenFlow協議信息結構的集合。
OpenFlow協議支持三種信息類型:Controller-to-Switch,Asynchronous和Symmetric,每一個類型都有多個子類型。Controller-to-Switch信息由控制器發起並且直接用於檢測交換機的狀態。Asynchronous信息由交換機發起並通常用於更新控制器的網絡事件和改變交換機的狀態。Symmetric信息可以在沒有請求的情況下由控制器或交換機發起。
OpenFlow交換機的分類
按照對OpenFlow的支持程度,OpenFlow交換機可以分爲兩類:專用的OpenFlow交換機和支持OpenFlow的交換機。
專用的OpenFlow交換機是專門爲支持OpenFlow而設計的。它不支持現有的商用交換機上的正常處理流程,所有經過該交換機的數據都按照OpenFlow的模式進行轉發。專用的OpenFlow交換機中不再具有控制邏輯,因此專用的OpenFlow交換機是用來在端口間轉發數據包的一個簡單的路徑部件。
支持OpenFlow的交換機是在商業交換機的基礎上添加流表、安全通道和OpenFlow協議來獲得了OpenFlow特性的交換機。其既具有常用的商業交換機的轉發模塊,又具有OpenFlow的轉發邏輯,因此支持OpenFlow的交換機可以採用兩種不同的方式處理接收到的數據包
按照OpenFlow交換機的發展程度來分,OpenFlow交換機也可以分爲兩類:“Type0”交換機和“Type1”交換機。
“Type0”交換機僅僅支持十元組以及以下四個操作:轉發這個流的數據包給一個給定的端口(或者幾個端口);壓縮並轉發這個流的數據包給控制器;丟棄這個流的數據包;通過交換機的正常處理流程來轉發這個流的數據包。
顯然“Type0”交換機的這些功能是不能滿足複雜試驗要求的,因此我們將要定義“Type1”交換機來支持更多的功能,從而支持複雜的網絡試驗。“Type1”交換機將具有一個新的功能集合。
支持網絡虛擬化的FlowVisor
類比計算機的虛擬化,FlowVisor就是位於硬件結構元件和軟件之間的網絡虛擬層。FlowVisor允許多個控制同時控制一臺OpenFlow交換機,但是每個控制器僅僅可以控制經過這個OpenFlow交換機的某一個虛擬網絡(即slice)。因此通過FlowVisor建立的試驗平臺可以在不影響商業流的轉發速度的情況下,允許多個網絡試驗在不同的虛擬網絡上同時進行。FlowVisor與一般的商用交換機是兼容的,而不需要使用FPGA和網絡處理器等可編程硬件。
Controller
OpenFlow實現了數據層和控制層的分離,其中OpenFlow交換機進行數據層的轉發,而Controller實現了控制層的功能。Controller通過OpenFlow協議這個標準接口對OpenFlow交換機中的流表進行控制,從而實現對整個網絡進行集中控制。Controller的這一切功能都要通過運行NOX來實現,因此NOX就像是OpenFlow網絡的操作系統。此外,在NOX上還可以運行Plug-n-serve、OpenRoads以及OpenPipes等應用程序
Plug-n-Serve 通過規定數據傳輸路徑來控制網絡以及服務器上的負載,從而使得負載均衡並降低響應時間。OpenRoads 是支持OpenFlow無線網絡移動性研究的框架。OpenPipes 可以在網絡系統中通過移動每個子模塊來測試每個子模塊,並可以決定如何劃分設計單元。
參考資料
  • 1.   互聯網創新的新軍OpenFlow論壇[J].中國教育網絡,2008,12:26-27

  • 2.  OpenFlow Consortium. OpenFlow Switch specification v1.0 

  • 3.   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

擴展閱讀:
開放分類:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章