一種支持虛擬終端的組播數據轉發方法及裝置

一種支持虛擬終端的組播數據轉發方法及裝置

《一種支持虛擬終端的組播數據轉發方法及裝置》是中興通訊股份有限公司於2011年3月11日申請的專利,該專利的申請號為2011100602924,公布號為CN102684979A,公布日為2012年9月19日,發明人是李琳、魏月華、喻敬海、敖婷。該發明涉及網路通信技術領域。

《一種支持虛擬終端的組播數據轉發方法及裝置》公開了一種支持虛擬終端的組播數據轉發方法及裝置,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與組播數據的輸入連線埠相同、且輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶Ingress_E-CID或該Ingress_E-CID的值等於0;當某輸出連線埠與組播數據的輸入連線埠相同、且輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶Ingress_E-CID,且攜帶的Ingress_E-CID的值為組播數據輸入時的E-CID。該發明通過修改源連線埠過濾機制,使支持虛擬終端技術的PE進行組播時能正常收發數據。

2020年7月,《一種支持虛擬終端的組播數據轉發方法及裝置》獲得第二十一屆中國專利銀獎。

(概述圖為《一種支持虛擬終端的組播數據轉發方法及裝置》摘要附圖)

基本介紹

  • 中文名:一種支持虛擬終端的組播數據轉發方法及裝置
  • 類別:專利
  • 公布號:CN102684979A
  • 公布日:2012年9月19日
  • 申請號:2011100602924
  • 申請日:2011年3月11日
  • 申請人:中興通訊股份有限公司
  • 地址:廣東省深圳市南山區高新技術產業園科技南路中興通訊大廈法務部
  • 發明人:李琳、魏月華、喻敬海、敖婷
  • Int.Cl.:H04L12/56(2006.01)I、H04L12/46(2006.01)I、H04L12/18(2006.01)I
  • 專利代理機構:北京安信方達智慧財產權代理有限公司
  • 代理人:吳艷、龍洪
專利背景,發明內容,專利目的,技術方案,改善效果,附圖說明,權利要求,實施方式,榮譽表彰,

專利背景

隨著數據通信網路的發展,網路頻寬越來越大,終端設備越來越多,為了降低成本,融合網路,數據中心的概念被提出來,並且得到運營商和設備廠商的支持,具有良好的發展鍵懂和前景。DCB(Data Center Bridging,數據中心網橋)作為支持下一代數據中心乙太網的設備,需滿足下一代數據中心網路要求,包括對大量激增的終端伺服器設備的支持。
為擊船符此,IEEE802.1 DCB任務組創建了兩個標準項目IEEE802.1Qbh和IEEE802.1Qbg來解決該問題。Qbh標準定義了擴展連線埠的乙太網交換機,以適應不斷增加的終端設備接口的需求。該標準中定義了乙太網交換機連線埠擴展模組,和用於組播的遠端複製技術。Qbg標準定義了邊緣虛擬橋接(EVB)技術,規範了使用虛擬化技術的終端和與其相連的交換機之間的自動發現和配置流程。支持EVB技術的終端可以包含一組虛擬機(VM),VM通過虛擬邊緣交換機(VEB)頁拘體或虛擬邊緣連線埠聚合器(VEPA)與邊緣乙太網交換機相連。VEPA技術需要交換機支持反射中繼(Reflective Relay)功能,即從收到數據的連線埠將數據轉發出去。
圖1所示為乙太網交換機採用連線埠擴展的示意圖,圖中粗線概括的部分就是擴展連線埠的乙太網交換機(Extended Bridge)。Extended Bridge中,包括一個橋接轉發模組如VLAN-aware Bridge Component(可感知V-LAN的橋接模組)轎奔,和一個或多個Port Extender(連線埠擴展轉發模組),組成Controlling Bridge(控制網橋),在Controlling Bridge之外至少有一個虹危符射,或多個Port Extender。Controlling Bridge中的Port Extender稱為內部Port Extender,其它的稱為外部Port Extender。如圖1所示為一個Controlling Bridge和2個外部Port Extender的情況。VLAN-aware Bridge Component上和內部Port Extender之間連線的一組實例化連線埠稱為一個複製組(Replication Group)。EndStation(終端站)可以是一個單獨的物理終端,也可以是實現了虛擬化的有多個邏輯終端的設備。
圖1從左往右的方向為網橋到終端的輸出方向。Port Extender與下級級聯的Port Extender連線的連線埠稱為Cascade Port(級聯連線埠)。Port Extender與上級Port Extender的Cascade Port相連的連線埠稱晚辣汗為Upstream Port(上游連線埠)。內部Port Extender與VLAN-aware Bridge Component相連的連線埠和外部Port Extender與終端連線的連線埠稱為Extended Port(擴展連線埠)。外部Port Extender可以多層級聯,以實現更多的Extended Port,鑽遷喇立更多的擴展網橋外接連線埠。
如圖1所示,當VLAN-aware Bridge Component感知到有一個Port Extender(Port Extender2)與其直接相連時,會實例化一個內部Port Extender,即Port Extender1,形成Controlling Bridge。在Port Extender1實例化時,在其上實例化了一個與VLAN-aware Bridge Component連線的Extended Port,Port Extender1上的連線埠1。同時,VLAN-aware Bridge Component分配一條E-channel(虛擬通道),用於通過內部Port Extender傳遞數據給外部Port Extender。對於與該Controlling Bridge相連,並受其控制的所有外部Port Extender,在VLAN-aware Bridge Component發現這些Port Extender時,VLAN-aware Bridge Component上都會實例化與它們的Extended Port相對應的連線埠。在Port Extender1的Extended Port和外部Port Extender的Cascade Port和Extended Port之間要建立E-channel。E-channel用E-CID(擴展通道標識)來標識。E-CID為14bit,當E-CID取值範圍在0到4095間時,表示該E-channel是單播通道;當E-CID取值大於4095時,用於組播,標識一組由多個單播通道組成的組播組,該E-channel是點到多點的通道。這些E-channel的E-CID是由Controlling Bridge分配,圖1中與VLAN-aware Bridge Component實例化連線埠1~5對應的Port Extender實例化連線埠使用的E-CID分別為2,34,96,12,78。與這些實例化連線埠相對應的外部Port Extender的Extended Port的維護PCID(連線埠擴展通道標識)參數,該參數的值等於E-CID。
圖2示出了為當使用Extended Bridge轉發組播數據幀的過程。當終端設備的數據幀經過邊緣Port Extender(指與終端直接相連的Port Extender)時,邊緣Port Extender會給其添加一個E-tag,該E-tag中攜帶的E-CID為該連線埠的PCID,該圖例中攜帶的E-CID為67。數據幀向交換機方向轉發時所經過的中間Port Extender,如圖中的Port Extender2,對該數據幀做相應的添加/刪除E-tag處理後,傳給Port Extender1。該數據幀到達Port Extender1後,在Extended Port去掉了E-tag,並轉發給相應的VLAN-aware Bridge Component實例化連線埠,即實例化連線埠3。該VLAN-aware Bridge Component實例化連線埠3與該數據幀進入Extended Bridge的Extended Port67相對應。
VLAN-aware Bridge Component收到該數據幀後,根據目的地址和VID(VLAN標識)查詢FDB(FilteringDatabase,過濾資料庫)轉發表,判定應該從哪個實例化連線埠輸出,並生成轉發數據的目的E-CID值。例如VLAN-aware Bridge Component判定該組播數據應從實例化連線埠3、4、5傳送給Port Extender,則根據實例化連線埠3、4、5生成目的E-CID值。之後,VLAN-aware Bridge Component通過EM_UNITDATA.request原語中的connection_identifier參數(該文中也稱作轉發報文信息)將目的E-CID的值傳遞給Controlling Bridge的Port Extender。如果接收到該數據的連線埠和傳送連線埠屬於同一個Replication Group,則將輸入該數據連線埠的E-CID,Ingress_E-CID(輸入擴展通道標識),也通過connection_identifier參數傳遞給Port Extender;否則,僅將E-CID值通過connection_identifier參數傳遞給Port Extender。其中,EM_UNITDATA.request原語由VLAN-aware Bridge Component調用,請求下一轉發模組,即Controlling Bridge的Port Extender,進行數據轉發。
Port Extender上的連線埠,都有屬於某個E-channel的memberset的屬性,對於收到的數據幀,Port Extender的連線埠會根據數據幀里攜帶的E-CID來進行轉發過濾。為避免數據在Controlling Bridge的Port Extender多個連線埠重複發出,在對於E-CID大於4096的E-channel,內部Port Extender與VLAN-aware Bridge Component連線的Extended Port上只有一個連線埠屬於該E-channel的memberset。該示例中假定Port Extender1與VLAN-aware Bridge Component上只有一個連線埠56屬於該E-CID標識的E-channel組。這樣,雖然有多份組播數據通過VLAN-aware Bridge Component和Port Extender1之間的內部LAN傳送了出去,但只有一份數據被Port Extender1上屬於該E-channel的連線埠56接收,到達Port Extender的轉發單元。
然後,Port Extender1將根據EM_UNITDATA.request原語中的connection_identifier參數生成E-tag(擴展標籤)。將connection_identifier中攜帶的目的E-CID的值,填入E-tag的E-CID欄位,將Ingress_E-CID的值填入E-tag的Ingress_E-CID欄位;如果無Ingress_E-CID的值,則向Ingress_E-CID欄位填入0。Port Extender1添加E-tag後,將該組播數據通過Cascade Port傳送出去。
E-tag的具體格式如圖3所示,其中Ingress_E-CID欄位中攜帶源E-CID的值。E-CID欄位為E-channel的值,當組播時,該值大於4095。在Port Extender2處根據E-tag里的E-CID值將數據傳送到該E-CID標識的E-channel的所有memberset連線埠上,該圖例中為連線埠56和35。在Port Extender3處同樣根據E-tag里的E-CID值將數據傳送到該E-CID標識的E-channel的所有memberset連線埠上,該示例中為連線埠74和67。
在邊緣Port Extender的Extended Port上需要根據源E-CID做源連線埠過濾,以防止組播數據的循環loop。具體為:檢查Ingress_E-CID欄位,如果該欄位的值與本連線埠的PCID一致,則將該數據過濾;如果該欄位的值為0,則不進行源連線埠過濾。該示例中Extended Port連線埠67檢查E-tag中攜帶的源E-CID的值,發現與本連線埠的PCID一致後,則將該數據過濾掉。
如果Port Extender的一個Extended Port不直接連線某一個單獨的終端時,即一個E-channel包含幾個終端的數據時,該組播過濾機制會造成錯誤過濾。例如,終端設備使用Qbg標準定義的VEPA技術時,如圖4所示,當一個組播組成員包括EndStation2、3以及EndStation4里的VM1、VM3,VM3傳送組播數據時,這種情況下,如果用2011年3月以前的源連線埠過濾技術,則VM1無法收到該組播數據。

