1. 程式人生 > 其它 >SDN軟體定義網路 學習筆記(5)--控制平面

SDN軟體定義網路 學習筆記(5)--控制平面

SDN軟體定義網路 學習筆記(5)--控制平面
1. 簡介
2. SDN 控制器體系架構
3. 開源控制器和商用控制器
3.1 開源控制器
3.2 商用控制器
4. SDN 控制器評價要素
參考資料
1. 簡介
SDN 控制平面主要由一個或者多個控制器組成,是連線底層交換裝置與上層應用的橋樑。

一方面,控制器通過南向介面協議對底層網路交換裝置進行集中管理、狀態監測、轉發決策以處理和排程資料平面的流量;

另一方面,控制器通過北向介面向上層應用開放多個層次的可程式設計能力,允許網路使用者根據特定的應用場景靈活地制定各種網路策略。

2. SDN 控制器體系架構
市面上大多數開源控制器的設計採用了類似於計算機作業系統的層次化體系架構,如下圖所示:

 

 


在這種層次化的體系結構下,控制器功能被分為基本功能層與網路基礎服務層兩個層面。

(1)基本功能層
這一層主要提供控制器所需要的最基本功能。

首先是協議適配功能,需要適配的協議主要包含兩類:一類是用來跟底層交換裝置進行資訊互動的南向介面協議,另一類是用於控制平面分散式部署的東西向介面協議。

協議適配工作完成後,控制器需要提供用於支撐上層應用開發的功能主要包括四個方面:模組管理、事件機制、任務日誌、資源資料庫。

(2)網路基礎服務層
網路基礎服務層中的模組作為控制器實現的一部分,可以通過呼叫基本功能層的介面來實現裝置管理、狀態監測等一系列基本功能。
幾個主要的功能模組:交換機管理、主機管理、拓撲管理、路由、轉發策略、虛擬網劃分

(3)總結
這種層次化的架構設計中,基礎功能層提供了SDN 控制器作為整個控制平面最為基本的功能,包括對底層硬體的抽象和對上層網路功能模組的管理,所有的網路應用都基於這一層提供的介面進行開發,網路基礎服務層的可擴充套件性得以顯著地增強,可為上層網路應用的開發、執行提供一個強大的通用的平臺。


3. 開源控制器和商用控制器
3.1 開源控制器
(1)NOX/POX
NOX 的核心元件提供了用於與 OpenFlow 交換機進行互動的 API 和輔助方法,包括連線處理器和事件引擎,同時還提供瞭如主機跟蹤、路由計算、拓撲發現以及 Python 介面等在內可選擇的附加元件。

由於 NOX 程式碼量和複雜度較高,推出了 NOX 的兄弟版控制器 POX,POX 控制器主要包含如下技術特徵:一
是基於 Python 程式語言實現了 OpenFlow 介面;二是可以與 PyPy進行捆綁執行,易於部署;三是支援 Linux、Mac OS、Windows等多種計算機作業系統,靈活易操作。

其基本框架如下圖所示:

 

 


(2)Ryu
Ryu 使用 Python 語言開發,提供了完備、友好的 API。Ryu 是基於元件的框架進行設計,這些元件都以 Python 模組的形式存在。元件是以一個或者多個執行緒形式存在的,這樣可以便於提供一些介面用於控制組件狀態和產生事件,事件中封裝了具體的訊息資料,由於事件會在多個元件中使用,因此事件物件是隻讀的。

其整體架構如下圖所示:

 

 


(3)Floodlight
Floodlight是一款基於Java 語言的開源SDN 控制器,也使用了層次化架構來實現控制器的功能,同時提供了非常豐富的應用,可以直接在網路中部署資料轉發、拓撲發現等基本功能。此外 Floodlight 還提供了友好的前端 Web 管理介面,使用者可以通過管理介面檢視連線的交換機資訊、主機資訊以及實時網路拓撲資訊。

Floodlight 通過向 OpenFlow 交換機下發流表等方式來實現資料分組轉發決策,以達到對交換裝置集中控制的目的。

Floodlight 使用模組框架實現控制器特性和應用,在功能上 Floodlight 可看作由控制器核心服務模組、普通應用模組和 REST 應用模組 3 個部分構成。

其基本框架如下圖所示:

 

 


(4)OpenDaylight
OpenDaylight 使用模組化方式來實現控制器的功能和應用。其系統架構如下圖所示:

 

 


在 OpenDaylight 總體架構中,南向介面通過外掛的方式來支援多種協議。

服務抽象層(SAL)一方面可以為模組和應用提供一致性的服務;另一方面支援多種南向協議,可以將來自上層的呼叫轉換為適合底層網路裝置的協議格式。

在 SAL 之上,OpenDaylight 提供了網路服務的基本功能和拓展功能,基本網路服務功能主要包括拓撲管理、交換機管理、主機監測以及最短路徑轉發等;拓展網路服務功能主要包括 DOVE管理、流量重定向等服務。

(5)ONOS
ONOS 目前支援包括 OpenFlow 在內的多種南向協議,同時提供開放的北向API,其分散式核心架構採用了多種分散式技術。

ONOS 基於 OSGi 框架,使用 Maven 構建專案,支援新模組執行態載入和登出(模組的熱插拔),其控制器架構和其他控制器架構類似也是分層架構。

系統框架如下圖所示:

 

 


ONOS 系統架構中定義了服務和子系統兩個基本概念。其中,服務是由多個元件形成的功能集,這些元件按照 ONOS 的架構層級建立一個垂直切片,而多個元件共同提供的服務就成為一個子系統。
子系統劃分如下圖所示:

 

 


