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