發明內容

專利目的

《一種支持虛擬終端的組播數據轉發方法及裝置》解決的技術問題是提供一種支持虛擬終端的組播數據轉發方法及裝置,通過修改源連線埠過濾機制,使支持虛擬終端技術的PE進行組播時能正常收發數據。

技術方案

《一種支持虛擬終端的組播數據轉發方法及裝置》提供了一種支持虛擬終端的組播數據轉發方法,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶輸入擴展通道標識(Ingress_E-CID)或該Ingress_E-CID的值等於0。
進一步地,所述方法還包括:
所述橋接轉發模組還確定所述轉發報文信息中攜帶的擴展通道標識(E-CID)的值。
進一步地,所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
進一步地,所述橋接轉發模組是指,乙太網交換機中控制網橋(Controlling Bridge)中的可感知虛擬區域網路的橋接模組(VLAN-aware Bridge Component)。
進一步地,所述Controlling Bridge的內部連線埠擴展轉發模組(Port Extender)收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤(E-tag);
邊緣Port Extender的擴展連線埠(Extended Port)收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的連線埠擴展通道標識(PCID)一致,則過濾該數據。
該發明還提供了一種支持虛擬終端的組播數據轉發方法,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時的E-CID。
進一步地,所述方法還包括:所述橋接轉發模組還確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
該發明還提供了一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,所述裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中,
所述連線埠確定單元用於,接收終端傳送的組播數據並確定輸出連線埠;
所述轉發判斷單元用於,根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶Ingress_E-CID或該Ingress_E-CID的值等於0。
進一步地,所述轉發判斷單元還用於,確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述轉發判斷單元還用於,確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
進一步地,所述橋接轉發模組是指乙太網交換機中Controlling Bridge中的VLAN-aware Bridge Component;所述裝置還包括邊緣連線埠擴展轉發模組,和所述Controlling Bridge中的內部連線埠擴展轉發模組,
所述內部連線埠擴展轉發模組用於,收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤(E-tag);
所述邊緣連線埠擴展轉發模組用於,從擴展連線埠收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的PCID一致,則過濾該數據。
該發明還提供了另一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,所述裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中,
所述連線埠確定單元用於,接收終端傳送的組播數據並確定輸出連線埠;
所述轉發判斷單元用於,根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與所述輸入連線埠屬於同一個複製組時,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時使用的E-CID。
進一步地,所述轉發判斷單元還用於,確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述轉發判斷單元還用於,確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。

