“柔性”網絡為云應用而來
在云計算時代,數據中心將成為我們應用和數據交付關鍵中心,用戶從園區、遠程分支點、無線和互聯網不同位置訪問數據與服務,連接這些服務的網絡與以往相比更為重要。云計算需要可靠的、橫向擴展和高性能的網絡服務。大規模部署虛擬化與云計算催生了以工作負載為中心的下一代數據中心網絡,復雜的網絡需要為工作負載提供端到端的網絡資源響應。如何以新觀點來解決網絡在新應用下的挑戰呢?控制平面與轉發平面分離的軟件定義網絡為人們提供了新思路和新方法。
云計算發展與網絡管理挑戰
用戶需求不斷變化,導致網絡越來越復雜
十年以來,用戶數量呈指數增長,網絡數據、流量和管理發展使得用戶和網絡設備不堪重負。Cisco交換機固件文件大小從原來的300K到現在的幾十兆,路由器IOS軟件從1998年的8兆左右到現在幾百兆甚至幾個G都是常見的的事。網絡設備操作系統源代碼行數也增加到了數百萬條,越來越多的網絡控制協議被加入到網絡操作系統中,廠家的研發難度不斷加大,用戶的學習成本不斷增加。
尤其是控制平面的功能特性,從基本的OSPF、BGP、多播、多協議標記交換(MPLS)、流量工程(Traffic Engineering)、大規模地址轉換(NAT)、智能分析處理防火墻、不同形式2/3層虛擬專用網VPN、IPv6與IPv4互相混搭、移動 IP網絡、用戶管理認證授權和訪問、記錄功能等等,越來越多的用戶要求被加入到網絡交換節點里面來,以致領先的網絡公司都宣稱自己是軟件公司而不是硬件公司了。現如今每個網絡設備幾乎變成了恐龍一樣的怪物,讓人見而生畏。
雖然在第一時間解決用戶痛點和滿足市場要求是網絡供應商的責任和期望,不過遺憾的是由于網絡軟件控制特性與硬件集成度較高,從初期的協議想法到協議標準化一般需要十年,而從標準化到規模部署又需要三到五年,導致用戶需求總是被嚴重地推遲滿足。另一方面,由于網絡協議與廠家硬件系統架構高度集成,而傳統網絡主體架構都是封閉的(盡管廠家可能使用通用商業化產品作為收發芯片),所以與之配套的軟件開發和驗證只能由網絡廠家根據商業利益最大化決定推動,用戶不得不忍受被鎖定的痛苦。而用戶被鎖定后,基于用戶最大利益創新愿望對廠家來講就沒有那么強烈了,形成了需求與研發的負反饋效應。
云計算需要更加靈活敏捷的、面向工作負載網絡資源調度響應
云計算是實現方便、快速、簡單、按需訪問可配置計算資源的管理模型,云計算是企業IT資源管理的高級階段,隨業務變化而變化,而不僅僅是IT技術的簡單合并與應用。
根據IDC統計,到2013年底,為云計算部署的虛擬機數量將是物理機的2.5倍,達到8200萬臺。虛擬機普及應用一方面節省了大量的采購成本,但是另一方面在大規模虛擬機環境下(一般100臺以上),管理復雜度所造成的運營成本增加也非常顯著,比如虛擬資源脫離了物理設備相對靜態的信息,排錯難度大大增加。虛擬交換機既要與現有虛擬管理平臺兼容,又要應對高度動態變化的端設備、維護虛擬邏輯抽象鏈接、集成與交換硬件設備功能、滿足虛擬設備移動性、網絡響應機動性、虛擬邏輯可維護性和轉發控制平面軟硬件可集成性等諸多挑戰。
要全面實現新一代數據中心數據管理的移動性,就需要虛擬協調角色,統一規劃和部署IT智能基礎架構,于是催生了以工作負載為中心的IT管理模式,傳統的分離IT管理模式不再合適,傳統IT資源分配的技術實現方式也不再合適。工作負載是計算機所執行工作的邏輯分類,它包括誰在做工作(Who)、做什么工作(What)和如何做工作(How),它是以業務觀點來看工作分類,而不是從IT技術特征去看。工作負載、工作內容不一樣,IT資源消耗重點就不一樣,通過虛擬資源統一協調角色,可以在IT管理和計算層面上對服務器、存儲和網絡資源建立統一視圖,從而實現了以工作負載為中心的資源調度模式。
軟件定義網絡與OpenFlow
一方面是控制平面與轉發平面集成,管理越來越復雜,創新緩慢;另一方面是虛擬化資源移動性要求更加強大靈活、簡單的控制平面;再者是面向工作負載的網絡需要控制平面與資源本身解耦,造成控制平面與轉發平面之間的差距越來越大,用戶為使用網絡所付出的總擁有成本越來越大。
難道為了解決這些問題,用戶就得遙遙無期地等待嗎?非也,答案其實很簡單。一方面,既然軟、硬件綁定導致網絡和應用發展緩慢,那么我們就把它們分開來,各自相對靈活,獨立發展,開發實現基于標準硬件平臺的靈活簡單的控制平面。另一方面,云計算和虛擬化需要極大的網絡擴展性要求,當前網絡轉發平面與控制平面都需要橫向擴展和性能的極大增強,大家平行分離,自然解耦控制與轉發。
分離的額外好處是擴展模式下控制平面的控制信息本身流量有限并可預計,所以人們就不需要昂貴的專門的高性能轉發芯片處理控制信息,控制平面由獨立可擴展的軟件經濟實現,轉發平面退化成簡單的報文處理平臺。用一個方法,便可解決這些關鍵問題!于是一群先行者就開始了軟件控制獨立與網絡轉發平面之旅。#p#
什么是軟件定義網絡?
軟件定義網絡(Software-Defined Network),又有人稱為可編程網絡,就是將網絡設備配置平面從嵌入式節點獨立出來到軟件平臺,由軟件驅動的中央控制平臺自動化控制網絡架構服務。軟件定義網絡是新的網絡控制平面實現方法,它適應了降低網絡復雜度、虛擬化和云計算的網絡需求。它的發展是對傳統網絡廠家封閉、專有、不夠靈活的控制平面技術所產生的“破壞性創新”,將對網絡廠商的變革產生巨大推力和影響。控制平面和轉發平面分離,轉發平面特性減少,專注而簡單,減少了設備硬件從而減少了資本性支出(CapEx),運營性支出 Opex的減少是因為集中的、橫向擴展和自動化簡化了網絡運行管理,減少人工支出。
圖1 軟件定義網絡示意圖
實際上,軟件定義網絡的核心技術本身并沒有什么創新,傳統交換或路由設備也都有獨立轉發平面或強大控制平面,只不過傳統模式的轉發平面是通過在同一個機箱的不同接口模塊去完成,控制平面由機箱的路由交換模塊完成,缺點當然是開放性不夠、及時響應動態變化的能力有限,如圖1所示。原因是比如設備無法做到第三方編程自動化集成,每個設備需要單獨維護自己的地址表,有限的CPU和內存卻需要全網實時計算和動態處理。
傳統網絡每個設備多少有點兒智能,但是非常有限,它們只能根據本節點的進出數據流做出被動響應,無法知道其他節點的動態狀況。各個網絡節點離散式自我控制,只見個別樹木或樹葉,沒有大家統一協調的控制平面,不見整個網絡森林,所以對整個網絡來講,盡管實現了動態路由協議,其架構基本是固定和靜態的。傳統網絡所謂動態調度實現基礎也就是二層和三層實現鏈路資源動態分配,而對于四到七層與二三層是否相匹配而進行調度,則心有余而力不足。即便有折中解決方案,也需要在固定位置安裝昂貴的負載均衡或安全設備。
理想的軟件定義網絡模式下,獨立的離散式智能從分支節點上回收到中央控制節點,中央樞紐保持全網流量監視和控制,從OSI 2層到7層實時把握網絡整體狀況,即時控制和調度,建立強大的中央智能,對全網和100%垂直完整做出有效反應。在軟件定義網絡環境下,中央控制節點可以根據相應算法、邏輯、分析和規則,以軟件定義規范方式將配置信息推到交換和路由節點,完成路由或交換從中央控制節點接受特定格式指令規則過程,交換和路由節點更新數據轉發平面落地規則,完成數據轉發。中央控制節點針對每個細分的網絡路徑,按照一條條“信息流”細分,每個“信息流”數據落地轉發由每個特定交換或路由節點完成。當計算或存儲資源變化時,中央控制節點根據分析結果重新調整節點配置規則,這樣就實現了虛擬化和云計算網絡所需要的自動化和精細化動態配置管理。
常見的專有軟件定義網絡有VMware vSphere體系架構。vShpere可以通過虛擬化交換機控制平面管理VLAN、QoS和ACL策略,網絡廠家根據API開發與專有固件互動功能,當虛擬機移動或變化時,vSphere指揮網絡節點調度網絡資源。Dell Force10邊緣交換機FTOS也支持VMware和Citrix平臺,可以安裝相關插件到虛擬操作系統,實現應用和工作負載感知,當虛擬控制平臺移動虛擬機時,通知插件以Hyperlink方式在目的交換機FTOS上運行配置腳本,自動配置與虛擬機所匹配的網絡資源。另外Cisco Nexus 系列、Juniper QFabric也可實現類似的專有架構。
OpenFlow開源軟件定義網絡
自從開放式網絡基金會Open Networking Foundation(ONF)今年成立以來,OpenFlow得到主流網絡廠家追捧,尤其是今年六月在Las Vegas召開的Interop 2011大會上,OpenFlow可謂是大出風頭。究其原因,其背后的基本理念是軟件定義網絡。OpenFlow規范實際上是一整套軟件應用程序接口,OpenFlow網絡控制節點可以通過規范與支持OpenFlow交換節點溝通配置信息,決定數據轉發平面的轉發表,控制器與轉發節點間通過SSL加密傳輸,如圖2所示。OpenFlow支持定義的“信息流”包括從1層到4層的信息,和與之對應的動作配置,如圖3所示。
圖3 OpenFlow“信息流”定義
OpenFlow獨立控制平面的出現,使得TRILL或最短路徑橋接(Shortest Path Bridging)協議變得不是那么重要,因為OpenFlow控制器可以擁有有全網視圖,可以動態防止環路發生。OpenFlow不但增加了傳統轉發平面的效率,在提供高級網絡服務方面還可以展現獨特價值,比如多對一網絡虛擬化、分布式負載均衡和分布式防火墻或入侵檢測。每一類分布式網絡資源服務與每個云租戶對應,每個云租戶都有獨立的虛擬網絡架構,把硬件細節隱藏起來了,比如不同數目地理位置無關的虛擬端口交換機。在產品化方面,NEC公司第一個推出了OpenFlow交換機PF5240,帶有48個千兆和4個萬兆上聯端口,還開發了OpenFlow控制軟件支持OpenFlow兼容交換機。#p#
軟件定義網絡商業應用展望
軟件定義網絡OpenFlow在超大規模Web 2.0數據中心網絡應用展望
Web 2.0用戶如Google、Facebook的服務器臺數近百萬臺,單個數據中心服務器的數目也超過十萬臺,國內公司如騰訊、阿里巴巴和百度安裝的總服務器數估計也超過數十萬臺。為了進一步降低IT總成本,整合與開源虛擬化是下一代Web 2.0架構的發展趨勢,單一數據中心虛擬機數目將部署到上十萬臺,這種環境下的公有云的虛擬化、移動性比我們之前說的私有云移動性來得技術更加復雜、管理更加困難,傳統網絡廠家的設備很難滿足超大規模的“信息流”要求。
同時我們看到,從傳統網絡架構遷移到軟件定義網絡將是一個艱難的旅程。網絡技術應用演變過程不外乎有兩種方式,一種是先邊緣后核心,另外一種是先中心后邊緣。不過從客戶體驗來看,先邊緣后核心是更容易接受的應用方式,所以我們可以預計OpenFlow應用也將是從邊緣到核心的過程。
具體方式比如是用戶在接入層采用OpenFlow交換機,建立獨立控制網,安裝獨立開發的或商用的OpenFlow控制軟件,從系統和網絡管理采集數據流量模式和優化定義規則。
圖4 OpenFlow基于3層網絡建立2層虛擬化轉發路徑
如上圖所示,OpenFlow在大規模虛擬化數據中心的應用。OpenFlow在數據中心網絡里建立從一臺虛擬機到另外一臺虛擬機的轉發路徑,基于三層網絡基礎上建立了二層以太網交換網絡。OpenFlow擴展了三層相對靜態功能,根據數據流動態建立負載均衡決策路徑,并依據虛擬化交換網絡配置改變最優化的轉發路徑,從而簡化了大型數據中心3層網絡適應2層虛擬機移動性要求。戴爾公司已聯合微軟公司向IETF提交了NVGRE RFC,實現基于3層2層虛擬化通道協議,將有助于更快推動OpenFlow在大規模云計算網絡中普及應用。
軟件定義網絡OpenFlow在電信運營商網絡應用展望
在傳統電信運營商網絡里,IP網絡和傳輸網絡是獨立分離的,它們分別單獨管理,IP網和傳輸網之間沒有交互,IP鏈路靜態配置,傳輸層電路或放大器也是靜態的,導致不同層次功能和資源重復,增加了用戶采購成本和運營成本負擔。
在云計算環境下,運營商需要跨越數據中心進行資源管理,實現上層資源與物理鏈路層調度的匹配與自動化以更好復用資源,滿足每個云租戶在數據中心之外需要建立端到端虛擬網絡自動服務。那什么才是運營商網絡的最佳控制和管理方式呢?可不可以基于“信息流”的報文交換與電路交換融合的聯合控制方式呢?答案是完全可能的。如圖5所示,解決思路是按光纖、放大器、時隙和報文內容等細分,從不同網絡需求抽象映射到OSI 1到4層“信息流“,每個網絡節點通過OpenFlow實現提供網絡虛擬化服務。斯坦福大學的有關專家正在積極研究這樣的融合項目,基于不同流量和應用模型建立端對端網絡虛擬化,這些研究為OpenFlow在運營商網絡的應用提供了無限的可能性。
圖5 運營商基于”流”統一控制管理網絡服務
軟件定義網絡的發展挑戰
盡管軟件定義網絡發展可以幫助我們解決云計算網絡的管理和經濟問題,前途是非常光明的,但從目前發展階段來看還是需要較長時間的發展和普及過程,從技術本身到管理和市場方面都有不少的挑戰。
第一點,從純技術觀點看,OpenFlow控制性能問題。OpenFlow按“信息流”控制網絡,以致每個控制節點和轉發節點需要維護大量端對端“信息流”表,控制節點或轉發節點的內存及其他資源需要相應提高。大規模突發首次“信息流”建立可能會導致新的“信息流”瓶頸問題。而且如果控制點出現故障,大量“信息流”需要在轉發節點重建,突發“信息流”配置對網絡性能和魯棒性都會有潛在的巨大影響。
第二點,從廠商觀點看,是OpenFlow的應用成熟度問題。目前OpenFlow還只應用于科學實驗和校園內部網,沒有大規模產品化轉發節點,一方面是沒有在大規模客戶安裝基礎之上的產品質量保證,另一方面是量產之前的成本優勢還有很大疑問。除了轉發節點成熟度問題外,因為目前并沒有商業化的控制平臺,如何實現控制節點軟件開發、如何維護升級也是大挑戰。
第三點,從用戶觀點看,OpenFlow的持續發展和服務支持問題。目前OpenFlow等項目沒有獨立的商業機構為客戶提供專業從咨詢、評估、分析、設計、部署和運維管理服務,保證客戶網絡與IT系統運行。盡管很多大公司參與了OpenFlow項目,但是開發驅動力和技術支持主要來自社區自由軟件編程人員,所以OpenFlow開源軟件定義網絡近期還僅在技術和創新能力比較強的互聯網企業和科研院校得到應用,而成熟的專有軟件定義網絡將繼續在一般企業云應用尤其是私有云起主導作用。
第四點,從管理風險看,軟件定義網絡天生的安全風險問題。集中智能雖然可以給運營管理帶來全網視圖和優化,以獲得簡化管理,提高效率的好處,但是也會帶來額外的管理風險。中央中樞如果損壞或被黑客侵入怎么辦?結果將會導致全網癱瘓或變成僵尸網絡,變成又聾又啞或失去控制的龐大網絡怪物?網絡攻擊的目標將從單點網絡節點直接上升為集中網絡控制器,后果將更加嚴重。
總的來說,軟件定義網絡作為解決網絡與云計算發展問題的思路和解決方案已經呈現在我們面前。需要我們張開熱情的雙手去擁抱它,關注它,以客戶利益至上去發展它,同時又要一分為二,立足現實解決問題,才能實現為云應用服務的真正的“柔性”網絡,在未來的網絡市場中贏得一席之地。
【編輯推薦】