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

軟件定義網絡

鎖定
軟件定義網絡(Software Defined Network,SDN)是由美國斯坦福大學Clean-Slate課題研究組提出的一種新型網絡創新架構,是網絡虛擬化的一種實現方式。其核心技術OpenFlow通過將網絡設備的控制面與數據面分離開來,從而實現了網絡流量的靈活控制,使網絡變得更加智能,為核心網絡及應用的創新提供了良好的平台。
中文名
軟件定義網絡
外文名
Software Defined Network, SDN
提出者
斯坦福大學CLean Slate研究組
類    別
新型網絡創新架構

軟件定義網絡基本簡介

SDN起源於2006年斯坦福大學的Clean Slate研究課題。2009年,Mckeown教授正式提出了SDN概念 [1] 
軟件定義網絡SDN(Software Defined Network)是由美國斯坦福大學CLean Slate研究組提出的一種新型網絡創新架構,可通過軟件編程的形式定義和控制網絡,其控制平面和轉發平面分離及開放性可編程的特點,被認為是網絡領域的一場革命,為新型互聯網體系結構研究提供了新的實驗途徑,也極大地推動了下一代互聯網的發展 [2] 
傳統網絡世界是水平標準和開放的,每個網元可以和周邊網元進行互聯。而在計算機的世界裏,不僅水平是標準和開放的,同時垂直也是標準和開放的,從下到上有硬件、驅動、操作系統、編程平台、應用軟件等等,編程者可以很容易地創造各種應用。從某個角度和計算機對比,在垂直方向上,網絡是“相對封閉”和“沒有框架”的,在垂直方向創造應用、部署業務是相對困難的。但SDN將在整個網絡(不僅僅是網元)的垂直方向變得開放、標準化、可編程,從而讓人們更容易、更有效地使用網絡資源。
因此,SDN技術能夠有效降低設備負載,協助網絡運營商更好地控制基礎設施,降低整體運營成本,成為了最具前途的網絡技術之一 [1] 

軟件定義網絡發展簡史

回顧網絡創新的發展歷史,在20世紀90年代中期認為“推動網絡的創新,需要在一個簡單的硬件數據通路上編程”,即動態網絡。它的問題在於隔離性、性能、複雜度。20世紀90年代後期認為,“為了推動網絡創新,我們需要底層的數據通道是可編程的”,也即網絡處理器。它的問題在於加劇了數據通道底層的複雜度。事實上在網絡領域,我們一直以來沒有分清一個簡單通用的硬件底層與一個開放的上層編程環境之間的界限。之前的嘗試往往犯以下錯誤:
1. 假設當前的IP路由底層是固定的,並試圖在其外部編程,包括路由協議
2. 自上而下地定義編程和控制模型。(但事實上Intel在選擇x86指令集的時候,並沒有定義Windows XPLinux或者VMware)
在經過多次的犯錯、失敗後,網絡創新終於取得了突破,新一代互聯網技術的代表——SDN終於誕生。
SDN起源於2006年斯坦福大學的Clean Slate研究課題。
2009年,Mckeown教授正式提出了SDN概念。
2012年12月6日,北京,中國以“未來網絡的演進之路”為主題的2012中國SDN與開放網絡高峯會議在北京隆重召開,本次峯會獲得國際組織ONF(開放網絡基金會)的大力支持,Justin Joubine Dustzadeh博士代表ONF向大會致辭並發表主題演講,指出SDN這一顛覆性的技術將對未來網絡產生革命性的影響。
2013年8月29日,北京,2013中國SDN與開放網絡高峯會議(第二屆)在京舉辦,眾多國內外運營商、廠商及業界專家學者將雲集於此,共同探討SDN、開放網絡等相關主題。

軟件定義網絡設計思想

利用分層的思想,SDN將數據與控制相分離。在控制層,包括具有邏輯中心化和可編程的控制器,可掌握全局網絡信息,方便運營商和科研人員管理配置網絡和部署新協議等。在數據層,包括啞的交換機(與傳統的二層交換機不同,專指用於轉發數據的設備),僅提供簡單的數據轉發功能,可以快速處理匹配的數據包,適應流量日益增長的需求。兩層之間採用開放的統一接口(如OpenFlow等)進行交互。控制器通過標準接口向交換機下發統一標準規則,交換機僅需按照這些規則執行相應的動作即可 [1] 
軟件定義網絡的思想是通過控制與轉發分離,將網絡中交換設備的控制邏輯集中到一個計算設備上,為提升網絡管理配置能力帶來新的思路 [3]  。SDN的本質特點是控制平面和數據平面的分離以及開放可編程性。通過分離控制平面和數據平面以及開放的通信協議,SDN打破了傳統網絡設備封閉性。此外,南北向和東西向的開放接口及可編程性,也使得網絡管理變得更加簡單、動態和靈活 [3] 

軟件定義網絡體系結構

