軟體定義網路

軟體定義網路

軟體定義網路(Software Defined Network,SDN)是由美國史丹福大學CLean State課題研究組提出的一種新型網路創新架構,是網路虛擬化的一種實現方式。其核心技術OpenFlow通過將網路設備的控制面與數據面分離開來,從而實現了網路流量的靈活控制,使網路作為管道變得更加智慧型,為核心網路及套用的創新提供了良好的平台。

基本介紹

  • 中文名:軟體定義網路
  • 外文名:Software Defined Network, SDN
  • 提出者:史丹福大學CLean State研究組
  • 類別:新型網路創新架構
簡介,發展簡史,設計思想,體系結構,關鍵技術,數據平面關鍵技術,控制平面關鍵技術,優勢,

簡介

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

發展簡史

回顧網路創新的發展歷史,在20世紀90年代中期認為“推動網路的創新,需要在一個簡單的硬體數據通路上編程”,即動態網路。它的問題在於隔離性、性能、複雜度。20世紀90年代後期認為,“為了推動網路創新,我們需要底層的數據通道是可程式的”,也即網路處理器。它的問題在於加劇了數據通道底層的複雜度。事實上在網路領域,我們一直以來沒有分清一個簡單通用的硬體底層與一個開放的上層編程環境之間的界限。之前的嘗試往往犯以下錯誤:
1. 假設當前的IP路由底層是固定的,並試圖在其外部編程,包括路由協定
2. 自上而下地定義編程和控制模型。(但事實上Intel在選擇x86指令集的時候,並沒有定義Windows XP、Linux或者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等)進行互動。控制器通過標準接口向交換機下發統一標準規則,交換機僅需按照這些規則執行相應的動作即可。
軟體定義網路的思想是通過控制與轉發分離,將網路中交換設備的控制邏輯集中到一個計算設備上,為提升網路管理配置能力帶來新的思路。SDN的本質特點是控制平面和數據平面的分離以及開放可程式性。通過分離控制平面和數據平面以及開放的通信協定,SDN打破了傳統網路設備的封閉性。此外,南北向和東西向的開放接口及可程式性,也使得網路管理變得更加簡單、動態和靈活。

體系結構

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

關鍵技術

數據平面關鍵技術

在SDN中,數據轉發與規則控制相分離,交換機將轉發規則的控制權交由控制器負責,而它僅根據控制器下發的規則對數據包進行轉發。為了避免交換機與控制器頻繁互動,雙方約定的規則是基於流而並非基於每個數據包的。SDN數據平面相關技術主要體現在交換機和轉發規則上。
SDN交換機的數據轉發方式大體分別硬體和軟體兩種。硬體方式相比軟體方式具有更快的速度,但靈活性會有所降低。為了使硬體能夠更加靈活地進行數據轉發操作,Bosshart等人提出了RMT模型,該模型實現了一個可重新配置的匹配表,它允許在流水線階段支持任意寬度和深度的流表。從結構上看,理想的RMT模型是由解析器、多個邏輯匹配部件以及可配置輸出佇列組成。具體的可配置性體現在:通過修改解析器來增加域定義,修改邏輯匹配部件的匹配表來完成新域的匹配,修改邏輯匹配部件的動作集來實現新的動作,修改佇列規則來產生新的佇列。所有更新操作都通過解析器完成,無需修改硬體,只需在晶片設計時留出可配置接口即可,實現了硬體對數據的靈活處理。
另一種硬體靈活處理技術FlowAdapter採用交換機分層的方式來實現多表流水線業務。FlowAdapter交換機分為三層,頂層是軟體數據平面,它可以通過更新來支持任何新的協定;底層是硬體數據平面,它相對固定但轉發效率較高;中層是FlowAdapter平面,它負責軟體數據平面和硬體數據平面間的通信。當控制器下發規則時,軟體數據平面將其存儲並形成M段流表,由於這些規則相對靈活,不能全部由交換機直接轉化成相應轉發動作,因此可利用FlowAdapter將規則進行轉換,即將相對靈活的M段流錶轉換成能夠被硬體所識別的N段流表。這就解決了傳統交換機與控制器之間多表流水線技術不兼容的問題。
與硬體方式不同,軟體的處理速度低於硬體,但軟體方式可以提升轉發規則處理的靈活性。利用交換機CPU或NP處理轉發規則可以避免硬體靈活性差的問題。由於NP專門用來處理網路任務,因此在網路處理方面,NP略強於CPU。
在傳統網路中,轉發規則的更新可能會出現不一致現象,SDN也如此。針對這種問題的一種解決方案是將配置細節抽象至較高層次以便統一更新。一般採用兩段提交的方式來更新規則。首先,當規則需要更新時,控制器詢問每個交換機是否處理完對應舊規則的流,確認後對處理完畢的所有交換機進行規則更新;之後當所有交換機都更新完畢時才真正完成更新,否則撤銷之前所有的更新操作。然而,這種方式需要等待舊規則的流全部處理完畢後才能進行規則更新,會造成規則空間被占用的情況。增量式一致性更新算法可以解決上述問題,該算法將規則更新分多輪進行,每一輪都採用二段提交方式更新一個子集,這樣可以節省規則空間,達到更新時間與規則空間的折中。

