宋焱宏


摘要:云計算可以根據實際需求提供靈活多樣的服務,正成為Ⅱ模式的應用趨勢,其中大部分采用軟件定義網絡(SDN)作為其網絡架構,控制平面和數據平面相互分離,以簡化網絡管理、保證網絡隔離。該文基于SDN技術的發展現狀,介紹了OpenFlow交換、控制器和SDN技術的關鍵組成和研究進展,及其在網絡中的應用。最后,分析了云計算環境中SDN技術存在的問題,并提出相關解決建議。
關鍵詞:云計算;軟件定義網絡(SDN);OpenFlow;架構
中圖分類號:TP319 文獻標識碼:A
文章編號:1009-3044(2020)12-0045-02
1簡介
云計算可以提供按需、彈性和可訪問的計算服務,越來越多的以企事業單位為代表的用戶開始接受這一范式的轉變,將其數據庫和應用轉移到采用存儲虛擬化、計算虛擬化和網絡虛擬化技術的云上。存儲和計算虛擬化已發展多年,但網絡虛擬化一直是一個挑戰,有很多不同的實現方案,如虛擬局域網(VLAN)、虛擬專用網(VPN)、虛擬可擴展局域網(VXLAN)等,這也促使軟件定義網絡(SDN)的研究走到了最前沿。在云計算促進計算和存儲資源管理的同時,SDN及其支持技術Open-Flow提出了解決阻礙當今互聯網發展的另一個難題,如復雜的網絡管理和不安全的網絡隔離。除了SDN/OpenFlow已經被提出作為下一代互聯網架構的候選之外,微軟、谷歌、阿里巴巴、騰訊等許多世界知名企業已經在其內部數據中心采用了SDN/OpenFlow。云計算和SDN/OpenFlow虛擬化網絡攜手提供企業IT服務的時代即將來臨。
云服務正處于爆炸式增長中,企業級用戶也正將數據中心聚合起來,以便利用虛擬化技術帶來的可預測性、連續性和高服務質量。同時,網絡高效節能性和安全穩定性也越來越重要。網絡運營商、服務和產品提供商需要新的網絡解決方案,以有效應對當前不斷變化的網絡環境和日益增長的需求。軟件定義網絡作為一種有效滿足上述需求的網絡技術,能夠支持未來網絡功能和智能應用的動態特性,同時也能夠簡化硬件、軟件并管理降低運營成本。本文基于軟件定義網絡研究的應用,分析云計算環境中,軟件定義網絡在性能、可擴展性、安全性和互操作性方面面臨的挑戰,并提出相關解決建議。
2軟件定義網絡架構
與OSI模型中格式良好的數據平面抽象不同,傳統網絡體系結構中的互聯網控制平面是由各種復雜的網絡功能協議組成的。因此,不難想象,隨著添加更多的功能,以分布式方式管理這些協議變得效率低下且容易出錯。SDN是一種網絡架構,它將網絡交換機的控制平面和數據平面分離,并將控制平面移動到一個稱為網絡控制器的集中應用程序中。網絡控制器通過OpenFlow等獨立于供應商的接口來管理整個網絡,Open-Flow定義了數據平面中的低級包轉發行為。然后,開發人員可以從更高的層次對網絡進行編程,而不必考慮物理設備中數據包處理和轉發的較低層次細節。
軟件定義網絡(SDN)架構如圖1所示,其組成模塊主要包括數據平面、控制平面和網絡應用程序等。在SDN分離控制平面和數據轉發平面的原理驅動下,SDN的使能技術OpenFlow規范了兩個平面之間的信息交換。OpenFlow體系架構如圖2所示,由OpenFlow控制器、OpenFlow開關和OpenFlow協議組成。
Openflow交換機:在Openflow架構中,轉發設備或Openflow交換機包含一個或多個流表和一個抽象層,該抽象層通過Openflow協議與控制器安全通信。流程表由流程條目組成,每個條目決定如何處理和轉發屬于流的數據包。流條目通常包括:(1)匹配字段,用于匹配傳人的數據包,匹配字段可以包含在數據包頭、入口端口等中找到的信息;(2)只要發生匹配就應用的操作,指示如何處理匹配的數據包;以及(3)計數器,用于收集特定數據流的統計信息,按接收數據包個數、字節數和流持續時間搜索。當數據包到達OpenFlow交換機時,交換機選擇最高優先級匹配規則,更新流量計數器,并執行指定的操作。交換機還生成事件,例如加入網絡時的“加入”事件,或鏈接上下時的“端口更改”事件。
Openflow控制器:Openflow網絡有一個集中編程模型,其中一個(或幾個)軟件控制器管理底層交換機。控制器在交換機中安裝規則,讀取交換機收集的流量統計信息,以及對網絡事件的響應。控制器應用程序被定義為每個事件(如數據包到達、規則超時和交換機連接)的處理程序,這些事件可以安裝新規則或發出新的流量統計請求。控制器應用程序的一個常見習慣用法是通過在數據平面中安裝直接處理后續數據包的規則來響應數據包到達。將數據包發送到控制器會帶來開銷和延遲,因此大多數應用程序都會盡量減少必須發送到控制器的通信量。在本文中,我們使用POX控制器作為虛擬網絡的核心對象,這是NOX的最新版本。大多數OpenFlow應用程序都是在NOX(POX)控制器平臺上編寫的,該平臺為用Python或C++編寫的應用程序提供OpenFlow API。這些控制器應用程序是可以執行任意計算并保持任意狀態的通用程序。
Openflow協議:控制器和交換機之間的通信通過Openflow協議進行,Openflow協議定義了一組消息,這些消息可以通過安全通道在這些實體之間交換。使用OpenFlow協議,遠程控制器可以從交換機的流表中添加、更新或刪除流條目。這種情況可以是被動的(響應數據包到達)或主動的。
3軟件定義網絡應用
SDN能提高網絡內可編程性,并支持未來網絡功能的動態特性。隨著帶寬需求的增加,通過SDN的更新或升級,支持多個100GE信道附加功能和處理能力將實現無縫對接。SDN實現靈活、集中控制以及節點之間的開放接口,提升了網絡效率與適應性。軟件定義網絡運用于云計算環境中,可以提高云計算數據中心的管理效率,并且可以給云計算用戶提供網絡虛擬化、虛擬防火墻等服務。
由于傳統網絡設備(交換機、路由器)的固件是由設備制造商鎖定和控制,所以SDN希望將網絡控制與物理網絡拓撲分離,從而擺脫硬件對網絡架構的限制。這樣企業便可以像升級、安裝軟件一樣對網絡架構進行修改,滿足企業對整個網站架構進行調整、擴容或升級的需求。而底層的交換機、路由器等硬件則無須替換,節省大量成本的同時,網絡架構迭代周期將大大縮短。在傳統云計算平臺中,例如OpenStackEssex以及之前的版本,云計算管理器統一對底層網絡設備進行虛擬化,實現對各類網絡資源的管理,例如用戶的虛擬網絡創建等操作。這種架構帶來的主要問題是,當用戶數量大幅增長時,需要維護的網絡信息也急劇增長,甚至可能以幾何級增長,致使維護工作變得更為復雜。以OpenStackFolsom及之后版本的云計算平臺為例,SDN的應用實現了計算資源和網絡資源的分別管理,前者由云計算管理器進行管理,后者完全交由SDN控制器進行管理。
然而,進入大數據時代以來,在云計算環境中,SDN的性能、可伸縮性、安全性和互操作性方面均面臨一些挑戰。當前的研究已致力于解決這些問題,為行業提供可行的解決方案。此外,混合可編程體系結構還可以用來解決SDN引入的性能和可擴展性問題,該模型的目標是優化網絡中的流處理原始數據網絡是由計算設備與數據和網絡節點的組合構成的,用于在源和目標之間傳輸數據。通過虛擬化技術提供“X”即服務(Xaas)的能力增加了網絡中的數據量。這為一種新的通信方法設定了一個基線,通過將計算推入網絡設備來增加機器間的通信。未來網絡將圍繞這一進程,提供有效的通信和服務,其中網絡、數據和計算將融合到一個服務架構中。對于一個特定的進程,數據將在啟動應用程序之前請求其所需的計算、存儲和連接。網絡元素的位置可能是物理和虛擬分布的,但對最終用戶來說是完全不透明的,用戶只需觀察所要求服務的交付質量。SDN將有助于實現未來通信的愿景,并為優化服務架構鋪平道路。
4結束語
本文探討了軟件定義網絡(SDN)在云計算中的應用。SDN有助于網絡架構設計、管理和操作,增強網絡的實用性和可靠性。但在選擇SDN服務之前應該考慮包括網絡虛擬化、大數據分析以及開放和可編程在內等因素。云計算和軟件定義網絡是緊密耦合的新技術,復雜的網絡體系結構需要一個成熟的SDN。本文介紹了SDN的技術框架和層次結構,分析了在云計算環境中,SDN的性能、可伸縮性、安全性和互操作性方面面臨的挑戰,在總結SND應用現狀的基礎上,總結了SDN的發展趨勢。SDN的發展會促進云計算服務商對現有網絡進行升級改造,從而使兩者的結合應用更為成熟穩定。