圖1-1 SDN體系結構圖 圖1-1 SDN體系結構圖
SDN的整體架構由下到上(由南到北)分為數據平面、控制平面和應用平面,具體如圖1-1所示。其中,數據平面由交換機等網絡通用硬件組成,各個網絡設備之間通過不同規則形成的SDN數據通路連接;控制平面包含了邏輯上為中心的SDN控制器,它掌握着全局網絡信息,負責各種轉發規則的控制;應用平面包含着各種基於SDN的網絡應用,用户無需關心底層細節就可以編程、部署新應用。
控制平面與數據平面之間通過SDN控制數據平面接口(control-data-plane interface,簡稱CDPI)進行通信,它具有統一的通信標準,主要負責將控制器中的轉發規則下發至轉發設備,最主要應用的是OpenFlow協議。控制平面與應用平面之間通過SDN北向接口(northbound interface,簡稱NBI)進行通信,而NBI並非統一標準,它允許用户根據自身需求定製開發各種網絡管理應用。
SDN中的接口具有開放性,以控制器為邏輯中心 [1]  南向接口負責與數據平面進行通信,北向接口負責與應用平面進行通信,東西向接口負責多控制器之間的通信。最主流的南向接口CDPI採用的是OpenFlow協議。OpenFlow最基本的特點是基於流(Flow)的概念來匹配轉發規則,每一個交換機都維護一個流表(Flow Table),依據流表中的轉發規則進行轉發,而流表的建立、維護和下發都是由控制器完成的。針對北向接口,應用程序通過北向接口編程來調用所需的各種網絡資源,實現對網絡的快速配置和部署。東西向接口使控制器具有可擴展性,為負載均衡和性能提升提供了技術保障

軟件定義網絡關鍵技術

數據平面關鍵技術
在SDN中,數據轉發與規則控制相分離,交換機將轉發規則的控制權交由控制器負責,而它僅根據控制器下發的規則對數據包進行轉發。為了避免交換機與控制器頻繁交互,雙方約定的規則是基於流而並非基於每個數據包的。SDN數據平面相關技術主要體二十一世紀二十年代的交換機和轉發規則上。
SDN交換機的數據轉發方式大體分為硬件和軟件兩種。硬件方式相比軟件方式具有更快的速度,但靈活性會有所降低。為了使硬件能夠更加靈活地進行數據轉發操作,Bosshart等人提出了RMT模型,該模型實現了一個可重新配置的匹配表,它允許在流水線階段支持任意寬度和深度的流表。從結構上看,理想的RMT模型是由解析器、多個邏輯匹配部件以及可配置輸出隊列組成。具體的可配置性表現為:通過修改解析器來增加域定義,修改邏輯匹配部件的匹配表來完成新域的匹配,修改邏輯匹配部件的動作集來實現新的動作,修改隊列規則來產生新的隊列。所有更新操作都通過解析器完成,無需修改硬件,只需在芯片設計時留出可配置接口即可,實現了硬件對數據的靈活處理。
另一種硬件靈活處理技術FlowAdapter採用交換機分層的方式來實現多表流水線業務。FlowAdapter交換機分為三層,頂層是軟件數據平面,它可以通過更新來支持任何新的協議;底層是硬件數據平面,它相對固定但轉發效率較高;中層是FlowAdapter平面,它負責軟件數據平面和硬件數據平面間的通信。當控制器下發規則時,軟件數據平面將其存儲並形成M段流表,由於這些規則相對靈活,不能全部由交換機直接轉化成相應轉發動作,因此可利用FlowAdapter將規則進行轉換,即將相對靈活的M段流錶轉換成能夠被硬件所識別的N段流表。這就解決了傳統交換機與控制器之間多表流水線技術不兼容的問題。
與硬件方式不同,軟件的處理速度低於硬件,但軟件方式可以提升轉發規則處理的靈活性。利用交換機CPUNP處理轉發規則可以避免硬件靈活性差的問題。由於NP專門用來處理網絡任務,因此在網絡處理方面,NP略強於CPU。
在傳統網絡中,轉發規則的更新可能會出現不一致現象,SDN也如此。針對這種問題的一種解決方案是將配置細節抽象至較高層次以便統一更新。一般採用兩段提交的方式來更新規則。首先,當規則需要更新時,控制器詢問每個交換機是否處理完對應舊規則的流,確認後對處理完畢的所有交換機進行規則更新;之後當所有交換機都更新完畢時才真正完成更新,否則撤銷之前所有的更新操作。然而,這種方式需要等待舊規則的流全部處理完畢後才能進行規則更新,會造成規則空間被佔用的情況。增量式一致性更新算法可以解決上述問題,該算法將規則更新分多輪進行,每一輪都採用二段提交方式更新一個子集,這樣可以節省規則空間,達到更新時間與規則空間的折中。
控制平面關鍵技術
控制器是控制平面的核心部件,也是整個SDN體系結構中的邏輯中心。隨着SDN網絡規模的擴展,單一控制器結構的SDN網絡處理能力受限,遇到了性能瓶頸,因此需要對控制器進行擴展。當前存在兩種控制器的擴展方式:一種是提高自身控制器處理能力,另一種是採用多控制器方式。
最早且廣泛使用的控制器平台是NOX [1]  ,這是一種單一集中式結構的控制器。針對控制器擴展的需求,NOX-MT提升了NOX的性能,具有多線程處理能力。NOX-MT並未改變NOX的基本結構,而是利用了傳統的並行處理技術來提升性能。另一種並行控制器是Maestro,它通過良好的並行處理架構,充分發揮了高性能服務器多核並行處理能力,使其在大規模網絡情況下的性能明顯優於NOX。
圖2 SDN控制器擴展方式
圖2 SDN控制器擴展方式(2張)
但在多數情況下,大規模網絡僅僅依靠單控制器並行處理的方式來解決性能問題是遠遠不夠的,更多的是採用多控制器擴展的方式來優化SDN網絡。控制器一般可採用兩種方式進行擴展:一種是扁平控制方式,另一種是層次控制方式。(如圖2所示)
在扁平控制方式中,各控制器放置於不同的區域,分管不同的網絡設備,各控制器地位平等,邏輯上都掌握着全網信息,依靠東西向接口進行通信,當網絡拓撲發生變化時,所有控制器將同步更新,而交換機僅需調整與控制器間的地址映射即可,因此扁平控制方式對數據平面的影響很小。在層次控制方式中,控制器分為局部控制器和全局控制器,局部控制器管理各自區域的網絡設備,僅掌握本區域的網絡狀態,而全局控制器管理各局部控制器,掌握着全網狀態,局部控制器間的交互也通過全局控制器來完成。

