Gather:一種優(yōu)化In-band控制的SDN網(wǎng)絡(luò)中控制流流表數(shù)量的方式
一、前言
帶內(nèi)控制(in-band)的SDN網(wǎng)絡(luò)由于有著良好的靈活性以及部署的經(jīng)濟性,已經(jīng)受到了越來越多的關(guān)注。但是在帶內(nèi)控制的SDN網(wǎng)絡(luò)中,控制流和數(shù)據(jù)流共用一個一個物理鏈路進行轉(zhuǎn)發(fā)。因此,交換機需要存儲用于轉(zhuǎn)發(fā)控制流的流表項。這在一些大型網(wǎng)絡(luò),例如數(shù)據(jù)中心網(wǎng)絡(luò)中會造成一些接近控制器的SDN交換機流表項過多的問題。大量的流表不僅會帶來管理的復(fù)雜,還會占用例如TCAM等網(wǎng)絡(luò)資源。所以我們提出了Gather:一種能夠優(yōu)化這些用于轉(zhuǎn)發(fā)控制流的流表項的方法。
二、設(shè)計介紹
(1) 設(shè)計根據(jù)
下圖是傳統(tǒng)帶內(nèi)控制下的SDN網(wǎng)絡(luò)的流表分布圖(本文中只關(guān)注一個控制器的情況):
圖表 1:傳統(tǒng)SDN網(wǎng)絡(luò)中流表的組織方式
在一個網(wǎng)絡(luò)拓撲中,如果使用最短路徑算法計算各個交換機到控制器的路徑,可以得到一個樹狀的控制拓撲圖,Gather便是基于這一樹狀的拓撲圖進行優(yōu)化。從圖可以看出傳統(tǒng)網(wǎng)絡(luò)中流表存儲的特點是靠近控制器的交換機需要為之后的子節(jié)點存儲控制流的流表項,因此越是靠近樹根(控制器)的交換機需要存儲更多的控制流的流表項。而在交換機數(shù)量很多的網(wǎng)絡(luò)中,例如數(shù)據(jù)中心網(wǎng)絡(luò),這會造成靠近控制器的交換機出現(xiàn)一個明顯的流表數(shù)量激增的現(xiàn)象。Gather的主要目標是減少這些不必要的流表開銷。
(2)設(shè)計思路
Gather的基本思路是將拓撲中的交換機劃分為一個個組(group)。一個組相當于整個控制樹的一個聯(lián)通子集。同時一個組由一個標簽(label or tag)來表示。實現(xiàn)標簽的方式有很多,在本文中,我們使用segment routing來實現(xiàn)標簽系統(tǒng)。下圖是Gather的示意圖:
圖表 2:Gather 實現(xiàn)流表項優(yōu)化示意圖
從圖中可以看出S2,S3,S4被分為一組,所有被發(fā)往該組的包都被打上X標簽(label)。S2在收到包之后,通過匹配X標簽,就會知道該包是發(fā)往組內(nèi)交換機的數(shù)據(jù),之后其會繼續(xù)在流表2中匹配該包的流表,決定轉(zhuǎn)發(fā)策略。同時,在對拓撲進行一輪優(yōu)化之后,仍然可以在現(xiàn)有的分組基礎(chǔ)上進行第二輪優(yōu)化。具體的做法是將組都視作交換機,進行替換。之后會得到一個縮小的拓撲,可以在該拓撲上繼續(xù)重復(fù)優(yōu)化,進一步減少控制流的流表。但同時數(shù)據(jù)包中的標簽會增加一個。
(3)如何找出有效的組(group)?
可以找出有效的組的方法有很多,可以根據(jù)需求自己設(shè)計需要的算法。在介紹算法之前,首先給出其中的一些定義:Node distance指一個節(jié)點到控制器的中間節(jié)點的個數(shù),S指子節(jié)點的集合,G是最終輸出的組的集合,time of optimization是指全拓撲優(yōu)化的次數(shù),一次optimization之后需要修改拓撲(進行組和交換機的替換)。在本算法中,基本的思路是先利用深度優(yōu)先算法,從葉子節(jié)點開始計算。從算法中可以看出,其使用迭代的思路,一直延伸到一個葉子節(jié)點后向上逐個節(jié)點進行計算和比較。之后其會根據(jù)比較的結(jié)果決定組的分布。
三、設(shè)計測試
首先,我們對數(shù)據(jù)包中的label(本論文中使用segment routing實現(xiàn)組的結(jié)構(gòu))對于轉(zhuǎn)發(fā)延遲的影響進行測試。測試結(jié)果如下:
圖表 3 Label數(shù)量對轉(zhuǎn)發(fā)延遲的測試結(jié)果圖
從表格中可以看出label對于轉(zhuǎn)發(fā)延遲的影響比較小,即使在3個label的情況下也只比傳統(tǒng)轉(zhuǎn)發(fā)多了4%的延遲。之后我們對優(yōu)化流表的能力進行測試,結(jié)果如下:
圖表 4 流表優(yōu)化結(jié)構(gòu)示意圖
在三種拓撲中可以看出***次優(yōu)化的結(jié)果普遍較好,而第二次,第三次優(yōu)化的比例下降的特別快。這是因為在一遍優(yōu)化,將組替換為交換機之后的拓撲會比優(yōu)化之前的拓撲小很多。因此可以優(yōu)化的流表項也會少很多。同時,這與算法的設(shè)計也會有一定的關(guān)系。