改善效果

《一種支持虛擬終端的組播數據轉發方法及裝置》提供的組播數據轉發方案,在支持虛擬終端的場景下,通過修改源連線埠過濾機制,使得組播數據能在該場景下正常收發數據。

附圖說明

此處所說明的附圖用來提供對《一種支持虛擬終端的組播數據轉發方法及裝置》的進一步理解,構成本申請的一部分,該發明的示意性實施例及其說明用於解釋該發明,並不構成對該發明的不當限定。在附圖中:
圖1是Extended Bridge採用連線埠擴展的示意圖;
圖2是組播數據幀通過Extended Bridge轉發的示意圖;
圖3是已有的一種E-tag格式示意圖;
圖4是按照已有EVB技術時Extended Bridge組播轉發的示意圖;
圖5是該發明實施例的C-VLAN Component轉發組播數據的處理流程示意圖;
圖6是該發明實施例的支持EVB技術的Extended Bridge組播轉發的示意圖。

權利要求

1.一種支持虛擬終端的組播數據轉發方法,其特徵在於,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶輸入擴展通道標識Ingress_E-CID或該Ingress_E-CID的值等於0。
2.如權利要求1所述方法,其特徵在於,所述方法還包括:所述橋接轉發模組還確定所述轉發報文信息中攜帶的擴展通道標識E-CID的值。
3.如權利要求1所述的方法,其特徵在於,所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
4.如權利要求1、2或3所述的方法,其特徵在於,所述橋接轉發模組是乙太網交換機中控制網橋Controlling Bridge中的可感知虛擬區域網路的橋接模組VLAN-aware Bridge Component。
5.如權利要求4所述的方法,其特徵在於,所述Controlling Bridge的內部連線埠擴展轉發模組收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤E-tag;邊緣連線埠擴展轉發模組收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的連線埠擴展通道標識PCID一致,則過濾該數據。
6.一種支持虛擬終端的組播數據轉發方法,其特徵在於,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶輸入擴展通道標識Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時的擴展通道標識E-CID。
7.如權利要求6所述的方法,其特徵在於,所述方法還包括:所述橋接轉發模組還確定所述轉發報文信息中攜帶的E-CID的值。
8.如權利要求6或7所述的方法,其特徵在於,所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
9.一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,其特徵在於,所述裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中,所述連線埠確定單元,用於接收終端傳送的組播數據並確定輸出連線埠;所述轉發判斷單元,用於根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶輸入擴展通道標識Ingress_E-CID或該Ingress_E-CID的值等於0。
10.如權利要求9所述的裝置,其特徵在於,所述轉發判斷單元,還用於確定所述轉發報文信息中攜帶的擴展通道標識E-CID的值。
11.如權利要求9所述的裝置,其特徵在於,所述轉發判斷單元,還用於確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
12.如權利要求9、10或11所述的裝置,其特徵在於,所述橋接轉發模組是乙太網交換機中控制網橋Controlling Bridge中的可感知虛擬區域網路的橋接模組VLAN-aware Bridge Component;所述裝置還包括邊緣連線埠擴展轉發模組,和所述Controlling Bridge中的內部連線埠擴展轉發模組,所述內部連線埠擴展轉發模組,用於收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤E-tag;所述邊緣連線埠擴展轉發模組,用於從擴展連線埠收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的連線埠擴展通道標識PCID一致,則過濾該數據。
13.一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,其特徵在於,所述裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中,所述連線埠確定單元,用於接收終端傳送的組播數據並確定輸出連線埠;所述轉發判斷單元,用於根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與輸入連線埠屬於同一個複製組時,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶輸入擴展通道標識Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時使用的擴展通道標識E-CID。
14.如權利要求13所述的裝置,其特徵在於,所述轉發判斷單元,還用於確定所述轉發報文信息中攜帶的E-CID的值。
15.如權利要求13或14所述的裝置,其特徵在於,所述轉發判斷單元,還用於確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。

實施方式

