趙志敏
摘 要:隨著數據中心規模的擴大,OSPF等傳統路由算法己經無法滿足數據中心網絡的路由需求。傳統路由算法的思想主要是路由器通過互相發送報文進行拓撲學習然后建立最短路徑樹來建立路由,其路由計算開銷大,收斂時間長。而具有規則拓撲的網絡的路由過程可以根據拓撲的規則性得到簡化,從而使路由算法易于部署,計算效率更高。因此,對于數據中心網絡,基于規則拓撲探究通用的路由算法是一個切實可行的技術路線。
關鍵詞:路由技術;拓撲語言;技術
1路由思想
基于拓撲描述語言的路由技術就是將拓撲描述文件(Topology Description File, TDF)作為路由算法的輸入,交換機無需進行全網拓撲學習和最短路徑樹計算,只需根據距離公式進行計算即可得到最優路徑。本文研究的路由算法主要針對具有規則網絡拓撲結構的數據中心網絡,在規則網絡拓撲中,節點的位置信息可以根據其IP地址信息推斷得出;而且規則拓撲中設備的位置呈現一定的規律性,在設計路由算法時,我們可以根據規則拓撲的規則特性簡化路由計算。本文路由算法將距離公式作為計算路由的依據,利用軟件定義網絡的OpenFlow技術實現距離公式的部署。在目前的SDN網絡中,網絡由一個或多個SDN控制器(Controller)和若干SDN交換機組成,控制器負責拓撲發現和路由計算等控制層面的工作,并把路由計算結果通過流表的形式下發到各個交換機上面。交換機負責數據轉發工作,根據控制器下發的流表對報文進行轉發。在此架構中,SDN控制器承擔大量控制層面的工作,容易成為整個網絡的瓶頸節點。基于SDN思想的網絡架構如圖1所示。
本路由思想對SDN控制和轉發層面的工作做了一定的修改。SDN控制器僅負責距離公式的下發,通過OpenFlow協議將距離公式下發到各交換機。交換機根據接收到的距離公式計算最短路徑并承擔后續路由選擇和數據報文轉發工作。由此可知,本路由方法實現了交換機基本自主路由,大量減少控制器的路由查詢和流表下發工作,從而很大程度上減少控制器的負擔。
2獲取距離公式單元
本文提出的路由算法,將距離公式作為輸入,因此,首先介紹距離公式的獲取過程。一個大型數據中心網絡包含上萬臺交換機和服務器,為所有交換機逐一配置距離公式顯然是不現實的。所以我們引入SDN思想,由SDN控制器以流表的形式統一下發給拓撲中所有交換機。具體下發規則如下:SDN控制器與SDN交換機建立安全通道后,控制器將全網的距離公式下發給所有SDN交換機。交換機收到距離公式后將其保存到本地緩存中,以便在需要路由時計算數據報文轉發路徑。
由于距離公式由IP地址及其屬性推導得出,所以在下發距離公式時需要將整個拓撲描述語言文件下發。SDN控制器利用OpenFlow技術下發距離公式,在傳統的SDN架構中,拓撲發現和路徑學習都是由控制器完成,交換機只需要按照控制器下發的流表進行轉發。而本路由算法只需要控制器在交換機開始工作時下發距離公式,全拓撲的數據路由建立都由OpenFlow交換機自主完成。交換機收到數據包后,將拓撲描述信息提取出來,利用己實現的拓撲描述語言解析描述信息,并將描述信息保存到本地。在本單元,交換機接收到拓撲的描述文件后,利用解析機制將拓撲描述文件解析成各個對象,并將數據提取出來,如距離公式經解析后存儲在DistanceTable item中,該結構體主要存儲距離公式相關的數據。在計算路由時,交換機根據表中的各項信息以及自身設備信息進行相應的計算操作。
3計算路由單元
路由算法根據距離公式計算路由路徑,具體流程如下:
(1)根據距離公式,計算當前節點到目的節點的最短距離d
(2)根據距離公式,計算鄰居節點到目的節點的距離{dl , d2, d3,....dn},在其中選擇距離為d-1的鄰居作為下一跳,構建基礎路由。如果存在多條等價路徑,可以采用負載均衡策略選擇一條路徑。交換機在計算路由路徑時,需要計算交換機到目的節點的距離,兩節點之間的距離根據拓撲描述語言中的距離公式進行計算。拓撲描述語言中的距離公式主要由四元組
交換機根據距離公式計算最小距離的過程如下:
(1)當交換機收到數據包時,解析出目的節點IP地址,根據目的。節點地址判斷節點類型。
(2)根據自身類型和目的節點類型,選擇相應的距離公式計算出交換機到目的節點的距離。
(3)遍歷鄰居表,根據鄰居節點類型和目的節點類型,選擇相應的距離公式計算出各鄰居節點到目的節點的距離。
(4)在所有距離中選擇最小值即為最小距離。
距離公式中可能包含多組
4報文轉發
在網絡中,通信主體是服務器,服務器將報文發送給目的節點,交換機根據自身路由表對報文進行轉發操作,為了減小路由表規模并保證路徑的時效性,我們在報文轉發過程中實時計算路由路徑。交換機接收到一個報文后,首先查詢流表,如果沒有匹配的流表,則根據距離公式計算路由,并生成流表,進而轉發報文。具體轉發流程如圖3所示。
如圖所示,報文轉發流程可以總結為如下幾步:
(1)查詢路由表,如果在路由表里有到目的地址的路由條目,則根據該路由條目轉發報文。
(2)如果沒有相應的緩存路由,則根據距離公式,計算出到目的節點最近的鄰居節點作為下一跳節點。如果存在距離相同的最短路徑鄰居節點,則根據一定的負載均衡策略選擇一個節點作為下一跳節點。
(3)把相應的路由路徑加入到路由表當中。
(4)把報文發送給下一跳節點。
在路由表中會存在多條距離相同的最短路徑,若隨機選擇一個作為轉發路徑,則同一個鄰居交換機可能是多個不同目的地址報文的下一跳,所以在大型數據中心網絡中,往往采取負載均衡策略來分配網絡中的流量,避免某個或某些交換機流量過大,成為整個網絡的瓶頸。
綜上所述,在路由技術中引入拓撲描述語言,簡化了路由算法的計算過程,使路由路徑的建立不需要進行全網拓撲學習,只需知道局部拓撲信息即可計算出最終路由,同時,降低了網絡中的帶寬負載;由于拓撲描述語言支持多種拓撲結構的描述,所以本文提出的路由方法可以應用于多種不同的拓撲架構中,具有較好的通用性。
參考文獻:
[1]王瑞雪,面向數據中心的軟件定義網絡技術研究,北京交通大學,2016.
[2]張屆新,在云數據中心組網的應用 [J].電信科學,2015(9).