當前,網絡已經成為支撐現代社會發展以及技術進步的重要基礎設施之一,它深深地改變了人們的生產、生活和學習方式;然而,傳統網絡架構越來越不能滿足當今企業、運營商以及用戶的需求。傳統互聯網由極其復雜的交換機、路由器、終端以及其他設備組成,這些網絡設備使用著封閉、專有的內部接口,并運行著大量的分布式協議。在這種網絡環境中,對于網絡管理人員、第三方開發人員(包括研究人員),甚至設備商來說,網絡創新都是十分困難的。
例如,研究人員不能夠驗證他們的新想法;網絡運營商難以針對其需求定制并優化網絡,難以使得他們的收益最大化;甚至對于設備商來說,也不能及時地創新以滿足用戶的需求。
封閉的網絡設備所帶來的結果是:網絡依舊面臨著諸多問題與挑戰,如安全性、健壯性、可管理性以及移動性等等;網絡維護成本仍然居高不下,網絡管理需要大量的人工配置等等。
近年來,逐漸興起的SDN 正試圖打破這種僵局,并成為了近年來學術界和工業界討論的熱點。
1 SDN的架構
1.1 SDN 架構的特點
SDN是軟件定義網絡的簡稱,其核心理念是使網絡軟件化并充分開放,從而使得網絡能夠像軟件一樣便捷、靈活,以此提高網絡的創新能力。通常意義上來講,SDN 是指從發展而來的一種新型的網絡架構,其前身是斯坦福的用于企業集中安全控制的Ethane 項目[2]。
2008年斯坦福大學的Nick Mckeown 教授將其命名為OpenFlow,后經由斯坦福項目推廣,以及在大型網絡- 全球網絡創新環境(GENI) 項目中的應用,該概念被逐漸擴展并成為了。
圖1 描述了SDN 架構的邏輯視圖。SDN 的基本網絡要素包括:邏輯上集中的SDN 控制器,它是基于軟件的控制器,負責維護全局網絡視圖,并且向上層應用提供用于實現網絡服務的可編程接口(通常也稱為“ 北向接口”);控制應用程序,該程序運行在控制器之上,通過控制器提供的全局網絡視圖,控制應用程序可以把整個網絡定義成為一個邏輯的交換機,同時,利用控制器提供的應用編程接口,網絡人員能夠靈活地編寫多種網絡應用,如路由、多播、安全、接入控制、帶寬管理、流量工程、服務質量等;轉發抽象,轉發抽象通常稱為“ 南向接口”,SDN 控制器通過利用SDN提供的轉發平面的網絡抽象來構建全局網絡視圖。
由此可知SDN 的基本特征:
控制與轉發分離。轉發平面由受控轉發的設備組成,轉發方式以及業務邏輯由運行在分離出去的控制面上的控制應用所控制。
控制平面與轉發平面之間的開放接口。SDN 為控制平面提供開放的網絡操作接口,也稱為可編程接口。通過這種方式,控制應用只需要關注自身邏輯,而不需要關注底層更多的實現細節。
邏輯上的集中控制。邏輯上集中的控制平面可以控制多個轉發面設備,也就是控制整個物理網絡,因而可以獲得全局的網絡狀態視圖,并根據該全局網絡狀態視圖實現對網絡的優化控制。
1.2 SDN的實例——OpenFlow
提到SDN,必然要涉及控制平面與轉發平面之間的接口定義,作為架構中控制平面與轉發平面之間轉發抽象定義的第一個實例,協議在提出的初期就受到業界的廣泛關注,后經過GENI 項目的推進以及多家IT/互聯網企業的參與,現已形成強大的產業聯盟。因此,業界普遍選擇OpenFlow 協議作為中控制平面與轉發平面之間的通信接口,并圍繞其建立一系列的網絡操作系統、控制應用以及相關的組件等。
OpenFlow 的成功與其簡單高效的特點密不可分。OpenFlow 架構十分簡潔,如圖2 所示,OpenFlow 交換機由內部轉發流表以及用來與外部控制器進行通信的安全通道組成。為了使遠端的控制應用能夠對轉發平面的網絡設備進行編程,OpenFlow 協議指定了一系列基本操作。通過,SDN 控制應用可以直接訪問并操控轉發平面中的網絡設備,交換機則使用流表流水線來進行數據包匹配與數據包轉發。
如圖3 所示,OpenFlow 交換機中的每個流表中含有多條流表項,每條流流表項由匹配域、優先級、統計域以及一系列的轉發指令組成。控制器可以利用OpenFlow 協議對這些流表項進行添加、刪除或者修改操作,當數據包匹配到某個流表項時,該表項對應的指令集合將被觸發。OpenFlow 支持最基本的動作,包括轉發、丟棄、群組操作、入隊以及加/去標簽等。OpenFlow 通過對網絡中“ 流”的控制來達到對網絡進行靈活控制的目的。
此外,OpenFlow 支持的多種控制方式也有利于其在多種網絡環境中的部署。首先,基于OpenFlow 的完全不會受網絡規模的影響,分布式控制器能夠很好地提高網絡的可擴展性。其次,OpenFlow 中對“流”的定義十分靈活,這也就使得能夠對網絡進行更靈活的控制。例如,在需要進行細粒度控制的網絡場景中,可以逐流建立流表項并通過逐微流的精確匹配實現對網絡的精確控制;在流量較大的網絡環境中,可以使用通配流表來對匯聚流進行轉發,降低流表項數目對轉發節點內存空間的沖擊。
最后,控制平面建立流表項的方式也十分靈活。控制平面既可以被動地建立流表項,由新流來觸發流表項的建立,也可以主動地建立流表,提前對轉發設備的轉發行為進行配置,從而提高轉發效率。OpenFlow 細粒度的、基于流的轉發能力,使得網絡控制變得十分靈活,使其能夠實時地對網絡應用、用戶、會話的需求做出不同的響應。
1.3 SDN網絡虛擬化工具
——FlowVisor
網絡虛擬化是未來網絡的發展方向之一。在基于OpenFlow 的中,FlowVisor 能夠有效地實現網絡虛擬化。
FlowVisor是一個特殊的控制器,主要作為OpenFlow 交換機與多個OpenFlow 控制器之間的透明代理。FlowVisor 可以將物理網絡分成多個邏輯網絡,也稱為網絡分片,并為網絡管理人員提供廣泛定義的規則以實現對網絡的管理。FlowVisor通過抽象層來分割物理網絡,它位于一組交換機和SDN 或多個網絡之間,可管理帶寬的使用、CPU 利用率的管理統計和流表的配置等,這十分類似于管理程序位于服務器硬件和軟件之間,以支持多個虛擬操作系統的運行。正如管理程序依賴于標準x86 指令來虛擬化服務器一樣,FlowVisor 使用標準OpenFlow 指令集來管理交換機。由于所有這些規則都是通過流量表定義的,因此,無論是從帶寬還是CPU 使用率來看,網絡虛擬化幾乎沒有增加額外的開銷。
目前FlowVisor 已經被部署在美國各地的一些大型校園網中(例如斯坦福)。兩個以研究為重點的大型網絡GENI 和Internet 2 上也在使用進行網絡虛擬化的管理。
2 SDN的發展與應用
2.1 SDN 廣受關注
當前,SDN 已逐漸成為了學術界、工業界以及標準化組織廣泛關注并討論的熱點。
在學術界方面,近年來,世界各國紛紛開展了圍繞著SDN 的科研項目。美國科學基金會(NSF)支持的計劃[4] 在OpenFlow 發展的初期就率先對OpenFlow 予以了資金支持并實施了“GENI Enterprise”計劃。目前,OpenFlow 已經在美國多所高校、以及其他的多個科研機構中得到部署。歐盟第七框架計劃也于2010 年開始支持SDN 的相關研究,并支持了OFELIA[5] 、SPARC[6] 以及等研究項目。2012 年4 月,領域中又誕生了一個新的研究機構:美國斯坦福大學與伯克利大學聯合12 家公司成立了開放網絡研究中心(ONRC)[8],其中包括了Cisco、、華為及Juniper 等網絡公司。目前,SDN 的相關研究已經遍布全球的各個角落,比較有影響力的研究機構包括斯坦福大學、普林斯頓大學、康乃爾大學、多倫多大學、巴西CPqD、愛立信研究中心、NEC 研究中心、研究中心、德國電信T-Labs 研究中心等等。于此同時,SDN/OpenFlow 也在多個國家得到部署,主要包括:美國、巴西、加拿大、德國、英國、意大利、西班牙、日本等。
SDN在得到學術界的普遍認可的同時,工業界也對這種新的網絡架構表達出濃厚的興趣。從推出開始,NEC 公司就對OpenFlow 的相關硬件進行了跟進性的開發,并推出了多款支持OpenFlow 協議的交換機。此外,HP、 Junifer、pronto 等公司也相繼推出了支持OpenFlow 的交換機、路由器、無線網絡接入點(AP)等網絡設備。2011 年,開放網絡基金會成立[9],專門負責OpenFlow 標準和規范的維護和發展,并召開了第一屆開放網絡峰會,為OpenFlow 和SDN 做了很好的介紹和推廣,該基金會成員基本涵蓋了所有網絡及互聯網領域的商業巨頭。在2012 年初召開的第二屆開放網絡峰會上,Cisco 宣布投入億美元于一個專門致力于SDN 產品研發的內部創業公司Insieme;宣布已經在其全球各地的數據中心骨干網絡中大規模地使用。最近,Facebook 也宣布在其數據中心中使用了OpenFlow/SDN 技術。
在標準化方面,開放網絡基金會(ONF)致力于推動SDN 技術的標準化和商業化,已于2012 年4 月發布了協議的最新v1.3 版本。此外,作為互聯網協議標準的主要制訂者,互聯網工程任務組(IETF)也在積極開展SDN 的相關工作。2011 年月IETF 第82 次會議上的SDNP BoF 吸引了包括運營商以及設備商在內的多人參加,主要討論了SDN 的需求、架構以及典型的應用場景。在第84 次會議上,SDN 更是成為技術全會的熱門話題,Cisco、以及馬里蘭大學分別進行了相關的主題演講。此外,負責進行互聯網演進相關的相對長期性研究的互聯網研究任務組(IRTF),也于會議上舉行了SDNRG 會議,并引起的極大關注。
2.2 SDN發展迅速
經過了幾年的發展,SDN 的相關技術正呈現著百花齊放的發展態勢。
在控制平面方面,從第一個控制器平臺NOX 開始,業界已逐漸出現一系列的基于OpenFlow 的網絡控制器平臺。這些控制器平臺在向下封裝與交換機通信的OpenFlow 協議的同時,也向上層網絡控制應用提供相對更高層的開放編程接口。當前主流的控制器平臺主要包括:NOX,,Onix,Floodlight,Beacon 以及等。
在轉發設備方面,SDN 的轉發設備已不再局限于有線轉發設備。支持OpenFlow 的轉發設備能夠部署在更廣闊的網絡環境中,如適用于虛擬環境的Open vSwitch 以及能夠工作在無線環境中的Pantou 等。于此同時,隨著設備廠商的加入,支持的轉發設備也正逐漸從基于軟件的轉發設備向基于高速硬件的轉發設備過渡。
在控制平面與轉發平面的通信接口方面,開放網絡基金會ONF 于年6 月發布了Openflow v1.3 版本。與早期版本相比,新版本的協議更加靈活。除了保留版本中對多級表、群組表、標簽以及虛端口等特性的支持,以及OpenFlow v1.2 版本中對IPv6 以及可擴展匹配的支持之外,版本規范了基于參數類型、長度和數值(TLV)的能力表達框架,還增加了對逐流計量以及IPv6 擴展頭處理等功能的支持。OpenFlow v1.4 版本的標準化工作計劃也將在2013 年上半年完成。
隨著SDN 相關技術研究的不斷深入,其研究活動主要可以在以下方面展開:
(1)SDN 控制應用的研究。
這種開放的網絡架構能夠用于多種網絡環境中,不同場景中SDN 控制應用需要從不同的網絡環境特點出發,因地制宜,合理有效地進行有針對性的控制應用設計。
(2)SDN 網絡抽象。在SDN 架構中,控制器平臺向上層控制應用提供高層抽象應用程序編程接口(API),也稱為“ 北向接口”。現有的控制器平臺實現已經提供了一些基本的抽象,然而利用基本抽象來編寫網絡控制程序往往也是比較復雜并且容易出錯,如何去設計更高層的網絡編程抽象也是一個需要解決的問題。當前,業界比較認可的編程API 需求有提供通用的編程抽象,能夠支持多種網絡環境中的不同的網絡控制功能;提供高層抽象,使編程人員能夠更容易地控制網絡;提供分布式抽象,以支持網絡和應用的可擴展性,使程序的編寫不受底層網絡分布式結構的束縛;提供支持模塊化的控制程序;提供可移植性,使控制程序能夠得到最大限度的重用等等。
(3)SDN 調試及排錯技術。由于的行為完全由軟件決定,與所有程序一樣,這些控制程序同樣會存在一定的漏洞,驗證網絡行為與控制策略的一致性也成為了現階段的重要問題。
當前的解決方案有:利用模型校驗以及符號執行去驗證控制器代碼的正確性;利用斷點及數據包回溯技術來對SDN 進行排錯;以及通過對數據平面配置的靜態分析來檢查網絡的聯通及隔離錯誤等等。
(4)分布式控制平面的設計。雖然OpenFlow 支持分布式控制,但將網絡智能邏輯上集中化之后所帶來的可用性、可擴展性等問題仍需完善。
在分布式SDN 架構中,控制器之間的信息復制決定了系統的可擴展性,在信息全復制的情況下,整個系統將很快會陷入系統瓶頸,因此需要對網絡中各種信息的更新頻率進行更為精確的分析,從而能夠給出較為有效的解決方案。
(5) 硬件優化技術。利用的特性來對轉發硬件進行優化,OpenFlow 協議從v1.1 版本之后將轉發面抽象成多級流水線,十分類似于當今交換機ASIC 以及網絡處理器的結構。那么,如何在不過分增加轉發硬件復雜度的前提下,盡可能地提高轉發平面的可編程能力(如可定義的表/流水線結構)也是一個需要進一步研究的重要問題。
隨著研究的不斷深入以及技術的持續發展,SDN 關鍵技術將逐漸趨于完善,未來的網絡將會越來越依賴于軟件,因此互聯網將可能會進入SDN 時代。
2.3 SDN應用廣泛
SDN 能夠在多種網絡環境中得到應用,包括數據中心網絡、企業網絡、廣域網以及移動網絡等[10]。
首先,在數據中心網絡環境中使用SDN,可以將網絡和計算資源更加緊密地聯系在一起,從而實現高效的控制。在數據中心內部,利用SDN 的優勢,可以有效地進行數據中心中的路徑優化和負載均衡,提高數據中心中資源利用率以及降低數據中心的能量消耗。另一方面,在多個數據中心之間利用SDN 網絡虛擬化技術以及邏輯上集中式的控制技術,可以輕松地實現應用到虛擬專用網(VPN)的映射以及虛擬機的遷移。
其次,使用傳統技術對大型企業網絡進行管理是一種十分復雜的任務。在企業網絡中利用SDN 技術,能夠極大地減輕網絡管理的復雜度,企業網絡管理人員只需要通過定義整網的管理策略就能夠直接對企業網絡進行控制,而不需要進行逐設備的配置,提高了企業網絡的可靠性。
最后,在廣域網及移動網絡中使用SDN 技術也將可能具有眾多好處。SDN 邏輯上集中的控制平面能夠更好地實現網絡融合,使統一管理成為可能。利用SDN 技術可以在固定網絡和移動網絡中實現無縫控制、提高VPN 管理的靈活性等。已有企業公司利用OpenFlow 技術對移動網絡進行高效、靈活的網絡管理,并實現了多種移動通信方式之間的實時動態切換以及移動回程網絡的節能功能。在運營商網絡中利用SDN 技術不但能夠降低網絡管理難度,還能夠加快業務部署速度,提高網絡服務的適應能力。
3 結束語
通過控制與轉發的分離,SDN 能夠降低網絡管控的復雜度,提高網絡的可靠性及安全性,提供多種粒度的網絡控制,從而提高用戶體驗并促進網絡創新。當前SDN 已逐漸成為了學術界、工業界以及標準化組織廣泛關注并討論的熱點。未來網絡將越來越依賴于軟件,SDN 這種新穎的、動態的網絡架構將得到更廣泛的應用,進而促進網絡技術的不斷創新。