《一種支持虛擬終端的組播數據轉發方法及裝置》具體採用如下技術方案:
當使用虛擬終端技術的終端傳送一個非單播數據幀到Extended Bridge時,之間經過的Port Extender為其添加/刪除處理E-tag,並將其轉發到Controlling Bridge。Controlling Bridge中的內部Port Extender根據該數據幀的E-CID將其從相應的實例化連線埠傳送給橋接轉發模組(VLAN-aware Bridge Component)。VLAN-aware Bridge Component根據該幀的目的地址查找輸出連線埠,並生成轉發該數據的E-channel的目的E-CID值。之後,VLAN-aware Bridge Component通過EM_UNITDATA.request原語將生成的目的E-CID的值傳遞給Controlling Bridge的Port Extender,為了進行有效的源連線埠過濾,該信息中還有可能包括Ingress_E-CID的值。
VLAN-aware Bridge Component除了檢查輸入連線埠和輸出連線埠是否屬於同一個Replication Group外,還進行如下判斷:如果某個輸出連線埠就是接收數據的輸入連線埠,即需要從輸入連線埠將數據傳送出去,且該連線埠使能了Reflective Relay功能,則VLAN-aware Bridge Component傳遞的轉發報文信息中Ingress_E-CID的值為0;否則,如果該連線埠禁止使能了Reflective Relay功能,,則VLAN-aware Bridge Component傳遞的轉發報文信息中Ingress_E-CID的值為接收數據的E-channel的ID值。
Controlling Bridge的Port Extender根據EM_UNITDATA.request原語中的參數生成E-tag。將其中攜帶的目的E-CID的值,填入E-tag的E-CID欄位,將Ingress_E-CID的值填入E-tag的Ingress_E-CID欄位,如果無Ingress_E-CID的值,則向Ingress_E-CID欄位填入0。
邊緣Port Extender的Extended Port需要檢查Ingress_E-CID欄位,如果該欄位的值與本連線埠的PCID一致,則將該數據過濾;如果該欄位的值為0,則不進行源連線埠過濾。
為了便於闡述該發明,以下將結合附圖及具體實施例對該發明技術方案的實施作進一步詳細描述。需要說明的是,在不衝突的情況下,該申請中的實施例及實施例中的特徵可以相互任意組合。
圖5所示為橋接轉發模組轉發組播數據的處理流程示意圖,在該實施例中為C-VLAN Component。
參考圖5,該處理流程具體步驟描述如下:
步驟1,當C-VLAN Component收到某個從實例化連線埠傳送來的數據.
步驟2,C-VLAN Component查找轉發表,確定數據的輸出連線埠。
步驟3,判斷是否是組播數據,即輸出連線埠是否大於1,如果是,則執行步驟4,否則,執行步驟8。
步驟4,如果是組播數據,則C-VLAN Component需要生成E-CID的值,並將該值填在EM_UNITDATA.request原語的connection_identifier參數中。
步驟5,C-VLAN Component判斷輸出連線埠和輸入連線埠是否屬於同一個Replication Group,如果屬於,則執行步驟6,如果不屬於同一個Replication Group,則執行步驟8。
步驟6,C-VLAN Component繼續判斷是否有某個輸出連線埠與輸入連線埠(即數據的接收連線埠)一致,且該連線埠使能了Reflective Relay功能,如果判斷是,則可直接執行步驟8;否則,如果該連線埠禁止使能了Reflective Relay功能,則執行步驟7。
步驟7,C-VLAN Component需要將Ingress_E-CID的值填在EM_UNITDATA.request原語的connection_identifier參數中。
步驟8,C-VLAN Component可以直接將數據從查表獲得的輸出連線埠傳送出去。
本實施例中,如果步驟6中,C-VLAN Component如果判斷判斷有某個輸出連線埠與輸入連線埠一致,且該連線埠使能了Reflective Relay功能時,是直接將數據從查表獲得的輸出連線埠傳送出去(即不需要攜帶Ingress_E-CID的值)。該發明其他實施例中,C-VLAN Component也可以攜帶Ingress_E-CID,但Ingress_E-CID的值為0。
經過上述步驟,Port Extender1會根據C-VLAN Component傳遞來的信息生成E-tag。將C-VLAN Component傳遞來的EM_UNITDATA.request原語connection_identifier中攜帶的攜帶的目的E-CID的值,填入E-tag的E-CID欄位,將Ingress_E-CID的值填入E-tag的Ingress_E-CID欄位,如果無Ingress_E-CID的值,則向Ingress_E-CID欄位填入0。Port Extender1添加E-tag後,將該組播數據通過Cascade Port傳送出去。中間級聯的Port Extender根據E-CID的值轉發數據。邊緣Port Extender的Extended Port將檢查Ingress_E-CID欄位,如果該欄位的值與本連線埠的PCID一致,則將該數據過濾;如果該欄位的值為0,則不進行源連線埠過濾。
圖6所示為支持EVB技術的Extended Bridge轉發組播數據幀的過程。EndStation4使用EVB技術,在其上支持3個虛擬機(VM)。這三個VM通過一個物理接口與鄰接的Extended Bridge連線。當EndStation4的VM3的數據幀經過邊緣Port Extender3時,Port Extender3會給其添加一個E-tag,該E-tag中的E-CID為該連線埠的PCID,該圖例中E-CID為67。數據幀向交換機方向轉發時經過的中間Port Extender,圖例中為Port Extender2,對該幀做相應的處理後,將其傳給上級Port Extender。該數據幀到達Port Extender1後,在與C-VLAN Component相連的Extended Port去掉了E-tag,並轉發給相應的C-VLAN Component實例化連線埠。該C-VLAN Component實例化連線埠與該數據幀進入Extended Bridge的Extended Port相對應。
C-VLAN Component收到該數據幀後,根據目的地址和VID判定該從哪些Extended Port輸出。C-VLAN Component根據實例化連線埠與Extended Port的對應關係,判定該組播數據應從實例化連線埠3、4、5傳送給Port Extender。於是C-VLAN Component生成E-CID的值,將E-CID的值填入EM_UNITDATA.request原語中的connection_identifier參數。然後C-VLAN Component判斷輸出連線埠和輸入連線埠是屬於同一個Replication Group的,因為它們都連線到同一個內部Port Extender。C-VLAN Component繼續比較輸出連線埠和接收連線埠,發現連線埠3既是接收連線埠又是輸出連線埠,且該連線埠使能了Reflective Relay功能,因此不需要進行源連線埠過濾,EM_UNITDATA.request原語的connection_identifier參數中不再攜帶Ingress_E-CID,傳遞給Controlling Bridge中的Port Extender。
對於收到的數據幀,Port Extender的連線埠根據數據幀里攜帶的E-CID來進行轉發過濾。在該示例中由於Port Extender1上只有一個連線埠56屬於該E-CID標識的E-channel的成員組。則,儘管有多份組播數據通過C-VLAN Component和內部Port Extender之間的內部LAN傳送了出去,但Port Extender1上只有屬於該E-CID標識的E-channel的一個連線埠接收了該數據。Port Extender1的轉發單元根據C-VLAN Component傳遞來的EM_UNITDATA.request原語生成E-tag,將connection_identifier參數中的E-CID填入E-tag的E-CID中。由於該實施例中,connection_identifier中不包含Ingress_E-CID,該實施例中E-tag的Ingress_E-CID欄位為0。Port Extender添加E-tag後,該組播數據通過Cascade Port傳送出去。在Port Extender2處根據E-tag里的E-CID值將數據傳送到該E-CID標識的E-channel的所有memberset連線埠上,該圖例中為連線埠56和35。在Port Extender3處同樣根據E-tag里的E-CID值將數據傳送到該E-CID標識的E-channel的所有memberset連線埠上,該圖例中為連線埠74和67。
在Extended Port上需要根據源E-CID的值做源連線埠過濾,以防止組播數據的循環loop。Extended Port收到數據後,判斷目的E-CID值,即E-tag中E-CID欄位的值,是否大於4095。如果不是,表明該數據為單播數據,Port Extender直接將其傳送到E-CID對應的連線埠。如果是,則表明該數據為組播數據,Port Extender繼續檢查E-tag中的Ingress_E-CID值,如果該值與本連線埠的PCID一致,則將該數據過濾掉,如果不同或者該值為0,則不需進行源連線埠過濾。在該例中,連線埠67通過檢查“Ingress_E-CID值,發現其為0,說明不需要進行源連線埠過濾,則將該數據轉發給EndStation4,由EndStation4完成組播數據的源連線埠過濾。
此外,該發明實施例中還提供了一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,該主要裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中:
所述連線埠確定單元用於,接收終端傳送的組播數據並確定輸出連線埠;
所述轉發判斷單元用於,根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶Ingress_E-CID或該Ingress_E-CID的值等於0。
進一步地,所述轉發判斷單元還用於,確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述轉發判斷單元還用於,確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
進一步地,所述橋接轉發模組是指乙太網交換機中Controlling Bridge中的VLAN-aware Bridge Component;所述裝置還包括邊緣連線埠擴展轉發模組,和所述Controlling Bridge中的內部連線埠擴展轉發模組。
所述內部連線埠擴展轉發模組用於,收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤(E-tag);
所述邊緣連線埠擴展轉發模組用於,從擴展連線埠收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的PCID一致,則過濾該數據。
此外,該發明實施例中還提供了另一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,該裝置主要包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中:
所述連線埠確定單元用於,接收終端傳送的組播數據並確定輸出連線埠;
所述轉發判斷單元用於,根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與所述輸入連線埠屬於同一個複製組時,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時使用的E-CID。
進一步地,所述轉發判斷單元還用於,確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述轉發判斷單元還用於,確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
以上僅為該發明的優選實施案例而已,並不用於限制該發明,該發明還可有其他多種實施例,在不背離該發明精神及其實質的情況下,熟悉本領域的技術人員可根據該發明做出各種相應的改變和變形,但這些相應的改變和變形都應屬於該發明所附的權利要求的保護範圍。
顯然,該領域的技術人員應該明白,上述的該發明的各模組或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網路上,可選地,它們可以用計算裝置可執行的程式代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,並且在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟,或者將它們分別製作成各個積體電路模組,或者將它們中的多個模組或步驟製作成單個積體電路模組來實現。這樣,該發明不限制於任何特定的硬體和軟體結合。

