肖子玉
(中國(guó)移動(dòng)通信集團(tuán)設(shè)計(jì)院有限公司網(wǎng)絡(luò)技術(shù)研究所,北京100080)
SDN(software define networking,軟件定義網(wǎng)絡(luò))技術(shù)的創(chuàng)新點(diǎn)就是提出了OpenFlow這一概念[1]。它利用網(wǎng)絡(luò)控制器獲取全視角網(wǎng)絡(luò)拓?fù)浜徒y(tǒng)計(jì)反饋,簡(jiǎn)化了網(wǎng)絡(luò)和流量的管理控制功能,實(shí)現(xiàn)了IP數(shù)據(jù)網(wǎng)絡(luò)控制與轉(zhuǎn)發(fā)相分離的架構(gòu)。SDN提出后,產(chǎn)業(yè)界致力于將新技術(shù)與現(xiàn)有產(chǎn)品和技術(shù)結(jié)合,采用控制與轉(zhuǎn)發(fā)分離的架構(gòu)、現(xiàn)有成熟的網(wǎng)絡(luò)協(xié)議,擴(kuò)展SDN技術(shù)的范疇,減少革命性技術(shù)對(duì)產(chǎn)品的影響。而學(xué)術(shù)界則致力于進(jìn)一步完善OpenFlow等創(chuàng)新技術(shù)的架構(gòu)和算法,提出滿足大規(guī)模數(shù)據(jù)中心和虛擬化組網(wǎng)等商用需求的優(yōu)化方案。本文將著重介紹學(xué)術(shù)界對(duì)SDN技術(shù)的優(yōu)化思路和進(jìn)展。
從SDN架構(gòu)和OpenFlow協(xié)議本身看,SDN控制器需要獲取全視角拓?fù)浜途W(wǎng)絡(luò)的統(tǒng)計(jì)反饋才能實(shí)現(xiàn)集中資源管理和分配。這就要求SDN交換機(jī)與控制器之間進(jìn)行頻繁的交互,且OpenFlow協(xié)議最初的設(shè)計(jì)頭域過(guò)大,這些問(wèn)題都增大了商用的投入,難以適應(yīng)高性能網(wǎng)絡(luò)的需求。
從大型數(shù)據(jù)中心引入SDN應(yīng)用和組網(wǎng)需求看,現(xiàn)代數(shù)據(jù)中心都運(yùn)行著大量的服務(wù)器,形成大規(guī)模虛擬化數(shù)據(jù)中心,這就要求數(shù)據(jù)中心具有靈活配置和業(yè)務(wù)移植功能。傳統(tǒng)數(shù)據(jù)中心采用分層的組網(wǎng)結(jié)構(gòu),由三層網(wǎng)絡(luò)設(shè)備連接二層節(jié)點(diǎn)群。“扁平化”設(shè)計(jì)方法雖然靈活,但受到數(shù)據(jù)風(fēng)暴和虛擬化地址查詢的影響無(wú)法達(dá)到預(yù)期效果。而引入SDN技術(shù),通過(guò)優(yōu)化實(shí)現(xiàn)主動(dòng)路由功能(paris),可實(shí)現(xiàn)大規(guī)模數(shù)據(jù)中心的靈活配置管理需求。
從廣域網(wǎng)絡(luò)引入SDN技術(shù)的需求看,SDN廣域網(wǎng)絡(luò)將形成多域多控制中心的架構(gòu)。相鄰控制中心間需進(jìn)行交互以實(shí)現(xiàn)域間連接控制策略,而通過(guò)優(yōu)化的局部分布式算法(locality),進(jìn)一步優(yōu)化了SDN多域控制的靈活實(shí)現(xiàn)。
從引入SDN技術(shù)的網(wǎng)絡(luò)安全領(lǐng)域看,通過(guò)實(shí)現(xiàn)軟件定義網(wǎng)絡(luò),為運(yùn)營(yíng)商提供了對(duì)網(wǎng)絡(luò)的靈活定制和管理能力。但從安全領(lǐng)域,如接入控制和多路徑控制等目前只能依靠SDN技術(shù)自身,SDN技術(shù)亟待解決安全架構(gòu)的問(wèn)題。
OpenFlow的核心是獲取全網(wǎng)視角拓?fù)浜徒y(tǒng)計(jì)反饋,以實(shí)現(xiàn)有效的集中化管理。集中化有效避免了針對(duì)不同流量類型逐臺(tái)交換機(jī)進(jìn)行配置的繁瑣,通過(guò)負(fù)載均衡和節(jié)能感知路由有效優(yōu)化流量管理,交換機(jī)功能簡(jiǎn)潔化而提高了性能。但OpenFlow設(shè)計(jì)中頻繁的控制器—交換機(jī)的交互,增大了信令面負(fù)荷。而控制器對(duì)流的控制將引入至少4 ms的時(shí)延,使流量受限于幾百個(gè)流/s的處理能力。對(duì)于控制器從交換機(jī)收集流量的統(tǒng)計(jì)反饋中,OpenFlow支持的3種計(jì)數(shù)器,分組、比特和流時(shí)長(zhǎng)均影響交換機(jī)性能,引入過(guò)多的控制負(fù)荷。
[2]中提出的DevoFlow(devolve flow from controller,下移流量控制)則是在OpenFlow基礎(chǔ)上保留有效集中控制的優(yōu)勢(shì)。DevoFlow即設(shè)計(jì)了一套新方案對(duì)OpenFlow進(jìn)行優(yōu)化,打破原有管理和全視角拓?fù)涞囊来骊P(guān)系,在交換機(jī)網(wǎng)絡(luò)層維護(hù)有價(jià)值的拓?fù)潢P(guān)系。
3.1.1 優(yōu)化方案一:下移控制的機(jī)制
下移控制的機(jī)制,即規(guī)則克隆(rule cloning)和本地操作(local action)。
(1)規(guī)則克隆
在標(biāo)準(zhǔn)OpenFlow機(jī)制中,通配規(guī)則意味著所有匹配規(guī)則的流都執(zhí)行同一轉(zhuǎn)發(fā)路由。這雖可避免逐流的控制交互,但卻導(dǎo)致了所有匹配的微型流量進(jìn)入同一轉(zhuǎn)發(fā)路由并積累統(tǒng)計(jì)反饋到單一一組計(jì)數(shù)器上,影響統(tǒng)計(jì)反饋的性能。
為解決此問(wèn)題,在DevoFlow中引入一個(gè)布爾克隆標(biāo)志 (boolean clone flag)擴(kuò)展了通配規(guī)則中的操作部分(action part)。如果標(biāo)志被清除,交換機(jī)則執(zhí)行標(biāo)準(zhǔn)通配規(guī)則。否則交換機(jī)在本地克隆通配規(guī)則并生成一條新規(guī)則,在這條新規(guī)則中,所有匹配這一微型流量的值替換原有通配規(guī)則中的通配值,其他未被替換的值繼承原有通配規(guī)則。后續(xù)匹配這種特定微型流量規(guī)則的數(shù)據(jù)分組將被分配到該規(guī)則指定的統(tǒng)計(jì)計(jì)數(shù)器上,實(shí)現(xiàn)了統(tǒng)計(jì)功能的負(fù)載均衡。同時(shí)這條規(guī)則進(jìn)入了精確匹配查詢表,減少對(duì)高速內(nèi)存(TCAM)的使用,有效降低了商用成本。
(2)本地操作
在標(biāo)準(zhǔn)OpenFlow中,某些流需要控制器在高負(fù)荷控制或直接由特定端口轉(zhuǎn)發(fā)這兩者間進(jìn)行抉擇。在DevoFlow中,通過(guò)對(duì)本地路由操作(local routing action)進(jìn)行很小的擴(kuò)展,即可減少控制器對(duì)這些流量的控制。本地操作包括多路徑支持和快速路由。
多徑功能支持交換機(jī)為可克隆的通配規(guī)則選擇不同的輸出端口,交換機(jī)可隨機(jī)執(zhí)行概率或循環(huán)選路規(guī)則。后續(xù)特定流量將繼承已選定端口進(jìn)行傳輸。該功能與等價(jià)路由(ECMP)功能相似,但該功能更靈活、更便宜。ECMP針對(duì)不對(duì)稱或容量差別較大的多路由的負(fù)載均衡能力不強(qiáng),而DevoFlow通過(guò)允許可克隆通配規(guī)則依據(jù)概率分布輸出端口的方式解決了上述問(wèn)題。
快速重路由功能為交換機(jī)提供了多條回落路徑,當(dāng)原設(shè)計(jì)輸出端口故障時(shí)采用。如果交換機(jī)能夠在本地執(zhí)行此決定,則其可在路由失敗時(shí)立即恢復(fù),否則需要報(bào)告控制器并等待指令,這將使業(yè)務(wù)恢復(fù)時(shí)間延遲一個(gè)或幾個(gè)還回時(shí)間(RTT)。OpenFlow只需進(jìn)行稍許優(yōu)化,即配置重疊規(guī)則和路由優(yōu)先級(jí),并設(shè)定靈活的策略使交換機(jī)實(shí)現(xiàn)端口失敗后,由重疊路由替換原有路由。
3.1.2 優(yōu)化方案二:有效的統(tǒng)計(jì)數(shù)據(jù)收集
DevoFlow提出了3種方案優(yōu)化統(tǒng)計(jì)反饋數(shù)據(jù)的收集,分別是樣本法、觸發(fā)報(bào)告法和近似計(jì)數(shù)器法。
樣本法是交換機(jī)交互推送或提取收集數(shù)據(jù),特別是傳送協(xié)議允許交換機(jī)隨機(jī)選擇分組頭上報(bào)控制器時(shí)。樣本是均勻選擇的,推薦值是1/1000個(gè)數(shù)據(jù)分組,由于上報(bào)的統(tǒng)計(jì)分組不是完整數(shù)據(jù)分組,因此統(tǒng)計(jì)占用負(fù)荷小于0.1%,由于其可在數(shù)據(jù)面實(shí)施,因此也不會(huì)過(guò)多占用CPU資源。
觸發(fā)報(bào)告法是在OpenFlow中增加一種推送機(jī)制—基于閾值觸發(fā)計(jì)數(shù)器。觸發(fā)條件滿足,交換機(jī)即會(huì)送出統(tǒng)計(jì)報(bào)告,也可設(shè)計(jì)為多個(gè)報(bào)告打包傳送。最簡(jiǎn)單的觸發(fā)條件就是基于原有的分組、比特和時(shí)長(zhǎng)3類統(tǒng)計(jì)計(jì)數(shù)器,該方法很容易在數(shù)據(jù)面部署。
最后一種方法是近似計(jì)數(shù)器法,該方法適用于所有匹配轉(zhuǎn)發(fā)規(guī)則表的流量分組。這類計(jì)數(shù)器維護(hù)最大的K個(gè)流的行為模式統(tǒng)計(jì)視圖,執(zhí)行簡(jiǎn)單高效的流算法。該優(yōu)化方案較上述其他幾種難于實(shí)現(xiàn),但該方案可提供更實(shí)時(shí)精確的網(wǎng)絡(luò)視圖。
總結(jié)一下,DevoFlow從控制協(xié)議本身和統(tǒng)計(jì)反饋數(shù)據(jù)的收集方案對(duì)OpenFlow進(jìn)行了優(yōu)化,使其更靈活,開(kāi)銷更小,更適用于商用部署。
在IP網(wǎng)絡(luò)中有NAT、防火墻過(guò)濾、基于內(nèi)容轉(zhuǎn)發(fā)的需求等,這些需求均需要特定功能的設(shè)備實(shí)現(xiàn)。在SDN中可以通過(guò)控制器面向業(yè)務(wù)的北向接口進(jìn)行軟件定義,實(shí)現(xiàn)業(yè)務(wù)功能。但這就提高了交換機(jī)與控制器交互在轉(zhuǎn)發(fā)面產(chǎn)生的時(shí)延,也使控制器成為業(yè)務(wù)瓶頸。
參考文獻(xiàn)[3]提出的數(shù)據(jù)轉(zhuǎn)發(fā)層感知應(yīng)用方案如圖1所示,在OpenFlow交換機(jī)流表處理流程中增加一級(jí)應(yīng)用流表(app table),它與標(biāo)準(zhǔn)流表執(zhí)行方式相同。如果數(shù)據(jù)分組匹配應(yīng)用流表成功,則執(zhí)行相應(yīng)轉(zhuǎn)發(fā)操作;如果數(shù)據(jù)分組匹配應(yīng)用流表失敗,則生成上報(bào)數(shù)據(jù)分組,送SDN控制器,控制通過(guò)標(biāo)準(zhǔn)流表命令對(duì)交換機(jī)安裝新的應(yīng)用流表并刪除無(wú)效應(yīng)用流表,供后續(xù)數(shù)據(jù)分組轉(zhuǎn)發(fā)執(zhí)行。應(yīng)用流表可以對(duì)應(yīng)一個(gè)或多個(gè)應(yīng)用,并形成應(yīng)用流表鏈。應(yīng)用流表的執(zhí)行順序由策略決定。下面以防火墻和負(fù)載均衡兩個(gè)應(yīng)用組成的應(yīng)用鏈為例說(shuō)明數(shù)據(jù)面應(yīng)用感知的原理。
圖1 OpenFlow交換機(jī)數(shù)據(jù)轉(zhuǎn)發(fā)層應(yīng)用感知示意
防火墻和負(fù)載均衡器應(yīng)用感知說(shuō)明如下。
·假設(shè)防火墻策略為:任何目的地址是ServerX的分組均需經(jīng)過(guò)防火墻過(guò)濾,且最大TCP連接數(shù)為1000。
·負(fù)載均衡器策略為:經(jīng)防火墻的分組再經(jīng)負(fù)載均衡器,按源IP地址進(jìn)行散列,將負(fù)載分配給服務(wù)器S1或服務(wù)器S2。
為執(zhí)行以上策略,控制器首先向應(yīng)用流表插入規(guī)則:(dst_ip=x,tcp,dport=80:fw,lb,fwd,install),其中:fw:防火墻,lb:負(fù)載均衡,fwd:轉(zhuǎn)發(fā),install:安裝應(yīng)用功能。
當(dāng)新數(shù)據(jù)分組 (src_ip=a,sport=6000,tcp,dst_ip=x,dport=80)抵達(dá)時(shí),它將從內(nèi)核—用戶空間第一級(jí)流表(匹配失敗)—應(yīng)用流表(匹配)—順序執(zhí)行4項(xiàng)操作—防火墻,if nFlow<1000,(src_ip=a,sport=6000,tcp,dst_ip=x,dport=80:null)—負(fù)載均衡,hash(src_ip)=S1,(src_ip=a,sport=6000,tcp,dst_ip=x,dport=80:set dst_ip=s1)—轉(zhuǎn) 發(fā),(src_ip=a,sport=6000,tcp,dst_ip=x,dport=80:set dst_ip=s1,out pt1)—安裝應(yīng)用功能,調(diào)用API_add_flow安裝應(yīng)用功能到流表管道。SDN交換機(jī)根據(jù)網(wǎng)絡(luò)策略不經(jīng)控制器成功生成了流規(guī)則,實(shí)現(xiàn)了應(yīng)用感知。
為了檢驗(yàn)數(shù)據(jù)面感知應(yīng)用的有效性,搭建內(nèi)容感知服務(wù)器分發(fā)應(yīng)用進(jìn)行驗(yàn)證,如圖2所示。
經(jīng)驗(yàn)證,當(dāng)TCP請(qǐng)求較少時(shí),應(yīng)用感知流表的執(zhí)行對(duì)交換機(jī)影響很??;但當(dāng)TCP請(qǐng)求數(shù)量逐漸放大,交換機(jī)時(shí)延顯著放大。分析原因,結(jié)果受驗(yàn)證環(huán)境和編碼優(yōu)化程度影響較大。
對(duì)于IP網(wǎng)絡(luò)中大量的應(yīng)用需求,如果按SDN原有設(shè)計(jì)控制與轉(zhuǎn)發(fā)完全分離,將導(dǎo)致大量特殊應(yīng)用需求由控制器處理,造成時(shí)延和業(yè)務(wù)瓶頸。而數(shù)據(jù)面應(yīng)用感知的優(yōu)化思路又從集中處理回到分布式處理。經(jīng)驗(yàn)證,簡(jiǎn)單邏輯的應(yīng)用感知對(duì)交換機(jī)影響不大,但復(fù)雜應(yīng)用在數(shù)據(jù)面感知對(duì)交換機(jī)性能影響較大。
大型SDN將分成多個(gè)控制域,每臺(tái)控制器負(fù)責(zé)本域內(nèi)的轉(zhuǎn)發(fā)控制,相鄰接域間控制器通過(guò)彼此通信生成全網(wǎng)轉(zhuǎn)發(fā)策略,形成分布式的SDN控制網(wǎng)絡(luò)。因此在SDN設(shè)計(jì)中需要滿足兩個(gè)要求:形成SDN的物理架構(gòu),適合引入新的控制器,并形成新的控制域;有效應(yīng)對(duì)新的事件請(qǐng)求,基于現(xiàn)有流量模式快速計(jì)算出優(yōu)化路由。
SDN分布式控制網(wǎng)絡(luò)可以采用兩種架構(gòu),分別為分級(jí)架構(gòu)和扁平架構(gòu),如圖3和圖4所示。
圖2 內(nèi)容感知驗(yàn)證示意
圖3 SDN控制器分級(jí)架構(gòu)示意
圖4 SDN控制器扁平組網(wǎng)示意
在SDN控制網(wǎng)分級(jí)架構(gòu)中,根控制器通過(guò)與局部控制器的通信獲取全視角信息,以便有效進(jìn)行域間優(yōu)化路由計(jì)算。在SDN控制扁平架構(gòu)中,每個(gè)域控制器不僅需要獲取直接相鄰接域局部信息,還需要通過(guò)鄰域控制器獲取全網(wǎng)各域控制器信息,以便進(jìn)行域間路由優(yōu)化和環(huán)路檢測(cè)。否則無(wú)法完成環(huán)路檢測(cè)。參考文獻(xiàn)[4]提出了局部分布式算法在SDN控制網(wǎng)絡(luò)中的應(yīng)用。
在經(jīng)典分布式系統(tǒng)中,每一個(gè)設(shè)備均是計(jì)算節(jié)點(diǎn)。起初,它只知道直接鄰接的周邊網(wǎng)絡(luò)環(huán)境,如節(jié)點(diǎn)標(biāo)識(shí)和各鏈路連接狀態(tài)等。但通過(guò)與鄰接節(jié)點(diǎn)的信息交換,它逐步獲取了全網(wǎng)架構(gòu)的相關(guān)信息。通常用距離(distance)這個(gè)變量來(lái)描述節(jié)點(diǎn)間的鄰接關(guān)系,distance=1表示為直接直鄰的節(jié)點(diǎn)。距離在網(wǎng)絡(luò)中與時(shí)延、通信、同步、業(yè)務(wù)量負(fù)荷和控制器協(xié)作等方面有關(guān),距離值越大,則完成控制的網(wǎng)絡(luò)成本越高。圖5所示網(wǎng)絡(luò)中,控制器v通過(guò)局部算法計(jì)算出節(jié)點(diǎn)u是到控制域w的最短距離,因此控制器發(fā)出交換信息到節(jié)點(diǎn)u,節(jié)點(diǎn)u轉(zhuǎn)發(fā)信息到控制器w,控制器w通過(guò)計(jì)算的最短路徑反饋信息給控制器v,依此類推實(shí)現(xiàn)了局部算法的全局應(yīng)用。
圖5 局部算法的應(yīng)用示意
從以上分析可知,在實(shí)際組網(wǎng)中,分級(jí)架構(gòu)由于各域控制僅與根控制器鄰接,與其他域控制器的距離均為2,因此從控制成本上看有一定優(yōu)勢(shì)。但分級(jí)控制網(wǎng)絡(luò)較適合于統(tǒng)一組織和管理的網(wǎng)絡(luò),如運(yùn)營(yíng)商的網(wǎng)絡(luò)。而扁平架構(gòu)的網(wǎng)絡(luò)在實(shí)際組網(wǎng)更為靈活,適用于互聯(lián)網(wǎng)中各對(duì)等網(wǎng)絡(luò)的組網(wǎng),不需要統(tǒng)一的管理,但帶來(lái)控制成本的提高。如何有效降低分布式控制成本是目前學(xué)術(shù)界研究的關(guān)鍵性問(wèn)題。以下局部分布式算法主要用于優(yōu)化扁平控制架構(gòu)。
(1)扁平架構(gòu)環(huán)路驗(yàn)證算法
首先任意選擇節(jié)點(diǎn)r作為根節(jié)點(diǎn),網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)v均獲得兩條信息:所選取的根節(jié)點(diǎn)r、根節(jié)點(diǎn)r與節(jié)點(diǎn)v間的距離。該算法公平簡(jiǎn)潔地將網(wǎng)絡(luò)變?yōu)榫钟蚩勺詸z的扁平網(wǎng)絡(luò)。當(dāng)網(wǎng)絡(luò)中存在環(huán)路時(shí),至少有一個(gè)節(jié)點(diǎn)能發(fā)現(xiàn),因?yàn)榫嚯x標(biāo)簽不能為恒定值。
(2)鏈路分配算法
當(dāng)節(jié)點(diǎn)u與節(jié)點(diǎn)v相連時(shí),如果同時(shí)還有c個(gè)節(jié)點(diǎn)與v相連,則賦予u成本值c(costu=c),算法的任務(wù)就是優(yōu)化網(wǎng)絡(luò)總成本值,使其達(dá)到最小值。
在實(shí)際SDN控制網(wǎng)絡(luò)設(shè)計(jì)中,需要首先完成架構(gòu)設(shè)計(jì)。當(dāng)有新的控制域部署并要求加入網(wǎng)絡(luò)時(shí),需要觸發(fā)新一輪計(jì)算收集網(wǎng)絡(luò)物理拓?fù)湫畔?,同時(shí)還需要知道當(dāng)前網(wǎng)絡(luò)流量信息。為了快速計(jì)算出優(yōu)化路由,局部算法具有較強(qiáng)的優(yōu)勢(shì)。建議的兩步算法模型為:網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)提供以下兩類信息,一是全網(wǎng)物理拓?fù)湫畔,二是網(wǎng)絡(luò)中節(jié)點(diǎn)v的半徑為r的鄰接節(jié)點(diǎn)狀態(tài)信息H(v,r),依據(jù)以上信息節(jié)點(diǎn)v即可找到最優(yōu)輸出路由,并形成全網(wǎng)優(yōu)化路由表。
局部分布式算法可有效應(yīng)用在SDN控制器多域組網(wǎng)中。該算法較適用于互聯(lián)網(wǎng)等對(duì)等網(wǎng)絡(luò)組成的扁平架構(gòu)控制平面組網(wǎng)。
SDN技術(shù)的一大應(yīng)用場(chǎng)景是應(yīng)用于大型數(shù)據(jù)中心組網(wǎng)。現(xiàn)代化的大型數(shù)據(jù)中心需具備大規(guī)模擴(kuò)展服務(wù)器能力,并提供虛擬機(jī)的靈活部署和遷移能力。而傳統(tǒng)數(shù)據(jù)中心劃分為許多小集群,在群內(nèi)提供靈活的虛擬機(jī)部署和遷移較容易,但群間交互和虛擬機(jī)遷移的有效性不高。主動(dòng)路由就是一種有效解決上述問(wèn)題,實(shí)現(xiàn)大規(guī)模虛擬化數(shù)據(jù)中心的靈活配置和管理的方案。參考文獻(xiàn)[5]提出了主動(dòng)路由方案(paris)。
paris路由采用IP地址尋址,利用傳統(tǒng)的層三交換機(jī)基于目的地址前綴進(jìn)行數(shù)據(jù)分組的轉(zhuǎn)發(fā)。組網(wǎng)設(shè)備采用SDN控制器和交換機(jī)。SDN控制器通過(guò)記錄每臺(tái)虛擬機(jī)的地址和位置預(yù)制網(wǎng)絡(luò)轉(zhuǎn)發(fā)狀態(tài)。底層與主機(jī)相連的交換機(jī)存儲(chǔ)著下轄所有虛擬機(jī)的入口??刂破骺绾诵慕粨Q機(jī)實(shí)現(xiàn)轉(zhuǎn)發(fā)狀態(tài)分區(qū)管理,而交換機(jī)存儲(chǔ)細(xì)粒度的IP地址轉(zhuǎn)發(fā)表。該方案的優(yōu)勢(shì)如下:
·全部層三轉(zhuǎn)發(fā)設(shè)計(jì)避免了采用MAC地址的地址空間過(guò)大和廣播風(fēng)暴;
·控制器基于全網(wǎng)視角的轉(zhuǎn)發(fā)表主動(dòng)預(yù)制和下發(fā),交換機(jī)分布式存儲(chǔ)轉(zhuǎn)發(fā)表,核心交換機(jī)存儲(chǔ)分區(qū)轉(zhuǎn)發(fā)信息,低層交換機(jī)存儲(chǔ)區(qū)內(nèi)細(xì)粒度轉(zhuǎn)發(fā)表,避免了扁平化路由轉(zhuǎn)發(fā)表過(guò)大的問(wèn)題,并減小了轉(zhuǎn)發(fā)時(shí)延;
·集群內(nèi)轉(zhuǎn)發(fā)在集群內(nèi)完成。低端底層交換機(jī)存儲(chǔ)集群內(nèi)所有虛擬機(jī)轉(zhuǎn)發(fā)地址,實(shí)現(xiàn)群內(nèi)快速轉(zhuǎn)發(fā)。目前低端交換機(jī)可滿足存儲(chǔ)上千臺(tái)運(yùn)行32個(gè)虛擬機(jī)的主機(jī)的轉(zhuǎn)發(fā)表需求。
經(jīng)計(jì)算機(jī)模擬分析評(píng)估,主動(dòng)路由方案有效提高了大型數(shù)據(jù)中心虛擬機(jī)的可擴(kuò)展性、部署的靈活性和可移植性的空間。
主動(dòng)路由方案采用兩種組網(wǎng)方式的應(yīng)用:無(wú)彈力拓?fù)洌╪o-stretch topology)(如圖6所 示)和高帶寬拓?fù)洌╤igh-bandwidth topology)(如圖7所示)。
網(wǎng)絡(luò)分三層設(shè)置,低層為邊緣交換機(jī),中間層為聚合交換機(jī),上層為核心交換機(jī)。邊緣交換機(jī)存儲(chǔ)所有相連的虛擬機(jī)轉(zhuǎn)發(fā)路由,并與本分區(qū)節(jié)點(diǎn)內(nèi)聚合交換機(jī)相連。聚合交換機(jī)存儲(chǔ)節(jié)點(diǎn)內(nèi)所有主機(jī)轉(zhuǎn)發(fā)信息,核心交換機(jī)存儲(chǔ)分區(qū)轉(zhuǎn)發(fā)信息,即核心交換機(jī)存儲(chǔ)虛擬IP地址前綴對(duì)應(yīng)的指定前綴交換機(jī)(aps)。無(wú)彈力拓?fù)浜透邘捦負(fù)涞闹饕獏^(qū)別在于聚合交換機(jī)及核心交換機(jī)的組網(wǎng)方式。無(wú)彈力拓?fù)渲?,聚合交換機(jī)連接所有核心交換機(jī),并需要存儲(chǔ)所有虛擬前綴以便實(shí)現(xiàn)跨節(jié)點(diǎn)轉(zhuǎn)發(fā),核心交換機(jī)互不連接;高帶寬拓?fù)渲?,每臺(tái)聚合交換機(jī)連接兩臺(tái)核心交換機(jī),核心交換機(jī)自組網(wǎng)狀網(wǎng)。
由于兩種拓?fù)溥吘壍骄酆辖粨Q機(jī)的組網(wǎng)方式是一樣的,因此分析兩者組網(wǎng)優(yōu)勢(shì)時(shí)可重點(diǎn)分析聚合交換機(jī)和核心交換機(jī)端口占用。假設(shè)參數(shù)如下:核心網(wǎng)交換機(jī)m臺(tái),每臺(tái)交換機(jī)單端口速率r,聚合交換機(jī)k臺(tái)。
聚合交換機(jī)數(shù)量越多,系統(tǒng)支持的容量越大,所需端口越少,組網(wǎng)越優(yōu),見(jiàn)表1。
圖6 無(wú)彈力拓?fù)浣M網(wǎng)示意
圖7 高帶寬拓?fù)浣M網(wǎng)示意
表1 兩種拓?fù)浔容^
數(shù)據(jù)中心組網(wǎng)時(shí)高帶寬拓?fù)浣M網(wǎng)方案更優(yōu),以上分析已經(jīng)過(guò)計(jì)算機(jī)模擬評(píng)估。
利用SDN集中控制功能,采用扁平化IP地址主動(dòng)路由方式可建立擴(kuò)展性強(qiáng)、靈活性高的數(shù)據(jù)中心。轉(zhuǎn)發(fā)層交換機(jī)的組網(wǎng)拓?fù)浜头植际睫D(zhuǎn)發(fā)表的存儲(chǔ)可優(yōu)化數(shù)據(jù)中心性能。
SDN為網(wǎng)絡(luò)運(yùn)營(yíng)者提供了更靈活更強(qiáng)大的運(yùn)營(yíng)能力,通過(guò)構(gòu)建軟件系統(tǒng)完成網(wǎng)絡(luò)的管理和調(diào)試。作為一個(gè)開(kāi)放系統(tǒng),SDN本身同時(shí)允許安全和可信機(jī)制相關(guān)的技術(shù)應(yīng)用,因此有必要探討通過(guò)網(wǎng)絡(luò)設(shè)計(jì)構(gòu)建安全和可信的SDN。SDN軟件控制全網(wǎng)的能力和集中化智能控制的能力是安全威脅的隱患。參考文獻(xiàn)[6]分析了網(wǎng)絡(luò)中引入SDN技術(shù)的安全威脅。
SDN網(wǎng)絡(luò)的七大安全威脅如圖8所示。
(1)偽造數(shù)據(jù)流
來(lái)自惡意用戶或惡意服務(wù)器,用于攻擊OpenFlow交換機(jī)和控制器。
(2)交換機(jī)漏洞攻擊
單個(gè)交換機(jī)的攻擊即可導(dǎo)致分組丟失、減速。
(3)控制平臺(tái)通信攻擊
可能發(fā)生DoS攻擊及數(shù)據(jù)竊取。TLS/SSL并不能保證安全。
(4)控制平臺(tái)漏洞攻擊
這對(duì)SDN是最嚴(yán)重的風(fēng)險(xiǎn),一臺(tái)錯(cuò)誤或惡意的控制器可導(dǎo)致妥協(xié)。
(5)缺乏信任機(jī)制
控制器和應(yīng)用管理系統(tǒng)間缺乏信任機(jī)制。
(6)管理平臺(tái)漏洞攻擊
傳統(tǒng)網(wǎng)絡(luò)中也存在。
(7)缺乏可信數(shù)據(jù)源用于取證和修復(fù)
為了觀察和建立事實(shí)數(shù)據(jù),需要依靠網(wǎng)絡(luò)中所有域和節(jié)點(diǎn)。進(jìn)一步說(shuō),該數(shù)據(jù)只有可信才能舉證。
以上7種安全風(fēng)險(xiǎn),通信攻擊、漏洞攻擊、缺乏信任機(jī)制是SDN特有的,其他也存在于傳統(tǒng)網(wǎng)絡(luò)中。在SDN系統(tǒng)中沒(méi)有確??刂破髋c交換機(jī)間信任關(guān)系的機(jī)制,也沒(méi)有技術(shù)保證控制器間通信的可信度。作為一個(gè)高穩(wěn)定性的系統(tǒng),SDN應(yīng)具備應(yīng)對(duì)故障和入侵的能力。而設(shè)計(jì)一個(gè)安全可靠的SDN系統(tǒng)控制平臺(tái)有助于提高SDN系統(tǒng)的穩(wěn)定性。
SDN安全可靠性控制平臺(tái)邏輯架構(gòu)如圖9所示。
圖8 SDN安全威脅示意
如圖9所示,安全可靠的SDN系統(tǒng)需要以下機(jī)制。
(1)可復(fù)制性
這是最重要的提高SDN系統(tǒng)穩(wěn)定性的機(jī)制。除了控制器的可復(fù)制外,上層應(yīng)用也應(yīng)是可復(fù)制的。這不僅提高了由軟硬件故障帶來(lái)的系統(tǒng)穩(wěn)定性,也有效隔離了惡意攻擊帶來(lái)的故障和系統(tǒng)崩潰。
(2)多樣性
系統(tǒng)設(shè)計(jì)的基本原則是盡量避免共同故障模式,如軟件的bug或漏洞?,F(xiàn)有的來(lái)自不同家族的操作系統(tǒng)很少有相交的漏洞,換句話說(shuō)操作系統(tǒng)的多樣性可提高系統(tǒng)的穩(wěn)定性。因此在SDN系統(tǒng)中相同的應(yīng)用應(yīng)盡可能加載到不同(或異構(gòu))的控制器中。
圖9 安全可靠的SDN控制平臺(tái)示意
(3)自愈機(jī)制
主動(dòng)和被動(dòng)恢復(fù)機(jī)制可將系統(tǒng)帶回健康狀態(tài),更換受損器件,保持系統(tǒng)正常運(yùn)行。在更換受損器件時(shí),應(yīng)盡可能更換為新的或不同版本設(shè)備,以保證多樣性的原則。
(4)動(dòng)態(tài)系統(tǒng)關(guān)聯(lián)機(jī)制
一臺(tái)交換機(jī)應(yīng)動(dòng)態(tài)地與多臺(tái)控制器通過(guò)安全手段相關(guān)聯(lián)。這可以形成自動(dòng)容錯(cuò)機(jī)制,同時(shí)通過(guò)選擇最快響應(yīng)控制器提高控制平面的吞吐量減小控制時(shí)延。但這就要求交換機(jī)具有一定的可編程能力。
(5)設(shè)備與控制器的信任機(jī)制
最簡(jiǎn)單的信任機(jī)制是建立在控制器中的可信設(shè)備的白名單,但這種方式缺乏必要的靈活性。另一種方式是信任所有交換機(jī)直到它的誠(chéng)信受到質(zhì)疑?;诋惓;蚬收纤惴?,惡意或異常行為將會(huì)被其他交換機(jī)或控制器報(bào)告,一旦該交換機(jī)或控制器的誠(chéng)信度低于可接受閾值,該設(shè)備將被自動(dòng)與所有其他設(shè)備隔離。
(6)應(yīng)用與控制器軟件的信任機(jī)制
軟件由于老化、bug或攻擊都可能呈現(xiàn)出異常行為?;谲浖到y(tǒng)的誠(chéng)信度自動(dòng)評(píng)價(jià)模型,即通過(guò)觀察和測(cè)量設(shè)備的可用性、可靠性、誠(chéng)信、安全性、可維護(hù)性和保密性等特征指標(biāo),自動(dòng)評(píng)估設(shè)備的可信度。
(7)安全域設(shè)置
安全域隔離是通用技術(shù)手段。在SDN控制平面中,安全域可以探索使用沙箱和模擬器,這些工具可以設(shè)計(jì)出強(qiáng)大的隔離模式,通過(guò)接口設(shè)計(jì),可實(shí)現(xiàn)僅有少數(shù)跨域通信需求。
(8)安全設(shè)備部署
部署安全設(shè)備如可信計(jì)算機(jī)等防篡改設(shè)備用于存儲(chǔ)敏感數(shù)據(jù),增強(qiáng)系統(tǒng)的穩(wěn)定性。
(9)快速和可靠的軟件包升級(jí)機(jī)制
快速和可靠的軟件補(bǔ)丁和升級(jí)是減少漏洞的基本要求,因此SDN控制平面應(yīng)部署安全可靠的系統(tǒng)升級(jí)機(jī)制。
SDN安全可靠架構(gòu)的優(yōu)化思路總結(jié)如下。
·面向大規(guī)模商用組網(wǎng)的SDN系統(tǒng)設(shè)計(jì),應(yīng)用和控制器的可復(fù)制性、多樣性和動(dòng)態(tài)關(guān)聯(lián)機(jī)制是必不可少的。這就要求控制器支持pool方式的部署,交換機(jī)多歸屬,由多個(gè)控制器動(dòng)態(tài)控制,一組控制器和交換機(jī)應(yīng)采用異構(gòu)操作系統(tǒng)形成多樣性,保證整套系統(tǒng)的穩(wěn)定性。
·面向應(yīng)用于開(kāi)放網(wǎng)絡(luò)環(huán)境的SDN系統(tǒng)設(shè)計(jì),應(yīng)具備設(shè)備軟硬件的誠(chéng)信機(jī)制。建立黑白名單認(rèn)證機(jī)制或惡意行為檢測(cè)評(píng)價(jià)機(jī)制。
·面向SDN的管理運(yùn)營(yíng)系統(tǒng)設(shè)計(jì),應(yīng)具備系統(tǒng)自動(dòng)升級(jí)管理機(jī)制。
SDN技術(shù)正在向著適宜商用網(wǎng)絡(luò)大規(guī)模部署方面發(fā)展。優(yōu)化方案和思路正在逐步解決SDN商用面臨的問(wèn)題。即將引入SDN作為下一代網(wǎng)絡(luò)發(fā)展的關(guān)鍵技術(shù),需求一是面向數(shù)據(jù)中心組網(wǎng)應(yīng)用,二是面向骨干承載網(wǎng)絡(luò)的組網(wǎng)應(yīng)用。比較而言,數(shù)據(jù)中心組網(wǎng)可預(yù)測(cè)性、可管理和可控性強(qiáng),SDN技術(shù)實(shí)現(xiàn)數(shù)據(jù)中心組網(wǎng)更容易。而骨干承載網(wǎng)絡(luò)的大流量和不可控性的業(yè)務(wù)需求正是SDN集中控制動(dòng)態(tài)調(diào)整路由功能最適合的場(chǎng)景,因此承載網(wǎng)引入SDN將是未來(lái)的發(fā)展方向。面向這兩類需求,未來(lái)應(yīng)該著重研究的領(lǐng)域包括:
·面向數(shù)據(jù)中心引入SDN組網(wǎng)方案研究、對(duì)SDN設(shè)備的技術(shù)需求和解決方案研究;
·面向IP骨干承載網(wǎng)引入SDN組網(wǎng)方案研究、對(duì)SDN設(shè)備的技術(shù)需求和解決方案研究;
·引入SDN技術(shù)的安全需求和安全設(shè)計(jì)要求研究。
參考文獻(xiàn):
[1]OpenFlow switch specification,V1.3.0[S].2012.
[2]CURTIS A R,MOGUL J C,TOURRILHES J,et al.DevoFlow:scaling flow management for high-performance networks[C]//The ACM SIGCOMM 2011 Conference,August 15-19,2011,Toronto,Canada.New York:Association for Computing Machinery,2011:254-265.
[3]MEKKY H,FANG H,MUKHERJE S,et al.AMC:application-aware data plane processing in SDN[C]//The Third Workshop on Hot Topics in Software Defined Networking,August 17-22,2014,Chicago,USA.New York:Association for Computing Machinery,2014:13-18.
[4]SCHMID S,SUOMELA J.Exploiting locality in distributed SDN control[C]//The Second ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking,August 12-16,2013,Hong Kong,China.New York:Association for Computing Machinery,2013:121-126.
[5]ARORA D,BENSON T,REXFORD J.ProActive routing in scalable data centers with PARIS[C]//The ACM SIGCOMM 2014 Workshop on Distributed Cloud Computing,August 17-22,2014,Chicago,USA.New York:Association for Computing Machinery,2014:5-10.
[6]KREUTZ D,RAMOS F M V,VERISSIMO P.Towards secure and dependable software-defined networks[C]//The Second ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking,August 12-16,2013,Hong Kong,China.New York:Association for Computing Machinery,2013:55-60.