導讀
隨著5G、云計算、千兆寬帶等技術的普及,傳統網絡架構也面臨著嚴峻的考驗。隨著大規模數據中心的發展,其所提供的云計算技術對網絡的虛擬化以及資源管理有了更高的要求。SDN以其簡潔的策略規則、可編程的網絡架構、高度的網絡可見性以及網絡虛擬化等特點成為了解決傳統網絡痛點,賦能大規模數據中心的關鍵技術。作為SDN網絡的核心大腦,SDN控制器管理了整個網絡的策略和流量,保證了SDN網絡平穩有序的運行。
作者:馬肖男
單位:中國移動智慧家庭運營中心
1SDN以及控制器簡介
SDN(Softeware Defined Network)是由美國斯坦福大學Clean-Slate課題研究組提出的一種新型網絡創新架構,是網絡虛擬化的一種實現方式。其核心技術是通過將網絡設備的控制面與數據面分離,實現網絡流量的靈活控制,使網絡更智能。SDN嘗試擺脫網絡對硬件設備的依賴,通過直接的編程方式,實現網絡的管控、配置、升級等功能。
Fig1.典型SDN架構圖
SDN控制器是SDN控制面的代表,是SDN的大腦。作為SDN架構中的核心部件,SDN控制器以集中式管控方式管理整個網絡的策略和流量。SDN控制器能夠明顯提高網絡資源的利用率,縮短業務上線周期,較大提升運維效率。與此同時,SDN控制器可以提供統一的安全策略,為網絡提供自上而下的安全防護。
2SDN控制器發展歷史
SDN控制器從早期的NOX控制器一直到如今的企業級控制器,經過了多個發展歷程。功能逐漸完善、強大。按照其發展路線可以分為:以ODL、ONOS為代表的開源路線以及以Orion為代表的商業控制器路線。
第一代控制器:NOX是第一款OpenFlow控制器,采用OpenFlow協議進行管控,由Nicira Networks公司研發,并于2008年開源發布。作為最早的控制器,NOX為后面的控制器提供了很好的范例。不過由于其使用C++語言編寫,SDN應用的開發成本較高,逐漸在控制器競爭中失去優勢。其后續版本改為Python開發,名為POX,但POX在架構和性能上存在一定的缺陷,逐漸被新興控制器取代。
通用SDN控制平臺:隨著設備廠商加入SDN控制器市場競爭,對SDN控制器提出更高的要求,由多家設備廠商聯合而非運營商主導的開源SDN控制器OpenDaylight應運而生。ODL支持多種南向協議,不僅限于OpenFlow、Netconf、OVSDB等。ODL的誕生意味著SDN進入了一個嶄新的時期。控制器實現從僅支持單一協議向支持多種南向協議演進。在這一時期,控制器的部署形式也由單體應用轉化為分布式平臺部署。
經過幾年的發展,SDN控制器之間相互競爭越來越激烈。ODL社區憑借設備廠商的大力支持,處于開源控制器的領導者地位。而定位運營商市場,同樣采用OSGI架構的ONOS以更優秀的性能在市場上取得了相當不錯的占有份額。同期,多種閉源框架也在相互競爭,2013年,Google推出的ONIX控制器更是將寬帶利用率提升到接近100%的地步。
云原生SDN控制器:隨著越來越多的業務上云,尤其是大規模數據中心的發展,對控制器的要求也越來越高。SDN控制器也越來越多的與云管平臺進行整合運行。SDN控制器結合AI技術、意圖網絡等內容,向著更智能、更方便的方向發展。ODL、ONOS等開源平臺逐漸聚焦智能化運維,Google的新一代控制器Orion更是全面應用微服務架構以及調和理念,采用大規模分布式部署方案,實現大規模生產網絡的控制與管理。
3主流控制器介紹
當前開源社區活躍的控制器主要包括:OpenDayLight、ONOS、Ryu、POX等。閉源控制器以Orion為代表,另外還有HP的VAN、Cisco的DNA Center等。
每種控制器都具有各自的特點以及長處,下面就以幾種主流的控制器為大家介紹控制器的相關技術和功能:
3.1 ODL控制器
OpenDayLight(ODL)控制器是由Linux基金會管理和維護的開源SDN控制器,于2013年推出。采用社區驅動的開發模式,主要貢獻者為各大設備廠商,如華為、中興等。旨在提供一個通用、可編程的SDN控制器。能夠支持多種硬件和軟件平臺,實現靈活、可擴展的網絡管理和控制。
3.1.1 架構方案
ODL采用OSGi框架進行開發,通過MD-SAL模型架構對南向協議進行抽象化建模以及管理,實現與設備以及協議的解耦,能夠支持多種南向傳輸協議。控制器中核心插件提供了數據存儲、配置管理、網絡流量管理、服務質量管理、網絡監控和調試等功能,并通過RESTful API等北向協議提供對接三方應用,為第三方業務提供設備的數據支持。
如圖為一種典型的ODL架構設計方案:
圖片來源 OpenDayLight官網
3.1.2 核心概念
模型驅動:ODL的模型驅動指將網絡設備的配置和狀態信息表示為YANG數據模型,統一描述網絡設備的屬性、配置和狀態信息,并基于YANG模型定義一組標準的RESTful API,用于控制器和設備之間的通信。ODL通過YANG模型實現了多協議支持、插件化和可編程化等功能。
OSGi:ODL基于OSGi框架進行功能開發,天生支持模塊化的設計,使用戶能夠輕松的實現功能的添加和刪除。同時Karaf框架提供了良好的運行底座,能夠輕松實現業務的高可用,減少了開發難度。
Yang:一種輕量化的數據建模語言。YANG模型定義了數據的層次化結構。ODL采用YANG來定義網絡配置,能夠輕松區分配置和狀態,具有很強的擴展性。隨著標準化的推行,YANG正逐漸成為業界主流的數據描述規范,標準組織、廠商、運營商、OTT紛紛定義各自的YANG模型。
3.1.3 典型模塊
AAA:AAA為Authentication, Authorization and Accounting ,為控制器提供了鑒權、認證和計費的功能。該模塊用于控制對資源的訪問,強制執行使用資源的策略,并審核統計資源的使用狀況,為控制器提供了有效的網絡管理和基本的安全架構。
BGPCEP:該模塊為典型應用模塊,主要有BGP插件以及PCEP插件構成。BGP插件為用戶提供BGP協議的實現以及基于BGP協議的業務實現。PCEP為路徑計算通訊協議,用于在MPLS和GMPLS標簽交換路徑的上下文中在PCC和PCE之間進行通訊。PCEP插件提供構建基于 PCE 的控制器所需的所有基本服務單元。此外,它還為 Active Stateful PCE 提供 LSP 管理功能——這是大多數支持 PCE 的 SDN 解決方案的基石。
下圖為基于PCE的路徑計算架構:
圖片來源 OpenDayLight官網
Controller:控制器模塊是基于 Java 的模型驅動控制器,使用 YANG 作為系統和應用程序各個方面的建模語言,為其他 OpenDaylight 應用程序的提供基礎平臺。其依賴于MD-SAL、Netconf、RestConf等模塊。
MD-SAL:模型驅動服務適配層 (MD-SAL) 是受消息總線啟發的可擴展中間件組件,它根據應用程序開發人員定義的數據和接口模型(即用戶定義的模型)提供消息傳遞和數據存儲功能。該模塊定義了公共層、概念、數據模型構建塊和消息傳遞模式,并為應用程序和應用程序間通信提供基礎設施/框架。
Netconf模塊:NETCONF本身是一種基于XML的傳輸協議,用于配置和監控網絡中的設備。ODL中的Netconf模塊支持NETCONF協議作為北向服務器和南向插件,同時提供了一組用于模擬NETCONF設備和客戶端測試的工具。
3.2 ONOS控制器
ONOS是首款開源的SDN網絡操作系統,主要面向服務提供商和企業骨干網。ONOS社區聚集了知名的服務提供商(如AT&T、NTT通信)、高標準的網絡供應商(如Ciena、Ericsson、Fujitsu、Huawei、Intel、NEC)、網絡運營商(如Internet2、CNIT、CREATE-NET),以及其他合作伙伴(如SRI、Infoblox),并且獲得ONF的鼎力支持。
3.2.1 架構方案
ODL是一個典型的分布式架構系統,自上而下可分為:APP層、北向接口API、分布式核心層、南向接口層。其中,分布式核心平臺保證了控制器能夠以高可靠、易擴展以及高穩定性進行運行。北向接口抽象為圖像化界面以及更友好的管控配置服務提供了重要支撐。可插拔式的南向接口抽象層,使ONOS控制器能夠支持OpenFlow設備和傳統設備。南向接口的抽象屏蔽了底層設備和協議的差異性,能夠同時支持多種設備的管控。其架構圖如下:
圖片來源 ONOS官網
3.2.2 核心概念
SDN操作系統:一個操作系統需要具備以下基本特征:
(1)用戶資源管理;
(2)用戶隔離;
(3)服務和資源的抽象化管理;
(4)用戶安全機制;
(5)高效的服務使用。
ONOS具備一個操作系統的基本功能,因而不僅僅是一個SDN控制器,而是一個SDN操作系統。
軟件模塊化:ONOS可以像軟件操作系統一樣,為開發者以及服務提供商更塊、更便捷的開發、調試、維護和升級服務。ONOS本身是由一系列功能模塊組成,每個功能模塊由一個或者多個組件組成,對外提供一種特定服務,這種基于SOA的框架同時支持對組件的全生命周期管理,支持動態加載、卸載組件。
統一的網絡模型:ONOS 抽象出了統一的網絡資源和網元模型,奠定了第三方SDN應用程序互通的基礎,使得運營商可以做靈活的業務協同和低成本業務創新。
3.2.3 典型組件
REST API:提供開放的北向抽象接口,方便運營商以及用戶基于ONOS開發應用以及插件。
功能組件:ONOS提供統一的網絡資源和網元模型,更有利于運營商進行業務開發。統一的組件和模型結構如下圖:
[引用feiskyer中ONOS組件和服務章節]
圖片來源 gitbook-SDN指南
Cluster:ONOS集群間通信支持Gossip以及Raft兩種算法。Cluster提供了較好的分區容錯性以及彈性擴展機制。Cluster能夠保障節點失效對業務無影響,當ONOS節點宕機時,其他節點會接管該節點對網元的控制權,當節點恢復后,通過loadbalance命令恢復節點對網元的控制并使整體的控制達到負載均衡。ONOS屏蔽了負責的分布式機制,只對外暴露業務接口,使應用開發更加簡單。集群機制如下:
[引用feiskyer中ONOS集群原理章節]
圖片來源 gitbook-SDN指南
3.3 Orion分布式控制器
Orion控制器是Google獨立開發的第二代控制器。Google于2021年NSDI會議上發表Orion相關論文,論文詳細闡述了Orion的設計原則、整體架構以及在網絡中的應用情況。論文發布時,Orion已經在現網中穩定運行了四年。相比Google第一代控制器Onix,Orion具有以下特征:
(1)完全獨立開發。
(2)微服務架構,分布式程序,具有更高的穩定性。
(3)基于敏捷的開發,更快的迭代速度。
3.3.1 架構方案
Orion是一個典型的微服務應用。其本身的工作模式是基于協調(reconciliation)的模式。從設計的根本原理上看,Orion和Kubernetes的原理幾乎一致。
整體框架如下:
圖片來源論文:《Orion:Google`s Software-Defined Networking Control Plane》
從架構上看,最上層是各種具體的網絡應用,如負責域內算路的Routing Engine。
中間的核心層實現了控制器的通用功能,包括了NIB數據庫,配置模塊,拓撲模塊以及流管理模塊。中間層的每個模塊都是微服務應用。
下層則是OpenFlow協議棧,Orion控制的所有路由器均只有OpenFlow協議棧,沒有傳統協議棧,傳統協議都是在控制器上完成,可以說是徹底實現了SDN化。
3.3.2 核心概念
意圖驅動:Orion面向大規模生產網絡,在大規模生產網絡中,宏觀的意圖遠比細瑣的過程更穩定,更不容易出錯,因而意圖驅動(intent-based)成為了必然選擇。Orion本身就被設計成一個翻譯和細化意圖的控制器。而控制器最終會將管理人員的意圖轉化為設備可識別的Openflow原語。Intent鏈式反應圖如下:
圖片來源論文:《Orion:Google`s Software-Defined Networking Control Plane》
分布式控制器:傳統控制器多為集中式控制器,控制器單元由一個中心多個分中心的方式進行管理,而Orion采用的是邏輯上的集中。在論文中提到:控制器為邏輯集中控制器,為了實現高性能,控制器需要具有基于內存的狀態表示以及在松散協調的微服務SDN應用程序之間使用適當的一致性級別[ 引用《Orion: Google's Software-Defined Networking Control Plane》第一章描述]。
3.3.3 典型設計
微服務框架:Orion徹底擺脫了傳統控制器的集中式管控制約,采用和K8S類似的架構進行設計,將網絡業務抽象為獨立的服務,方便了業務的開發、部署以及維護。在萬物上云時代,基于微服務架構的設計思路更貼合業務的實現與部署方案。
微服務框架是未來SDN控制器中重要的發展方向。中國移動智慧家庭運營中心自研的SDN控制器就是基于微服務架構對網絡業務進行劃分,采用協調機制實現高效的業務配置與調度。
Intent和Ground Truth的鏈式反應:如上圖意圖網絡所示,Intent有多種來源,通過控制器一級一級的協調,最終將配置轉化為機器原語。在意圖網絡中,最終還是要從人的意圖出發。
正如論文中寫到的:“Intentbased networks specify management or design changes by describing the new intended end-state of the network (the“what”) rather than prescribing the sequence of modifications to bring the network to that end-state (the “how”)[ 引用論文《Orion: Google's Software-Defined Networking Control Plane》3.1中意圖網絡原理的描述]”。
4總結
通過前面大概的介紹,我們了解了控制器的發展歷史和方向。這為我們自研控制器提供了很好參考和范例。
目前,中國移動智慧家庭運營中心在自研控制器領域尤其是面向SDWAN自研控制器領域已具備一定的技術積累,基于ODL的開源控制器已在公司部分業務上面進行了試商用,并取得了良好的成效。中國移動智慧家庭運營中心正在將自研控制器向微服務化的分布式控制器演進。在未來,基于微服務架構的控制器將以更快的迭代速度,更穩定的性能,更高的服務效率為移動網絡云時代發展提供支撐。
審核編輯:湯梓紅
-
控制器
+關注
關注
112文章
16445瀏覽量
179451 -
云計算
+關注
關注
39文章
7859瀏覽量
137866 -
5G
+關注
關注
1356文章
48504瀏覽量
566011 -
sdn
+關注
關注
3文章
254瀏覽量
44873
原文標題:SDN控制器
文章出處:【微信號:5G通信,微信公眾號:5G通信】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
![](https://file1.elecfans.com/web2/M00/EE/3C/wKgaomZqtZyAU9VMAAHe9U_zjLI026.png)
微控制器的發展怎么樣
基于SDN控制器性能評估研究
![基于<b class='flag-5'>SDN</b><b class='flag-5'>控制器</b>性能評估研究](https://file.elecfans.com/web2/M00/49/65/poYBAGKhwKyAG4WhAAAOzStX7uo004.jpg)
基于圖非均衡劃分的SDN異構控制器負載優化部署方法
![基于圖非均衡劃分的<b class='flag-5'>SDN</b>異構<b class='flag-5'>控制器</b>負載優化部署方法](https://file.elecfans.com/web2/M00/49/81/poYBAGKhwL-AaIEGAAAa1dUKvgg127.jpg)
基于SDN的入侵容忍控制器架構設計
![基于<b class='flag-5'>SDN</b>的入侵容忍<b class='flag-5'>控制器</b>架構設計](https://file.elecfans.com/web2/M00/49/85/poYBAGKhwMGAe4-qAAAX-3FFLUo982.jpg)
多控制器條件下區分QoS的虛擬SDN映射方法
![多<b class='flag-5'>控制器</b>條件下區分QoS的虛擬<b class='flag-5'>SDN</b>映射方法](https://file.elecfans.com/web2/M00/49/8D/poYBAGKhwMeAaWVmAAAf98kdVH4222.jpg)
評論