榮譽表彰

2020年7月,《一種支持虛擬終端的組播數據轉發方法及裝置》獲得第二十一屆中國專利銀獎。
圖1從左往右的方向為網橋到終端的輸出方向。Port Extender與下級級聯的Port Extender連線的連線埠稱為Cascade Port(級聯連線埠)。Port Extender與上級Port Extender的Cascade Port相連的連線埠稱為Upstream Port(上游連線埠)。內部Port Extender與VLAN-aware Bridge Component相連的連線埠和外部Port Extender與終端連線的連線埠稱為Extended Port(擴展連線埠)。外部Port Extender可以多層級聯,以實現更多的Extended Port,更多的擴展網橋外接連線埠。
如圖1所示,當VLAN-aware Bridge Component感知到有一個Port Extender(Port Extender2)與其直接相連時,會實例化一個內部Port Extender,即Port Extender1,形成Controlling Bridge。在Port Extender1實例化時,在其上實例化了一個與VLAN-aware Bridge Component連線的Extended Port,Port Extender1上的連線埠1。同時,VLAN-aware Bridge Component分配一條E-channel(虛擬通道),用於通過內部Port Extender傳遞數據給外部Port Extender。對於與該Controlling Bridge相連,並受其控制的所有外部Port Extender,在VLAN-aware Bridge Component發現這些Port Extender時,VLAN-aware Bridge Component上都會實例化與它們的Extended Port相對應的連線埠。在Port Extender1的Extended Port和外部Port Extender的Cascade Port和Extended Port之間要建立E-channel。E-channel用E-CID(擴展通道標識)來標識。E-CID為14bit,當E-CID取值範圍在0到4095間時,表示該E-channel是單播通道;當E-CID取值大於4095時,用於組播,標識一組由多個單播通道組成的組播組,該E-channel是點到多點的通道。這些E-channel的E-CID是由Controlling Bridge分配,圖1中與VLAN-aware Bridge Component實例化連線埠1~5對應的Port Extender實例化連線埠使用的E-CID分別為2,34,96,12,78。與這些實例化連線埠相對應的外部Port Extender的Extended Port的維護PCID(連線埠擴展通道標識)參數,該參數的值等於E-CID。
圖2示出了為當使用Extended Bridge轉發組播數據幀的過程。當終端設備的數據幀經過邊緣Port Extender(指與終端直接相連的Port Extender)時,邊緣Port Extender會給其添加一個E-tag,該E-tag中攜帶的E-CID為該連線埠的PCID,該圖例中攜帶的E-CID為67。數據幀向交換機方向轉發時所經過的中間Port Extender,如圖中的Port Extender2,對該數據幀做相應的添加/刪除E-tag處理後,傳給Port Extender1。該數據幀到達Port Extender1後,在Extended Port去掉了E-tag,並轉發給相應的VLAN-aware Bridge Component實例化連線埠,即實例化連線埠3。該VLAN-aware Bridge Component實例化連線埠3與該數據幀進入Extended Bridge的Extended Port67相對應。
VLAN-aware Bridge Component收到該數據幀後,根據目的地址和VID(VLAN標識)查詢FDB(FilteringDatabase,過濾資料庫)轉發表,判定應該從哪個實例化連線埠輸出,並生成轉發數據的目的E-CID值。例如VLAN-aware Bridge Component判定該組播數據應從實例化連線埠3、4、5傳送給Port Extender,則根據實例化連線埠3、4、5生成目的E-CID值。之後,VLAN-aware Bridge Component通過EM_UNITDATA.request原語中的connection_identifier參數(該文中也稱作轉發報文信息)將目的E-CID的值傳遞給Controlling Bridge的Port Extender。如果接收到該數據的連線埠和傳送連線埠屬於同一個Replication Group,則將輸入該數據連線埠的E-CID,Ingress_E-CID(輸入擴展通道標識),也通過connection_identifier參數傳遞給Port Extender;否則,僅將E-CID值通過connection_identifier參數傳遞給Port Extender。其中,EM_UNITDATA.request原語由VLAN-aware Bridge Component調用,請求下一轉發模組,即Controlling Bridge的Port Extender,進行數據轉發。
Port Extender上的連線埠,都有屬於某個E-channel的memberset的屬性,對於收到的數據幀,Port Extender的連線埠會根據數據幀里攜帶的E-CID來進行轉發過濾。為避免數據在Controlling Bridge的Port Extender多個連線埠重複發出,在對於E-CID大於4096的E-channel,內部Port Extender與VLAN-aware Bridge Component連線的Extended Port上只有一個連線埠屬於該E-channel的memberset。該示例中假定Port Extender1與VLAN-aware Bridge Component上只有一個連線埠56屬於該E-CID標識的E-channel組。這樣,雖然有多份組播數據通過VLAN-aware Bridge Component和Port Extender1之間的內部LAN傳送了出去,但只有一份數據被Port Extender1上屬於該E-channel的連線埠56接收,到達Port Extender的轉發單元。
然後,Port Extender1將根據EM_UNITDATA.request原語中的connection_identifier參數生成E-tag(擴展標籤)。將connection_identifier中攜帶的目的E-CID的值,填入E-tag的E-CID欄位,將Ingress_E-CID的值填入E-tag的Ingress_E-CID欄位;如果無Ingress_E-CID的值,則向Ingress_E-CID欄位填入0。Port Extender1添加E-tag後,將該組播數據通過Cascade Port傳送出去。
E-tag的具體格式如圖3所示,其中Ingress_E-CID欄位中攜帶源E-CID的值。E-CID欄位為E-channel的值,當組播時,該值大於4095。在Port Extender2處根據E-tag里的E-CID值將數據傳送到該E-CID標識的E-channel的所有memberset連線埠上,該圖例中為連線埠56和35。在Port Extender3處同樣根據E-tag里的E-CID值將數據傳送到該E-CID標識的E-channel的所有memberset連線埠上,該示例中為連線埠74和67。
在邊緣Port Extender的Extended Port上需要根據源E-CID做源連線埠過濾,以防止組播數據的循環loop。具體為:檢查Ingress_E-CID欄位,如果該欄位的值與本連線埠的PCID一致,則將該數據過濾;如果該欄位的值為0,則不進行源連線埠過濾。該示例中Extended Port連線埠67檢查E-tag中攜帶的源E-CID的值,發現與本連線埠的PCID一致後,則將該數據過濾掉。
如果Port Extender的一個Extended Port不直接連線某一個單獨的終端時,即一個E-channel包含幾個終端的數據時,該組播過濾機制會造成錯誤過濾。例如,終端設備使用Qbg標準定義的VEPA技術時,如圖4所示,當一個組播組成員包括EndStation2、3以及EndStation4里的VM1、VM3,VM3傳送組播數據時,這種情況下,如果用2011年3月以前的源連線埠過濾技術,則VM1無法收到該組播數據。

