?

一種基于OpenFlow協議的拓撲發現方法

2016-09-08 09:23劉???/span>李集林尤啟迪鄒光南
電子設計工程 2016年13期
關鍵詞:流表信令底層

劉???,李集林,尤啟迪,鄒光南

(北京衛星信息工程研究所 北京 100086)

一種基于OpenFlow協議的拓撲發現方法

劉???,李集林,尤啟迪,鄒光南

(北京衛星信息工程研究所 北京 100086)

傳統網絡拓撲發現及無環轉發結構的構建方法如STP及RSTP,已不能更好滿足未來復雜的網絡環境,其慢收斂性、不可擴展性及較低的帶寬利用率一直無法很好解決。在SDN網絡架構之上,深入探討基于OpenFlow協議的底層網絡拓撲發現機制,闡述了新網絡架構下的鏈路發現方法及無環轉發結構構建方法。仿真驗證了該方法的有效性,并在Mininet中對該方法的收斂時間進行測算。該拓撲發現方法可提升網絡功能的可擴展性,并帶來良好的用戶體驗。

軟件定義網絡;拓撲發現;生成樹;OpenFlow協議;收斂時間

隨著網絡技術及網絡應用的不斷發展,傳統的STP及RSTP協議已不再更好地滿足當前更復雜、更智能、更現代的網絡環境。其具有較長的收斂時間,并且在組網應用中主要以交換機間擴散相應的控制信令實現網絡的無環化,因此缺乏對拓撲的控制功能,在網絡中某條鏈路失效或有新的交換節點加入和離開時,將給用戶體驗帶來較大影響。對一些后繼協議如TRILL及802.1aq(最短路徑橋接)的提出,均有一定的局限性。如TRILL由于具有額外的封裝,在硬件中需要設計新的ASIC來完成數據幀的轉發,并且由于單播的幀和非單播的幀采用不同的方式進行轉發,當目的MAC狀態從未知轉到已知后,會出現數據包亂序的情況。而802.1aq協議復雜性高,要與現有技術融合難度大[1]。本文將在SDN網絡的架構下,探討基于OpenFlow協議如何實現網絡拓撲發現及無環轉發路徑構建的方法,充分利用SDN集中式的管控優勢[2],解決拓撲識別收斂慢、拓撲更改再識別時的業務不連續等問題。

1 基于OpenFlow的拓撲發現原理

1.1OpenFlow協議交互流程

根據OpenFlow協議[3-5],在控制器與OF交換機啟動時,控制器將與每個交換機建立一條安全可靠的通信信道。在控制器和OF交換機之間首先進行交換機的注冊流程,如圖1所示。

圖1 OF交換機注冊流程

1)交換機通過發送Hello信令,可以獲知控制器的存在,Hello信令為對稱信令,因此控制器也需要發送一個Hello信令給交換機,通過此信令可以協商控制器和交換機使用的OpenFlow版本號;

2)控制器向交換機發送一個Features Request信令,獲取交換機中哪些端口可用;

3)在這種情況下,控制器要求交換機使用特定的參數;

4)OF交換機回復控制器它的物理端口、端口能力、所支持的動作、緩存大??;

5)控制器要求交換機清空所有流表,保證交換機以初始狀態開始運行。

在 OpenFlow協議中,規定了流表超時流程。在OpenFlow設備中的每一個流表具有一個超時值。對于一個規則,如果在規定的超時閾值之前沒有業務匹配它,OpenFlow設備將刪除這個流表,并通知控制器。在超時后,交換機通知控制器哪個流表被刪除。

當OF交換機接收到一個無匹配流表的數據流時,將使用PacketIn信令攜帶部分數據頭部信息回傳給控制器,由控制器的相應程序產生處理策略。

1.2基于OpenFlow的鏈路發現及無環拓撲構建方法

在SDN網絡架構下基于OpenFlow協議實現二層網絡拓撲發現功能,可充分發揮SDN網絡集中化管理及底層網絡視圖可見的優勢,與傳統二層網絡的STP方法相比,在收斂時間、故障診斷、負載均衡等方面具有天然優勢[6-7]。

圖2所示為基于OpenFlow協議的拓撲識別功能模塊圖,在OpenFlow協議之上,主要包括拓撲發現模塊、STP模塊、鏈路連接對應表和拓撲結構。

圖2 拓撲識別功能模塊組成圖

拓撲發現模塊:該模塊通過發送和接收LLDP數據包(鏈路層發現協議),識別網絡中不同OF交換機的端口連接情況,同時如果發現底層網絡拓撲發生變化(新交換機連入網絡或發生鏈路故障),則會觸發STP模塊重新計算無環路拓撲結構。

鏈路連接對應表:該模塊主要存儲由拓撲發現模塊識別出的底層網絡交換機連接關系對應表。

STP模塊:由拓撲發現模塊觸發,當底層網絡拓撲發生變化時,STP模塊根據已識別的交換機互連關系計算一個無環路的數據轉發拓撲結構。

拓撲結構:此模塊主要存儲計算出的無環路數據轉發拓撲結構,此結構將作為底層網絡數據轉發的依據,并且按照此結構配置底層網絡的端口轉發屬性。

