一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令處理方法
【專利摘要】本發(fā)明公開了一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令處理方法,在執(zhí)行下行信令的預(yù)處理之后,進(jìn)一步執(zhí)行,判斷匹配項(xiàng)列表中是否還有更多匹配項(xiàng);如果判斷還有更多的匹配項(xiàng),則從匹配項(xiàng)列表中獲取一個(gè)條目;如果判斷否,則結(jié)束處理;在如果判斷還有更多的匹配項(xiàng),則從匹配項(xiàng)列表中獲取一個(gè)條目步驟之后,進(jìn)一步判斷是否還有更多的Action項(xiàng);如果沒有更多的Action項(xiàng),則將新的Action項(xiàng)列表與匹配項(xiàng)結(jié)合生成下行信令,下發(fā)給虛擬網(wǎng)絡(luò)交換機(jī),返回繼續(xù)判斷還有更多的匹配項(xiàng);如果還有更多的Action項(xiàng),則獲取下一條Action項(xiàng)。
【專利說明】—種基于OpenF1w的SDN虛擬化平臺(tái)下行信令處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,具體涉及一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令處理方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)應(yīng)用與用戶數(shù)量急劇增長,基于TCP/IP的互聯(lián)網(wǎng)逐漸暴露出許多的問題與弊端。不少國家提出了下一代互聯(lián)網(wǎng)計(jì)劃,軟件定義網(wǎng)絡(luò)應(yīng)運(yùn)而生。
[0003]OpenFlow軟件定義網(wǎng)絡(luò)由兩部分組成:數(shù)據(jù)平面,用來轉(zhuǎn)發(fā)網(wǎng)絡(luò)數(shù)據(jù)包;控制平面,用來控制網(wǎng)絡(luò)數(shù)據(jù)包的轉(zhuǎn)發(fā)策略。數(shù)據(jù)平面的OpenFlow交換機(jī)內(nèi)部維護(hù)一張轉(zhuǎn)發(fā)表,稱之為虛擬網(wǎng)絡(luò)流規(guī)則描述表。虛擬網(wǎng)絡(luò)流規(guī)則描述表可以根據(jù)數(shù)據(jù)包包頭的一層(物理層)到四層(傳輸層)特征進(jìn)行匹配,并指定匹配虛擬網(wǎng)絡(luò)流規(guī)則描述表項(xiàng)的數(shù)據(jù)包的處理方法。當(dāng)一個(gè)數(shù)據(jù)包進(jìn)入OpenFlow交換機(jī)后,OpenFlow交換機(jī)會(huì)查詢內(nèi)部的虛擬網(wǎng)絡(luò)流規(guī)則描述表,按虛擬網(wǎng)絡(luò)流規(guī)則描述表處理數(shù)據(jù)包。若OpenFlow交換機(jī)內(nèi)部沒有能夠匹配數(shù)據(jù)包的虛擬網(wǎng)絡(luò)流規(guī)則描述表,OpenFlow交換機(jī)會(huì)將這個(gè)數(shù)據(jù)包轉(zhuǎn)發(fā)給控制平面的OpenFlow控制器,OpenFlow控制器再向OpenFlow交換機(jī)下發(fā)一條虛擬網(wǎng)絡(luò)流規(guī)則描述表,指示OpenFlow交換機(jī)如何處理這個(gè)數(shù)據(jù)包。OpenFlow交換機(jī)和OpenFlow控制器之間的通信遵循OpenFlow協(xié)議。OpenFlow協(xié)議定義的上行信令(OpenFlow交換機(jī)到OpenFlow控制器)和下行信令(OpenFlow控制器到OpenFlow交換機(jī))。
[0004]如果將一個(gè)OpenFlow網(wǎng)絡(luò)交給多個(gè)OpenFlow控制器來控制,每個(gè)OpenFlow控制器只控制網(wǎng)絡(luò)中的一部分特定的網(wǎng)絡(luò)數(shù)據(jù)包,這樣,每個(gè)OpenFlow控制器就控制著一個(gè)虛擬網(wǎng)絡(luò)。但是在OpenFlowl.0中,每個(gè)OpenFlow交換機(jī)只能有一個(gè)控制邏輯,因此,不能將不同特征的數(shù)據(jù)包交給不同的OpenFlow控制器處理。為此,需要在OpenFlow交換機(jī)和OpenFlow控制器之間添加一個(gè)網(wǎng)絡(luò)虛擬化層,它接收所有OpenFlow交換機(jī)的上行信令,并根據(jù)上行信令的特征將它轉(zhuǎn)發(fā)給對(duì)應(yīng)的OpenFlow控制器處理。同樣,網(wǎng)絡(luò)虛擬化層收到的OpenFlow控制器下發(fā)的下行信令也要對(duì)信令進(jìn)行處理,處理后再將其轉(zhuǎn)發(fā)給相應(yīng)的OpenFlow交換機(jī)。
[0005]網(wǎng)絡(luò)虛擬化層具體實(shí)現(xiàn)過程如下:網(wǎng)絡(luò)虛擬化平臺(tái)為網(wǎng)絡(luò)建立與多個(gè)虛擬網(wǎng)絡(luò)相對(duì)應(yīng)的多個(gè)切片(Slice),為每個(gè)Slice指定一個(gè)OpenFlow控制器,將屬于不同Slice的網(wǎng)絡(luò)數(shù)據(jù)包轉(zhuǎn)發(fā)給對(duì)應(yīng)的OpenFlow控制器以實(shí)現(xiàn)網(wǎng)絡(luò)虛擬化;再向每個(gè)Slice中添加流空間(FlowSpace)。流空間描述了轉(zhuǎn)發(fā)給Slice的數(shù)據(jù)包的特征,至少包含以下多個(gè)匹配項(xiàng)中的一個(gè)或多個(gè):交換機(jī)端口(Iayerl),源mac/目的mac或以太網(wǎng)類型(layer2),源IP/目的IP或協(xié)議類型(layer3),TCP/UDP源端口 /目的端口(layer4);網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)入OpenFlow交換機(jī)后向網(wǎng)絡(luò)虛擬化平臺(tái)發(fā)送PacketIn信令,網(wǎng)絡(luò)虛擬化平臺(tái)將PacketIn信令與FlowSpace中的匹配項(xiàng)進(jìn)行匹配,若PacketIn信令匹配了 FlowSpace中的流規(guī)則,貝Ij將這條PacketIn消息轉(zhuǎn)發(fā)給這條FlowSpace所在的OpenFlow控制器。[0006]現(xiàn)有技術(shù)中存在以下缺點(diǎn):
[0007]I)網(wǎng)絡(luò)虛擬化平臺(tái)基于每個(gè)交換機(jī)進(jìn)行虛擬網(wǎng)絡(luò)劃分,每當(dāng)ー個(gè)數(shù)據(jù)包進(jìn)入OpenFlow交換機(jī)產(chǎn)生PacketIn,網(wǎng)絡(luò)虛擬化平臺(tái)都會(huì)將數(shù)據(jù)包與所有FlowSpace匹配,判斷該數(shù)據(jù)包屬于哪個(gè)虛擬網(wǎng)絡(luò),當(dāng)數(shù)據(jù)包離開本交換機(jī)進(jìn)入下一個(gè)交換機(jī)后,網(wǎng)絡(luò)虛擬化平臺(tái)還會(huì)將此數(shù)據(jù)包與所有FlowSpace匹配,判斷該數(shù)據(jù)包屬于哪個(gè)虛擬網(wǎng)絡(luò)。這樣每一跳都要進(jìn)行虛擬網(wǎng)絡(luò)的判斷,效率較低。
[0008]2) OpenFlow協(xié)議允許交換機(jī)對(duì)數(shù)據(jù)包進(jìn)行靈活的修改操作,當(dāng)一個(gè)數(shù)據(jù)包被一個(gè)虛擬網(wǎng)絡(luò)操作后,數(shù)據(jù)包的部分字段可能被改變,此數(shù)據(jù)包進(jìn)入另ー個(gè)OpenFlow交換機(jī)后,可能被網(wǎng)絡(luò)虛擬化平臺(tái)判斷為另ー個(gè)虛擬網(wǎng)絡(luò)的數(shù)據(jù)包,這就導(dǎo)致了一個(gè)數(shù)據(jù)包被不同的與虛擬網(wǎng)絡(luò)相對(duì)應(yīng)的OpenFlow控制器控制,數(shù)據(jù)包隔離性差。
[0009]3)網(wǎng)絡(luò)虛擬化平臺(tái)雖然對(duì)與虛擬網(wǎng)絡(luò)相對(duì)應(yīng)的OpenFlow控制器下發(fā)的虛擬網(wǎng)絡(luò)流規(guī)則描述表匹配項(xiàng)進(jìn)行檢查與修改,但是對(duì)flowspace的互斥性沒有檢查,這導(dǎo)致與虛擬網(wǎng)絡(luò)I相對(duì)應(yīng)的OpenFlow控制器下發(fā)的虛擬網(wǎng)絡(luò)流規(guī)則描述表可能匹配了虛擬網(wǎng)絡(luò)2對(duì)應(yīng)的數(shù)據(jù)包,產(chǎn)生信令越界。
[0010]4)網(wǎng)絡(luò)虛擬化平臺(tái)對(duì)虛擬網(wǎng)絡(luò)的物理范圍沒有定義,這會(huì)導(dǎo)致虛擬網(wǎng)絡(luò)數(shù)據(jù)包任意擴(kuò)散,數(shù)據(jù)包不具有封閉性。
【發(fā)明內(nèi)容】
[0011]為克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令的預(yù)處理方法,其特征在于:
[0012]網(wǎng)絡(luò)虛擬化平臺(tái)接收虛擬網(wǎng)絡(luò)控制器下發(fā)的下行信令;
[0013]向下行信令中的特定域添加虛擬網(wǎng)絡(luò)流標(biāo)簽相匹配的第一匹配項(xiàng),使得該特定域與虛擬網(wǎng)絡(luò)內(nèi)部數(shù)據(jù)包相匹配;
[0014]將該第一匹配項(xiàng)添加到匹配項(xiàng)列表中;
[0015]向下行信令中的特定域添加與無標(biāo)簽相匹配的匹配項(xiàng),該匹配項(xiàng)為第二匹配項(xiàng),第二匹配項(xiàng)與從虛擬網(wǎng)絡(luò)邊緣進(jìn)入虛擬網(wǎng)絡(luò)的數(shù)據(jù)包相匹配;
[0016]將第二匹配項(xiàng)與虛擬網(wǎng)絡(luò)流規(guī)則中的每一條流進(jìn)行并集運(yùn)算,將運(yùn)算后的匹配項(xiàng)加入到匹配項(xiàng)列表中;
[0017]得到匹配項(xiàng)列表。
[0018]優(yōu)選地,所述虛擬網(wǎng)絡(luò)控制器為OpenFlow控制器;所述下行信令為FlowMod ;所述特定域?yàn)橄滦行帕頕lowMod中的Match域;所述匹配項(xiàng)列表為下行信令FlowMod的Match域在該虛擬網(wǎng)絡(luò)中的等價(jià)Match列表。
[0019]優(yōu)選地,檢查特定域列表中是否包含泛洪操作的指示符;如果特定域列表中不包含泛洪操作的指示符,則針對(duì)匹配項(xiàng)列表中的每ー個(gè)匹配項(xiàng)生成與之對(duì)應(yīng)的域,并下發(fā)流規(guī)則,以及結(jié)束預(yù)處理過程;如果特定域列表中包含泛洪操作的指示符,則表示包含泛洪操作;獲取虛擬網(wǎng)絡(luò)中虛擬交換機(jī)的所有端ロ,檢測是否還有更多的端ロ ;如果判斷為是,則獲取ー個(gè)端ロ ;判斷端ロ是否是虛網(wǎng)邊緣端ロ ;如果判斷端ロ是虛網(wǎng)邊緣端ロ,則將該端ロ與匹配項(xiàng)列表中的所有匹配項(xiàng)為無標(biāo)簽的匹配項(xiàng)取并集,得到的新的匹配項(xiàng)添加到新的匹配項(xiàng)列表中。[0020]優(yōu)選地,如果判斷端口不是虛網(wǎng)邊緣端口 ;進(jìn)一步判斷端口是否為虛網(wǎng)內(nèi)部端口。
[0021]優(yōu)選地,如果判斷端口不是虛網(wǎng)內(nèi)部端口,則返回至檢測是否還有更多的端口的步驟。
[0022]優(yōu)選地,如果判斷端口是虛網(wǎng)內(nèi)部端口,則將該端口與匹配項(xiàng)列表中的所有匹配項(xiàng)為切片標(biāo)簽的匹配項(xiàng)取并集,得到的新的匹配項(xiàng)添加到新的匹配項(xiàng)列表中。
[0023]優(yōu)選地,如果檢測是否還有更多的端口的步驟的檢測結(jié)果是沒有更多的端口,則針對(duì)匹配項(xiàng)列表中的每一個(gè)匹配項(xiàng)生成與之對(duì)應(yīng)的域,并下發(fā)流規(guī)則,以及結(jié)束預(yù)處理過程。
[0024]優(yōu)選地,所述特定域是Action域;所述Action域?qū)儆贔lowMod信令。
[0025]本發(fā)明還提供了一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令處理方法,其特征在于:
[0026]在執(zhí)行下行信令的預(yù)處理之后,進(jìn)一步執(zhí)行,
[0027]判斷匹配項(xiàng)列表中是否還有更多匹配項(xiàng);
[0028]如果判斷還有更多的匹配項(xiàng),則從匹配項(xiàng)列表中獲取一個(gè)條目;
[0029]如果判斷否,則結(jié)束處理;
[0030]在如果判斷還有更多的匹配項(xiàng),則從匹配項(xiàng)列表中獲取一個(gè)條目步驟之后,進(jìn)一步判斷是否還有更多的Action項(xiàng);
[0031]如果沒有更多的Action項(xiàng),則將新的Action項(xiàng)列表與匹配項(xiàng)結(jié)合生成下行信令,下發(fā)給物理交換機(jī),返回繼續(xù)判斷還有更多的匹配項(xiàng);
[0032]如果還有更多的Action項(xiàng),貝U獲取下一條Action項(xiàng)。
[0033]優(yōu)選地,在獲取下一條Action項(xiàng)的步驟之后,進(jìn)一步判斷Action項(xiàng)的類型是否為輸出類型;若不為輸出類型,則將此Action項(xiàng)添加到新的Action項(xiàng)列表中,返回到判斷是否還有更多的Action項(xiàng)步驟;若為輸出類型,則進(jìn)一步檢查輸出類型參數(shù)是否等于泛洪操作的指示符;如果檢查輸出類型參數(shù)是否等于泛洪操作的指示符的結(jié)果為否,則一步執(zhí)行如果需要調(diào)整流標(biāo)簽狀態(tài),則將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,以及將輸出類型為端口添加到新的Act ion項(xiàng)列表中,返回至判斷是否還有更多的Act ion項(xiàng)的步驟;如果檢查輸出類型參數(shù)是否等于泛洪操作的指示符的結(jié)果為是,則進(jìn)一步獲取虛擬網(wǎng)絡(luò)中除匹配項(xiàng)中輸入端口之外的其他所有端口。
[0034]優(yōu)選地,在獲取虛擬網(wǎng)絡(luò)中除匹配項(xiàng)中輸入端口之外的其他所有端口的步驟之后,進(jìn)一步針對(duì)每一個(gè)端口,如需要調(diào)整流標(biāo)簽,則將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,以及將輸出類型為端口添加到新的Action項(xiàng)列表中,返回至判斷是否還有更多的Action項(xiàng)的步驟。
[0035]優(yōu)選地,所述下行信令為FlowMod信令;所述特定Action項(xiàng)為ModVlan Action項(xiàng)。
[0036]本發(fā)明還提供了一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令處理方法,其特征在于:
[0037]獲取下行信令的特定域;
[0038]判斷是否還有更多的Action項(xiàng);
[0039]如果沒有更多的Action項(xiàng),則下發(fā)下行信令,結(jié)束處理;[0040]如果還有更多的Action項(xiàng),獲取下一條Action項(xiàng);
[0041]在獲取下一條Action項(xiàng)步驟之后,進(jìn)ー步執(zhí)行
[0042]判斷Action項(xiàng)的類型是否為輸出;
[0043]如果Action項(xiàng)的類型不為輸出,則將該Action項(xiàng)添加到Action項(xiàng)列表中,返回判斷是否還有更多的Action項(xiàng)的步驟;
[0044]如果Action項(xiàng)的類型為輸出,則進(jìn)ー步檢查該Action項(xiàng)是否包含泛洪操作的指示符;
[0045]如果檢查該Action項(xiàng)是否包含泛洪操作的指示符的結(jié)果為否,且如果需要調(diào)整流標(biāo)簽狀態(tài),將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,以及將輸出類型等于端ロ添加到新的Action項(xiàng)列表中,并返回到判斷是否還有更多的Action項(xiàng)的步驟;
[0046]如果檢查該Action項(xiàng)是否包含泛洪操作的指示符的結(jié)果為是,則判斷下行信令的BufferID是否等于-1 ;
[0047]如果BufferID等于-1,獲取虛擬網(wǎng)絡(luò)交換機(jī)在虛擬網(wǎng)絡(luò)中的所有端ロ ;針對(duì)每一個(gè)端ロ,如需要調(diào)整流標(biāo)簽,將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,輸出類型等于端ロ添加到新的Action項(xiàng)列表中,返回到判斷是否還有更多的Action項(xiàng)的步驟;
[0048]如果BufferID不等于-1,獲取除BufferID對(duì)應(yīng)數(shù)據(jù)包入端ロ以外,虛擬網(wǎng)絡(luò)交換機(jī)在虛擬網(wǎng)絡(luò)中的其他所有端ロ ;針對(duì)每ー個(gè)端ロ,如需要調(diào)整流標(biāo)簽,將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,輸出類型等于端ロ添加到新的Action項(xiàng)列表中,返回到判斷是否還有更多的Action項(xiàng)的步驟。
[0049]優(yōu)選地,所述下行信令為PacketOut信令;所述特定Action項(xiàng)為ModVlan Action項(xiàng)。
[0050]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,并可依照說明書的內(nèi)容予以實(shí)施,以下以本發(fā)明的較佳實(shí)施例并配合附圖詳細(xì)說明如后。
【專利附圖】
【附圖說明】
[0051]圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)絡(luò)結(jié)構(gòu)圖;
[0052]圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)包流向示意圖;
[0053]圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的PacketIn信令處理流程;
[0054]圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的Match域的預(yù)處理流程;
[0055]圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的了 FlowMod信令中的Action域的預(yù)處理流程;
[0056]圖6示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的FlowMod信令中的Action域的處理流程;
[0057]圖7示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的PacketOut信令中的Action域的處理流程。
【具體實(shí)施方式】
[0058]為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對(duì)依據(jù)本發(fā)明提出的基于OpenFlow協(xié)議的網(wǎng)絡(luò)虛擬化平臺(tái)上下行信令處理方法其【具體實(shí)施方式】、特征及其功效,詳細(xì)說明如后。在下述說明中,不同的“ー實(shí)施例”或“實(shí)施例”指的不一定是同一實(shí)施例。此外,一或多個(gè)實(shí)施例中的特定特征、結(jié)構(gòu)、或特點(diǎn)可由任何合適形式組合。
[0059]圖1中示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)絡(luò)結(jié)構(gòu)圖,其中網(wǎng)絡(luò)虛擬化平臺(tái)內(nèi)部維護(hù)虛擬網(wǎng)絡(luò)拓?fù)?虛擬網(wǎng)絡(luò)內(nèi)部交換機(jī)為虛擬網(wǎng)絡(luò)交換機(jī)。OpenFlow交換機(jī)為網(wǎng)絡(luò)中的物理交換機(jī)。虛擬化平臺(tái)內(nèi)部根據(jù)用戶配置,生成多個(gè)虛擬網(wǎng)絡(luò),每個(gè)虛擬網(wǎng)絡(luò)分別連接相應(yīng)的虛擬網(wǎng)絡(luò)控制器。對(duì)于物理交換機(jī)來說,虛擬化平臺(tái)就相當(dāng)于物理交換機(jī)的控制器。
[0060]網(wǎng)絡(luò)虛擬化平臺(tái)內(nèi)部維護(hù)有虛擬網(wǎng)絡(luò)流規(guī)則描述表,當(dāng)物理交換機(jī)接收到一個(gè)數(shù)據(jù)包時(shí),如果物理交換機(jī)沒有與該數(shù)據(jù)包匹配的流表,則將該數(shù)據(jù)包封裝在PacketIn信令中發(fā)給網(wǎng)絡(luò)虛擬化平臺(tái),網(wǎng)絡(luò)虛擬化平臺(tái)根據(jù)PacketIn信令中的數(shù)據(jù)包特征決定將這個(gè)數(shù)據(jù)包交給哪個(gè)虛擬網(wǎng)絡(luò)來處理。如果PacketIn信令中的數(shù)據(jù)包含有虛擬網(wǎng)絡(luò)流標(biāo)簽,則彈出虛擬網(wǎng)絡(luò)流標(biāo)簽后將其根據(jù)虛擬網(wǎng)絡(luò)流標(biāo)簽發(fā)給相應(yīng)的虛擬網(wǎng)絡(luò)控制器,若不含有虛擬網(wǎng)絡(luò)流標(biāo)簽,則將PacketIn信令中的數(shù)據(jù)包與虛擬網(wǎng)絡(luò)流規(guī)則描述表進(jìn)行匹配,并將此數(shù)據(jù)包交給匹配項(xiàng)所指示的虛擬網(wǎng)絡(luò)處理。
[0061]圖2中示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)包流向示意圖。
[0062]①表示數(shù)據(jù)包從終端發(fā)往OpenFlow交換機(jī);
[0063]②表示接收到數(shù)據(jù)包后,如果物理交換機(jī)、即OpenFlow交換機(jī)沒有對(duì)應(yīng)的流表時(shí),物理交換機(jī)將數(shù)據(jù)包封裝在PacketIn信令中發(fā)給虛擬化平臺(tái);
[0064]③表示網(wǎng)絡(luò)虛擬化平臺(tái)判斷數(shù)據(jù)包是否含有虛擬網(wǎng)絡(luò)流標(biāo)簽;
[0065]④表示如果判斷數(shù)據(jù)包中沒有虛擬網(wǎng)絡(luò)流標(biāo)簽,則需要根據(jù)虛擬網(wǎng)絡(luò)流規(guī)則表決定數(shù)據(jù)包被送往哪個(gè)虛網(wǎng);
·[0066]⑤表示PacketIn信令通過虛擬網(wǎng)絡(luò)內(nèi)的虛擬網(wǎng)絡(luò)交換機(jī)發(fā)送給虛擬網(wǎng)絡(luò)控制器;
[0067]⑥表示虛擬網(wǎng)絡(luò)控制器向虛擬網(wǎng)絡(luò)交換機(jī)發(fā)送下行信令(FlowMod或PacketOut);
[0068]⑦表示網(wǎng)絡(luò)虛擬化平臺(tái)對(duì)下行信令進(jìn)行處理后,將處理后的下行信令發(fā)送給物理交換機(jī)。
[0069]在本發(fā)明的一個(gè)【具體實(shí)施方式】中,網(wǎng)絡(luò)虛擬化平臺(tái)中維護(hù)有兩張表,一張是虛擬網(wǎng)絡(luò)物理范圍描述表,一張是虛擬網(wǎng)絡(luò)流規(guī)則描述表。在建立虛擬網(wǎng)絡(luò)時(shí),根據(jù)虛擬網(wǎng)絡(luò)物理范圍描述表建立虛擬網(wǎng)絡(luò)拓?fù)?。在虛擬網(wǎng)絡(luò)運(yùn)行過程中,根據(jù)虛擬網(wǎng)絡(luò)的流規(guī)則,將物理網(wǎng)絡(luò)中的數(shù)據(jù)包交給與虛擬網(wǎng)絡(luò)相對(duì)應(yīng)的虛擬網(wǎng)絡(luò)控制器處理。
[0070]所述虛擬網(wǎng)絡(luò)物理范圍描述表用于描述虛擬網(wǎng)絡(luò)的虛擬拓?fù)洌浣Y(jié)構(gòu)如下:
[0071]
DPID OFPort
DPIDl OFPortl
DPID2 0FPort2
[0072]表1虛擬網(wǎng)絡(luò)物理范圍描述表[0073]其中,DPID為ー個(gè)64bit標(biāo)識(shí)符,用來標(biāo)識(shí)一臺(tái)OF (OpenFlow)交換機(jī);0FPort為
ー個(gè)16bit標(biāo)識(shí)符,用來標(biāo)識(shí)ー個(gè)OF交換機(jī)中的ー個(gè)接ロ。
[0074]通過DPID和OFPort 二元組就可以唯一確定網(wǎng)絡(luò)中的ー個(gè)接ロ。虛擬網(wǎng)絡(luò)物理范
圍描述表可以完整地描述ー個(gè)虛擬網(wǎng)絡(luò)所使用的物理資源。
[0075]所述虛擬網(wǎng)絡(luò)流規(guī)則描述表用于描述虛擬網(wǎng)絡(luò)數(shù)據(jù)包,其結(jié)構(gòu)如下:
[0076]
【權(quán)利要求】
1.一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令的預(yù)處理方法,其特征在于: 網(wǎng)絡(luò)虛擬化平臺(tái)接收虛擬網(wǎng)絡(luò)控制器下發(fā)的下行信令; 向下行信令中的特定域添加虛擬網(wǎng)絡(luò)流標(biāo)簽相匹配的第一匹配項(xiàng),使得該特定域與虛擬網(wǎng)絡(luò)內(nèi)部數(shù)據(jù)包相匹配; 將該第一匹配項(xiàng)添加到匹配項(xiàng)列表中; 向下行信令中的特定域添加與無標(biāo)簽相匹配的匹配項(xiàng),該匹配項(xiàng)為第二匹配項(xiàng),第二匹配項(xiàng)與從虛擬網(wǎng)絡(luò)邊緣進(jìn)入虛擬網(wǎng)絡(luò)的數(shù)據(jù)包相匹配; 將第二匹配項(xiàng)與虛擬網(wǎng)絡(luò)流規(guī)則中的每一條流進(jìn)行并集運(yùn)算,將運(yùn)算后的匹配項(xiàng)加入到匹配項(xiàng)列表中; 得到匹配項(xiàng)列表; 或者 檢查特定域列表中是否包含泛洪操作的指示符; 如果特定域列表中不包含泛洪操作的指示符,則針對(duì)匹配項(xiàng)列表中的每一個(gè)匹配項(xiàng)生成與之對(duì)應(yīng)的域,并下發(fā)流規(guī)則,以及結(jié)束預(yù)處理過程; 如果特定域列表中包含泛洪操作的指示符,則表示包含泛洪操作; 獲取虛擬網(wǎng)絡(luò)中虛擬交換機(jī)的所有端口,檢測是否還有更多的端口 ; 如果判斷為是,則獲取一個(gè)端口 ; 判斷端口是否是虛網(wǎng)邊緣端·口; 如果判斷端口是虛網(wǎng)邊緣端口,則將該端口與匹配項(xiàng)列表中的所有匹配項(xiàng)為無標(biāo)簽的匹配項(xiàng)取并集,得到的新的匹配項(xiàng)添加到新的匹配項(xiàng)列表中; 如果判斷端口不是虛網(wǎng)邊緣端口; 進(jìn)一步判斷端口是否為虛網(wǎng)內(nèi)部端口; 如果判斷端口不是虛網(wǎng)內(nèi)部端口,則返回至檢測是否還有更多的端口的步驟; 如果判斷端口是虛網(wǎng)內(nèi)部端口,則將該端口與匹配項(xiàng)列表中的所有匹配項(xiàng)為切片標(biāo)簽的匹配項(xiàng)取并集,得到的新的匹配項(xiàng)添加到新的匹配項(xiàng)列表中; 如果檢測是否還有更多的端口的步驟的檢測結(jié)果是沒有更多的端口,則針對(duì)匹配項(xiàng)列表中的每一個(gè)匹配項(xiàng)生成與之對(duì)應(yīng)的域,并下發(fā)流規(guī)則,以及結(jié)束預(yù)處理過程。
2.根據(jù)權(quán)利要求1的預(yù)處理方法,其特征在于: 所述虛擬網(wǎng)絡(luò)控制器為OpenFlow控制器; 所述下行信令為FlowMod ; 或者 所述特定域?yàn)橄滦行帕頕lowMod中的Match域; 所述匹配項(xiàng)列表為下行信令FlowMod的Match域在該虛擬網(wǎng)絡(luò)中的等價(jià)Match列表;所述特定域是Action域; 所述Action域?qū)儆贔lowMod信令。
3.一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令處理方法,其特征在于: 在執(zhí)行如權(quán)利要求1-2任一所述的下行信令的預(yù)處理方法之后,進(jìn)一步執(zhí)行, 判斷匹配項(xiàng)列表中是否還有更多匹配項(xiàng); 如果判斷還有更多的匹配項(xiàng),則從匹配項(xiàng)列表中獲取一個(gè)條目;如果判斷否,則結(jié)束處理; 在如果判斷還有更多的匹配項(xiàng),則從匹配項(xiàng)列表中獲取ー個(gè)條目步驟之后,進(jìn)ー步判斷是否還有更多的Action項(xiàng); 如果沒有更多的Action項(xiàng),則將新的Action項(xiàng)列表與匹配項(xiàng)結(jié)合生成下行信令,下發(fā)給物理交換機(jī),返回繼續(xù)判斷還有更多的匹配項(xiàng); 如果還有更多的Action項(xiàng),則獲取下一條Action項(xiàng)。
4.根據(jù)權(quán)利要求3的處理方法,其特征在于: 在獲取下一條Action項(xiàng)的步驟之后,進(jìn)ー步判斷Action項(xiàng)的類型是否為輸出類型;若不為輸出類型,則將此Action項(xiàng)添加到新的Action項(xiàng)列表中,返回到判斷是否還有更多的Action項(xiàng)步驟; 若為輸出類型,則進(jìn)ー步檢查輸出類型參數(shù)是否等于泛洪操作的指示符。
5.根據(jù)權(quán)利要求4的處理方法,其特征在干: 如果檢查輸出類型參數(shù)是否等于泛洪操作的指示符的結(jié)果為否,則ー步執(zhí)行如果需要調(diào)整流標(biāo)簽狀態(tài),則將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,以及將輸出類型為端ロ添加到新的Action項(xiàng)列表中,返回至判斷是否還有更多的Action項(xiàng)的步驟; 如果檢查輸出類型參數(shù)是否等于泛洪操作的指示符的結(jié)果為是,則進(jìn)一步獲取虛擬網(wǎng)絡(luò)中除匹配項(xiàng)中輸入端ロ之外的其他所有端ロ。
6.根據(jù)權(quán)利要求5 的處理方法,其特征在于: 在獲取虛擬網(wǎng)絡(luò)中除匹配項(xiàng)中輸入端ロ之外的其他所有端ロ的步驟之后,進(jìn)ー步針對(duì)姆ー個(gè)端ロ,如需要調(diào)整流標(biāo)簽,則將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,以及將輸出類型為端ロ添加到新的Action項(xiàng)列表中,返回至判斷是否還有更多的Action項(xiàng)的步驟。
7.根據(jù)權(quán)利要求3-6任一的處理方法,其特征在于: 所述下行信令為FlowMod信令; 所述特定Action項(xiàng)為ModVlan Action項(xiàng)。
8.一種基于OpenFlow的SDN虛擬化平臺(tái)下行信令處理方法,其特征在于: 在執(zhí)行如權(quán)利要求1-2任一所述的下行信令的預(yù)處理方法之后,進(jìn)ー步執(zhí)行; 獲取下行信令的特定域; 判斷是否還有更多的Action項(xiàng); 如果沒有更多的Action項(xiàng),則下發(fā)下行信令,結(jié)束處理; 如果還有更多的Action項(xiàng),獲取下一條Action項(xiàng)。
9.根據(jù)權(quán)利要求8 的處理方法,其特征在干: 在獲取下一條Action項(xiàng)步驟之后,進(jìn)ー步執(zhí)行 判斷Action項(xiàng)的類型是否為輸出; 如果Action項(xiàng)的類型不為輸出,則將該Action項(xiàng)添加到Action項(xiàng)列表中,返回判斷是否還有更多的Action項(xiàng)的步驟; 如果Action項(xiàng)的類型為輸出,則進(jìn)ー步檢查該Action項(xiàng)是否包含泛洪操作的指示符;如果檢查該Action項(xiàng)是否包含泛洪操作的指示符的結(jié)果為否,且如果需要調(diào)整流標(biāo)簽狀態(tài),將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,以及將輸出類型等于端ロ添加到新的Action項(xiàng)列表中,并返回到判斷是否還有更多的Action項(xiàng)的步驟; 如果檢查該Action項(xiàng)是否包含泛洪操作的指示符的結(jié)果為是,則判斷下行信令的BufferID是否等于-1 ; 如果BufferID等于_1,獲取虛擬網(wǎng)絡(luò)交換機(jī)在虛擬網(wǎng)絡(luò)中的所有端ロ ;針對(duì)每ー個(gè)端ロ,如需要調(diào)整流標(biāo)簽,將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,輸出類型等于端ロ添加到新的Action項(xiàng)列表中,返回到判斷是否還有更多的Action項(xiàng)的步驟; 如果BufferID不等于-1,獲取除BufferID對(duì)應(yīng)數(shù)據(jù)包入端ロ以外,虛擬網(wǎng)絡(luò)交換機(jī)在虛擬網(wǎng)絡(luò)中的其他所有端ロ ;針對(duì)每ー個(gè)端ロ,如需要調(diào)整流標(biāo)簽,將特定Action項(xiàng)添加到新的Action項(xiàng)列表中,輸出類型等于端ロ添加到新的Action項(xiàng)列表中,返回到判斷是否還有更多的Action項(xiàng)的步驟。
10.根據(jù)權(quán)利要求9的處理方法,其特征在干: 所述下行信令為PacketOut信令; 所述特定Action項(xiàng)為ModV·lan Action項(xiàng)。
【文檔編號(hào)】H04L12/801GK103595647SQ201310636540
【公開日】2014年2月19日 申請(qǐng)日期:2013年11月27日 優(yōu)先權(quán)日:2013年11月27日
【發(fā)明者】黃韜, 張健男, 劉江, 魏亮, 丁健, 劉韻潔 申請(qǐng)人:北京郵電大學(xué), 江蘇省未來網(wǎng)絡(luò)創(chuàng)新研究院