發明內容

專利目的

《一種支持虛擬終端的組播數據轉發方法及裝置》解決的技術問題是提供一種支持虛擬終端的組播數據轉發方法及裝置,通過修改源連線埠過濾機制,使支持虛擬終端技術的PE進行組播時能正常收發數據。

技術方案

《一種支持虛擬終端的組播數據轉發方法及裝置》提供了一種支持虛擬終端的組播數據轉發方法,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶輸入擴展通道標識(Ingress_E-CID)或該Ingress_E-CID的值等於0。
進一步地,所述方法還包括:
所述橋接轉發模組還確定所述轉發報文信息中攜帶的擴展通道標識(E-CID)的值。
進一步地,所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
進一步地,所述橋接轉發模組是指,乙太網交換機中控制網橋(Controlling Bridge)中的可感知虛擬區域網路的橋接模組(VLAN-aware Bridge Component)。
進一步地,所述Controlling Bridge的內部連線埠擴展轉發模組(Port Extender)收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤(E-tag);
邊緣Port Extender的擴展連線埠(Extended Port)收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的連線埠擴展通道標識(PCID)一致,則過濾該數據。
該發明還提供了一種支持虛擬終端的組播數據轉發方法,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時的E-CID。
進一步地,所述方法還包括:所述橋接轉發模組還確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
該發明還提供了一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,所述裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中,
所述連線埠確定單元用於,接收終端傳送的組播數據並確定輸出連線埠;
所述轉發判斷單元用於,根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶Ingress_E-CID或該Ingress_E-CID的值等於0。
進一步地,所述轉發判斷單元還用於,確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述轉發判斷單元還用於,確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
進一步地,所述橋接轉發模組是指乙太網交換機中Controlling Bridge中的VLAN-aware Bridge Component;所述裝置還包括邊緣連線埠擴展轉發模組,和所述Controlling Bridge中的內部連線埠擴展轉發模組,
所述內部連線埠擴展轉發模組用於,收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤(E-tag);
所述邊緣連線埠擴展轉發模組用於,從擴展連線埠收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的PCID一致,則過濾該數據。
該發明還提供了另一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,所述裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中,
所述連線埠確定單元用於,接收終端傳送的組播數據並確定輸出連線埠;
所述轉發判斷單元用於,根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與所述輸入連線埠屬於同一個複製組時,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時使用的E-CID。
進一步地,所述轉發判斷單元還用於,確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述轉發判斷單元還用於,確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。

改善效果

《一種支持虛擬終端的組播數據轉發方法及裝置》提供的組播數據轉發方案,在支持虛擬終端的場景下,通過修改源連線埠過濾機制,使得組播數據能在該場景下正常收發數據。

附圖說明

此處所說明的附圖用來提供對《一種支持虛擬終端的組播數據轉發方法及裝置》的進一步理解,構成本申請的一部分,該發明的示意性實施例及其說明用於解釋該發明,並不構成對該發明的不當限定。在附圖中:
圖1是Extended Bridge採用連線埠擴展的示意圖;
圖2是組播數據幀通過Extended Bridge轉發的示意圖;
圖3是已有的一種E-tag格式示意圖;
圖4是按照已有EVB技術時Extended Bridge組播轉發的示意圖;
圖5是該發明實施例的C-VLAN Component轉發組播數據的處理流程示意圖;
圖6是該發明實施例的支持EVB技術的Extended Bridge組播轉發的示意圖。

權利要求