1)拓撲發現

拓撲發現模塊的主要處理流程如下圖3所示。

圖3 拓撲發現處理流程圖

在拓撲發現模塊中,控制器主要需要監聽OpenFlow協議的交換機注冊事件、PacketIn事件、連接中斷事件和端口狀態改變事件。

在步驟1中,當交換機連接到控制器后,依據OpenFlow協議控制器會獲得此交換機的可用端口信息,控制器將與此交換機的連接id(連接key)和可用端口號進行對應存儲。

在步驟2中,控制器需要為每一個成功連接到控制器的OF交換機生成一個流表,此流表的匹配項需匹配LLDP數據包,匹配后的動作為使用PacketIn信令將接收到的LLDP數據包回傳至控制器。

在步驟3中,依據獲取的交換機端口信息,為每個交換機的每個端口生成一個LLDP數據包,并在對應端口上定時發送這些LLDP數據包,這些數據包由控制器發送,按照OpenFlow協議使用PacketOut信令指定交換機端口進行發送。

LLDP為鏈路層發現協議,封裝有LLDPDU的報文稱為鏈路發現協議報文,在拓撲發現模塊中構造LLDP數據包時,Port ID賦予擬發送此數據包的OF交換機端口號,此端口號可在交換機向控制器注冊時獲得。

在交換機與控制器連接建立成功時,OpenFlow協議會為這個連接分配一個id(key),這個連接id也可稱為DPID,此DPID值唯一對應一個交換機-控制器連接,即同樣也是對應一個OF交換機的標識。

對于步驟4,由于每個交換機均向相鄰的節點發送LLDP數據包,且如果鏈路的另一端連接了一個交換機,根據之前給每個交換機下發的流表,接收到的LLDP包將均被發送到控制器中。在步驟4中,通過監聽PacketIn事件,接收LLDP數據包,并解析數據包中的源端口和DPID信息,DPID對應源交換機的標識。

在步驟5中,依據OpenFlow協議的PacketIn信令,可以得到發送相應LLDP數據包的交換機入端口號以及交換機和控制器連接的DPID值,因此可以更新鏈路連接對應表信息,完成底層網絡連接關系更新,連接對應表的格式為:{DPID1,PORT1:DPID2,PORT2},DPID表示交換機,PORT表示這個交換機上的一個端口,而冒號之后表示它的連接關系。

步驟6和7為,如果發生控制器和交換器連接中斷情況以及交換機端口狀態變化(打開或關閉)情況時,將導致網絡拓撲變化,同時觸發鏈路連接對應表信息的更新。

在步驟8中,底層網絡鏈路連接關系的任何變化(連接增加或者刪減)均會觸發一次新的STP計算過程,即獲得一個新的無環路轉發的拓撲結構。

2)無環拓撲構建

當控制器中的拓撲發現模塊識別出底層網絡連接狀態變化時,該模塊將觸發STP模塊,由STP模塊依據鏈路連接表生成一個無環路拓撲結構,指導數據的轉發路徑。STP模塊主要完成兩個功能:1)網絡生成樹結構計算;2)底層網絡轉發端口配置。如圖4所示。

圖4 STP模塊功能組成示意圖

計算生成樹模塊將鏈路連接對應表的存儲格式轉換為{s1:{s2:port1},s2:{s1:port2}},s1到s2可能通過多個端口相連,但只要找到第一個,就不再繼續找下去,相當于s1到s2的連接只保留了一條。最后構造出樹結構,樹最終結構為{s1:([(s2, port1),(s3,port2),…]),s2:([(s1,port1),…]),…}。這里會將STP拓撲結構的連接關系列出,而洪泛阻塞的端口則不被考慮。

當STP拓撲生成之后,需要將拓撲結構映射到底層網絡中,即改變底層網絡中交換機的端口轉發狀態。交換機端口配置模塊的主要功能是將STP拓撲結構轉化為OF交換機的端口配置信令,該模塊得到樹結構,然后遍歷樹結構。遍歷過程為:首先得到樹中每條鏈路對應的起始交換機,得到該交換機的所有端口。遍歷這些端口,如果其端口號在樹中,則允許通過該端口洪泛,如果不在樹中,但該端口為邊緣端口,也可以洪泛??刂破饕罁﨩penFlow協議將向每一個OF交換機發送一個端口配置信令。

2 仿真驗證

2.1仿真概述

本仿真使用mininet軟件仿真底層交換網絡,交換機節點采用OVS交換機類型,使用POX開源軟件作為OpenFlow控制器。在 mininet中構建網絡拓撲結構,本文所提基于OpenFlow協議的拓撲發現方法在POX控制器中實現。在mininet中搭建多種不同OF交換機數量的網絡拓撲結構,對所提拓撲發現方法進行仿真測試[8-9]。

2.2拓撲發現仿真

首先在mininet中構建底層OF網絡拓撲,如圖5所示。該拓撲由A、B、C、D、E、F、G七個OF交換機節點組成。每條鏈路的帶寬配置為5M,鏈路延遲配置為5 ms。

