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