1.一種支持虛擬終端的組播數據轉發方法,其特徵在於,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶輸入擴展通道標識Ingress_E-CID或該Ingress_E-CID的值等於0。
2.如權利要求1所述方法,其特徵在於,所述方法還包括:所述橋接轉發模組還確定所述轉發報文信息中攜帶的擴展通道標識E-CID的值。
3.如權利要求1所述的方法,其特徵在於,所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
4.如權利要求1、2或3所述的方法,其特徵在於,所述橋接轉發模組是乙太網交換機中控制網橋Controlling Bridge中的可感知虛擬區域網路的橋接模組VLAN-aware Bridge Component。
5.如權利要求4所述的方法,其特徵在於,所述Controlling Bridge的內部連線埠擴展轉發模組收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤E-tag;邊緣連線埠擴展轉發模組收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的連線埠擴展通道標識PCID一致,則過濾該數據。
6.一種支持虛擬終端的組播數據轉發方法,其特徵在於,橋接轉發模組接收終端傳送的組播數據並確定輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶輸入擴展通道標識Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時的擴展通道標識E-CID。
7.如權利要求6所述的方法,其特徵在於,所述方法還包括:所述橋接轉發模組還確定所述轉發報文信息中攜帶的E-CID的值。
8.如權利要求6或7所述的方法,其特徵在於,所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
9.一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,其特徵在於,所述裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中,所述連線埠確定單元,用於接收終端傳送的組播數據並確定輸出連線埠;所述轉發判斷單元,用於根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶輸入擴展通道標識Ingress_E-CID或該Ingress_E-CID的值等於0。
10.如權利要求9所述的裝置,其特徵在於,所述轉發判斷單元,還用於確定所述轉發報文信息中攜帶的擴展通道標識E-CID的值。
11.如權利要求9所述的裝置,其特徵在於,所述轉發判斷單元,還用於確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
12.如權利要求9、10或11所述的裝置,其特徵在於,所述橋接轉發模組是乙太網交換機中控制網橋Controlling Bridge中的可感知虛擬區域網路的橋接模組VLAN-aware Bridge Component;所述裝置還包括邊緣連線埠擴展轉發模組,和所述Controlling Bridge中的內部連線埠擴展轉發模組,所述內部連線埠擴展轉發模組,用於收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤E-tag;所述邊緣連線埠擴展轉發模組,用於從擴展連線埠收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的連線埠擴展通道標識PCID一致,則過濾該數據。
13.一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,其特徵在於,所述裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中,所述連線埠確定單元,用於接收終端傳送的組播數據並確定輸出連線埠;所述轉發判斷單元,用於根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與輸入連線埠屬於同一個複製組時,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶輸入擴展通道標識Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時使用的擴展通道標識E-CID。
14.如權利要求13所述的裝置,其特徵在於,所述轉發判斷單元,還用於確定所述轉發報文信息中攜帶的E-CID的值。
15.如權利要求13或14所述的裝置,其特徵在於,所述轉發判斷單元,還用於確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。

實施方式