軟件定義網絡網絡優勢

SDN是當前網絡領域最熱門和最具發展前途的技術之一。鑑於SDN巨大的發展潛力,學術界深入研究了數據層及控制層的關鍵技術,並將SDN成功地應用到企業網和數據中心等各個領域 [1] 
傳統網絡的層次結構是互聯網取得巨大成功的關鍵。但是隨着網絡規模的不斷擴大,封閉的網絡設備內置了過多的複雜協議,增加了運營商定製優化網絡的難度,科研人員無法在真實環境中規模部署新協議。同時,互聯網流量的快速增長,用户對流量的需求不斷擴大,各種新型服務不斷出現,增加了網絡運維成本 [1]  。傳統IT架構中的網絡在根據業務需求部署上線以後,由於傳統網絡設備的固件是由設備製造商鎖定和控制的,如果業務需求發生變動,重新修改相應網絡設備上的配置是一件非常繁瑣的事情。在互聯網瞬息萬變的業務環境下,網絡的高穩定與高性能還不足以滿足業務需求,靈活性和敏捷性反而更為關鍵。因此,SDN希望將網絡控制物理網絡拓撲分離,從而擺脱硬件對網絡架構的限制。
SDN所做的事是將網絡設備上的控制權分離出來,由集中的控制器管理,無須依賴底層網絡設備,屏蔽了底層網絡設備的差異。而控制權是完全開放的,用户可以自定義任何想實現的網絡路由和傳輸規則策略,從而更加靈活和智能。進行SDN改造後,無需對網絡中每個節點的路由器反覆進行配置,網絡中的設備本身就是自動化連通的,只需要在使用時定義好簡單的網絡規則即可。因此,如果路由器自身內置的協議不符合用户的需求,可以通過編程的方式對其進行修改,以實現更好的數據交換性能。這樣,網絡設備用户便可以像升級、安裝軟件一樣對網絡架構進行修改,滿足用户對整個網絡架構進行調整、擴容或升級的需求,而底層的交換機、路由器等硬件設備則無需替換,節省大量成本的同時,網絡架構的迭代週期也將大大縮短。
總之,SDN具有傳統網絡無法比擬的優勢:首先,數據控制耦合使得應用升級與設備更新換代相互獨立,加快了新應用的快速部署;其次,網絡抽象簡化了網絡模型,將運營商從繁雜的網絡管理中解放出來,能夠更加靈活地控制網絡;最後,控制的邏輯中心化使用户和運營商等可以通過控制器獲取全局網絡信息,從而優化網絡,提升網絡性能 [1] 
SDN 是當前最熱門的網絡技術之一,它解放了手工操作,減少了配置錯誤,易於統一快速部署。它被MIT列為“改變世界的十大創新技術之一”。SDN相關技術研究在全世界範圍內也迅速開展,成為近年來的研究熱點。2013年,SIGCOMM會議收錄了多篇相關文章,甚至將SDN列為專題來研討,帶動了SDN相關研究的蓬勃發展 [1] 
參考資料
  • 1.    張朝昆,崔勇,唐翯禕,吳建平.軟件定義網絡(SDN)研究進展.軟件學報,2015,26(1):62-81.
  • 2.    王鵑,王江,焦虹陽,王勇,陳詩雅,劉世輝,胡宏新.一種基於OpenFlow的SDN訪問控制策略實時衝突檢測與解決方法.計算機學報, 2015,38(4):872-883.
  • 3.    毛健彪,卞洪飛,韓彪,李韜,孫志剛.PiBuffer:面向數據中心的OpenFlow流緩存管理模型.計算機學報, 2016,39(6):1092-1104.