(6)OpenContrail
OpenContrail提供了用於網路虛擬化的所有基本元件,其使用者介面採用 Python 語言編寫。

主要應用於以下兩個網路場景:一是雲端計算網路場景,主要有企業和運營商的私有云以及雲服務提供商的基礎設施即服務(IaaS)和虛擬專用雲(VPC);二是在運營商網路中的網路功能虛擬化(NFV)場景,可以為運營商邊緣網路(寬頻固定接入、移動接入等)提供增值服務。

系統架構如下圖所示:

 

 


該系統主要由 SDN 控制器和 vRouter(虛擬路由器)兩個部分組成。

控制器通過北向介面與編排系統=及上層業務通訊,通過 XMPP 與虛擬路由器通訊,通過 BGP、NETCONF 等南向協議與閘道器路由器和物理交換機通訊,通過 BGP 與其他控制器對等通訊。

vRouter 是資料轉發平面,執行在虛擬伺服器的 Hypervisor,將通過軟體方式部署在網路環境中,通過伺服器到伺服器之間的通道進行虛擬機器之間的資料分組轉發,從而在資料中心提供虛擬網路服務。

(7)其他開源控制器
如下表所示是對其他開源控制器的總結。

 

 


3.2 商用控制器
一些廠商企業推出了針對具體應用場景、支援具體交換機並提供相應服務的商用控制器,這些控制器可以有針對性地解決現網中存在的某些具體問題,同時會得到企業更加專業的支援與維護,具有更好的穩定性與可靠性以及效能。

(1)Big Network Controller
主要特點為:抽象的統一網路智慧控制、 企業級可靠性和可擴充套件性、靈活和開源的網路應用平臺。

系統架構如下圖所示:

 

 


(2)XNC
XNC是一個典型的 SDN 控制器,它支援業界標準的 OpenFlow 協議,同時使用異構的、與平臺無關的方式提供對 Cisco 以及第三方網路裝置的可程式設計能力。

XNC 的控制平面採用了與傳統控制協議共存的方式。在混合整合模式中,網路裝置繼續執行已有的網路控制協議(如 OSPF、IS-IS),Cisco XNC 的控制平面則重點實現其他控制功能。

(3)SDN Contrail
SDN Contrail是一款網路虛擬化及智慧化解決方案,包括建立虛擬重疊網路所需要的所有元素,如 SDN 控制器、虛擬路由器以及分析引擎等。

SDN Contrail 可以很方便地為服務提供商及企業使用者建立及管理虛擬網路,可以實現物理網路與虛擬網路之間的無縫整合整合,從而向其客戶提供簡單、開放、靈活的解決方案服務。

系統架構如下圖所示:

 

 


(4)Agile Controller
Agile Controller 能夠集中控制全網資源,面向使用者和應用實現網路資源自動化與動態調配,以業務體驗為中心重新定義網路,讓網路更敏捷地為業務服務。

在 Agile Controller 的智慧控制下,網路將能夠從以前手工配置,轉變為用自然語言規劃與自動部署,從傳統單點邊界防護轉變為全網協同防護。

其控制架構如下圖所示:

 

 


Agile Controller 基於業界 SDN 架構分層解耦能力,提供從應用到物理網路的自動對映、資源池化部署和視覺化運維,同時支援與業界主流雲平臺的無縫對接。

(5) ZENIC
ZENIC支援豐富的南向介面協議,對 OpenFlow 和非 OpenFlow 交換機進行統一控制,它是一套完整的可程式設計產品平臺,內建南向、北向、東西向介面協議支援、L2/L3 網路功能、VDC 業務功能。

其控制架構如下圖所示:

 

 



4. SDN 控制器評價要素
SDN 控制器的十大評估要素:

(1)對 OpenFlow 的支援

(2)網路虛擬化
網路虛擬化是指多個邏輯網路共享底層網路基礎設施,從而提高網路資源利用率,加速業務部署,以及提供業務 QoS 保障。

(3)網路功能
SDN 控制器需要提供嚴格隔離性保障功能、提供基於流的QoS 保障功能,SDN控制器有能力發現源端到目的端的多條路徑並提供多徑轉發功能,可打破 STP 協議的效能和可擴充套件性限制,相比於傳統的 TRILL 和 SPB 方案,SDN 控制器可提供相同的能力而無需對網路進行任何改動。

(4)可擴充套件性
可支援 OpenFlow 交換機的數量和如何減少廣播對網路頻寬和流表規模的影響是兩個重要指標。

(5)效能
控制器對流的處理時延以及每秒處理新流的數目是評價控制器效能的最主要效能指標。

(6)網路可程式設計性
網路可程式設計性具體包括資料流的重定向,精確的報文過濾以及為網路應用提供友好的北向可程式設計介面.

(7)可靠性
當網路鏈路或者單點裝置出現故障時,是否會導致網路的癱瘓

(8)網路安全性
控制器需要實現企業級身份驗證和授權,具備對各種關鍵流量訪問進行管控的能力,並且能夠限制控制信令的速率。

(9)集中管理和視覺化

(10)控制器供應商

參考資料
《SDN軟體定義網路核心原理與應用實踐》
《重構網路:SDN架構與實現》

另:本文是對以上參考資料的學習筆記整理
————————————————
版權宣告:本文為CSDN博主「hahahahaheiheihei」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/weixin_42896572/article/details/109439675