高 麗
(蘭州石化職業(yè)技術(shù)大學(xué) 甘肅 蘭州 730060)
網(wǎng)絡(luò)技術(shù)的快速發(fā)展,為用戶提供的各種服務(wù)和新型網(wǎng)絡(luò)應(yīng)用,需要定義良好的網(wǎng)絡(luò)服務(wù)(Quality of Service,QoS)機(jī)制與策略。大多數(shù)的傳統(tǒng)網(wǎng)絡(luò)的QoS機(jī)制,只是“盡力而為”交付,不會(huì)為某一業(yè)務(wù)帶寬提供單獨(dú)的保障,使得關(guān)鍵性的業(yè)務(wù)不能正常運(yùn)行,所以在提供QoS支持方面并不成功。由于新型業(yè)務(wù)的多元化,不能滿足各種新的服務(wù)質(zhì)量與要求。因此,SDN(Software Defined Network)網(wǎng)絡(luò)被提出,該網(wǎng)絡(luò)體系結(jié)構(gòu)基于控制和轉(zhuǎn)發(fā)相分離,實(shí)現(xiàn)用戶對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行編程控制。同時(shí)支持OpenFlow的SDN網(wǎng)絡(luò),可以動(dòng)態(tài)地優(yōu)化流程管理和資源,使得按流(per-flow)或應(yīng)用程序級(jí)QoS的設(shè)置變得更加容易和可行。
SDN架構(gòu)和定義不是固定的,通過網(wǎng)絡(luò)虛擬化抽象,網(wǎng)絡(luò)設(shè)備集中控制,提升網(wǎng)絡(luò)性能;更重要的是SDN網(wǎng)絡(luò)的編程功能改變了偏重于靜態(tài)和部署配置、維護(hù)困難的傳統(tǒng)網(wǎng)絡(luò),實(shí)時(shí)地優(yōu)化網(wǎng)絡(luò)技術(shù)和性能。利用SDN集中控制的特點(diǎn),通過集中控制器發(fā)布所有的QoS策略,繼而完成對(duì)所有網(wǎng)絡(luò)設(shè)備及全網(wǎng)流量的集中管控,這樣不但靈活選擇了QoS服務(wù)策略,而且為QoS策略的一致性提供保障?;赟DN的優(yōu)勢(shì)及QoS機(jī)制需求的提升,SDN技術(shù)很大程度上成功地吸引了企業(yè)公司、教育領(lǐng)域、數(shù)據(jù)中心和服務(wù)提供商的注意,同時(shí)將其部署到自己的網(wǎng)絡(luò)中進(jìn)行實(shí)踐應(yīng)用。其中,Google的專用WAN(B4)連接了全球各個(gè)位置的Google數(shù)據(jù)中心,這是大規(guī)模網(wǎng)絡(luò)中采用SDN的示例之一[1]。
SDN的廣泛應(yīng)用,在學(xué)術(shù)界和工業(yè)界得到了認(rèn)同和研究,但是對(duì)SDN的QoS機(jī)制研究沒有系統(tǒng)性的描述和廣泛的實(shí)踐。本文分析歸納SDN實(shí)現(xiàn)QoS的方案并實(shí)現(xiàn)QoS策略的部署,為研究者提供參考。
SDN網(wǎng)絡(luò)架構(gòu)基于分層的設(shè)計(jì)思想,將數(shù)據(jù)與控制相分離并具有可編程性,該架構(gòu)將網(wǎng)絡(luò)設(shè)備轉(zhuǎn)移到外部計(jì)算設(shè)備,使得底層的基礎(chǔ)設(shè)施對(duì)于應(yīng)用層和網(wǎng)絡(luò)服務(wù)來說就是透明的、抽象的。SDN架構(gòu)主要由3層構(gòu)成,自頂向下分別為應(yīng)用程序?qū)樱ˋpplication Layer)、控制層(Control Layer)、轉(zhuǎn)發(fā)層(Infrastructure Layer)。
基于SDN的三層架構(gòu),基于OpenFlow將網(wǎng)絡(luò)設(shè)備的控制平面和數(shù)據(jù)平面相互分離,控制平面(控制層)由一個(gè)或多個(gè)SDN控制器(SDN controller)組成,是網(wǎng)絡(luò)的“大腦”,通過南向接口協(xié)議進(jìn)行底層網(wǎng)絡(luò)設(shè)備進(jìn)行集中管理、轉(zhuǎn)發(fā)決策及處理數(shù)據(jù)平面的流量,并通過北向接口為向上層業(yè)務(wù)應(yīng)用及資源管理提供靈活的可編程能力。數(shù)據(jù)平面(基礎(chǔ)設(shè)施層)與傳統(tǒng)的數(shù)據(jù)平面是一致的,它的優(yōu)勢(shì)首先在于數(shù)據(jù)拆封和解析、數(shù)據(jù)轉(zhuǎn)發(fā)調(diào)度等包處理模塊都是可編程,與協(xié)議無關(guān);其次,傳統(tǒng)網(wǎng)絡(luò)設(shè)備中的二層或三層轉(zhuǎn)發(fā)表都抽象成流表。該平面包含一些用來轉(zhuǎn)發(fā)和處理數(shù)據(jù)的邏輯網(wǎng)絡(luò)設(shè)備,它是網(wǎng)絡(luò)單元(Network element)中的一個(gè)SDN。
SDN網(wǎng)絡(luò)性能優(yōu)化可按照體系架構(gòu)層大致劃分為控制平面的優(yōu)化技術(shù)和數(shù)據(jù)平面的數(shù)據(jù)轉(zhuǎn)發(fā)性能優(yōu)化技術(shù)??刂破矫媸钦麄€(gè)SDN體系結(jié)構(gòu)的控制中心,負(fù)責(zé)維護(hù)全網(wǎng)狀態(tài)信息,生成全網(wǎng)視圖,根據(jù)全網(wǎng)視圖制定并下發(fā)數(shù)據(jù)轉(zhuǎn)發(fā)規(guī)則。它的性能對(duì)整個(gè)SDN網(wǎng)絡(luò)的性能起著決定性作用。然而基于數(shù)據(jù)平面轉(zhuǎn)發(fā)設(shè)備數(shù)量增多的發(fā)展趨勢(shì)以及流控制力度細(xì)化和控制平面的管控功能復(fù)雜化的現(xiàn)狀,控制平面的性能優(yōu)化勢(shì)在必行。數(shù)據(jù)平面是SDN三層網(wǎng)絡(luò)結(jié)構(gòu)的最底層。OpenFlow交換機(jī)作為SDN數(shù)據(jù)平面的轉(zhuǎn)發(fā)設(shè)備,依據(jù)控制平面下發(fā)的規(guī)則,采用流表結(jié)構(gòu)進(jìn)行數(shù)據(jù)包的轉(zhuǎn)發(fā)。
SDN為網(wǎng)絡(luò)提供了一種集中控制和對(duì)數(shù)據(jù)流細(xì)粒度管理的模型[2],帶來了極大的靈活性和可編程能力,打破了原來網(wǎng)絡(luò)封閉的體系架構(gòu)模型,為網(wǎng)絡(luò)創(chuàng)新注入強(qiáng)大的動(dòng)力。
隨著SDN網(wǎng)絡(luò)的深入部署應(yīng)用,SDN的服務(wù)質(zhì)量QoS保障路由成為新的研究熱點(diǎn),SDN網(wǎng)絡(luò)中QoS路由服務(wù)靈活可選,充分利用全網(wǎng)資源,高效實(shí)現(xiàn)帶寬分配,保障用戶服務(wù)質(zhì)量。同時(shí)可利用集中控制管理QoS參數(shù)設(shè)置,一方面可以實(shí)現(xiàn)自動(dòng)化的流量帶寬配置,從而簡(jiǎn)化網(wǎng)絡(luò)QoS管理的復(fù)雜程度;另一方面集中下發(fā)QoS策略,使得無論是用戶還是管理員的策略都是一致的,解決了策略不一致的問題。基于SDN中QoS的優(yōu)勢(shì),通過編程的方法,控制器獲取底層網(wǎng)絡(luò)的實(shí)時(shí)通信狀態(tài)和網(wǎng)絡(luò)流量問題,以閉環(huán)的形式設(shè)計(jì)網(wǎng)絡(luò)路由,促進(jìn)更加精確和高效地實(shí)施QoS路由方案[3]。
盡管SDN和OpenFlow耦合支持一些有限的QoS功能,但與傳統(tǒng)架構(gòu)相比,它允許我們以一種可伸縮、更靈活、細(xì)粒度更高的方式獲得per-flow的QoS控制[4]。Openflow由一個(gè)或者多個(gè)流表(flow table)和一個(gè)組表(group table)組成。流表的表項(xiàng)包括網(wǎng)絡(luò)對(duì)各個(gè)層次的網(wǎng)絡(luò)配置信息,有3個(gè)表項(xiàng):(1)匹配(包頭域):使用ingress port、packet header以及前一個(gè)flow table傳遞過來的metadata進(jìn)行匹配;(2)計(jì)數(shù):用于統(tǒng)計(jì)數(shù)據(jù)流量相關(guān)信息,可以針對(duì)交換機(jī)中的每張表、每個(gè)數(shù)據(jù)流、每個(gè)設(shè)備端口或每個(gè)轉(zhuǎn)發(fā)隊(duì)列進(jìn)行維護(hù);(3)動(dòng)作:交換機(jī)在收到匹配數(shù)據(jù)包后如何對(duì)其進(jìn)行處理。OpenFlow協(xié)議各個(gè)版本的演進(jìn)過程中加大OpenFlow的標(biāo)準(zhǔn)化力度[5],在OpenFlow規(guī)范的不同版本中改進(jìn)添加了與QoS相關(guān)的特性,OpenFlow各個(gè)協(xié)議版本的演進(jìn)、變化及對(duì)QoS的支持程度:OpenFlow1.0中具有enqueue可選操作、支持單表和IPv4的功能;OpenFlow1.1中執(zhí)行MPLS和VLAN、具有多表和支持group的功能;OpenFlow1.2中增加最大速率隊(duì)列支持、支持IPv6技術(shù)和多控制器;OpenFlow1.3中引入了Meter表、增加IPv6擴(kuò)展頭、輔助鏈接的功能,實(shí)現(xiàn)豐富的QoS功能;OpenFlow1.4中提供了流監(jiān)控框架和流表同步機(jī)制;OpenFlow1.5中可以將多個(gè)Meter連接到一個(gè)流表項(xiàng)。目前,支持最多和使用頻率最高的是OpenFlow1.3。
目前,SDN中包含成熟的開放源碼SDN控制器[6],種類繁多,這些控制器都支持QoS,表1列出了各種控制器,并說明了它們的特性。
表1 SDN控制器
OpenDayLight是一個(gè)社區(qū)主導(dǎo)的開源控制器平臺(tái)。它是Linux基金會(huì)的協(xié)作項(xiàng)目,支持SDN的使用。其中PCMM(Packet Cable Multi Media)插件為DOCSIS基礎(chǔ)設(shè)施提供基于流的動(dòng)態(tài)QoS,它是在2015年6月的ODL-Lithium發(fā)布會(huì)上發(fā)布的,是另一個(gè)南向接口的插件。分組電纜多媒體(PCMM)為CMTS網(wǎng)絡(luò)元素提供了控制和管理服務(wù)流的接口。
ONOS(Open Network Operating System,開放網(wǎng)絡(luò)操作系統(tǒng))是一個(gè)分布式SDN網(wǎng)絡(luò)控制平臺(tái),旨在為服務(wù)提供商提高網(wǎng)絡(luò)的可伸縮性和可用性。目前ONOS具有有限的QoS支持。它支持OpenFlow計(jì)量機(jī)制,但是這個(gè)特性很少在現(xiàn)有的交換機(jī)中實(shí)現(xiàn)。這種支持背后的思想是基于ONOS中OpenFlow集合隊(duì)列功能的實(shí)現(xiàn)。作為ONOS中另一個(gè)QoS支持改進(jìn)嘗試,在org.onosproject.net.flow.instructions庫中實(shí)現(xiàn)了一個(gè)新的高級(jí)指令asetqueueinstruction,并對(duì)ONOS庫中相應(yīng)的引用進(jìn)行了相應(yīng)的修改。
Floodlight是另一個(gè)基于Java的開源SDN控制器,為Floodlight控制器實(shí)施的QoS模塊旨在提供一種應(yīng)用程序,該應(yīng)用程序負(fù)責(zé)進(jìn)行QoS的匹配、分類、流插入、流刪除和策略處理等工作。該模塊利用OpenFlow 1.0 enqueue操作和網(wǎng)絡(luò)流量的fos位。它控制跟蹤和存儲(chǔ)帶有DSCP值的服務(wù),為服務(wù)類應(yīng)用策略,以及在交換機(jī)中跟蹤策略。QueuePusher擴(kuò)展利用與Floodlight的北向API集成的pvsDB協(xié)議來生成適當(dāng)?shù)年?duì)列配置消息。
在網(wǎng)絡(luò)傳輸過程中,有一些現(xiàn)象如隊(duì)列中某些數(shù)據(jù)包的順序可能比隊(duì)列中位于它們前面的其他數(shù)據(jù)包具有更高的優(yōu)先級(jí)、業(yè)務(wù)帶寬最低保障等,這樣就需要對(duì)網(wǎng)絡(luò)流量部署服務(wù)質(zhì)量保障策略,限流就是QoS策略的一種,本文通過Mininet平臺(tái)+rye控制器實(shí)現(xiàn)基于OpenFlow協(xié)議的SDN網(wǎng)絡(luò)中QoS管理服務(wù)的部署,實(shí)現(xiàn)TCP流量的限流控制,滿足最小保障的隊(duì)列。
為了測(cè)試網(wǎng)絡(luò)流量控制的性能,使用Miniedit或Python語言創(chuàng)建拓?fù)洌渲衦ye和OVS為運(yùn)行OpenFlow網(wǎng)絡(luò)的控制器和交換機(jī),OVS作為服務(wù)集群,與控制器直接相連接。h1和h2分別與OVS的eth1、eth2端口連接。設(shè)置選擇OpenFlow版本為1.3;控制器c0的控制模式為Remote Controller;交換機(jī)s1的DPID號(hào)為0000000000000001,交換機(jī)類型為Open switch Kernel Mode;終端h1、h2的IP地址分別為10.0.0.1和10.0.0.2。
數(shù)據(jù)包隊(duì)列是網(wǎng)絡(luò)棧的核心部件[7],實(shí)現(xiàn)了異步模塊之間的通信,提升網(wǎng)絡(luò)的性能。在OVS的數(shù)據(jù)表中主要包括QoS和Queue兩個(gè)表,主要設(shè)置情況如下。
(1)將OVS組建的類型設(shè)置為openvswitch交換機(jī);對(duì)交換機(jī)S1的接口s1-eth2進(jìn)行QoS設(shè)置:創(chuàng)建類型為L(zhǎng)inuxhib的隊(duì)列q0、q1;設(shè)置參數(shù):限制總帶寬為10 Mbps,隊(duì)列q0的帶寬最大5 Mbps;隊(duì)列q1帶寬最小1 Mbps。
(2)通過命令pvs-vsctl list queue、pvs-vsctl list qos查看端口的隊(duì)列信息和網(wǎng)卡s1-eth2上的QoS信息。
流表由控制器生成和維護(hù),pvs交換機(jī)按照流表進(jìn)行轉(zhuǎn)發(fā)數(shù)據(jù),使用以下命令在ovs交換機(jī)上添加流表floatable,見圖1。
iperf是一款網(wǎng)絡(luò)帶寬測(cè)試工具,它的原理是由客戶端和服務(wù)器端組成,客戶端負(fù)責(zé)發(fā)送流量,服務(wù)器端開啟監(jiān)聽,檢測(cè)出流量的大小。其中h1為服務(wù)器,h2為客戶端進(jìn)行TCP打包,然后加入QoS策略使用iperf 命令進(jìn)行連接檢測(cè)。
在Mininet中使用命令term h1 h2,開啟虛擬主機(jī)控制臺(tái),分別在h1和h2輸入命令iperf-u-s 10.0.0.2和Iperf-u-c 10.0.0.1,查看結(jié)果。
(1)不加入QoS策略,未限速時(shí)的帶寬13.1 Gbps,結(jié)果見圖2。
(2)測(cè)試q0隊(duì)列帶寬,限制最大帶寬為5 Mbps,結(jié)果見圖3,帶寬為4.86 Mbps,延遲抖動(dòng)1.253 s,數(shù)據(jù)丟包率為43%。
(3)測(cè)試q1隊(duì)列帶寬,最低帶寬為1 Mbps,結(jié)果見圖4,帶寬1.05 Mbps,保障最低帶寬。
基于QoS策略部署,在OVS交換機(jī)上添加隊(duì)列并完成數(shù)據(jù)的入隊(duì)操作,從測(cè)試結(jié)果看到隊(duì)列限速并且會(huì)優(yōu)先滿足最低保障帶寬的隊(duì)列,故在保障的速率之內(nèi)設(shè)定發(fā)送速率,則一定滿足最終實(shí)現(xiàn)業(yè)務(wù)帶寬的保障。
本實(shí)驗(yàn)基于可編程網(wǎng)絡(luò)流表控制QoS策略部署,限制TCP流量或其他流量來保障最低帶寬。存在不足之處是在Mini net平臺(tái)上不能模擬視頻流,不能根據(jù)網(wǎng)絡(luò)環(huán)境提供動(dòng)態(tài)的QoS策略,進(jìn)而不能對(duì)網(wǎng)絡(luò)流量進(jìn)行實(shí)時(shí)監(jiān)控和資源利用,缺乏適應(yīng)性。
利用SDN和OpenFlow的優(yōu)勢(shì),以使網(wǎng)絡(luò)路徑的QoS配置更容易。除了本文實(shí)驗(yàn)實(shí)現(xiàn)的方案之外,QoS的實(shí)現(xiàn)方案有:(1)路由算法[8]。網(wǎng)絡(luò)動(dòng)態(tài)的變化,若得到的路徑和原來的路徑不一致就會(huì)更新出新的QoS路徑,這樣通過獲取網(wǎng)絡(luò)鏈路擁塞率、延遲和丟包率來重新計(jì)算QoS路徑,實(shí)現(xiàn)動(dòng)態(tài)重路由,保證動(dòng)態(tài)網(wǎng)絡(luò)的服務(wù)質(zhì)量。(2)資源預(yù)留機(jī)制。該方案首先通過控制器中的流分類,根據(jù)數(shù)據(jù)包頭字段對(duì)數(shù)據(jù)包進(jìn)行分類,基于網(wǎng)絡(luò)QoS策略并為相應(yīng)的流分配優(yōu)先級(jí);其次利用速率整形控制流速率,設(shè)置相應(yīng)的規(guī)則到路徑上的交換機(jī)中,為需要QoS的流保留資源。(3)woe感知機(jī)制。QoS無法展示通信服務(wù)的所有特性,用體驗(yàn)質(zhì)量(Quality of Experience,QoE)來實(shí)現(xiàn)。未來網(wǎng)絡(luò)需要根據(jù)QoS的參數(shù)來滿足用戶的woe,但這是一個(gè)具有挑戰(zhàn)性的問題。(4)網(wǎng)絡(luò)監(jiān)視框架。網(wǎng)絡(luò)監(jiān)控廣泛應(yīng)用于QoS管理、資源利用、異常檢測(cè)、流量工程等。它的優(yōu)勢(shì)在于在請(qǐng)求的聚合級(jí)別(如per-flow、端口、流表等)和頻率上收集、處理和交付監(jiān)控?cái)?shù)據(jù),并保證數(shù)據(jù)的準(zhǔn)確性和實(shí)時(shí)性;其次有助于從交換機(jī)、路由器和控制器等網(wǎng)絡(luò)組件收集數(shù)據(jù)。
基于OpenFlow的SDN網(wǎng)絡(luò)不僅使用不同的路由算法實(shí)現(xiàn)復(fù)雜的路由機(jī)制對(duì)QoS的要求,而且有效充分地利用網(wǎng)絡(luò)資源,以便于應(yīng)對(duì)不同業(yè)務(wù)流量的需求。QoS的優(yōu)化方案還有大象流、流量信息采集和跨域流量;同時(shí),在OpenFlow的SDN網(wǎng)絡(luò)中,虛擬化的QoS配置,測(cè)試平臺(tái)QoS擴(kuò)展,內(nèi)容交付機(jī)制和QoS策略管理也正在進(jìn)行研究。
綜上所述,基于SDN的新型網(wǎng)絡(luò)創(chuàng)新架構(gòu),實(shí)現(xiàn)了對(duì)網(wǎng)絡(luò)流量的靈活控制,成功部署滿足需求的QoS,也提出了不足之處;本文中提到各種部署方法均對(duì)網(wǎng)絡(luò)服務(wù)質(zhì)量需求的各方面做出了一些有益嘗試。但是隨著網(wǎng)絡(luò)的發(fā)展,在云計(jì)算數(shù)據(jù)中心、物聯(lián)網(wǎng)、智能自動(dòng)駕駛汽車和多媒體技術(shù)等方面,QoS的要求和研究有了新的問題、優(yōu)化與挑戰(zhàn),也引發(fā)新的思考。