控制平面關鍵技術

控制器是控制平面的核心部件,也是整個SDN體系結構中的邏輯中心。隨著SDN網路規模的擴展,單一控制器結構的SDN網路處理能力受限,遇到了性能瓶頸,因此需要對控制器進行擴展。目前存在兩種控制器擴展方式:一種是提高自身控制器處理能力,另一種是採用多控制器方式。
最早且廣泛使用的控制器平台是NOX,這是一種單一集中式結構的控制器。針對控制器擴展的需求,NOX-MT提升了NOX的性能,具有多執行緒處理能力。NOX-MT並未改變NOX的基本結構,而是利用了傳統的並行處理技術來提升性能。另一種並行控制器是Maestro,它通過良好的並行處理架構,充分發揮了高性能伺服器的多核並行處理能力,使其在大規模網路情況下的性能明顯優於NOX。
但在多數情況下,大規模網路僅僅依靠單控制器並行處理的方式來解決性能問題是遠遠不夠的,更多的是採用多控制器擴展的方式來最佳化SDN網路。控制器一般可採用兩種方式進行擴展:一種是扁平控制方式,另一種是層次控制方式。(如圖所示)
在扁平控制方式中,各控制器放置於不同的區域,分管不同的網路設備,各控制器地位平等,邏輯上都掌握著全網信息,依靠東西向接口進行通信,當網路拓撲發生變化時,所有控制器將同步更新,而交換機僅需調整與控制器間的地址映射即可,因此扁平控制方式對數據平面的影響很小。在層次控制方式中,控制器分為局部控制器和全局控制器,局部控制器管理各自區域的網路設備,僅掌握本區域的網路狀態,而全局控制器管理各局部控制器,掌握著全網狀態,局部控制器間的互動也通過全局控制器來完成。

優勢

SDN是當前網路領域最熱門和最具發展前途的技術之一。鑒於SDN巨大的發展潛力,學術界深入研究了數據層及控制層的關鍵技術,並將SDN成功地套用到企業網和數據中心等各個領域。
傳統網路的層次結構是網際網路取得巨大成功的關鍵。但是隨著網路規模的不斷擴大,封閉的網路設備內置了過多的複雜協定,增加了運營商定製最佳化網路的難度,科研人員無法在真實環境中規模部署新協定。同時,網際網路流量的快速增長,用戶對流量的需求不斷擴大,各種新型服務不斷出現,增加了網路運維成本。傳統IT架構中的網路在根據業務需求部署上線以後,由於傳統網路設備的固件是由設備製造商鎖定和控制的,如果業務需求發生變動,重新修改相應網路設備上的配置是一件非常繁瑣的事情。在網際網路瞬息萬變的業務環境下,網路的高穩定與高性能還不足以滿足業務需求,靈活性和敏捷性反而更為關鍵。因此,SDN希望將網路控制與物理網路拓撲分離,從而擺脫硬體對網路架構的限制。
SDN所做的事是將網路設備上的控制權分離出來,由集中的控制器管理,無須依賴底層網路設備,禁止了底層網路設備的差異。而控制權是完全開放的,用戶可以自定義任何想實現的網路路由和傳輸規則策略,從而更加靈活和智慧型。進行SDN改造後,無需對網路中每個節點的路由器反覆進行配置,網路中的設備本身就是自動化連通的,只需要在使用時定義好簡單的網路規則即可。因此,如果路由器自身內置的協定不符合用戶的需求,可以通過編程的方式對其進行修改,以實現更好的數據交換性能。這樣,網路設備用戶便可以像升級、安裝軟體一樣對網路架構進行修改,滿足用戶對整個網路架構進行調整、擴容或升級的需求,而底層的交換機、路由器等硬體設備則無需替換,節省大量成本的同時,網路架構的疊代周期也將大大縮短。
總之,SDN具有傳統網路無法比擬的優勢:首先,數據控制解耦合使得套用升級與設備更新換代相互獨立,加快了新套用的快速部署;其次,網路抽象簡化了網路模型,將運營商從繁雜的網路管理中解放出來,能夠更加靈活地控制網路;最後,控制的邏輯中心化使用戶和運營商等可以通過控制器獲取全局網路信息,從而最佳化網路,提升網路性能。
SDN 是當前最熱門的網路技術之一,它解放了手工操作,減少了配置錯誤,易於統一快速部署。它被MIT列為“改變世界的十大創新技術之一”。SDN相關技術研究在全世界範圍內也迅速開展,成為近年來的研究熱點。2013年,SIGCOMM會議收錄了多篇相關文章,甚至將SDN列為專題來研討,帶動了SDN相關研究的蓬勃發展。

相關詞條

熱門詞條

聯絡我們