圖5 仿真拓撲結構

在拓撲發現階段,首先由控制器向每一個交換機下發一個統一流表,該流表用來向控制器轉發鏈路發現數據包統一流表配置完成后,控制器向每個交換機的各個轉發端口發送一個LLDP包,并由這些端口轉發各自的LLDP包。相鄰交換機接收到LLDP包后,由于沒有相應的流表進行匹配,因此接收交換機將LLDP包通過PacketIn信令回傳給控制器,交由控制器進行處理。

通過該過程可以使得控制器獲得底層網絡各個交換機節點之間的拓撲連接關系,在7個交換機啟動并正常注冊到控制器之后,底層網絡拓撲交換機節點之間的連接關系可以被正確的探測出。當底層網絡交換機之間的連接關系獲得之后,由控制器計算無環轉發的結構,打印該生成樹結構如圖6所示,1:2 4表示節點1與節點2和節點4相連,其他節點的連接情況以此類推。

圖6 初始STP結構

2.3算法收斂時間仿真

如不考慮鏈路發現的時間,僅考慮每次拓撲更新算法的收斂時間,規定算法收斂時間為從算法開始到獲得底層網絡生成樹配置策略這段時間,可以得到拓撲更新算法平均收斂時間如圖7所示。

圖7 本文所提MST算法平均收斂時間

從上圖中可以看出,如果不考慮鏈路發現時間,生成樹的收斂速度是很快的,一般在0.1 s以內。

如果考慮鏈路發現時間,在具有不同節點數量的拓撲中,統計拓撲發現及STP配置的平均時間如圖8所示。

圖8 拓撲發現及MST配置平均時間統計圖

3 結論

基于OpenFlow的拓撲識別及轉發機制可以在SDN控制器端獲得全網的拓撲信息,掌握全網交換機的互連關系,對于二層轉發網絡來說,其生成樹的收斂時間可以較大縮短,尤其對于交換節點規模較大的網絡。由于控制器采用的是集中式管控方法,因此在網絡拓撲發生變化需計算并生效新的無環轉發結構時,對系統中承載的業務傳輸影響較小,用戶的業務體驗更優良。

[1]劉劍鋒.基于TRILL協議實現數據交換[J].網絡安全技術與應用,2011(12):48-50.

[2]左青云,陳鳴,趙廣松.基于OpenFlow的SDN技術研究[J].軟件學報,2013(5):1078-1097.

[3]陳春凱.云計算環境下基于拓撲感知的虛擬網絡映射研究[J].計算機應用與軟件,2014(12):156-160.

[4]OpenFlow switch specification(version 1.3.2),2013.https:// www.opennetworking.org/images/stories/downloads/sdnresources/onfspecifications/OpenFlow/OpenFlow-spec-v1.3.2.pdf.

[5]Open networking foundation,2013.[EB/OL].http://www.opennetworking.org.

[6]Lantz B,Heller B,McKeown N.A network in a laptop:rapid prototyping for software-defined networks[C]//Proceedings of the9th ACM SIGCOMM Workshop on Hot Topics in Networks,2010.

[7]Long Hui,Shen Yao,Guo Minyi.LABERIO:Dynamic loadbalanced Routing in OpenFlow-enabled Networks[C]//Advanced Information Networking and Application(AINA), 2013 IEEE 27th International Conference,2013.

[8]Pox homepage[EB/OL].http://www.noxrepo.org/pox,2015-07-08.

[9]Open vSwitch[EB/OL].http://openvswitch.org/,2015-07-08.

A topology discovery method based on OpenFlow protocol

LIU Hai-ke,LI Ji-lin,YOU Qi-di,ZOU Guang-nan
(Beijing Institute of Satellite Information Engineering,Beijing 100086,China)

The method of no loop structure construction and network topology discovery in traditional network,such as STP and RSTP,has been unable to meet the complex network environment in the future.There is no good solution to its disadvantage of slow convergence,non extensible and low bandwidth utilization.This paper introduces the topology discovery mechanism based on OpenFlow protocol.The method of link discovery and no loop structure construction under the new network architecture is described in detail.The effectiveness of the proposed method is verified by simulation,and the convergence time of the proposed method is estimated in Mininet software.This topology discovery method can improve the scalability of the network function,and bring a good user experience.

SDN;topology discovery;STP;openFlow protocol;convergence time

TN915.5

A

1674-6236(2016)13-0116-04

2015-07-16稿件編號:201507121

劉??停?986—),男,河北秦皇島人,博士研究生。研究方向:計算機網絡、SDN網絡。

猜你喜歡
流表信令底層
基于匹配動作表模型的可編程數據平面流表歸并
航天企業提升采購能力的底層邏輯
基于時序與集合的SDN流表更新策略
SLS字段在七號信令中的運用
移動信令在交通大數據分析中的應用探索
簡析yangUI流表控制
軟件定義網絡中一種兩步式多級流表構建算法
基于信令分析的TD-LTE無線網絡應用研究
LTE網絡信令采集數據的分析及探討
回到現實底層與悲憫情懷
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合