本申請涉及網(wǎng)絡(luò)通信技術(shù),特別涉及虛擬擴(kuò)展局域網(wǎng)(VXLAN:Virtual eXtensible Local Area Network)的組播數(shù)據(jù)報文轉(zhuǎn)發(fā)方法和設(shè)備。
背景技術(shù):
VXLAN,是一種將二層報文用三層協(xié)議進(jìn)行封裝的技術(shù),主要原理為:引入一個用戶數(shù)據(jù)報協(xié)議(UDP:User Datagram Protocol)格式的外層隧道,作為數(shù)據(jù)鏈路層,而原有的報文數(shù)據(jù)作為凈荷來傳輸。
由于凈荷的外層采用了UDP作為傳輸手段,這可以保證凈荷順利在二、三層網(wǎng)絡(luò)中傳輸,實現(xiàn)了二層網(wǎng)絡(luò)覆蓋(overlay)三層網(wǎng)絡(luò)的能力。這里,為方便描述,將覆蓋的虛擬網(wǎng)絡(luò)稱為overlay網(wǎng)絡(luò),而將被覆蓋的物理承載網(wǎng)絡(luò)稱為underlay網(wǎng)絡(luò)。
在VXLAN中,引入了隧道端點(VTEP:VXLAN Tunnel End Point)的邏輯體來完成VXLAN報文的封裝。VTEP與underlay網(wǎng)絡(luò)連接,分配有物理網(wǎng)絡(luò)的IP地址,該IP地址與overlay網(wǎng)絡(luò)無關(guān)。
在目前的VXLAN中,還沒有一種方案能夠借助underlay網(wǎng)絡(luò)在overlay網(wǎng)絡(luò)上實現(xiàn)組播業(yè)務(wù),比如組播視頻等。因此,借助underlay網(wǎng)絡(luò)在overlay網(wǎng)絡(luò)上實現(xiàn)組播業(yè)務(wù)是當(dāng)前VXLAN中亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本申請?zhí)峁┝颂摂M擴(kuò)展局域網(wǎng)VXLAN的組播數(shù)據(jù)報文轉(zhuǎn)發(fā)方法和設(shè)備,以借助underlay網(wǎng)絡(luò)在overlay網(wǎng)絡(luò)上實現(xiàn)組播業(yè)務(wù)。
本申請?zhí)峁┑募夹g(shù)方案包括:
一種虛擬擴(kuò)展局域網(wǎng)VXLAN的組播數(shù)據(jù)報文轉(zhuǎn)發(fā)方法,該方法應(yīng)用于軟件 自定義網(wǎng)絡(luò)SDN中虛擬交換機(jī)vSwitch,包括:
將來自本地虛擬機(jī)VM的組播組加入報文上送至SDN控制器;
接收并保存SDN控制器在收到本vSwitch上送的組播組加入報文后發(fā)送至本vSwitch的第一類組播表項,所述第一類組播表項包含:出接口、所述出接口所屬的VXLAN標(biāo)識VNI、租戶標(biāo)識、覆蓋overlay網(wǎng)絡(luò)組播組標(biāo)識、被覆蓋underlay網(wǎng)絡(luò)組播組標(biāo)識;構(gòu)建所述underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組加入報文加入所述underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組;
接收SDN控制器在收到除本vSwitch之外其它vSwitch上送的組播組加入報文后發(fā)送至本vSwitch的第二類組播表項,保存第二類組播表項并為第二類組播表項設(shè)置對應(yīng)的計數(shù)值,所述計數(shù)值為設(shè)定值;第二類組播表項包含租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識、出接口;
接收來自本地VM的組播數(shù)據(jù)報文,從本地第一類組播表項和第二類組播表項中分別查找用于發(fā)送所述組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)組播數(shù)據(jù)報文;
接收來自underlay網(wǎng)絡(luò)的組播數(shù)據(jù)報文,從本地第一類組播表項中查找用于發(fā)送該組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)該組播數(shù)據(jù)報文。
一種虛擬擴(kuò)展局域網(wǎng)VXLAN的組播數(shù)據(jù)報文轉(zhuǎn)發(fā)方法,該方法應(yīng)用于軟件自定義網(wǎng)絡(luò)SDN控制器,包括:
接收虛擬交換機(jī)vSwitch上送的來自VM的組播組加入報文;
依據(jù)所述VM所屬的租戶標(biāo)識、所述組播組加入報文攜帶的覆蓋overlay網(wǎng)絡(luò)組播組標(biāo)識在本地對應(yīng)關(guān)系中查找與所述組播組加入報文匹配的對應(yīng)關(guān)系,如果未查找到,在本地新建與所述組播組加入報文匹配的對應(yīng)關(guān)系,如果查找到,將查找到的對應(yīng)關(guān)系中的計數(shù)值加1;新建的對應(yīng)關(guān)系包含:所述VM所屬的租戶標(biāo)識、所述組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識、為所述overlay網(wǎng)絡(luò)組播組標(biāo)識分配的具有映射關(guān)系的被覆蓋underlay網(wǎng)絡(luò)組播組標(biāo)識、取值為設(shè)定值的計數(shù)值;
將所述vSwitch連接所述VM的虛擬接口vport作為出接口與所述組播組 加入報文匹配的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識一起組織為第一類組播表項發(fā)送至所述vSwitch;
針對除所述vSwitch之外的任一其它vSwitch,將該其它vSwitch連接underlay網(wǎng)絡(luò)的接口作為出接口與所述組播組加入報文匹配的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識一起組織為第二類組播表項發(fā)送至該其它vSwitch。
一種虛擬擴(kuò)展局域網(wǎng)VXLAN的組播數(shù)據(jù)報文轉(zhuǎn)發(fā)設(shè)備,該設(shè)備應(yīng)用于軟件自定義網(wǎng)絡(luò)SDN中虛擬交換機(jī)vSwitch,包括:
上傳單元,用于將來自本地虛擬機(jī)VM的組播組加入報文上送至SDN控制器;
第一表項單元,用于接收并保存SDN控制器在收到本vSwitch上送的組播組加入報文后發(fā)送至本vSwitch的第一類組播表項,所述第一類組播表項包含:出接口、所述出接口所屬的VXLAN標(biāo)識VNI、租戶標(biāo)識、覆蓋overlay網(wǎng)絡(luò)組播組標(biāo)識、被覆蓋underlay網(wǎng)絡(luò)組播組標(biāo)識;構(gòu)建所述underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組加入報文加入所述underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組;
第二表項單元,用于接收SDN控制器在收到除本vSwitch之外其它vSwitch上送的組播組加入報文后發(fā)送至本vSwitch的第二類組播表項,保存第二類組播表項并為第二類組播表項設(shè)置對應(yīng)的計數(shù)值,所述計數(shù)值為設(shè)定值;第二類組播表項包含租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識、出接口;
報文單元,用于接收來自本地VM的組播數(shù)據(jù)報文,從本地第一類組播表項和第二類組播表項中分別查找用于發(fā)送所述組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)組播數(shù)據(jù)報文;以及,
接收來自underlay網(wǎng)絡(luò)的組播數(shù)據(jù)報文,從本地第一類組播表項中查找用于發(fā)送該組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)該組播數(shù)據(jù)報文。
一種虛擬擴(kuò)展局域網(wǎng)VXLAN的組播數(shù)據(jù)報文轉(zhuǎn)發(fā)設(shè)備,該設(shè)備應(yīng)用于軟件 自定義網(wǎng)絡(luò)SDN控制器,包括:
接收單元,用于接收虛擬交換機(jī)vSwitch上送的來自VM的組播組加入報文;
處理單元,用于依據(jù)所述VM所屬的租戶標(biāo)識、所述組播組加入報文攜帶的覆蓋overlay網(wǎng)絡(luò)組播組標(biāo)識在本地對應(yīng)關(guān)系中查找與所述組播組加入報文匹配的對應(yīng)關(guān)系,如果未查找到,在本地新建與所述組播組加入報文匹配的對應(yīng)關(guān)系,如果查找到,將查找到的對應(yīng)關(guān)系中的計數(shù)值加1;新建的對應(yīng)關(guān)系包含:所述VM所屬的租戶標(biāo)識、所述組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識、為所述overlay網(wǎng)絡(luò)組播組標(biāo)識分配的具有映射關(guān)系的被覆蓋underlay網(wǎng)絡(luò)組播組標(biāo)識、取值為設(shè)定值的計數(shù)值;
表項下發(fā)單元,用于將所述vSwitch連接所述VM的虛擬接口vport作為出接口與所述組播組加入報文匹配的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識一起組織為第一類組播表項發(fā)送至所述vSwitch;以及,
針對除所述vSwitch之外的任一其它vSwitch,將該其它vSwitch連接underlay網(wǎng)絡(luò)的接口作為出接口與所述組播組加入報文匹配的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識一起組織為第二類組播表項發(fā)送至該其它vSwitch。
由以上技術(shù)方案可以看出,本發(fā)明中,vSwitch依賴于SDN控制器在本地建立第一類組播表項和第二類組播表項,當(dāng)接收來自本地VM的組播數(shù)據(jù)報文,從本地第一類組播表項和第二類組播表項中分別查找用于發(fā)送所述組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)組播數(shù)據(jù)報文;接收來自underlay網(wǎng)絡(luò)的組播數(shù)據(jù)報文,從本地第一類組播表項中查找用于發(fā)送該組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)該組播數(shù)據(jù)報文,即通過SDN實現(xiàn)利用underlay網(wǎng)絡(luò)組播復(fù)制支持基于VXLAN的多租戶支持組播業(yè)務(wù)。
附圖說明
圖1示出了本發(fā)明的應(yīng)用組網(wǎng)示意圖;
圖2為本發(fā)明實施例提供的方法流程圖;
圖3為本發(fā)明實施例提供的組播組退出流程圖;
圖4為本發(fā)明提供的設(shè)備結(jié)構(gòu)圖;
圖5為本發(fā)明提供的另一設(shè)備結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)描述。
本發(fā)明提供的方法通過軟件自定義網(wǎng)絡(luò)(SDN:Software Defined Network)并借助underlay網(wǎng)絡(luò)的組播實現(xiàn)overlay網(wǎng)絡(luò)中的組播業(yè)務(wù)。
SDN,是網(wǎng)絡(luò)虛擬化的一種實現(xiàn)方式,其核心是將網(wǎng)絡(luò)設(shè)備控制面與數(shù)據(jù)面分離開。SDN主要包括:SDN控制器(controller)和虛擬交換機(jī)(vSwitch)。
其中,SDN控制器管理虛擬交換機(jī),包括對vSwitch的配置和流表下發(fā)等。
vSwitch作為VXLAN的VTEP,承載VXLAN的隧道接入點。
圖1簡單示出了融合SDN、overlay網(wǎng)絡(luò)和underlay網(wǎng)絡(luò)的組網(wǎng)示意圖。
基于圖1所示的網(wǎng)絡(luò)架構(gòu),則本發(fā)明提供的方法如圖2所示。
參見圖2,圖2為本發(fā)明提供的方法流程圖。如圖2所示,該流程可包括以下步驟:
步驟201,overlay網(wǎng)絡(luò)中的虛擬機(jī)(VM:Virtual Machine)發(fā)送組播組加入報文。
本發(fā)明中,VM在需要加入某一組播組時,會主動發(fā)送用于加入該組播組的組播組加入報文。這里,VM發(fā)送的組播組加入報文攜帶了VM的標(biāo)識和VM欲加入的組播組的標(biāo)識。因為VM處于overlay網(wǎng)絡(luò),而overlay網(wǎng)絡(luò)覆蓋住underlay網(wǎng)絡(luò),對于overlay網(wǎng)絡(luò)中的VM而言,underlay網(wǎng)絡(luò)是不可 見的,只認(rèn)識overlay網(wǎng)絡(luò),如此,對于overlay網(wǎng)絡(luò)中的VM,其默認(rèn)欲加入的組播組是overlay網(wǎng)絡(luò)中的組播組。為方便描述,這里將VM欲加入的overlay網(wǎng)絡(luò)中的組播組的標(biāo)識簡稱為overlay網(wǎng)絡(luò)組播組標(biāo)識。
步驟202,vSwitch1接收VM發(fā)送的組播組加入報文,將所述組播組加入報文上送至SDN控制器。
這里,vSwitch1并非特指某一vSwitch,其只是上述發(fā)送組播組加入報文的VM連接的其中一個vSwitch,完全是出于清楚描述舉例描述了vSwitch1。
步驟203,SDN控制器接收vSwitch1上送的組播組加入報文,依據(jù)所述VM1所屬的租戶標(biāo)識、所述組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識在本地查找與所述組播組加入報文匹配的對應(yīng)關(guān)系,如果未查找到,執(zhí)行步驟204,如果查找到,執(zhí)行步驟205。
SDN控制器,其會管理各個vSwitch本地的VM,比如為各個vSwitch本地的VM分配租戶標(biāo)識、VXLAN標(biāo)識(VNI)等,因此,本步驟203中,當(dāng)SDN控制器接收到vSwitch1上送的組播組加入報文時,會依賴于組播組加入報文攜帶的VM標(biāo)識很容易確定VM所屬的租戶標(biāo)識。之后,SDN控制器以VM所屬的租戶標(biāo)識、所述組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識為關(guān)鍵字在本地對應(yīng)關(guān)系中查找包含該關(guān)鍵字的對應(yīng)關(guān)系(也稱為與所述組播組加入報文匹配的對應(yīng)關(guān)系),如果未查找到,執(zhí)行步驟204,如果查找到,執(zhí)行步驟205。
步驟204,在本地新建與所述組播組加入報文匹配的對應(yīng)關(guān)系。
本步驟204是步驟203未在本地查找到與所述組播組加入報文匹配的對應(yīng)關(guān)系的前提下執(zhí)行的。
作為本發(fā)明的一個實施例,本步驟204新建的與所述組播組加入報文匹配的對應(yīng)關(guān)系可包含:VM所屬的租戶標(biāo)識、所述組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識、為所述overlay網(wǎng)絡(luò)組播組標(biāo)識分配的具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識、計數(shù)值。這里計數(shù)值可取值為設(shè)定值(作為本發(fā) 明的一個實施例,設(shè)定值可為1)。
下述表1具體示出了步驟204新建的對應(yīng)關(guān)系:
表1
在實際應(yīng)用中,SDN控制器存在多種應(yīng)用,其中有一個應(yīng)用(通常簡稱為BM應(yīng)用)用于集中管理overlay網(wǎng)絡(luò)中的組播組和underlay網(wǎng)絡(luò)中的組播組,基于此,本步驟204中,SDN控制器可以通過該BM應(yīng)用為組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識分配具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識。
具體地,SDN控制器通過BM應(yīng)用為組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識分配具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識可為:
從預(yù)先分配的underlay網(wǎng)絡(luò)中的組播組標(biāo)識范圍中選取一個未被占用的組播組標(biāo)識分配給組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識,也即選取的組播組標(biāo)識為與組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識分配具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識。
比如,預(yù)先分配了overlay網(wǎng)絡(luò)中的組播組標(biāo)識范圍為1至100,預(yù)先分配了underlay網(wǎng)絡(luò)組播組標(biāo)識范圍為101至200,假如組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識為10,從underlay網(wǎng)絡(luò)組播組標(biāo)識范圍101至200中選取一個未被占用的underlay網(wǎng)絡(luò)組播組標(biāo)識比如110分配給組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識10,也即,選取的110作為與組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識10具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識。
優(yōu)選地,作為本發(fā)明的一個實施例,本發(fā)明中,SDN控制器為組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識分配具有映射關(guān)系的underlay網(wǎng)絡(luò)組 播組標(biāo)識可以按照以下規(guī)則執(zhí)行:
規(guī)則1:不同租戶內(nèi)的VM發(fā)送的組播組加入報文,即使攜帶了相同的overlay網(wǎng)絡(luò)組播組標(biāo)識,但因為是不同租戶內(nèi)的VM發(fā)送的,最終分配的具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識不同。
比如,SDN控制器可能先收到租戶1內(nèi)的VM1發(fā)送的組播加入報文,該組播加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識為組播組1,假如SDN控制器為組播組1分配的具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識為組播組101,之后,SDN控制器又收到租戶2內(nèi)的VM2發(fā)送的組播加入報文,該組播加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識仍為組播組1,則SDN控制器在為VM2發(fā)送的組播加入報文所攜帶的組播組1分配具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識時,按照規(guī)則1,最后分配的underlay網(wǎng)絡(luò)組播組標(biāo)識為不同于已分配的組播組101,可能為組播組102等,即保證不同租戶內(nèi)的VM發(fā)送的組播組加入報文,即使攜帶了相同的overlay網(wǎng)絡(luò)組播組標(biāo)識,最終分配的具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識不同。
規(guī)則2:同一租戶內(nèi)不同VM發(fā)送的組播組加入報文,如果攜帶了相同的overlay網(wǎng)絡(luò)組播組標(biāo)識,即使所屬的VNI不同,則分配的具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識可以相同。
比如,SDN控制器先收到租戶1內(nèi)的VM1發(fā)送的組播加入報文,該組播加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識為組播組1,假如VM1所屬的VNI為VNI1,SDN控制器為組播組1分配的具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識為組播組101,之后,SDN控制器又收到租戶1內(nèi)的VM0發(fā)送的組播加入報文,該組播加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識仍為組播組1,但VM0所屬的VNI為VNI2,則SDN控制器在為VM0發(fā)送的組播加入報文所攜帶的組播組1分配具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識時,按照規(guī)則2,可以仍然分配組播組101。
按照上述兩個規(guī)則,SDN控制器可以為組播組加入報文攜帶的overlay 網(wǎng)絡(luò)組播組標(biāo)識分配具有映射關(guān)系的underlay網(wǎng)絡(luò)組播組標(biāo)識。
步驟205,將查找到的與所述組播組加入報文匹配的對應(yīng)關(guān)系中的計數(shù)值加1。
本步驟205是步驟203在本地查找到與所述組播組加入報文匹配的對應(yīng)關(guān)系時執(zhí)行的,這也就意味著SDN控制器存在上述表1所示的對應(yīng)關(guān)系,執(zhí)行到本步驟205時,沒有必要重復(fù)建立相同的對應(yīng)關(guān)系,可以直接利用之前的對應(yīng)關(guān)系即可。
步驟206,SDN控制器將vSwitch1連接發(fā)送組播組加入報文的VM的虛擬接口(vport)作為出接口,與所述組播組加入報文匹配的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識一起組織為第一類組播表項發(fā)送至vSwitch1;以及,針對除vSwitch1之外的任一其它vSwitch,將該其它vSwitch連接underlay網(wǎng)絡(luò)的接口作為出接口與所述組播組加入報文匹配的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識一起組織為第二類組播表項發(fā)送至該其它vSwitch。
這里,SDN控制器可按照現(xiàn)有流表發(fā)送方式將第一類組播表項發(fā)送至vSwitch1;以及SDN控制器可按照現(xiàn)有流表發(fā)送方式將第二類組播表項發(fā)送至除vSwitch1之外的任一其它vSwitch。
步驟207,vSwitch1接收并保存SDN控制器在收到本vSwitch1上送的組播組加入報文后發(fā)送至本vSwitch1的第一類組播表項,并構(gòu)建第一類組播表項中underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組加入報文加入所述underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組。
這里,第一類組播表項的內(nèi)容如步驟206所述,包含:出接口、出接口所屬的VNI、租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識。表2示出了第一類組播表項:
表2
步驟208,vSwitch1之外的其它vSwitch接收SDN控制器在收到vSwitch1上送的組播組加入報文后發(fā)送至本vSwitch的第二類組播表項,保存第二類組播表項并為第二類組播表項設(shè)置對應(yīng)的計數(shù)值,所述計數(shù)值為設(shè)定值。
這里,第二類組播表項的內(nèi)容如步驟206所述,包含:租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識、出接口。下述表3示出了的第二類組播表項:
表3
作為本發(fā)明的一個優(yōu)選實施例,為避免建立重復(fù)的表項,本步驟208在保存第二類組播表項并為第二類組播表項設(shè)置對應(yīng)的計數(shù)值之前,進(jìn)一步包括:
在本地已保存的第二類組播表項中查找與接收的第二類組播表項相同的第二類組播表項,
如果是,將查找到的第二類組播表項對應(yīng)的計數(shù)值加1;
如果否,繼續(xù)執(zhí)行所述保存第二類組播表項并為第二類組播表項設(shè)置對應(yīng)的計數(shù)值的操作。
以上描述了SDN中各vSwitch如何獲取第一類組播表項、第二類組播表項?;赟DN中各vSwitch獲取的第一類組播表項、第二類組播表項,則當(dāng)各vSwitch接收到組播數(shù)據(jù)報文時,就按照獲取的第一類組播表項、第二類組播表項進(jìn)行組播數(shù)據(jù)報文轉(zhuǎn)發(fā),具體見步驟209。
步驟209,SDN中各vSwitch接收來自本地VM的組播數(shù)據(jù)報文,從本地第一類組播表項和第二類組播表項中分別查找用于發(fā)送所述組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)組播數(shù)據(jù)報文;以及,接收來自underlay網(wǎng)絡(luò)的組播數(shù)據(jù)報文,從本地第一類組播表項中查找用于發(fā)送該組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)該組播數(shù)據(jù)報文。
具體地,本步驟209中,所述從本地第一類組播表項和第二類組播表項中分別查找用于發(fā)送組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)組播數(shù)據(jù)報文可包括:
從本地第一類組播表項中查找包含以下內(nèi)容的表項:組播數(shù)據(jù)報文攜帶的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識,如果查找到,且該查找到的出接口不為接收到所述組播數(shù)據(jù)報文的接口,依據(jù)該查找到的表項中的VNI和出接口轉(zhuǎn)發(fā)組播數(shù)據(jù)報文,比如對該組播數(shù)據(jù)報文攜帶的VNI修改為該查找到的表項中的VNI,并通過該查找到的表項中的出接口轉(zhuǎn)發(fā);
從本地第二類組播表項中查找包含以下內(nèi)容的表項:組播數(shù)據(jù)報文攜帶的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識,如果查找到,依據(jù)該查找到的表項中的underlay網(wǎng)絡(luò)組播組標(biāo)識和出接口轉(zhuǎn)發(fā)組播數(shù)據(jù)報文,比如對該組播數(shù)據(jù)報文的overlay網(wǎng)絡(luò)組播組標(biāo)識替換為該查找到的表項中的underlay網(wǎng)絡(luò)組播組標(biāo)識并通過該查找到的表項中的出接口轉(zhuǎn)發(fā)。
還有,本步驟209中,從本地第一類組播表項中查找用于發(fā)送該組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)該組播數(shù)據(jù)報文包括:
從本地第一類組播表項中查找包含以下內(nèi)容的表項:underlay網(wǎng)絡(luò)組播組標(biāo)識,如果查找到,依據(jù)該查找到的表項中的overlay網(wǎng)絡(luò)組播組標(biāo)識、VNI和出接口轉(zhuǎn)發(fā)組播數(shù)據(jù)報文,比如對該組播數(shù)據(jù)報文的underlay網(wǎng)絡(luò)組播組標(biāo)識替換為該查找到的表項中的overlay網(wǎng)絡(luò)組播組標(biāo)識并通過該查找到的表項中的出接口轉(zhuǎn)發(fā)。
可以看出,通過圖2所示流程能夠?qū)崿F(xiàn)借助underlay網(wǎng)絡(luò)在overlay網(wǎng)絡(luò)上進(jìn)行組播業(yè)務(wù)。
在本發(fā)明中,overlay網(wǎng)絡(luò)中的VM在加入組播組后,還可以退出已加入的組播組。
圖3為本發(fā)明實施例提供的組播組退出流程圖。如圖3所示,該流程可包括以下步驟:
步驟301,overlay網(wǎng)絡(luò)中的VM1發(fā)送組播組退出報文。
這里VM1為overlay網(wǎng)絡(luò)中的任一VM,并非特指某一VM,只是出于方便描述的目的。
這里,組播組退出報文攜帶了VM1要退出的overlay網(wǎng)絡(luò)組播組的標(biāo)識。
步驟302,連接VM1的vSwitch11接收組播組退出報文,將組播組退出報文上送至SDN控制器。
這里,vSwitch11為overlay網(wǎng)絡(luò)中的連接VM1的任一vSwitch,并非特指某一vSwitch,也只是出于方便描述的目的。
步驟303,SDN控制器接收vSwitch11上送的來自VM1的組播組退出報文;在本地對應(yīng)關(guān)系中查找到至少包含以下內(nèi)容的對應(yīng)關(guān)系:VM1所屬的租戶標(biāo)識、組播組退出報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識。
步驟304,SDN控制器將vSwitch11連接VM1的vport作為出接口與查找到的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識組織為待刪除第一類組播表項發(fā)送至vSwitch11,以及,針對除vSwitch11之外的任一其它vSwitch,將該其它vSwitch連接underlay網(wǎng)絡(luò)的接口作為出接口與查找到的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識組織為待刪除第二類組播表項發(fā)送至其它vSwitch;并將查找到的對應(yīng)關(guān)系中的計數(shù)值減1,檢查減1之后的計數(shù)值是否為設(shè)定值,如果是,刪除該查找到的對應(yīng)關(guān)系。
作為本發(fā)明的一個實施例,本步驟304中,在刪除該查找到的對應(yīng)關(guān)系之前,進(jìn)一步可標(biāo)記該查找到的對應(yīng)關(guān)系中的underlay網(wǎng)絡(luò)組播組標(biāo)識為未使用,以便以后再將該underlay網(wǎng)絡(luò)組播組標(biāo)識分配給對應(yīng)的overlay網(wǎng)絡(luò)組播組標(biāo)識。
步驟305,vSwitch11接收SDN控制器在收到本vSwitch11上送的組播組退出報文后發(fā)送至本vSwitch11的待刪除第一類組播表項,從本地已保存的第一類組播表項中查找到與所述待刪除第一類組播表項完全相同的第一類組播表項并刪除,檢查本地保存的第一類組播表項中是否還存在包含以下內(nèi)容的第一類組播表項:所述待刪除第一類組播表項中的underlay網(wǎng)絡(luò)組播組標(biāo)識;如果是,結(jié)束當(dāng)前處理,如果否,構(gòu)建所述待刪除第一類組播表項中的underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組退出報文以退出所述待刪除第一類組播表項中underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組。
這里,構(gòu)建所述待刪除第一類組播表項中的underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組退出報文可按照現(xiàn)有退出組播組的方式執(zhí)行,以保證最終退出待刪除第一類組播表項中underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組,這里不再展開描述。
步驟306,除vSwitch11之外的任一其它vSwitch接收SDN控制器在收到vSwitch11上送的組播組退出報文后發(fā)送至本vSwitch的待刪除第二類組播表項,從本地已保存的第二類組播表項中查找到與所述待刪除第二類組播表項完全相同的第二類組播表項,將該查找到的第二類組播表項對應(yīng)的計數(shù)值減1,檢查減1之后的計數(shù)值是否為所述設(shè)定值,如果是,刪除該查找到的第二類組播表項,如果否,結(jié)束當(dāng)前處理。
至此,完成圖3所示流程。
以上對本發(fā)明提供的方法進(jìn)行了描述。下面對本發(fā)明提供的設(shè)備進(jìn)行描述:
參見圖4,圖4為本發(fā)明提供的設(shè)備結(jié)構(gòu)圖。該設(shè)備應(yīng)用于軟件自定義網(wǎng)絡(luò)SDN中的虛擬交換機(jī)vSwitch,如圖4所示,該設(shè)備可包括:
上傳單元,用于將來自本地虛擬機(jī)VM的組播組加入報文上送至SDN控制器;
第一表項單元,用于接收并保存SDN控制器在收到本vSwitch上送的組播組加入報文后發(fā)送至本vSwitch的第一類組播表項,所述第一類組播表項 包含:出接口、所述出接口所屬的VXLAN標(biāo)識VNI、租戶標(biāo)識、覆蓋overlay網(wǎng)絡(luò)組播組標(biāo)識、被覆蓋underlay網(wǎng)絡(luò)組播組標(biāo)識;構(gòu)建所述underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組加入報文加入所述underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組;
第二表項單元,用于接收SDN控制器在收到除本vSwitch之外其它vSwitch上送的組播組加入報文后發(fā)送至本vSwitch的第二類組播表項,保存第二類組播表項并為第二類組播表項設(shè)置對應(yīng)的計數(shù)值,所述計數(shù)值為設(shè)定值;第二類組播表項包含租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識、出接口;
報文單元,用于接收來自本地VM的組播數(shù)據(jù)報文,從本地第一類組播表項和第二類組播表項中分別查找用于發(fā)送所述組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)組播數(shù)據(jù)報文;以及,
接收來自underlay網(wǎng)絡(luò)的組播數(shù)據(jù)報文,從本地第一類組播表項中查找用于發(fā)送該組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)該組播數(shù)據(jù)報文。
優(yōu)選地,所述第二表項單元保存第二類組播表項并為第二類組播表項設(shè)置對應(yīng)的計數(shù)值之前,進(jìn)一步用于在本地已保存的第二類組播表項中查找與接收的第二類組播表項相同的第二類組播表項,如果是,將查找到的第二類組播表項對應(yīng)的計數(shù)值加1;如果否,繼續(xù)執(zhí)行所述保存第二類組播表項并為第二類組播表項設(shè)置對應(yīng)的計數(shù)值的操作。
優(yōu)選地,所述上傳單元進(jìn)一步將來自本地VM的組播組退出報文上送至SDN控制器;
基于此,所述第一表項單元進(jìn)一步接收SDN控制器在收到本vSwitch上送的組播組退出報文后發(fā)送至本vSwitch的待刪除第一類組播表項,從本地已保存的第一類組播表項中查找到與所述待刪除第一類組播表項完全相同的第一類組播表項并刪除,以及檢查本地保存的第一類組播表項中是否還存在包含以下內(nèi)容的第一類組播表項:所述待刪除第一類組播表項中的underlay網(wǎng)絡(luò)組播組標(biāo)識;
如果是,結(jié)束當(dāng)前處理,如果否,構(gòu)建所述待刪除第一類組播表項中的underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組退出報文以退出所述待刪除第一類組播表項中underlay網(wǎng)絡(luò)組播組標(biāo)識對應(yīng)的組播組。
優(yōu)選地,所述第二表項單元進(jìn)一步接收SDN控制器在收到除本vSwitch之外其它vSwitch上送的組播組退出報文后發(fā)送至本vSwitch的待刪除第二類組播表項;從本地已保存的第二類組播表項中查找到與所述待刪除第二類組播表項完全相同的第二類組播表項,將該查找到的第二類組播表項對應(yīng)的計數(shù)值減1,檢查減1之后的計數(shù)值是否為所述設(shè)定值,如果是,刪除該查找到的第二類組播表項,如果否,結(jié)束當(dāng)前處理。
優(yōu)選地,所述報文單元從本地第一類組播表項和第二類組播表項中分別查找用于發(fā)送組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)組播數(shù)據(jù)報文包括:
從本地第一類組播表項中查找包含以下內(nèi)容的表項:組播數(shù)據(jù)報文攜帶的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識,如果查找到,且該查找到的出接口不為接收到所述組播數(shù)據(jù)報文的接口,依據(jù)該查找到的表項中的VNI和出接口轉(zhuǎn)發(fā)組播數(shù)據(jù)報文;
從本地第二類組播表項中查找包含以下內(nèi)容的表項:組播數(shù)據(jù)報文攜帶的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識,如果查找到,依據(jù)該查找到的表項中的underlay網(wǎng)絡(luò)組播組標(biāo)識和出接口轉(zhuǎn)發(fā)組播數(shù)據(jù)報文。
優(yōu)選地,所述報文單元從本地第一類組播表項中查找用于發(fā)送該組播數(shù)據(jù)報文的表項,依據(jù)找到的表項轉(zhuǎn)發(fā)該組播數(shù)據(jù)報文包括:從本地第一類組播表項中查找包含以下內(nèi)容的表項:underlay網(wǎng)絡(luò)組播組標(biāo)識,如果查找到,依據(jù)該查找到的表項中的overlay網(wǎng)絡(luò)組播組標(biāo)識、VNI和出接口轉(zhuǎn)發(fā)組播數(shù)據(jù)報文。
至此,完成圖4所示的設(shè)備結(jié)構(gòu)描述。
本發(fā)明還提供了另一種設(shè)備結(jié)構(gòu)。參見圖5,圖5為本發(fā)明提供的另一設(shè)備結(jié)構(gòu)圖。該設(shè)備應(yīng)用于軟件自定義網(wǎng)絡(luò)SDN控制器,如圖5所示,該設(shè)備可包括:
接收單元,用于接收虛擬交換機(jī)vSwitch上送的來自VM的組播組加入報文;
處理單元,用于依據(jù)所述VM所屬的租戶標(biāo)識、所述組播組加入報文攜帶的覆蓋overlay網(wǎng)絡(luò)組播組標(biāo)識在本地對應(yīng)關(guān)系中查找與所述組播組加入報文匹配的對應(yīng)關(guān)系,如果未查找到,在本地新建與所述組播組加入報文匹配的對應(yīng)關(guān)系,如果查找到,將查找到的對應(yīng)關(guān)系中的計數(shù)值加1;新建的對應(yīng)關(guān)系包含:所述VM所屬的租戶標(biāo)識、所述組播組加入報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識、為所述overlay網(wǎng)絡(luò)組播組標(biāo)識分配的具有映射關(guān)系的被覆蓋underlay網(wǎng)絡(luò)組播組標(biāo)識、取值為設(shè)定值的計數(shù)值;
表項下發(fā)單元,用于將所述vSwitch連接所述VM的虛擬接口vport作為出接口與所述組播組加入報文匹配的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識一起組織為第一類組播表項發(fā)送至所述vSwitch;以及,針對除所述vSwitch之外的任一其它vSwitch,將該其它vSwitch連接underlay網(wǎng)絡(luò)的接口作為出接口與所述組播組加入報文匹配的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識一起組織為第二類組播表項發(fā)送至該其它vSwitch。
優(yōu)選地,所述接收單元進(jìn)一步接收所述vSwitch上送的來自所述VM的組播組退出報文;
優(yōu)選地,所述處理單元進(jìn)一步在所述接收單元接收到組播組退出報文時,在本地對應(yīng)關(guān)系中查找到至少包含以下內(nèi)容的對應(yīng)關(guān)系:所述VM所屬的租戶標(biāo)識、組播組退出報文攜帶的overlay網(wǎng)絡(luò)組播組標(biāo)識;以及將查找到的對應(yīng)關(guān)系中的計數(shù)值減1,檢查減1之后的計數(shù)值是否為設(shè)定值,如果是,刪除該查找到的對應(yīng)關(guān)系;
所述表項下發(fā)單元進(jìn)一步將所述vSwitch連接所述VM的vport作為出接口與所述處理單元查找到的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識組織為待刪除第一類組播表項發(fā)送至所述vSwitch;以及,
針對除所述vSwitch之外的任一其它vSwitch,將該其它vSwitch連接underlay網(wǎng)絡(luò)的接口作為出接口與所述處理單元查找到的對應(yīng)關(guān)系中的租戶標(biāo)識、overlay網(wǎng)絡(luò)組播組標(biāo)識、underlay網(wǎng)絡(luò)組播組標(biāo)識組織為待刪除第二類組播表項發(fā)送至該vSwitch。
至此,完成圖5所示的設(shè)備描述。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。