一種負載均衡方法、裝置和系統(tǒng)的制作方法
【技術(shù)領域】
[0001] 本發(fā)明涉及通信技術(shù),尤其涉及一種負載均衡方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002] 軟件定義網(wǎng)絡(Software Defined Network,SDN)是一種新型網(wǎng)絡創(chuàng)新架構(gòu)。SDN 網(wǎng)絡采用的OpenFlow協(xié)議通過將網(wǎng)絡設備控制面(包含OpenFlow控制器Controller)與 數(shù)據(jù)面(包含OpenFlow交換機Capable Switch)分離開來,從而實現(xiàn)了網(wǎng)絡流量的靈活控 制,為核心網(wǎng)絡及應用的創(chuàng)新提供了良好的平臺。
[0003] OpenFlow協(xié)議用來描述控制器和交換機之間交互所用信息的標準,以及控制器和 交換機的接口標準。協(xié)議的核心部分是用于OpenFlow協(xié)議信息結(jié)構(gòu)的集合。
[0004] 控制器通過OpenFlow協(xié)議來管理交換機。通過此協(xié)議,控制器既可以主動也可被 動的增加、更新或刪除流表項(flow entry)。
[0005] 等價多路徑(Equal Cost Multi-Path,ECMP)是一種能夠有效利用網(wǎng)絡傳輸帶寬 的技術(shù)。在傳統(tǒng)路由技術(shù)中,發(fā)往某一目的地址的流量只能利用其中的一條鏈路,其他鏈路 處于備份或者無效狀態(tài),并且在動態(tài)路由環(huán)境下鏈路之間的切換需要一定的時間。而在引 入ECMP技術(shù)下,發(fā)往某一目的地址的流量能夠被分配到多個等價的路徑上。
[0006] 在實際轉(zhuǎn)發(fā)中,設備往往通過不同的策略實現(xiàn)流量在不同路徑上負載均衡(Load Balancing),進一步的提升流量轉(zhuǎn)發(fā)中的鏈路利用效率。常見的分流策略有:逐包(per packet)和逐流(per flow)。在逐包策略負載均衡下,到同一個目的的數(shù)據(jù)報文,被均衡的 分配到不同的路徑上;而在逐流策略負載均衡下,到同一個目的地址的報文,依據(jù)報文中一 些元素(IP報文往往是五元組:源IP地址、目的IP地址、IP協(xié)議號、源端口號、目的端口號) 劃分為不同流(Flow),然后將不同流均衡的分配到不同的路徑上。
[0007] 根據(jù)現(xiàn)有Openflow協(xié)議,ECMP是通過Select類型的組表(Group Table)來實現(xiàn) 的:不同的ECMP轉(zhuǎn)發(fā)路徑通過組表下不同的容器(bucket)來表達,當報文進入Openflow 轉(zhuǎn)發(fā)管道后執(zhí)行到包含不同的bucket的Select類型的組表時,將根據(jù)一定負載均衡算法 把報文分配到某一個bucket中處理。
[0008] 但是,現(xiàn)有Openflow協(xié)議中,在執(zhí)行Select類型的組表的時候,Openflow控制器 并沒有指定交換機采用什么負載均衡算法,也沒有指明參與負荷分擔計算的報文元素。因 此就存在下面兩點問題:
[0009] 在逐包策略下,控制器認定的一條流量被交換機自己的選路算法分配到了不同路 徑上,導致失序;
[0010] 在逐流策略下,Openflow協(xié)議定義了多個報文字段作為一條流量的標識 (Openflowl. 3版本有40個字段),而傳統(tǒng)轉(zhuǎn)發(fā)設備往往只會選取有限的字段來標識一條 流,通常IP轉(zhuǎn)發(fā)往往以IP五元組,多協(xié)議標簽交換(Multi-Protocol Label Switching, MPLS)轉(zhuǎn)發(fā)以源、目的MAC和標簽值,交換機標識流量的力度往往過粗。當交換機標識流量 的力度過粗時,控制器定義流量得不到精細化的控制;而當控制器標識的流量的力度過粗 時,控制器認定的流量就有可能失序。
【發(fā)明內(nèi)容】
[0011]為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明實施例提供一種負載均衡方法、裝置和系統(tǒng)。 [0012] 本發(fā)明提供一種負載均衡方法,所述方法包括:
[0013] 交換機發(fā)送組表支持的選路策略;
[0014] 接收Select類型組表條目和指定選路策略;
[0015] 當對流量執(zhí)行Select類型組表時,根據(jù)收到的指定選路策略執(zhí)行相應的選路算 法。
[0016] 本發(fā)明提供另一種負載均衡方法,所述方法包括:
[0017] 控制器接收組表支持的選路策略;
[0018] 根據(jù)接收到的選路策略,以及應用APP或者控制器自身的業(yè)務需求確定指定選路 策略;
[0019] 發(fā)送Select類型組表條目和所述指定選路策略。
[0020] 本發(fā)明提供再一種負載均衡方法,所述方法包括:
[0021] 交換機向控制器發(fā)送組表支持的選路策略;
[0022] 控制器根據(jù)接收到的選路策略,以及應用APP或者控制器自身的業(yè)務需求確定指 定選路策略;
[0023] 控制器向交換機發(fā)送Select類型組表條目和所述指定選路策略;
[0024] 交換機當對流量執(zhí)行Select類型組表時,根據(jù)收到的所述指定選路策略執(zhí)行相 應的選路算法。
[0025] 本發(fā)明提供一種交換機,所述交換機包括:
[0026] 第一發(fā)送單元,用于發(fā)送組表支持的選路策略;
[0027] 第一接收單元,用于接收Select類型組表條目和指定選路策略;
[0028] 執(zhí)行單元,用于當對流量執(zhí)行Select類型組表時,根據(jù)收到的指定選路策略執(zhí)行 相應的選路算法。
[0029] 本發(fā)明提供一種控制器,所述控制器包括:
[0030] 第二接收單元,用于接收組表支持的選路策略;
[0031] 確定單元,用于根據(jù)接收到的選路策略,以及應用APP或者控制器自身的業(yè)務需 求確定指定選路策略;
[0032] 第二發(fā)送單元,用于發(fā)送Select類型組表條目和所述指定選路策略。
[0033] 本發(fā)明提供一種負載均衡系統(tǒng),所述系統(tǒng)包括控制器和至少一個交換機,其中,所 述交換機,用于向控制器發(fā)送組表支持的選路策略;當對流量執(zhí)行Select類型組表時,根 據(jù)控制器發(fā)來的指定選路策略執(zhí)行相應的選路算法;
[0034] 所述控制器,用于根據(jù)交換機發(fā)來的選路策略,以及應用APP或者控制器自身的 業(yè)務需求確定指定選路策略;向交換機發(fā)送Select類型組表條目和所述指定選路策略。
[0035] 由上可知,本發(fā)明的技術(shù)方案包括:交換機發(fā)送組表支持的選路策略;接收 Select類型組表條目和指定選路策略;當對流量執(zhí)行Select類型組表時,根據(jù)收到的指定 選路策略執(zhí)行相應的選路算法。由此,本發(fā)明實施例提供的SDN網(wǎng)絡中流量ECMP負載均衡 的解決方案,解決一條流的報文失序的問題。
【附圖說明】
[0036] 圖1為SDN網(wǎng)絡的結(jié)構(gòu)示意圖;
[0037] 圖2為本發(fā)明提供的一種負載均衡方法的實施例的實現(xiàn)流程圖;
[0038] 圖3為本發(fā)明提供的另一種負載均衡方法的實施例的實現(xiàn)流程圖;
[0039] 圖4為本發(fā)明提供的再一種負載均衡方法的實施例的實現(xiàn)流程圖;
[0040] 圖5為本發(fā)明提供的交換機的實施例的結(jié)構(gòu)示意圖;
[0041] 圖6為本發(fā)明提供的控制器的實施例的結(jié)構(gòu)示意圖;
[0042] 圖7為本發(fā)明提供的負載均衡系統(tǒng)的實施例的結(jié)構(gòu)示意圖;
[0043] 圖8為本發(fā)明提供的再一種負載均衡方法的第一實施例的實現(xiàn)流程圖;
[0044] 圖9為本發(fā)明提供的再一種負載均衡方法的第二實施例的實現(xiàn)流程圖;
[0045] 圖10為本發(fā)明提供的再一種負載均衡方法的第三實施例的實現(xiàn)流程圖。
【具體實施方式】
[0046] 本發(fā)明提供的一種負載均衡方法的實施例,如圖2所示,所述方法包括:
[0047] 步驟201、交換機發(fā)送組表支持的選路策略;
[0048] 這里,所述交換機為Openflow交換機,Openflow交換機向控制器上報組表能力 時,告知控制器該組表所支持的選路策略。所述選路策略至少包括逐流和逐包中的一種,默 認支持逐包模式的選路策略。
[0049] 步驟202、接收Select類型組表條目和指定選路策略;
[0050] 步驟203、當對流量執(zhí)行Select類型組表時,根據(jù)收到的指定選路策略執(zhí)行相應 的選路算法。
[0051] 這里,所述根據(jù)指定選路策略和指定選路鍵值執(zhí)行相應的選路算法為:
[0052] 根據(jù)選路鍵值從報文中提取元素,執(zhí)行逐流算法。
[0053] 在一實施例中,當組表支持的選路策略為逐流時,所述方法還包括:
[0054] 交換機發(fā)送選路鍵值;
[0055] 接收指定選路鍵值;
[0056] 相應的,所述執(zhí)行相應的選路算法為:
[0057] 根據(jù)收到的指定選路策略和指定選路鍵值執(zhí)行相應的選路算法。
[0058] 這里,默認情況下控制器認為Openflow交換機支持任意的匹配域(Match field) 字段組合作為鍵值。
[0059] 本發(fā)明提供的另一種負載均衡方法的實施例,如圖3所示,所述方法包括:
[0060] 步驟301、控制器接收組表支持的選路策略;
[0061] 步驟302、根據(jù)接收到的選路策略,以及應用APP或者控制器自身的業(yè)務需求確定 指定選路策略;
[0062] 步驟303、發(fā)送Select類型組表條目和所述指定選路策略。
[0063] 在一實施例中,所述方法還包括:
[0064] 控制器接收選路鍵值;
[0065] 根據(jù)接收到的選路鍵值,以及應用APP或者控制器自身的業(yè)務需求確定指定選路 鍵值并發(fā)送。
[0066] 本發(fā)明提供的再一種負載均衡方法,如圖4所示,所述方法包括:
[0067] 步驟401、交換機向控制器發(fā)送組表支持的選路策略;
[0068] 步驟402、控制器根據(jù)接收到的選路策略,以及應用APP或者控制器自身的業(yè)務需 求確定指定選路策略;
[0069] 步驟403、控制器向交換機發(fā)送Select類型組表條目和所述指定選路策略;
[0070] 步驟404、交換機當對流量執(zhí)行Select類型組表時,根據(jù)收到的所述指定選路策 略執(zhí)行相應的選路算法。
[0071] 在一實施例中,當組表支持的選路策略為逐流時,所述方法還包括:
[0072] 交換機向控制器發(fā)送選路鍵值;
[0073] 控制器根據(jù)接收到的選路鍵值,以及應用APP或者控制器自身的業(yè)務需求確定指 定選路鍵值并發(fā)送給交換機;
[0074] 相應的,所述執(zhí)行相應的選路算法為:
[0075] 交換機根據(jù)收到的指定選路策略和指定選路鍵值執(zhí)行相應的選路算法。
[0076] 本發(fā)明提供的一種交換機的實施例,如圖5所示,所述交換機包括:
[0077