《一種支持虛擬終端的組播數據轉發方法及裝置》具體採用如下技術方案:
當使用虛擬終端技術的終端傳送一個非單播數據幀到Extended Bridge時,之間經過的Port Extender為其添加/刪除處理E-tag,並將其轉發到Controlling Bridge。Controlling Bridge中的內部Port Extender根據該數據幀的E-CID將其從相應的實例化連線埠傳送給橋接轉發模組(VLAN-aware Bridge Component)。VLAN-aware Bridge Component根據該幀的目的地址查找輸出連線埠,並生成轉發該數據的E-channel的目的E-CID值。之後,VLAN-aware Bridge Component通過EM_UNITDATA.request原語將生成的目的E-CID的值傳遞給Controlling Bridge的Port Extender,為了進行有效的源連線埠過濾,該信息中還有可能包括Ingress_E-CID的值。
VLAN-aware Bridge Component除了檢查輸入連線埠和輸出連線埠是否屬於同一個Replication Group外,還進行如下判斷:如果某個輸出連線埠就是接收數據的輸入連線埠,即需要從輸入連線埠將數據傳送出去,且該連線埠使能了Reflective Relay功能,則VLAN-aware Bridge Component傳遞的轉發報文信息中Ingress_E-CID的值為0;否則,如果該連線埠禁止使能了Reflective Relay功能,,則VLAN-aware Bridge Component傳遞的轉發報文信息中Ingress_E-CID的值為接收數據的E-channel的ID值。
Controlling Bridge的Port Extender根據EM_UNITDATA.request原語中的參數生成E-tag。將其中攜帶的目的E-CID的值,填入E-tag的E-CID欄位,將Ingress_E-CID的值填入E-tag的Ingress_E-CID欄位,如果無Ingress_E-CID的值,則向Ingress_E-CID欄位填入0。
邊緣Port Extender的Extended Port需要檢查Ingress_E-CID欄位,如果該欄位的值與本連線埠的PCID一致,則將該數據過濾;如果該欄位的值為0,則不進行源連線埠過濾。
為了便於闡述該發明,以下將結合附圖及具體實施例對該發明技術方案的實施作進一步詳細描述。需要說明的是,在不衝突的情況下,該申請中的實施例及實施例中的特徵可以相互任意組合。
圖5所示為橋接轉發模組轉發組播數據的處理流程示意圖,在該實施例中為C-VLAN Component。
參考圖5,該處理流程具體步驟描述如下:
步驟1,當C-VLAN Component收到某個從實例化連線埠傳送來的數據.
步驟2,C-VLAN Component查找轉發表,確定數據的輸出連線埠。
步驟3,判斷是否是組播數據,即輸出連線埠是否大於1,如果是,則執行步驟4,否則,執行步驟8。
步驟4,如果是組播數據,則C-VLAN Component需要生成E-CID的值,並將該值填在EM_UNITDATA.request原語的connection_identifier參數中。
步驟5,C-VLAN Component判斷輸出連線埠和輸入連線埠是否屬於同一個Replication Group,如果屬於,則執行步驟6,如果不屬於同一個Replication Group,則執行步驟8。
步驟6,C-VLAN Component繼續判斷是否有某個輸出連線埠與輸入連線埠(即數據的接收連線埠)一致,且該連線埠使能了Reflective Relay功能,如果判斷是,則可直接執行步驟8;否則,如果該連線埠禁止使能了Reflective Relay功能,則執行步驟7。
步驟7,C-VLAN Component需要將Ingress_E-CID的值填在EM_UNITDATA.request原語的connection_identifier參數中。
步驟8,C-VLAN Component可以直接將數據從查表獲得的輸出連線埠傳送出去。
本實施例中,如果步驟6中,C-VLAN Component如果判斷判斷有某個輸出連線埠與輸入連線埠一致,且該連線埠使能了Reflective Relay功能時,是直接將數據從查表獲得的輸出連線埠傳送出去(即不需要攜帶Ingress_E-CID的值)。該發明其他實施例中,C-VLAN Component也可以攜帶Ingress_E-CID,但Ingress_E-CID的值為0。
經過上述步驟,Port Extender1會根據C-VLAN Component傳遞來的信息生成E-tag。將C-VLAN Component傳遞來的EM_UNITDATA.request原語connection_identifier中攜帶的攜帶的目的E-CID的值,填入E-tag的E-CID欄位,將Ingress_E-CID的值填入E-tag的Ingress_E-CID欄位,如果無Ingress_E-CID的值,則向Ingress_E-CID欄位填入0。Port Extender1添加E-tag後,將該組播數據通過Cascade Port傳送出去。中間級聯的Port Extender根據E-CID的值轉發數據。邊緣Port Extender的Extended Port將檢查Ingress_E-CID欄位,如果該欄位的值與本連線埠的PCID一致,則將該數據過濾;如果該欄位的值為0,則不進行源連線埠過濾。
圖6所示為支持EVB技術的Extended Bridge轉發組播數據幀的過程。EndStation4使用EVB技術,在其上支持3個虛擬機(VM)。這三個VM通過一個物理接口與鄰接的Extended Bridge連線。當EndStation4的VM3的數據幀經過邊緣Port Extender3時,Port Extender3會給其添加一個E-tag,該E-tag中的E-CID為該連線埠的PCID,該圖例中E-CID為67。數據幀向交換機方向轉發時經過的中間Port Extender,圖例中為Port Extender2,對該幀做相應的處理後,將其傳給上級Port Extender。該數據幀到達Port Extender1後,在與C-VLAN Component相連的Extended Port去掉了E-tag,並轉發給相應的C-VLAN Component實例化連線埠。該C-VLAN Component實例化連線埠與該數據幀進入Extended Bridge的Extended Port相對應。
C-VLAN Component收到該數據幀後,根據目的地址和VID判定該從哪些Extended Port輸出。C-VLAN Component根據實例化連線埠與Extended Port的對應關係,判定該組播數據應從實例化連線埠3、4、5傳送給Port Extender。於是C-VLAN Component生成E-CID的值,將E-CID的值填入EM_UNITDATA.request原語中的connection_identifier參數。然後C-VLAN Component判斷輸出連線埠和輸入連線埠是屬於同一個Replication Group的,因為它們都連線到同一個內部Port Extender。C-VLAN Component繼續比較輸出連線埠和接收連線埠,發現連線埠3既是接收連線埠又是輸出連線埠,且該連線埠使能了Reflective Relay功能,因此不需要進行源連線埠過濾,EM_UNITDATA.request原語的connection_identifier參數中不再攜帶Ingress_E-CID,傳遞給Controlling Bridge中的Port Extender。
對於收到的數據幀,Port Extender的連線埠根據數據幀里攜帶的E-CID來進行轉發過濾。在該示例中由於Port Extender1上只有一個連線埠56屬於該E-CID標識的E-channel的成員組。則,儘管有多份組播數據通過C-VLAN Component和內部Port Extender之間的內部LAN傳送了出去,但Port Extender1上只有屬於該E-CID標識的E-channel的一個連線埠接收了該數據。Port Extender1的轉發單元根據C-VLAN Component傳遞來的EM_UNITDATA.request原語生成E-tag,將connection_identifier參數中的E-CID填入E-tag的E-CID中。由於該實施例中,connection_identifier中不包含Ingress_E-CID,該實施例中E-tag的Ingress_E-CID欄位為0。Port Extender添加E-tag後,該組播數據通過Cascade Port傳送出去。在Port Extender2處根據E-tag里的E-CID值將數據傳送到該E-CID標識的E-channel的所有memberset連線埠上,該圖例中為連線埠56和35。在Port Extender3處同樣根據E-tag里的E-CID值將數據傳送到該E-CID標識的E-channel的所有memberset連線埠上,該圖例中為連線埠74和67。
在Extended Port上需要根據源E-CID的值做源連線埠過濾,以防止組播數據的循環loop。Extended Port收到數據後,判斷目的E-CID值,即E-tag中E-CID欄位的值,是否大於4095。如果不是,表明該數據為單播數據,Port Extender直接將其傳送到E-CID對應的連線埠。如果是,則表明該數據為組播數據,Port Extender繼續檢查E-tag中的Ingress_E-CID值,如果該值與本連線埠的PCID一致,則將該數據過濾掉,如果不同或者該值為0,則不需進行源連線埠過濾。在該例中,連線埠67通過檢查“Ingress_E-CID值,發現其為0,說明不需要進行源連線埠過濾,則將該數據轉發給EndStation4,由EndStation4完成組播數據的源連線埠過濾。
此外,該發明實施例中還提供了一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,該主要裝置包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中:
所述連線埠確定單元用於,接收終端傳送的組播數據並確定輸出連線埠;
所述轉發判斷單元用於,根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠使能了反射中繼功能時,則在轉發報文信息中不攜帶Ingress_E-CID或該Ingress_E-CID的值等於0。
進一步地,所述轉發判斷單元還用於,確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述轉發判斷單元還用於,確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
進一步地,所述橋接轉發模組是指乙太網交換機中Controlling Bridge中的VLAN-aware Bridge Component;所述裝置還包括邊緣連線埠擴展轉發模組,和所述Controlling Bridge中的內部連線埠擴展轉發模組。
所述內部連線埠擴展轉發模組用於,收到所述轉發報文信息後,根據所述轉發報文信息中攜帶的所述Ingress_E-CID為所述組播數據添加擴展標籤(E-tag);
所述邊緣連線埠擴展轉發模組用於,從擴展連線埠收到所述組播數據後,檢查所述E-tag中的Ingress_E-CID的值,若所述IngressE-CID的值與該擴展連線埠的PCID一致,則過濾該數據。
此外,該發明實施例中還提供了另一種支持虛擬終端的組播數據轉發裝置,套用於乙太網交換機,該裝置主要包括橋接轉發模組中的連線埠確定單元和轉發判斷單元,其中:
所述連線埠確定單元用於,接收終端傳送的組播數據並確定輸出連線埠;
所述轉發判斷單元用於,根據所述連線埠確定單元確定的輸出連線埠,當某輸出連線埠與所述輸入連線埠屬於同一個複製組時,當某輸出連線埠與所述組播數據的輸入連線埠相同、且所述輸入連線埠禁止使能反射中繼功能時,則在轉發報文信息中攜帶Ingress_E-CID,且攜帶的Ingress_E-CID的值為所述組播數據輸入時使用的E-CID。
進一步地,所述轉發判斷單元還用於,確定所述轉發報文信息中攜帶的E-CID的值。
進一步地,所述轉發判斷單元還用於,確定所述輸出連線埠與所述輸入連線埠屬於同一個複製組。
以上僅為該發明的優選實施案例而已,並不用於限制該發明,該發明還可有其他多種實施例,在不背離該發明精神及其實質的情況下,熟悉本領域的技術人員可根據該發明做出各種相應的改變和變形,但這些相應的改變和變形都應屬於該發明所附的權利要求的保護範圍。
顯然,該領域的技術人員應該明白,上述的該發明的各模組或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網路上,可選地,它們可以用計算裝置可執行的程式代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,並且在某些情況下,可以以不同於此處的順序執行所示出或描述的步驟,或者將它們分別製作成各個積體電路模組,或者將它們中的多個模組或步驟製作成單個積體電路模組來實現。這樣,該發明不限制於任何特定的硬體和軟體結合。

榮譽表彰

2020年7月,《一種支持虛擬終端的組播數據轉發方法及裝置》獲得第二十一屆中國專利銀獎。

相關詞條

熱門詞條

聯絡我們