軟件定義網(wǎng)絡連接建立控制方法及裝置制造方法
【專利摘要】本申請?zhí)岢鲕浖x網(wǎng)絡連接建立控制方法及裝置。方法包括:SDN的控制器集群內(nèi)的Leader接收交換機發(fā)來的SDN連接建立請求消息,該消息的目的地址為控制器集群的集群IP地址,且該消息攜帶用于唯一標識本次SDN連接建立請求的事件ID;Leader將該SDN連接建立請求消息同步到控制器集群內(nèi)的控制器,并按照預設指定原則在控制器集群內(nèi)為所述交換機選擇指定控制器,通知所述指定控制器攜帶所述事件ID與所述交換機建立SDN連接。本申請簡化了網(wǎng)絡配置,實現(xiàn)了控制器與交換機的自動連接,且做到了集群內(nèi)的負載均衡。
【專利說明】軟件定義網(wǎng)絡連接建立控制方法及裝置
【技術領域】
[0001] 本申請涉及SDN(Software Defined Network,軟件定義網(wǎng)絡)【技術領域】,尤其涉及 SDN連接建立控制方法及裝置。
【背景技術】
[0002] SDN是一種新型網(wǎng)絡創(chuàng)新架構,其核心思想是將網(wǎng)絡設備的控制層面與轉(zhuǎn)發(fā)層面 分離,以實現(xiàn)對網(wǎng)絡流量的靈活控制,為核心網(wǎng)絡及應用的創(chuàng)新提供良好的平臺。
[0003] 為了提升SDN的穩(wěn)定性,引入了控制器集群的概念,在該網(wǎng)絡中多個控制器組成 一個控制器集群,控制器集群的每個成員共同控制網(wǎng)絡中的交換機。每個成員連接若干數(shù) 量的交換機,并將這些交換機的屬性信息同步到集群內(nèi)的所有控制器上,交換機上接入的 主機信息也在集群內(nèi)同步,與轉(zhuǎn)發(fā)相關的流表信息則根據(jù)需要在某些成員上同步,集群內(nèi) 的數(shù)據(jù)同步策略可以根據(jù)需要進行調(diào)整以確保效率和數(shù)據(jù)一致性。
[0004] 現(xiàn)有的SDN控制器集群技術在交換機和控制器的連接建立上通常使用靜態(tài)設置 的方式,即,預先設置一個交換機與哪一個控制器建立連接,靜態(tài)為交換機配置控制器的IP 地址,該IP地址可以為多個,每個IP地址都實際代表一個控制器。
【發(fā)明內(nèi)容】
[0005] 本申請?zhí)峁㏒DN連接建立控制方法及裝置。
[0006] 本申請的技術方案是這樣實現(xiàn)的:
[0007] -種SDN連接建立控制方法,該方法包括:
[0008] SDN的控制器集群內(nèi)的Leader接收交換機發(fā)來的SDN連接建立請求消息,該消息 的目的地址為控制器集群的集群IP地址,且該消息攜帶用于唯一標識本次SDN連接建立請 求的事件ID ;其中,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在Leander 上生效;
[0009] Leader將該SDN連接建立請求消息同步到控制器集群內(nèi)的控制器,并按照預設指 定原則在控制器集群內(nèi)為所述交換機選擇指定控制器,通知所述指定控制器攜帶所述事件 ID與所述交換機建立SDN連接。
[0010] 一種SDN連接建立控制方法,該方法包括:
[0011] 交換機向控制器集群內(nèi)的Leader發(fā)起SDN連接建立請求消息,以使得:所述 Leader在控制器集群內(nèi)為本交換機選擇指定控制器,其中,所述SDN連接建立請求消息的 目的地址為控制器集群的集群IP地址,同時,該消息中攜帶用于唯一標識本次SDN連接建 立請求的事件ID,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在Leander 上生效;
[0012] 交換機接收所述指定控制器發(fā)來的SDN連接建立請求消息,將該消息中的事件ID 與自身發(fā)出的所述SDN連接建立請求消息中的事件ID進行比較,若兩者相同,則與所述指 定控制器建立SDN連接;否則,拒絕與所述指定控制器建立SDN連接。
[0013] 一種SDN連接建立控制裝置,位于SDN的控制器集群內(nèi)的Leader上,該裝置包括: [0014] 連接消息接收模塊:接收交換機發(fā)來的SDN連接建立請求消息,該消息的目的地 址為控制器集群的集群IP地址,且該消息攜帶用于唯一標識本次SDN連接建立請求的事件 ID ;其中,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在Leander上生效;
[0015] 控制器指定模塊,將連接消息接收模塊接收到的SDN連接建立請求消息同步到控 制器集群內(nèi)的控制器,并按照預設指定原則在控制器集群內(nèi)為所述交換機選擇指定控制 器,通知所述指定控制器攜帶所述事件ID與所述交換機建立SDN連接。
[0016] 一種SDN連接建立控制裝置,該裝置位于SDN內(nèi)的交換機上,該裝置包括:
[0017] SDN連接發(fā)起模塊,向控制器集群內(nèi)的領導者Leader發(fā)起SDN連接建立請求消息, 以使得:所述Leader在控制器集群內(nèi)為本交換機選擇指定控制器,其中,所述SDN連接建立 請求消息的目的地址為控制器集群的集群IP地址,同時,該消息中攜帶用于唯一標識本次 SDN連接建立請求的事件ID,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只 在Leander上生效;
[0018] SDN連接建立模塊:接收所述指定控制器發(fā)來的SDN連接建立請求消息,將該消息 中的事件ID與SDN連接發(fā)起模塊發(fā)出的所述SDN連接建立請求消息中的事件ID進行比較, 若兩者相同,則與所述指定控制器建立SDN連接;否則,拒絕與所述指定控制器建立SDN連 接。
[0019] 可見,本申請中,由控制器集群內(nèi)的Leader根據(jù)交換機發(fā)起SDN連接建立請求,為 交換機指定控制器,簡化了網(wǎng)絡配置,實現(xiàn)了控制器與交換機的自動連接,且做到了集群內(nèi) 的負載均衡。
【專利附圖】
【附圖說明】
[0020] 圖1為本申請實施例提供的SDN連接建立控制方法流程圖;
[0021] 圖2為本申請又一實施例提供的SDN連接建立控制方法流程圖;
[0022] 圖3為本申請又一實施例提供的SDN連接建立控制方法流程圖;
[0023] 圖4為本申請實施例提供的SDN連接建立控制裝置的組成示意圖;
[0024] 圖5為本申請又一實施例提供的SDN連接建立控制裝置的組成示意圖。
【具體實施方式】
[0025] 現(xiàn)有的SDN控制器集群技術在交換機和控制器的連接建立上使用靜態(tài)設置的方 式,這樣,一方面浪費配置資源,另一方面在控制器故障的情況下需要修改原有的靜態(tài)配 置,影響保護切換的性能。
[0026] 圖1為本申請實施例提供的SDN連接建立控制方法流程圖,其具體步驟如下:
[0027] 步驟101 :SDN的控制器集群內(nèi)的Leader接收交換機發(fā)來的SDN連接建立請求消 息,該消息的目的地址為控制器集群的集群IP地址,且該消息攜帶用于唯一標識本次SDN 連接建立請求的事件ID (Transaction ID);其中,所述集群IP地址配置在控制器集群內(nèi)的 所有控制器上,但只在Leander上生效。
[0028] 步驟102 leader將該SDN連接建立請求消息同步到控制器集群內(nèi)的控制器,并按 照預設指定原則在控制器集群內(nèi)為所述交換機選擇指定控制器,通知所述指定控制器攜帶 所述事件ID與所述交換機建立SDN連接。
[0029] 本步驟中,Leader可將交換機發(fā)來的SDN連接建立請求消息同步到控制器集群內(nèi) 的所有控制器;或者,按照集群內(nèi)控制器的負載、屬性、靜態(tài)配置的指定控制器范圍等,只將 該SDN連接建立請求消息同步到控制器集群內(nèi)的部分控制器,例如:只將該SDN連接建立請 求消息同步到負載小于預設閾值的控制器,或者只將該SDN連接建立請求消息同步到屬性 與該交換機匹配的控制器,或者只將該SDN連接建立請求消息同步到位于靜態(tài)配置的指定 控制器范圍內(nèi)的控制器上。
[0030] 其中,預設指定原則可為如下之一:
[0031] 1)將控制器集群內(nèi)當前連接交換機數(shù)量最小的控制器作為所述交換機的指定控 制器;
[0032] 2)將控制器集群內(nèi)優(yōu)先級最高的控制器作為所述交換機的指定控制器;
[0033] 3)將控制器集群內(nèi)與所述交換機的屬性匹配的控制器作為所述交換機的指定控 制器;
[0034] 4)當本Leader上靜態(tài)配置了所述交換機的指定控制器信息時,根據(jù)該信息為所 述交換機選擇指定控制器。
[0035] 其中,步驟102中,Leader通知所述指定控制器攜帶所述事件ID與所述交換機建 立SDN連接可通過如下兩種方式實現(xiàn):
[0036] -)Leader向所述指定控制器發(fā)送控制器指定消息,該消息攜帶所述交換機的地 址,以使得:所述指定控制器根據(jù)所述交換機的地址查找到所述交換機發(fā)來的SDN連接建 立請求消息,并根據(jù)該請求消息向所述交換機發(fā)起SDN連接建立請求消息,其中,指定控制 器發(fā)起的SDN連接建立請求消息中的事件ID與所述交換機發(fā)來的SDN連接建立請求消息 中的事件ID相同。
[0037] 二)Leader向所述指定控制器發(fā)送控制器指定消息,該消息攜帶所述交換機的地 址,同時攜帶所述交換機發(fā)來的SDN連接建立請求消息中的事件ID,以使得:所述指定控制 器根據(jù)所述交換機的地址和事件ID查找到所述交換機發(fā)來的SDN連接建立請求消息,并根 據(jù)該請求消息向所述交換機發(fā)起攜帶所述事件ID的SDN連接建立請求消息,其中,指定控 制器發(fā)起的SDN連接建立請求消息中的事件ID與所述交換機發(fā)來的SDN連接建立請求消 息中的事件ID相同。
[0038] 其中,步驟102中,Leader通知所述指定控制器與所述交換機建立SDN連接之后 進一步包括:當Leader接收到所述指定控制器返回的指示接受指定的應答消息時,記錄所 述交換機與所述指定控制器之間的對應關系;當Leader接收到所述指定控制器返回的指 示拒絕指定的應答消息時,返回所述按照預設指定原則在控制器集群內(nèi)為所述交換機選擇 指定控制器的動作。
[0039] 其中,步驟102中,Leader按照預設指定原則在控制器集群內(nèi)為所述交換機選擇 指定控制器為:按照預設指定原則在控制器集群內(nèi)選擇一個控制器作為所述交換機的主指 定控制器,選擇至少一個控制器作為所述交換機的備指定控制器;
[0040] 同時,步驟102中,Leader通知所述指定控制器與所述交換機建立SDN連接為: Leader通知所述主指定控制器與所述交換機建立SDN連接,并將所有備指定控制器的地址 通知所述主指定控制器,以使得:所述主指定控制器與所述交換機建立SDN連接后,將所述 交換機的轉(zhuǎn)發(fā)流表同步到所有備指定控制器上;
[0041] 同時,步驟102中,Leader通知所述主指定控制器與所述交換機建立SDN連接之 后進一步包括leader發(fā)現(xiàn)所述主指定控制器故障,則在所述交換機的所有備指定控制器 中選擇一個作為所述交換機的新主指定控制器,通知所述新主指定控制器與所述交換機建 立SDN連接,并將所述交換機的所有新備指定控制器的地址通知所述新主指定控制器,以 使得:所述新主指定控制器與所述交換機建立SDN連接后,將所述交換機的轉(zhuǎn)發(fā)流表同步 到所有新備指定控制器上。
[0042] 圖2為本申請又一實施例提供的SDN連接建立控制方法流程圖,其具體步驟如 下:
[0043] 步驟201 :交換機向控制器集群內(nèi)的Leader發(fā)起SDN連接建立請求消息,以使得: 所述Leader在控制器集群內(nèi)為本交換機選擇指定控制器,其中,SDN連接建立請求消息的 目的地址為控制器集群的集群IP地址,同時,該消息中攜帶用于唯一標識本次SDN連接建 立請求的事件ID,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在Leander 上生效。
[0044] 步驟202 :交換機接收所述指定控制器發(fā)來的SDN連接建立請求消息,將該消息中 的事件ID與自身發(fā)出的所述SDN連接建立請求消息中的事件ID進行比較,若兩者相同,則 與所述指定控制器建立SDN連接;否則,拒絕與所述指定控制器建立SDN連接。
[0045] 其中,交換機上預先配置了控制器地址的網(wǎng)段范圍,所述指定控制器發(fā)來的SDN 連接建立請求消息的源地址為該指定控制器的獨立地址,該獨立地址用于唯一標識該指定 控制器;且,步驟202中,交換機將該消息中的事件ID與自身發(fā)出的所述SDN連接建立請求 消息中的事件ID進行比較進一步包括:
[0046] 交換機判斷所述指定控制器發(fā)來的SDN連接建立請求消息中的源IP地址是否位 于自身配置的控制器地址的網(wǎng)段范圍內(nèi),若位于且確定所述指定控制器發(fā)來的SDN連接建 立請求消息中的事件ID與本交換機發(fā)出的所述SDN連接建立請求消息中的事件ID相同, 則執(zhí)行所述與所述指定控制器建立SDN連接的動作;否則,執(zhí)行所述拒絕與所述指定控制 器建立SDN連接的動作。。
[0047] 圖3為本申請又一實施例提供的SDN連接建立控制方法流程圖,其具體步驟如 下:
[0048] 步驟300 :對于SDN中的控制器集群,為控制器集群內(nèi)的每個控制器分別配置一個 集群IP地址和一個獨立IP地址;在SDN內(nèi)的每個交換機上配置該控制器集群的集群IP地 址和控制器地址的網(wǎng)段范圍。其中,作為Leader的控制器上配置的集群IP地址的狀態(tài)為 生效,非Leader控制器上配置的集群IP地址的狀態(tài)為失效。
[0049] 其中,集群IP地址即為該控制器集群的IP地址,用于唯一地標識一個控制器集 群,而獨立IP地址用于唯一地標識一個控制器;也就是說,控制器集群內(nèi)的不同控制器上 配置的集群IP地址相同,而不同控制器上配置的獨立IP地址互不相同,獨立IP地址是始 終生效的。
[0050] 本申請實施例中,并不限定Leader的確定方式,例如:可由管理員等預先設定,也 可根據(jù)預設的選舉規(guī)則而選舉出。
[0051] 交換機上配置的控制器地址的網(wǎng)段范圍用于告知交換機可以與之建立SDN連接 的控制器的地址的網(wǎng)段范圍,即,交換機只能與地址在該網(wǎng)段范圍內(nèi)的控制器建立SDN連 接,若有地址在該網(wǎng)段范圍外的控制器向交換機發(fā)起SDN連接則交換機不會接受。
[0052] 步驟301 :任一交換機,設為交換機a,根據(jù)自身配置的控制器集群IP地址,發(fā)起 OpenFlow Hello消息,消息的目的IP地址為該集群IP地址,且消息中攜帶用于唯一標識本 次連接的Transaction ID(事件ID)。
[0053] Transaction ID用于標識交換機發(fā)起的OpenFlow連接,交換機每次發(fā)起 OpenFlow 連接前,隨機生成一個 Transaction ID,將該 Transaction ID 攜帶在 OpenFlow Hello消息中。
[0054] 步驟302 :控制器集群內(nèi)的Leader接收該OpenFlow Hello消息,根據(jù)自身維護的 上線交換機列表,判斷發(fā)來該消息的交換機a是否未上線,若是,執(zhí)行步驟303 ;否則,不作 進一步處理,本流程結束。
[0055] 上線交換機列表中包含了所有上線的交換機的IP地址。
[0056] 由于控制器集群IP地址只在Leader上生效,因此,交換機a發(fā)出的以控制器集群 IP地址為目的IP地址的OpenFlow Hello消息只會被Leader接收到。
[0057] 步驟303 :Leader向控制器集群內(nèi)的其它控制器通告該OpenFlow Hello消息,并 在控制器集群內(nèi)為交換機a指定一個控制器,設為控制器A,向控制器A發(fā)送控制器指定消 息,該消息攜帶交換機a的IP地址和控制器指定信息。
[0058] Leader可采用如下方式之一為交換機a指定控制器:
[0059] 1)將當前連接交換機數(shù)量最小的控制器指定為交換機a的控制器;
[0060] 此時,需要Leader遍歷集群內(nèi)的控制器,獲取每個控制器連接的交換機數(shù)量。
[0061] 若當前連接交換機數(shù)量最小的控制器有多臺,則可任選一臺指定為交換機a的控 制器。
[0062] 2)將優(yōu)先級最高的控制器指定為交換機a的控制器;
[0063] 此時,需要預先為集群內(nèi)的控制器配置優(yōu)先級。
[0064] 若優(yōu)先級最高的控制器有多臺,貝U可任選一臺指定為交換機a的控制器。
[0065] 3)將與交換機a的屬性匹配的控制器指定為交換機a的控制器。
[0066] 例如:物理交換機與虛擬交換機承載的業(yè)務是不同的,不同控制器支持的業(yè)務也 可能不同,因此,可根據(jù)交換機的物理、虛擬屬性,來為交換機指定與其屬性匹配的控制器。 [0067] 若與交換機a的屬性匹配的控制器有多臺,則可任選一臺指定為交換機a的控制 器。
[0068] 另外,考慮到種種原因,例如:控制器集群內(nèi)可能存在性能較高的控制器、或者某 些交換機由于其特定配置而只能選擇與該配置匹配的控制器,等等,管理員等可以預先在 Leader上為某些交換機靜態(tài)指定優(yōu)先連接的控制器,這樣,本步驟303中,Leader在為交換 機a指定控制器時,先查看自身是否存在針對交換機a的靜態(tài)指定控制器,若存在,則在該 靜態(tài)指定控制器中為交換機a選擇一個控制器;否則,采用預設指定方式,如上述1)、2)或 3)為交換機a指定控制器。
[0069] 步驟304 :控制器A接收該控制器指定消息,判斷是否接受Leader的指定,若是, 執(zhí)行步驟305 ;否則,執(zhí)行步驟310。
[0070] 控制器A可根據(jù)自身的負載等確定是否接受Leader的指定。
[0071] 步驟305 :控制器A向Leader返回指示接受指定的應答消息,并向交換機a發(fā)起 OpenFlow Hello消息,該Hello消息的源IP地址為控制器A的獨立IP地址,且消息中的 Transaction ID 與交換機 a 發(fā)來的 OpenFlow Hello 消息中的 Transaction ID -致。
[0072] 在步驟304中,控制器A在接收到Leader發(fā)來的控制器指定消息并確定接受 Leader的指定后,會根據(jù)消息中的交換機a的IP地址查找到交換機a發(fā)來的OpenFlow Hello消息,步驟305中,控制器A會根據(jù)交換機a發(fā)來的OpenFlow Hello消息構造本控制 器向交換機a發(fā)出的OpenFlow Hello消息,該兩消息中的Transaction ID必須相同。
[0073] 在實際應用中,步驟303中,Leader發(fā)出的控制器指定消息中可進一步攜帶交換 機a發(fā)來的OpenFlow Hello消息中的Transaction ID,這樣,步驟304中,控制器A在接 收到Leader發(fā)來的控制器指定消息并確定接受Leader的指定后,會根據(jù)消息中的交換 機a的IP地址和Transaction ID查找到交換機a發(fā)來的OpenFlow Hello消息,步驟305 中,控制器A會根據(jù)交換機a發(fā)來的OpenFlow Hello消息構造本控制器向交換機a發(fā)出的 OpenFlow Hello消息,該兩消息中的Transaction ID必須相同。
[0074] Leader接收到控制器A返回的指示接受指定的應答消息后,要記錄交換機a的IP 地址與控制器A的獨立IP地址的對應關系。
[0075] 步驟306 :交換機a接收到該OpenFlow Hello消息,對該消息進行合法性檢 查,包括:檢查消息中的Transaction ID是否與自身發(fā)出的OpenFlow Hello消息中的 Transaction ID -致,以及檢查消息的源IP地址是否在自身配置的控制器地址的網(wǎng)段范 圍內(nèi)。
[0076] 步驟307 :交換機a判斷是否檢查通過,若是,執(zhí)行步驟308 ;否則,執(zhí)行步驟309。
[0077] 步驟308 :交換機a與控制器A進入OpenFlow握手過程,握手完成,控制器A將在 握手過程中獲取的交換機a的屬性信息以及交換機上線事件同步到集群內(nèi)的其它控制器 上,集群內(nèi)的所有控制器將交換機a的IP地址和屬性信息添加到本地上線交換機列表中, 同時記錄交換機a的IP地址與控制器A的獨立IP地址的對應關系,本流程結束。
[0078] 步驟309 :交換機a丟棄該OpenFlow消息,并在一個等待周期后返回步驟301,即 向Leader發(fā)起新的OpenFlow Hello消息。
[0079] 這里,發(fā)起新的OpenFlow Hello消息之前,要先產(chǎn)生一個唯一標識本次發(fā)起的 OpenFlow 連接的 Transaction ID,將該 Transaction ID 放入發(fā)起的新 OpenFlow Hello 消 息中。
[0080] 步驟310 :控制器A向Leader返回指示拒絕指定的應答消息,Leader接收到該應 答消息,為交換機a重新指定一個控制器。
[0081] 重新指定控制器后的處理步驟與指定控制器a后的處理步驟相同,直至指定成功 Leader才會停止指定。
[0082] 交換機與指定控制器建立OpenFlow連接后,會監(jiān)測該連接,當發(fā)現(xiàn)連接中斷后, 交換機會返回步驟301,向Leader發(fā)起新的OpenFlow Hello消息。
[0083] 為了防止交換機與指定控制器的連接斷開后導致的流量丟失,本申請實施例給出 如下優(yōu)化方案:
[0084] 步驟303中,Leader在控制器集群內(nèi)為交換機a指定多個控制器,并設定其中一 個控制器A為主控制器,其它控制器為備控制器,向主、備控制器發(fā)送的控制器指定消息中 攜帶交換機a的IP地址、為交換機a指定的所有控制器的IP地址、以及每個控制器為主還 是備的指不?目息。
[0085] 主控制器和備控制器收到Leader發(fā)來的控制器指定消息后,都會執(zhí)行步驟304, 但是,只有主控制器A在接受指定后會向交換機a發(fā)起OpenFlow Hello消息,備控制器則 不會。
[0086] 且,步驟310中,當主控制器A向Leader返回指示拒絕指定的Http應答消息時, Leader接收到該應答消息,為交換機a重新指定一個主控制器。
[0087] 同時,主控制器A會將自身維護的交換a的轉(zhuǎn)發(fā)流表同步到所有交換機a的指定 備控制器上。
[0088] Leader會監(jiān)測主控制器A的狀態(tài),例如:定時向主控制器A發(fā)送探測報文,當發(fā)現(xiàn) 主控制器A故障后,在交換機a的備控制器中選擇一個(設選擇了控制器B)作為新的主控 制器,向控制器B發(fā)送控制器指定消息,消息中攜帶交換機a的IP地址、為交換機a指定的 所有控制器的IP地址、以及每個控制器為主還是備的指示信息,控制器B收到該消息后,進 入步驟304。
[0089] 本申請實施例可帶來如下有益效果:
[0090] 可將控制器集群內(nèi)數(shù)量眾多的交換機分擔到不同的控制器上,使得每個控制器都 管理一定數(shù)量的交換機,簡化了網(wǎng)絡配置,實現(xiàn)了控制器與交換機的自動連接,且做到了集 群內(nèi)的負載均衡;另外,交換機通過Transaction ID和控制器地址的網(wǎng)段范圍,對控制器 進行合法性檢查,提高了網(wǎng)絡的可靠性。
[0091] 圖4為本申請實施例提供的SDN連接建立控制裝置的組成示意圖,該裝置位于SDN 的控制器集群內(nèi)的Leader上,該裝置主要包括:
[0092] 連接消息接收模塊:接收交換機發(fā)來的SDN連接建立請求消息,該消息的目的地 址為控制器集群的集群IP地址,且該消息攜帶用于唯一標識本次SDN連接建立請求的事件 ID ;其中,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在Leander上生效。
[0093] 控制器指定模塊:將連接消息接收模塊接收到的SDN連接建立請求消息同步到 控制器集群內(nèi)的控制器,并按照預設指定原則在控制器集群內(nèi)為所述交換機選擇指定控制 器,通知所述指定控制器攜帶所述事件ID與所述交換機建立SDN連接。
[0094] 其中,控制器指定模塊通知所述指定控制器攜帶所述事件ID與所述交換機建立 SDN連接包括:向所述指定控制器發(fā)送控制器指定消息,該消息攜帶所述交換機的地址,以 使得:所述指定控制器根據(jù)所述交換機的地址查找到所述交換機發(fā)來的SDN連接建立請求 消息,并根據(jù)該請求消息向所述交換機發(fā)起SDN連接建立請求消息,其中,指定控制器發(fā)起 的SDN連接建立請求消息中的事件ID與所述交換機發(fā)來的SDN連接建立請求消息中的事 件ID相同;
[0095] 或者,向所述指定控制器發(fā)送控制器指定消息,該消息攜帶所述交換機的地址,同 時攜帶所述交換機發(fā)來的SDN連接建立請求消息中的事件ID,以使得:所述指定控制器根 據(jù)所述交換機的地址和事件ID查找到所述交換機發(fā)來的SDN連接建立請求消息,并根據(jù)該 請求消息向所述交換機發(fā)起攜帶所述事件ID的SDN連接建立請求消息,其中,指定控制器 發(fā)起的SDN連接建立請求消息中的事件ID與所述交換機發(fā)來的SDN連接建立請求消息中 的事件ID相同。
[0096] 其中,控制器指定模塊通知所述指定控制器與所述交換機建立SDN連接之后進一 步包括:當接收到所述指定控制器返回的指示接受指定的應答消息時,記錄所述交換機與 所述指定控制器之間的對應關系;當接收到所述指定控制器返回的指示拒絕指定的應答消 息時,返回所述按照預設指定原則在控制器集群內(nèi)為所述交換機選擇指定控制器的動作。
[0097] 其中,控制器指定模塊按照預設指定原則在控制器集群內(nèi)為所述交換機選擇指定 控制器為:按照預設指定原則在控制器集群內(nèi)選擇一個控制器作為所述交換機的主指定控 制器,選擇至少一個控制器作為所述交換機的備指定控制器;
[0098] 且,控制器指定模塊通知所述指定控制器與所述交換機建立SDN連接為:通知所 述主指定控制器與所述交換機建立SDN連接,并將所有備指定控制器的地址通知所述主指 定控制器,以使得:所述主指定控制器與所述交換機建立SDN連接后,將所述交換機的轉(zhuǎn)發(fā) 流表同步到所有備指定控制器上;
[0099] 且,控制器指定模塊進一步用于,當發(fā)現(xiàn)所述主指定控制器故障時,在所述交換機 的所有備指定控制器中選擇一個作為所述交換機的新主指定控制器,通知所述新主指定控 制器與所述交換機建立SDN連接,并將所述交換機的所有新備指定控制器的地址通知所述 新主指定控制器,以使得:所述新主指定控制器與所述交換機建立SDN連接后,將所述交換 機的轉(zhuǎn)發(fā)流表同步到所有新備指定控制器上。
[0100] 圖5為本申請又一實施例提供的SDN連接建立控制裝置的組成示意圖,該裝置位 于SDN內(nèi)的交換機上,該裝置主要包括:
[0101] SDN連接發(fā)起模塊:向控制器集群內(nèi)的Leader發(fā)起SDN連接建立請求消息,以使 得:所述Leader在控制器集群內(nèi)為本交換機選擇指定控制器,其中,所述SDN連接建立請求 消息的目的地址為控制器集群的集群IP地址,同時,該消息中攜帶用于唯一標識本次SDN 連接建立請求的事件ID,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在 Leander上生效。
[0102] SDN連接建立模塊:接收所述指定控制器發(fā)來的SDN連接建立請求消息,將該消息 中的事件ID與SDN連接發(fā)起模塊發(fā)出的所述SDN連接建立請求消息中的事件ID進行比較, 若兩者相同,則與所述指定控制器建立SDN連接;否則,拒絕與所述指定控制器建立SDN連 接。
[0103] 其中,交換機上預先配置了控制器地址的網(wǎng)段范圍,SDN連接建立模塊接收到的指 定控制器發(fā)來的SDN連接建立請求消息的源地址為該指定控制器的獨立地址,該獨立地址 用于唯一標識該指定控制器;SDN連接建立模塊將該消息中的事件ID與SDN連接發(fā)起模塊 發(fā)出的所述SDN連接建立請求消息中的事件ID進行比較進一步包括:判斷所述指定控制器 發(fā)來的SDN連接建立請求消息中的源IP地址是否位于自身配置的控制器地址的網(wǎng)段范圍 內(nèi),若位于且確定所述指定控制器發(fā)來的SDN連接建立請求消息中的事件ID與SDN連接發(fā) 起模塊發(fā)出的所述SDN連接建立請求消息中的事件ID相同,則執(zhí)行所述與所述指定控制器 建立SDN連接的動作;否則,執(zhí)行所述拒絕與所述指定控制器建立SDN連接的動作。
[0104] 以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精 神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內(nèi)。
【權利要求】
1. 一種軟件定義網(wǎng)絡SDN連接建立控制方法,其特征在于,該方法包括: SDN的控制器集群內(nèi)的領導者Leader接收交換機發(fā)來的SDN連接建立請求消息,該 消息的目的地址為控制器集群的集群IP地址,且該消息攜帶用于唯一標識本次SDN連接 建立請求的事件ID ;其中,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在 Leander上生效; Leader將該SDN連接建立請求消息同步到控制器集群內(nèi)的控制器,并按照預設指定 原則在控制器集群內(nèi)為所述交換機選擇指定控制器,通知所述指定控制器攜帶所述事件ID 與所述交換機建立SDN連接。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述Leader通知所述指定控制器攜帶所 述事件ID與所述交換機建立SDN連接包括: Leader向所述指定控制器發(fā)送控制器指定消息,該消息攜帶所述交換機的地址,以使 得:所述指定控制器根據(jù)所述交換機的地址查找到所述交換機發(fā)來的SDN連接建立請求消 息,并根據(jù)該請求消息向所述交換機發(fā)起SDN連接建立請求消息,其中,指定控制器發(fā)起的 SDN連接建立請求消息中的事件ID與所述交換機發(fā)來的SDN連接建立請求消息中的事件 ID相同; 或者,Leader向所述指定控制器發(fā)送控制器指定消息,該消息攜帶所述交換機的地址, 同時攜帶所述交換機發(fā)來的SDN連接建立請求消息中的事件ID,以使得:所述指定控制器 根據(jù)所述交換機的地址和事件ID查找到所述交換機發(fā)來的SDN連接建立請求消息,并根據(jù) 該請求消息向所述交換機發(fā)起攜帶所述事件ID的SDN連接建立請求消息,其中,指定控制 器發(fā)起的SDN連接建立請求消息中的事件ID與所述交換機發(fā)來的SDN連接建立請求消息 中的事件ID相同。
3. 根據(jù)權利要求1所述的方法,其特征在于,所述預設指定原則為: 將控制器集群內(nèi)當前連接交換機數(shù)量最小的控制器作為所述交換機的指定控制器;或 者, 將控制器集群內(nèi)優(yōu)先級最高的控制器作為所述交換機的指定控制器;或者, 將控制器集群內(nèi)與所述交換機的屬性匹配的控制器作為所述交換機的指定控制器;或 者, 當本Leader上靜態(tài)配置了所述交換機的指定控制器信息時,根據(jù)該信息為所述交換 機選擇指定控制器。
4. 根據(jù)權利要求1所述的方法,其特征在于,所述Leader通知所述指定控制器與所述 交換機建立SDN連接之后進一步包括: 當Leader接收到所述指定控制器返回的指示接受指定的應答消息時,記錄所述交換 機與所述指定控制器之間的對應關系; 當Leader接收到所述指定控制器返回的指示拒絕指定的應答消息時,返回所述按照 預設指定原則在控制器集群內(nèi)為所述交換機選擇指定控制器的動作。
5. 根據(jù)權利要求1所述的方法,其特征在于,所述按照預設指定原則在控制器集群內(nèi) 為所述交換機選擇指定控制器為: 按照預設指定原則在控制器集群內(nèi)選擇一個控制器作為所述交換機的主指定控制器, 選擇至少一個控制器作為所述交換機的備指定控制器; 所述Leader通知所述指定控制器與所述交換機建立SDN連接為: Leader通知所述主指定控制器與所述交換機建立SDN連接,并將所有備指定控制器的 地址通知所述主指定控制器,以使得:所述主指定控制器與所述交換機建立SDN連接后,將 所述交換機的轉(zhuǎn)發(fā)流表同步到所有備指定控制器上; 所述Leader通知所述主指定控制器與所述交換機建立SDN連接之后進一步包括: Leader發(fā)現(xiàn)所述主指定控制器故障,則在所述交換機的所有備指定控制器中選擇一 個作為所述交換機的新主指定控制器,通知所述新主指定控制器與所述交換機建立SDN連 接,并將所述交換機的所有新備指定控制器的地址通知所述新主指定控制器,以使得:所述 新主指定控制器與所述交換機建立SDN連接后,將所述交換機的轉(zhuǎn)發(fā)流表同步到所有新備 指定控制器上。
6. -種軟件定義網(wǎng)絡SDN連接建立控制方法,其特征在于,該方法包括: 交換機向控制器集群內(nèi)的領導者Leader發(fā)起SDN連接建立請求消息,以使得:所述 Leader在控制器集群內(nèi)為本交換機選擇指定控制器,其中,所述SDN連接建立請求消息的 目的地址為控制器集群的集群IP地址,同時,該消息中攜帶用于唯一標識本次SDN連接建 立請求的事件ID,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在Leander 上生效; 交換機接收所述指定控制器發(fā)來的SDN連接建立請求消息,將該消息中的事件ID與自 身發(fā)出的所述SDN連接建立請求消息中的事件ID進行比較,若兩者相同,則與所述指定控 制器建立SDN連接;否則,拒絕與所述指定控制器建立SDN連接。
7. 根據(jù)權利要求6所述的方法,其特征在于,所述交換機上預先配置了控制器地址的 網(wǎng)段范圍, 所述指定控制器發(fā)來的SDN連接建立請求消息的源地址為該指定控制器的獨立地址, 該獨立地址用于唯一標識該指定控制器; 所述交換機將該消息中的事件ID與自身發(fā)出的所述SDN連接建立請求消息中的事件 ID進行比較進一步包括: 交換機判斷所述指定控制器發(fā)來的SDN連接建立請求消息中的源IP地址是否位于自 身配置的控制器地址的網(wǎng)段范圍內(nèi),若位于且確定所述指定控制器發(fā)來的SDN連接建立請 求消息中的事件ID與本交換機發(fā)出的所述SDN連接建立請求消息中的事件ID相同,則執(zhí) 行所述與所述指定控制器建立SDN連接的動作;否則,執(zhí)行所述拒絕與所述指定控制器建 立SDN連接的動作。
8. -種軟件定義網(wǎng)絡SDN連接建立控制裝置,位于SDN的控制器集群內(nèi)的領導者 Leader上,其特征在于,該裝置包括: 連接消息接收模塊:接收交換機發(fā)來的SDN連接建立請求消息,該消息的目的地址為 控制器集群的集群IP地址,且該消息攜帶用于唯一標識本次SDN連接建立請求的事件ID ; 其中,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只在Leander上生效; 控制器指定模塊,將連接消息接收模塊接收到的SDN連接建立請求消息同步到控制器 集群內(nèi)的控制器,并按照預設指定原則在控制器集群內(nèi)為所述交換機選擇指定控制器,通 知所述指定控制器攜帶所述事件ID與所述交換機建立SDN連接。
9. 根據(jù)權利要求8所述的裝置,其特征在于,所述控制器指定模塊通知所述指定控制 器攜帶所述事件ID與所述交換機建立SDN連接包括: 向所述指定控制器發(fā)送控制器指定消息,該消息攜帶所述交換機的地址,以使得:所述 指定控制器根據(jù)所述交換機的地址查找到所述交換機發(fā)來的SDN連接建立請求消息,并根 據(jù)該請求消息向所述交換機發(fā)起SDN連接建立請求消息,其中,指定控制器發(fā)起的SDN連接 建立請求消息中的事件ID與所述交換機發(fā)來的SDN連接建立請求消息中的事件ID相同; 或者,向所述指定控制器發(fā)送控制器指定消息,該消息攜帶所述交換機的地址,同時攜 帶所述交換機發(fā)來的SDN連接建立請求消息中的事件ID,以使得:所述指定控制器根據(jù)所 述交換機的地址和事件ID查找到所述交換機發(fā)來的SDN連接建立請求消息,并根據(jù)該請求 消息向所述交換機發(fā)起攜帶所述事件ID的SDN連接建立請求消息,其中,指定控制器發(fā)起 的SDN連接建立請求消息中的事件ID與所述交換機發(fā)來的SDN連接建立請求消息中的事 件ID相同。
10. 根據(jù)權利要求8所述的裝置,其特征在于,所述控制器指定模塊通知所述指定控制 器與所述交換機建立SDN連接之后進一步包括 : 當接收到所述指定控制器返回的指示接受指定的應答消息時,記錄所述交換機與所述 指定控制器之間的對應關系; 當接收到所述指定控制器返回的指示拒絕指定的應答消息時,返回所述按照預設指定 原則在控制器集群內(nèi)為所述交換機選擇指定控制器的動作。
11. 根據(jù)權利要求8所述的裝置,其特征在于,所述控制器指定模塊按照預設指定原則 在控制器集群內(nèi)為所述交換機選擇指定控制器為 : 按照預設指定原則在控制器集群內(nèi)選擇一個控制器作為所述交換機的主指定控制器, 選擇至少一個控制器作為所述交換機的備指定控制器; 且,所述控制器指定模塊通知所述指定控制器與所述交換機建立SDN連接為: 通知所述主指定控制器與所述交換機建立SDN連接,并將所有備指定控制器的地址通 知所述主指定控制器,以使得:所述主指定控制器與所述交換機建立SDN連接后,將所述交 換機的轉(zhuǎn)發(fā)流表同步到所有備指定控制器上; 所述控制器指定模塊進一步用于, 當發(fā)現(xiàn)所述主指定控制器故障時,在所述交換機的所有備指定控制器中選擇一個作為 所述交換機的新主指定控制器,通知所述新主指定控制器與所述交換機建立SDN連接,并 將所述交換機的所有新備指定控制器的地址通知所述新主指定控制器,以使得:所述新主 指定控制器與所述交換機建立SDN連接后,將所述交換機的轉(zhuǎn)發(fā)流表同步到所有新備指定 控制器上。
12. -種軟件定義網(wǎng)絡SDN連接建立控制裝置,該裝置位于SDN內(nèi)的交換機上,其特征 在于,該裝置包括: SDN連接發(fā)起模塊,向控制器集群內(nèi)的領導者Leader發(fā)起SDN連接建立請求消息,以 使得:所述Leader在控制器集群內(nèi)為本交換機選擇指定控制器,其中,所述SDN連接建立 請求消息的目的地址為控制器集群的集群IP地址,同時,該消息中攜帶用于唯一標識本次 SDN連接建立請求的事件ID,所述集群IP地址配置在控制器集群內(nèi)的所有控制器上,但只 在Leander上生效; SDN連接建立模塊:接收所述指定控制器發(fā)來的SDN連接建立請求消息,將該消息中的 事件ID與SDN連接發(fā)起模塊發(fā)出的所述SDN連接建立請求消息中的事件ID進行比較,若 兩者相同,則與所述指定控制器建立SDN連接;否則,拒絕與所述指定控制器建立SDN連接。
13.根據(jù)權利要求12所述的裝置,其特征在于,所述交換機上預先配置了控制器地址 的網(wǎng)段范圍, 所述SDN連接建立模塊接收到的指定控制器發(fā)來的SDN連接建立請求消息的源地址為 該指定控制器的獨立地址,該獨立地址用于唯一標識該指定控制器; 所述SDN連接建立模塊將該消息中的事件ID與SDN連接發(fā)起模塊發(fā)出的所述SDN連 接建立請求消息中的事件ID進行比較進一步包括: 判斷所述指定控制器發(fā)來的SDN連接建立請求消息中的源IP地址是否位于自身配置 的控制器地址的網(wǎng)段范圍內(nèi),若位于且確定所述指定控制器發(fā)來的SDN連接建立請求消息 中的事件ID與SDN連接發(fā)起模塊發(fā)出的所述SDN連接建立請求消息中的事件ID相同,則 執(zhí)行所述與所述指定控制器建立SDN連接的動作;否則,執(zhí)行所述拒絕與所述指定控制器 建立SDN連接的動作。
【文檔編號】H04L29/08GK104092774SQ201410353637
【公開日】2014年10月8日 申請日期:2014年7月23日 優(yōu)先權日:2014年7月23日
【發(fā)明者】宋小恒 申請人:杭州華三通信技術有限公司