一種臨時通道的建立方法、設備和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及軟件定義網(wǎng)絡(SDN, Software Defined Network)技術,尤其涉及一種臨時通道的建立方法、設備和系統(tǒng)。
【背景技術】
[0002]OpenFlow網(wǎng)絡采用控制平面與轉(zhuǎn)發(fā)平面相分離的架構。OpenFlow網(wǎng)絡的控制平面由OpenFlow控制器來實現(xiàn),OpenFlow網(wǎng)絡的轉(zhuǎn)發(fā)平面由OpenFlow交換機來實現(xiàn);OpenFlow控制器通過控制通道向OpenFlow交換機下發(fā)流表,從而達到控制數(shù)據(jù)轉(zhuǎn)發(fā)的目的,實現(xiàn)了數(shù)據(jù)轉(zhuǎn)發(fā)和路由控制的分離。
[0003]目前,OpenFlow控制器既可以通過帶外(Out-of-Band) OpenFlow通道與OpenFlow交換機建立帶外連接;也可以通過帶內(nèi)(In-Band)OpenFlow通道與OpenFlow交換機建立帶內(nèi)連接。其中,帶外OpenFlow通道指的是OpenFlow控制器與OpenFlow交換機通過獨立于OpenFlow數(shù)據(jù)平面的直連物理鏈路或傳統(tǒng)路由/交換網(wǎng)絡相連,作為專屬控制通道;帶內(nèi)OpenFlow通道指的是OpenFlow控制器與OpenFlow交換機通過OpenFlow數(shù)據(jù)平面中OpenFlow交換機組成的數(shù)據(jù)轉(zhuǎn)發(fā)網(wǎng)絡相連。
[0004]為了提高控制通道的可靠性,目前業(yè)界通?;贠penFlow控制器冗余的思想對OpenFlow通道進行保護,比如,在一個OpenFlow網(wǎng)絡中同時部署兩臺OpenFlow控制器,一臺是帶外OpenFlow控制器,另一臺是帶內(nèi)OpenFlow控制器,帶外OpenFlow控制器通過帶外連接與OpenFlow交換機建立帶外OpenFlow通道后,配置OpenFlow交換機與帶內(nèi)OpenFlow控制器之間的帶內(nèi)連接并建立帶內(nèi)OpenFlow通道,帶外OpenFlow控制器與帶內(nèi)OpenFlow控制器之間以及帶外OpenFlow通道與帶內(nèi)OpenFlow通道之間互為備份。
[0005]但是,基于冗余思想的OpenFlow通道保護方案,需要為每個OpenFlow交換機部署冗余的OpenFlow控制器,因此會造成網(wǎng)絡部署的成本較高。
【發(fā)明內(nèi)容】
[0006]為解決上述技術問題,本發(fā)明實施例期望提供一種臨時通道的建立方法、設備和系統(tǒng),減少網(wǎng)絡部署的成本。
[0007]本發(fā)明的技術方案是這樣實現(xiàn)的:
[0008]第一方面,本發(fā)明實施例提供了一種臨時通道的建立方法,所述方法包括:
[0009]控制器通過查詢消息確定第一交換機具備建立臨時通道能力之后,當所述控制器檢測到第一控制通道發(fā)生故障時,所述控制器根據(jù)預設的臨時通道建立策略選取第二交換機,其中,所述第一控制通道為所述控制器與所述第一交換機之間的控制通道,所述第二交換機與所述第一交換機相鄰連接;
[0010]所述控制器通過所述第二交換機轉(zhuǎn)發(fā)臨時通道建立請求消息至所述第一交換機;其中,所述臨時通道建立請求消息用于向所述第一交換機請求建立所述控制器與所述第一交換機之間的臨時通道,所述臨時通道為所述控制器與所述第一交換機之間且以所述第二交換機為中轉(zhuǎn)節(jié)點的通道;
[0011]所述控制器接收到由所述第二交換機轉(zhuǎn)發(fā)的臨時通道建立響應消息后,通過所述臨時通道與所述第一交換機進行通信交互,其中,所述臨時通道建立響應消息由所述第一交換機發(fā)送給所述第二交換機。
[0012]進一步地,所述控制器通過查詢消息確定第一交換機具備建立臨時通道能力,包括:
[0013]所述控制器通過所述第一控制通道向所述第一交換機發(fā)送查詢消息,其中,所述查詢消息用于查詢所述第一交換機是否具備建立臨時通道能力;
[0014]所述控制器接收所述第一交換機通過所述第一控制通道返回的查詢響應消息,所述查詢響應消息用于指示所述第一交換機是否具備建立臨時通道能力;
[0015]當所述查詢響應消息指示所述第一交換機具備建立臨時通道能力時,所述控制器確定所述第一交換機具備建立臨時通道能力。
[0016]進一步地,所述控制器根據(jù)預設的臨時通道建立策略選取第二交換機,包括:
[0017]所述控制器根據(jù)與自身相連的各交換機的網(wǎng)絡拓撲結構、所述各交換機之間的鏈路帶寬和占用情況、各交換機之間鏈路性能、各交換機與所述控制器之間控制通道的帶寬和占用情況以及各交換機與所述控制器之間控制通道的性能按照預設的選取規(guī)則從與所述第一交換機相鄰連接的交換機中選取第二交換機。
[0018]進一步地,所述控制器通過所述第二交換機轉(zhuǎn)發(fā)臨時通道建立請求消息至所述第一交換機,包括:
[0019]所述控制器通過第二控制通道向所述第二交換機發(fā)送第一 Packet_0Ut消息,其中,所述第二控制通道為所述控制器與所述第二交換機之間的控制通道,所述第一 Packet_out消息封裝了所述臨時通道建立請求消息,且所述第一 Packet_out消息用于指示所述第二交換機將所述臨時通道建立請求消息轉(zhuǎn)發(fā)至所述第一交換機。
[0020]進一步地,所述控制器接收到由所述第二交換機轉(zhuǎn)發(fā)的臨時通道建立響應消息,包括:
[0021]所述控制器通過第二控制通道接收由所述第二交換機發(fā)送的第一 Packetjn消息,其中,所述第二控制通道為所述控制器與所述第二交換機之間的控制通道;所述第一Packet_in消息中封裝了所述第二交換機從所述第一交換機接收的所述臨時通道建立響應消息;
[0022]所述控制器將所述第一 Packet_in消息進行解封裝,獲取得到所述臨時通道建立響應消息。
[0023]進一步地,所述臨時通道具體包括:第二控制通道以及所述第二交換機與所述第一交換機之間的數(shù)據(jù)轉(zhuǎn)發(fā)鏈路。
[0024]進一步地,所述方法還包括:
[0025]在所述控制器通過所述臨時通道與所述第一交換機進行通信交互的過程中,當所述控制器檢測到所述第一控制通道恢復正常時,所述控制器將自身與所述第一交換機進行通信交互的所述臨時通道切換至所述第一控制通道。
[0026]第二方面,本發(fā)明實施例提供了一種臨時通道的建立方法,所述方法包括:
[0027]第一交換機在接收到由控制器通過第一控制通道發(fā)送的查詢消息之后,判斷自身是否具備建立臨時通道的能力;其中,所述第一控制通道為所述控制器與所述第一交換機之間的控制通道;
[0028]所述第一交換機向所述控制器發(fā)送查詢響應消息,所述查詢響應消息用于指示所述第一交換機是否具備建立臨時通道能力;
[0029]當所述第一交換機具備建立臨時通道能力,且所述第一交換機檢測到所述第一控制通道發(fā)生故障時,所述第一交換機接收所述控制器通過第二交換機轉(zhuǎn)發(fā)的臨時通道建立請求消息;其中,所述第二交換機由所述控制器根據(jù)預設的臨時通道建立策略選取,所述臨時通道建立請求消息用于向所述第一交換機請求建立所述控制器與所述第一交換機之間的臨時通道,所述臨時通道為所述控制器與所述第一交換機之間且以所述第二交換機為中轉(zhuǎn)節(jié)點的通道;
[0030]所述第一交換機通過所述第二交換機轉(zhuǎn)發(fā)臨時通道建立響應消息至所述控制器,并通過所述臨時通道與所述控制器進行通信交互。
[0031]進一步地,所述第一交換機判斷自身是否具備建立臨時通道的能力,包括:
[0032]當所述第一交換機具備OpenFlow交換機規(guī)范定義的LOCAL端口,且所述第一交換機已配置了將所述控制器發(fā)送的OpenFlow協(xié)議消息從所述LOCAL端口輸出的流表,且所述第一交換機具備將所述LOCAL端口輸出的所述OpenFlow協(xié)議消息傳輸至本地OpenFlow協(xié)議棧進行處理的能力時,所述第一交換機確定自身具備建立臨時通道的能力。
[0033]進一步地,所述第一交換機接收所述控制器通過所述第二交換機轉(zhuǎn)發(fā)的臨時通道建立請求消息,包括:
[0034]所述第一交換機接收由所述第二交換機根據(jù)第一 Packet_0Ut消息指示的端口發(fā)送的所述臨時通道建立請求消息;其中,所述第一 Packet_out消息封裝了所述臨時通道建立請求消息;所述臨時通道建立請求消息由所述第二交換機通過第二控制通道從所述控制器接收所述第一 Packet_0Ut消息之后,對所述第一 Packet_0Ut消息進行解封裝獲取得到;所述第二控制通道為所述控制器與所述第二交換機之間的控制通道。
[0035]進一步地,所述臨時通道具體包括:所述第二控制通道以及所述第二交換機與所述第一交換機之間的數(shù)據(jù)轉(zhuǎn)發(fā)鏈路。
[0036]第三方面,本發(fā)明實施例提供了一種控制器,所述控制器包括:確定單元、檢測單元、選取單元、發(fā)送單元、接收單元和交互單元,其中,
[0037]所述確定單元,用于通過查詢消息確定第一交換機具備建立臨時通道能力;
[0038]所述檢測單元,用于檢測第一控制通道發(fā)生故障,且當檢測到所述第一控制通道發(fā)生故障時,觸發(fā)所述選取單元;其中,所述第一控制通道為所述控制器與所述第一交換機之間的控制通道;
[0039]所述選取單元,用于,當所述檢測單元檢測到所述第一控制通道發(fā)生故障時,根據(jù)預設的臨時通道建立策略選取第二交換機,其中,所述第二交換機與所述第一交換機相鄰連接;
[0040]所述發(fā)送單元,用于通過所述第二交換機轉(zhuǎn)發(fā)臨時通道建立請求消息至所述第一交換機;其中,所述臨時通道建立請求消息用于向所述第一交換機請求建立所述控制器與所述第一交換機之間的臨時通道,所述臨時通道為所述控制器與所述第一交換機之間且以所述第二交換機為中轉(zhuǎn)節(jié)點的通道;
[0041]所述接收單元,用于接收由所述第二交換機轉(zhuǎn)發(fā)的臨時通道建立響應消息,其中,所述臨時通道建立響應消息由所述第一交換機發(fā)送給所述第二交換機;
[0042]所述交互單元,用于當所述接收單元接收到所述臨時通道建立響應消息之后,通過所述臨時通道與所述第一交換機進行通信交互。
[0043]進一步地,所述確定單元,用于:
[0044]通過所述第一控制通道向所述第一交換機發(fā)送查詢消息,其中,所述查詢消息用于查詢所述第一交換機是否具備建立臨時通道能力;以及,
[0045]接收所述第一交換機通過所述第一控制通道返回的查詢響應消息,所述查詢響應消息用于指示所述第一交換機是否具備建立臨時通道能力;以及,
[0046]當所述查詢響應消息指示所述第一交換機具備建立臨時通道能力時,所述控制器確定所述第一交換機具備建立臨時通道能力。
[0047]進一步地,所述選取單元,用于根據(jù)與所述控制器相連的各交換機的網(wǎng)絡拓撲結構、所述各交換機之間的鏈路帶寬和占用情況、各交換機之間鏈路性能、各交換機與所述控制器之間控制通道的帶寬和占用情況以及各交換機與所述控制器之間控制通道的性能按照預設的選取規(guī)則從與所述第一交換機相鄰連接的交換機中選取第二交換機。
[0048]進一步地,所述發(fā)送單元,用于通過第二控制通道向所述第二交換機發(fā)送第一Packet