本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種報文轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
VXLAN(Virtual eXtensible Local Area Network,虛擬可擴展局域網(wǎng))技術(shù)可以基于已有的服務(wù)提供商或企業(yè)IP網(wǎng)絡(luò),為分散的物理站點提供二層互聯(lián),并能夠為不同的租戶提供業(yè)務(wù)隔離。
E-Tree(以太網(wǎng)樹型)是一種點到多點以太網(wǎng)服務(wù)技術(shù),這種服務(wù)具有以下特點:1)傳輸以太網(wǎng)報文;2)報文轉(zhuǎn)發(fā)以MAC為基礎(chǔ);3)節(jié)點分為根(Root)節(jié)點和葉子(Leaf)節(jié)點;4)任何節(jié)點都可以產(chǎn)生報文;5)單播或者廣播報文可以從根節(jié)點到根節(jié)點、根節(jié)點到葉子節(jié)點、葉子節(jié)點到根節(jié)點的轉(zhuǎn)發(fā);6)葉子節(jié)點之間無法通信。
VXLAN技術(shù)支持E-Tree,即可以將VXLAN技術(shù)引入到E-Tree業(yè)務(wù)中,每個AC/VM(Attachment Circuit接入電路/Virtual Machine虛擬機)節(jié)點都被作為一個根節(jié)點或者葉子節(jié)點而存在,VXLAN技術(shù)能夠限制葉子節(jié)點之間的通信:
如圖1所示:VSI(Virtual Switch Instance,虛擬交換實例)配置在VTEP(VXLAN Tunnel End Point,VXLAN隧道端點)中,同一VXLAN下的VSI之間通過VXLAN Tunnel進行通信。
對于與同一臺VTEP中配置的VSI相連接的兩個節(jié)點來說,其中每個節(jié)點即為一個AC,該VSI中存儲有與自身相連接的各節(jié)點的角色信息,即表示該節(jié)點是葉子節(jié)點還是根節(jié)點的信息,可以根據(jù)存儲的角色信息,直接限制葉子節(jié)點之間的通信;
對于與不同的VTEP中配置的VSI相連接的的AC/VM來說,VTEP2中的VSI2收到VTEP1中的VSI1發(fā)來的報文,VTEP2不知道上行AC(與VTEP1中的VSI1連接的AC)是葉子節(jié)點還是根節(jié)點。
目前,一般通過配置ACL規(guī)則(Access Control List,訪問控制列表)來解決上述問題。比如在VTEP1中通過配置ACL規(guī)則,使得在VSI中CVLAN(Customer Vlan,用戶虛擬局域網(wǎng))為vlan4(AC4對應(yīng)的CVLAN)的報文不能發(fā)送到AC2,從而實現(xiàn)葉子節(jié)點之間的隔離。但是,配制ACL規(guī)則的過程操作復(fù)雜。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例的目的在于提供一種報文轉(zhuǎn)發(fā)方法及裝置,在實現(xiàn)限制葉子節(jié)點之間的通信的基礎(chǔ)上,降低操作的復(fù)雜性。
為達到上述目的,本發(fā)明實施例公開了一種報文轉(zhuǎn)發(fā)方法,應(yīng)用于支持E-Tree的交換設(shè)備,所述方法包括:
接收虛擬可擴展局域網(wǎng)VXLAN報文,其中所述VXLAN報文中攜帶有源接入電路AC的角色信息;
確定所述VXLAN報文的目的AC的角色信息為根節(jié)點,或者確定所述源AC的角色信息為根節(jié)點,將所述VXLAN報文發(fā)送至所述目的AC。
可選的,在所述接收虛擬可擴展局域網(wǎng)VXLAN報文之后,還可以包括:
確定所述VXLAN報文為廣播報文,將所述VXLAN報文廣播至角色信息為根節(jié)點的所有AC;
確定所述VXLAN報文為單播報文,根據(jù)所述VXLAN報文的目的MAC地址,確定所述VXLAN報文的目的AC。
可選的,所述方法還可以包括:
未確定出所述VXLAN報文的目的AC的情況下,將所述VXLAN報文廣播至角色信息為根節(jié)點的所有AC。
可選的,所述方法還可以包括:
確定所述VXLAN報文為廣播報文、或者未確定出所述VXLAN報文的目的AC的情況下,確定所述源AC的角色信息為根節(jié)點,將所述VXLAN報文廣播至所有AC。
可選的,在所述接收虛擬可擴展局域網(wǎng)VXLAN報文之后,還可以包括:
解析所述VXLAN報文中的VXLAN頭中的保留字段,獲取所述源AC的角色信息。
為達到上述目的,本發(fā)明實施例還公開了一種報文轉(zhuǎn)發(fā)裝置,應(yīng)用于支持E-Tree的交換設(shè)備,所述裝置包括:
接收單元,用于接收虛擬可擴展局域網(wǎng)VXLAN報文,其中所述VXLAN報文中攜帶有源接入電路AC的角色信息;
發(fā)送單元,用于確定所述VXLAN報文的目的AC的角色信息為根節(jié)點,或者確定所述源AC的角色信息為根節(jié)點,將所述VXLAN報文發(fā)送至所述目的AC。
可選的,所述發(fā)送單元,還可以用于:
確定所述VXLAN報文為廣播報文,將所述VXLAN報文廣播至角色信息為根節(jié)點的所有AC;
確定所述VXLAN報文為單播報文,根據(jù)所述VXLAN報文的目的MAC地址,確定所述VXLAN報文的目的AC。
可選的,所述發(fā)送單元,還可以用于:
未確定出所述VXLAN報文的目的AC的情況下,將所述VXLAN報文廣播至角色信息為根節(jié)點的所有AC。
可選的,所述發(fā)送單元,還可以用于:
確定所述VXLAN報文為廣播報文、或者未確定出所述VXLAN報文的目的AC的情況下,確定所述源AC的角色信息為根節(jié)點,將所述VXLAN報文廣播至所有AC。
可選的,所述裝置還可以包括:
獲取單元,用于解析所述VXLAN報文中的VXLAN頭中的保留字段,獲取所述源AC的角色信息。
應(yīng)用本發(fā)明所示實施例,交換設(shè)備接收到的VXLAN報文中攜帶有源AC的角色信息,另外,交換設(shè)備中存儲有與自身相連接的AC的角色信息(其中包括目的AC的角色信息);交換設(shè)備僅在確定源AC的角色信息為根節(jié)點、或者確定目的AC的角色信息為根節(jié)點的情況下,將該VXLAN報文發(fā)送至目的AC;限制了葉子節(jié)點之間的通信;并且,不需要配置ACL,操作簡單。
當然,實施本發(fā)明的任一產(chǎn)品或方法必不一定需要同時達到以上所述的所有優(yōu)點。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為支持E-Tree的VTEP轉(zhuǎn)發(fā)報文示意圖;
圖2為本發(fā)明實施例提供的一種報文轉(zhuǎn)發(fā)方法的流程示意圖;
圖3為本發(fā)明實施例提供的VXLAN報文格式示意圖;
圖4為本發(fā)明實施例提供的一種報文轉(zhuǎn)發(fā)裝置的第結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為了解決現(xiàn)有技術(shù)問題,本發(fā)明實施例提供了一種報文轉(zhuǎn)發(fā)方法及裝置,應(yīng)用于支持E-Tree的交換設(shè)備,該交換設(shè)備可以為交換機、路由器、網(wǎng)關(guān)設(shè)備或者VTEP等等,在此不做限定。下面首先對本發(fā)明實施例提供的一種報文轉(zhuǎn)發(fā)方法進行詳細說明。
以交換設(shè)備為VTEP為例進行說明,如圖1所示,配置于VTEP1中的VSI1與AC1和AC2相連接,配置于VTEP2中的VSI2與AC3和AC4相連接。配置于VTEP1中的VSI1和配置于VTEP2中的VSI2屬于相同的VXLAN網(wǎng)絡(luò),可以通過VXLAN Tunnel進行通信。
在實際應(yīng)用中,VTEP1和VTEP2按照正常VXLAN配置組網(wǎng),根據(jù)端口及連接的VSI識別各個AC,并為各AC配置E-Tree中的角色,圖1中,AC1和AC3的角色信息為根節(jié)點,AC2和AC4的角色信息為葉子節(jié)點。
為了限制葉子節(jié)點之間的通信,VTEP中可以預(yù)先存儲與該VTEP中配置的VSI相連接的每個AC的角色信息,而配置于不同的VTEP中的VSI之間無需相互通告每個AC的角色信息。AC默認的角色信息可以為根節(jié)點,由于根節(jié)點間可以自由通信,因此AC采用默認配置的情況下,等同于普通VXLAN組網(wǎng)。
圖2為本發(fā)明實施例提供的報文轉(zhuǎn)發(fā)方法的第一種流程示意圖,包括:
S101:接收虛擬可擴展局域網(wǎng)VXLAN報文,其中所述VXLAN報文中攜帶有源接入電路AC的角色信息。
與配置于不同的VTEP中的VSI相連接的AC之間通信時,VTEP將AC發(fā)送的數(shù)據(jù)報文進行封裝,封裝后的VXLAN報文的格式可以如圖3所示,包括外層IP頭、外層UDP頭、VXLAN頭和原始二層數(shù)據(jù)幀。其中,外層IP頭用于穿透IP網(wǎng)絡(luò),外層UDP頭用于識別VXLAN報文,VXLAN頭中的vxlanid用于標識該VXLAN報文屬于哪個VSI,原始二層數(shù)據(jù)幀為數(shù)據(jù)報文。
具體的,VTEP在對數(shù)據(jù)報文進行封裝時,根據(jù)自身存儲的發(fā)送該數(shù)據(jù)報文的源AC的角色信息,將源AC的角色信息保存在VXLAN頭中的保留字段中,比如可以保存在保留字段中的最后兩位。因此,VTEP在接收到VTEP后,可以通過解析該VXLAN報文中的VXLAN頭中的保留字段,獲取源AC的角色信息。
其中,VTEP接收到AC發(fā)送的數(shù)據(jù)報文后,確定是否需要將該數(shù)據(jù)報文封裝為VXLAN報文的過程屬于現(xiàn)有技術(shù),在本發(fā)明實施例中對該過程不進行贅述。
S102:確定所述VXLAN報文的目的AC的角色信息為根節(jié)點,或者確定所述源AC的角色信息為根節(jié)點,將所述VXLAN報文發(fā)送至所述目的AC。
當接收到VXLAN報文后,可以先判斷該VXLAN報文是廣播報文還是單播報文:如果是廣播報文,則可以將該VXLAN報文廣播至角色信息為根節(jié)點的所有AC;如果是單播報文,根據(jù)該VXLAN報文的目的MAC地址,確定該VXLAN報文的目的AC,然后再執(zhí)行S102。
當然,還存在一種情況:如果該VXLAN報文是是單播報文,但未確定出該VXLAN報文的目的AC,這種情況下,可以將該VXLAN報文廣播至角色信息為根節(jié)點的所有AC;也可以確定該VXLAN報文的源AC的角色信息,如果源AC的角色信息為根節(jié)點,將該VXLAN報文廣播至所有AC。這兩種方式都能限制葉子節(jié)點之間的通信。
下面以圖1為例進行詳細說明:
假設(shè)AC4需要向AC1傳輸數(shù)據(jù),則VTEP2將AC4發(fā)送的數(shù)據(jù)報文進行封裝,VTEP2中預(yù)先存儲有AC4的角色信息為葉子節(jié)點,VTEP2將AC4的角色信息為葉子節(jié)點的信息保存在VXLAN頭中的保留字段中,并把封裝后的VXLAN報文發(fā)送給VTEP1。
VTEP1接收到VTEP2發(fā)送的VXLAN報文,先判斷該VXLAN報文是廣播報文還是單播報文,判斷結(jié)果為單播報文;VTEP1確定該VXLAN報文中攜帶的源AC(AC4)的角色信息為葉子節(jié)點,并且確定該VXLAN報文中攜帶的目的AC為AC1,VTEP1根據(jù)自身存儲的每個AC的角色信息,確定AC1的角色信息為根節(jié)點;也就是說,AC4與AC1進行通信為葉子節(jié)點與根節(jié)點進行通信,是允許的,因此,VTEP1將該VXLAN報文發(fā)送至目的AC(AC1)。
假設(shè)AC4需要向AC2傳輸數(shù)據(jù),則VTEP2將AC4發(fā)送的數(shù)據(jù)報文進行封裝,VTEP2中預(yù)先存儲有AC4的角色信息為葉子節(jié)點,VTEP2將AC4的角色信息為葉子節(jié)點的信息保存在VXLAN頭中的保留字段中,并把封裝后的VXLAN報文發(fā)送給VTEP1。
VTEP1接收到VTEP2發(fā)送的VXLAN報文,先判斷該VXLAN報文是廣播報文還是單播報文,判斷結(jié)果為單播報文;VTEP1確定該VXLAN報文中攜帶的源AC(AC4)的角色信息為葉子節(jié)點,并且確定該VXLAN報文中攜帶的目的AC為AC2,VTEP1根據(jù)自身存儲的每個AC的角色信息,確定AC2的角色信息為葉子節(jié)點;也就是說,AC4與AC2進行通信為葉子節(jié)點與葉子節(jié)點進行通信,是不允許的,因此,VTEP1不將該VXLAN報文發(fā)送至目的AC(AC2),限制了葉子節(jié)點間的通信。
假設(shè)AC3需要向AC2傳輸數(shù)據(jù),則VTEP2將AC3發(fā)送的數(shù)據(jù)報文進行封裝,VTEP2中預(yù)先存儲有AC3的角色信息為根節(jié)點,VTEP2將AC3的角色信息為根節(jié)點的信息保存在VXLAN頭中的保留字段中,并把封裝后的VXLAN報文發(fā)送給VTEP1。
VTEP1接收到VTEP2發(fā)送的VXLAN報文,先判斷該VXLAN報文是廣播報文還是單播報文,判斷結(jié)果為單播報文;VTEP1確定該VXLAN報文中攜帶的源AC(AC3)的角色信息為根節(jié)點,這種情況下,VTEP1可以不再確定目的AC的角色信息,直接將該VXLAN報文發(fā)送給目的AC??梢岳斫獾氖牵碅C為根節(jié)點,無論目的AC為根節(jié)點還是葉子節(jié)點,源AC都可以與其進行通信。
應(yīng)用本發(fā)明圖2所示實施例,交換設(shè)備接收到的VXLAN報文中攜帶有源AC的角色信息,另外,交換設(shè)備中存儲有與自身相連接的AC的角色信息(其中包括目的AC的角色信息);交換設(shè)備僅在確定源AC的角色信息為根節(jié)點、或者確定目的AC的角色信息為根節(jié)點的情況下,將該VXLAN報文發(fā)送至目的AC;限制了葉子節(jié)點之間的通信;并且,不需要配置ACL,操作簡單。
與上述的方法實施例相對應(yīng),本發(fā)明實施例還提供一種報文轉(zhuǎn)發(fā)裝置。
圖4為本發(fā)明實施例提供的一種報文轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖,包括:
接收單元201,用于接收虛擬可擴展局域網(wǎng)VXLAN報文,其中所述VXLAN報文中攜帶有源接入電路AC的角色信息;
發(fā)送單元202,用于確定所述VXLAN報文的目的AC的角色信息為根節(jié)點,或者確定所述源AC的角色信息為根節(jié)點,將所述VXLAN報文發(fā)送至所述目的AC。
在本實施例中,發(fā)送單元202,還可以用于:
確定所述VXLAN報文為廣播報文,將所述VXLAN報文廣播至角色信息為根節(jié)點的所有AC;
確定所述VXLAN報文為單播報文,根據(jù)所述VXLAN報文的目的MAC地址,確定所述VXLAN報文的目的AC。
在本實施例中,發(fā)送單元202,還可以用于:
未確定出所述VXLAN報文的目的AC的情況下,將所述VXLAN報文廣播至角色信息為根節(jié)點的所有AC。
在本實施例中,發(fā)送單元202,還可以用于:
確定所述VXLAN報文為廣播報文、或者未確定出所述VXLAN報文的目的AC的情況下,確定所述源AC的角色信息為根節(jié)點,將所述VXLAN報文廣播至所有AC。
在本實施例中,所述裝置還可以包括:
獲取單元(圖中未示出),用于解析所述VXLAN報文中的VXLAN頭中的保留字段,獲取所述源AC的角色信息。
應(yīng)用本發(fā)明圖4所示實施例,交換設(shè)備接收到的VXLAN報文中攜帶有源AC的角色信息,另外,交換設(shè)備中存儲有與自身相連接的AC的角色信息(其中包括目的AC的角色信息);交換設(shè)備僅在確定源AC的角色信息為根節(jié)點、或者確定目的AC的角色信息為根節(jié)點的情況下,將該VXLAN報文發(fā)送至目的AC;限制了葉子節(jié)點之間的通信;并且,不需要配置ACL,操作簡單。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關(guān)的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施方式中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于計算機可讀取存儲介質(zhì)中,這里所稱得的存儲介質(zhì),如:ROM/RAM、磁碟、光盤等。
以上所述僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進等,均包含在本發(fā)明的保護范圍內(nèi)。