專利名稱:一種二層組播路徑跟蹤方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及一種二層組播路徑跟蹤方法、裝置及系統(tǒng)。
背景技術(shù):
IP組播就是通過使用特定的IP組播地址,按照最大投遞的原則,將IP數(shù)據(jù)包傳輸?shù)轿挥谝粋€(gè)組播群組的主機(jī);通常把工作在數(shù)據(jù)鏈路層的IP組播稱為二層組播。在二層組播中,通過偵聽/攔截組播路由器和主機(jī)之間交互的IGMP(Internet Group Management Protocol,因特網(wǎng)組管理協(xié)議)報(bào)文,可以獲知交換機(jī)的哪些端口下連接著一個(gè)組播群組的組成員主機(jī),只將組播數(shù)據(jù)發(fā)送至這些端口,從而實(shí)現(xiàn)了組播數(shù)據(jù)在二層網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)。 在二層組播中,如果想獲知組播數(shù)據(jù)在組播路由器和組成員主機(jī)之間的組播轉(zhuǎn)發(fā)路徑,主要通過路徑跟蹤的方法來實(shí)現(xiàn)?,F(xiàn)有技術(shù)需通過命令行或逐臺(tái)排查設(shè)備節(jié)點(diǎn)來跟蹤組播數(shù)據(jù)在組播路由器和組成員主機(jī)之間的組播轉(zhuǎn)發(fā)路徑,從而可以獲知組播數(shù)據(jù)的組播轉(zhuǎn)發(fā)路徑。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題龐大的二層組播網(wǎng)絡(luò)中涉及的組播設(shè)備太多,現(xiàn)有技術(shù)中的路徑跟蹤方法使得運(yùn)維成本增加,效率降低。
發(fā)明內(nèi)容
為了降低運(yùn)維成本,提高效率,本發(fā)明實(shí)施例提供了一種二層組播路徑跟蹤方法、 裝置及系統(tǒng)。所述技術(shù)方案如下一種二層組播路徑跟蹤方法,所述方法包括獲取路徑跟蹤請(qǐng)求報(bào)文;判斷二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài);當(dāng)所述端口實(shí)例狀態(tài)中存在所述非^erEdge狀態(tài),添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備;當(dāng)所述端口實(shí)例狀態(tài)均為所述^erEdge狀態(tài),終結(jié)路徑跟蹤請(qǐng)求報(bào)文,添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從所述 NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息, 將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。一種二層組播路徑跟蹤裝置,包括獲取模塊,用于獲取路徑跟蹤請(qǐng)求報(bào)文;判斷模塊,用于判斷二層組播轉(zhuǎn)發(fā)表的組播成員端口的端口實(shí)例狀態(tài);第一處理模塊,用于當(dāng)所述端口實(shí)例狀態(tài)中存在非^erEdge狀態(tài),添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備;第二處理模塊,用于當(dāng)所述端口實(shí)例狀態(tài)均為^erEdge狀態(tài),終結(jié)路徑跟蹤請(qǐng)求報(bào)文,添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。一種二層組播路徑跟蹤系統(tǒng),包括上述二層組播跟蹤裝置和查詢?cè)O(shè)備,所述查詢?cè)O(shè)備用于接收從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息。本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是通過二層組播中的每一跳二層組播設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),直到終結(jié)路徑跟蹤請(qǐng)求報(bào)文,使得請(qǐng)求報(bào)文中包含了從 NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實(shí)施例1中提供的一種二層組播路徑跟蹤方法實(shí)施例的流程圖;圖2是本發(fā)明實(shí)施例2中提供的一種二層組播路徑跟蹤方法實(shí)施例的流程圖;圖3是本發(fā)明實(shí)施例3中提供的一種二層組播路徑跟蹤方法實(shí)施例的流程圖;圖4是本發(fā)明實(shí)施例3中提供的獲取路徑跟蹤請(qǐng)求報(bào)文方法實(shí)施例的流程圖;圖5是本發(fā)明實(shí)施例4中提供的一種二層組播路徑跟蹤方法實(shí)施例的流程圖;圖6是本發(fā)明實(shí)施例4中提供的動(dòng)態(tài)設(shè)置^erEdge狀態(tài)或非^erEdge狀態(tài)端口實(shí)例的方法實(shí)施例的流程圖;圖7是本發(fā)明實(shí)施例4中提供的IGMPvl Report報(bào)文格式示意圖;圖8是本發(fā)明實(shí)施例4中提供的IGMPv2 Report/Leave報(bào)文格式示意圖;圖9是本發(fā)明實(shí)施例4中提供的IGMPv3 Report報(bào)文格式示意圖;圖10是本發(fā)明實(shí)施例4中提供的動(dòng)態(tài)設(shè)置端口實(shí)例的組網(wǎng)示意圖;圖11是本發(fā)明實(shí)施例5中提供的二層組播mtrace報(bào)文處理方法實(shí)施例的組網(wǎng)示意圖;圖12是本發(fā)明實(shí)施例6提供的一種二層組播路徑跟蹤裝置實(shí)施例的結(jié)構(gòu)示意圖;圖13是本發(fā)明實(shí)施例7中提供的一種二層組播路徑跟蹤裝置實(shí)施例的結(jié)構(gòu)示意圖;圖1 是本發(fā)明實(shí)施例8中提供的一種二層組播路徑跟蹤裝置實(shí)施例的第一結(jié)構(gòu)示意圖;圖14b是本發(fā)明實(shí)施例8中提供的一種二層組播路徑跟蹤裝置實(shí)施例的第二結(jié)構(gòu)示意圖;圖1 是本發(fā)明實(shí)施例9中提供的一種二層組播路徑跟蹤裝置實(shí)施例的結(jié)構(gòu)示意圖; 圖15b是本發(fā)明實(shí)施例9中提供的一種二層組播路徑跟蹤裝置實(shí)施例的結(jié)構(gòu)示意
0036]圖16是本發(fā)明實(shí)施例10中提供的一種二層組播路徑跟蹤系統(tǒng)實(shí)施例的結(jié)構(gòu)示意
圖
具體實(shí)施例方式
本發(fā)明實(shí)施例提供一種二層組播路徑跟蹤方法、裝置及系統(tǒng)。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。發(fā)明實(shí)施例中二層組播的mtrace報(bào)文包含二層組播的信息字段,如組播源、組播組、組播介質(zhì)訪問控制(MAC,Media Access Control)地址和系統(tǒng)MAC地址。所述二層組播的mtrace報(bào)文包括路徑跟蹤查詢(Query)報(bào)文、路徑跟蹤請(qǐng)求(Request)報(bào)文和路徑跟蹤響應(yīng)(Response)報(bào)文。實(shí)施例1參考圖1,圖1為本發(fā)明實(shí)施例1中提供的一種二層組播路徑跟蹤方法實(shí)施例的流程圖。所述二層組播路徑跟蹤方法包括SlOl 獲取路徑跟蹤請(qǐng)求報(bào)文。當(dāng)獲取路徑跟蹤請(qǐng)求報(bào)文的執(zhí)行主體是所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的二層組播設(shè)備時(shí),獲取路徑跟蹤請(qǐng)求報(bào)文具體包括接收由查詢?cè)O(shè)備發(fā)送的路徑跟蹤查詢報(bào)文;將所述路徑跟蹤查詢報(bào)文修改為路徑跟蹤請(qǐng)求報(bào)文。或者,當(dāng)獲取路徑跟蹤請(qǐng)求報(bào)文的執(zhí)行主體不是所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的二層組播設(shè)備時(shí),獲取路徑跟蹤請(qǐng)求報(bào)文具體包括接收由上游二層組播設(shè)備發(fā)送的路徑跟蹤請(qǐng)求報(bào)文。S102 判斷二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài),當(dāng)所述端口實(shí)例狀態(tài)中存在非^erEdge狀態(tài)時(shí),執(zhí)行S103 ;當(dāng)所述端口實(shí)例狀態(tài)均為^erEdge狀態(tài)時(shí),執(zhí)行 S104。S103 添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述 # UserEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備。S104 終結(jié)路徑跟蹤請(qǐng)求報(bào)文,添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。本實(shí)施例中,二層組播中的每一跳二層組播設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),直到終結(jié)路徑跟蹤請(qǐng)求報(bào)文,使得路徑跟蹤請(qǐng)求報(bào)文中包含了從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到UserEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。實(shí)施例2
參考圖2,圖2為本發(fā)明實(shí)施例2中提供的一種二層組播路徑跟蹤方法實(shí)施例的流程圖。所述二層組播路徑跟蹤方法包括S201 設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài),所述端口實(shí)例狀態(tài)包括網(wǎng)絡(luò)側(cè)邊緣 NetEdge狀態(tài)、用戶側(cè)邊緣^erEdge狀態(tài)和非^erEdge狀態(tài)。在二層組播中,二層組播設(shè)備既可以直接連接主機(jī),又可以直接連接其他的二層組播設(shè)備,因此端口或虛擬局域網(wǎng)(Vlan,Virtual local area network)端口可以作為主機(jī)或二層組播設(shè)備的接口 ;NetEdge狀態(tài)、UserEdge狀態(tài)和非^erEdge狀態(tài)都是基于端口或Vlan端口,為了描述方便,將端口或Vlan端口統(tǒng)稱為端口實(shí)例。所述NetEdge狀態(tài)的端口實(shí)例主要用于終結(jié)路徑跟蹤查詢報(bào)文,發(fā)送路徑跟蹤請(qǐng)求報(bào)文,防止路徑查詢報(bào)文被無限止的在二層組播網(wǎng)絡(luò)中轉(zhuǎn)發(fā);所述非^erEdge狀態(tài)端口實(shí)例主要用于轉(zhuǎn)發(fā)二層組播mtrace報(bào)文;所述^erEdge狀態(tài)端口實(shí)例主要用于終結(jié)路徑跟蹤請(qǐng)求報(bào)文,發(fā)送路徑跟蹤響應(yīng)報(bào)文,防止路徑請(qǐng)求報(bào)文被無限止的在二層組播網(wǎng)絡(luò)中轉(zhuǎn)發(fā)。在實(shí)際應(yīng)用中,由于連接組播源或組播路由器的二層組播設(shè)備較少,所以可以直接靜態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例為NetEdge狀態(tài),具體地,可以指定直接連接上游組播源或組播路由器的二層組播設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài)。對(duì)于本領(lǐng)域技術(shù)人員而言,設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài)的方法不僅僅局限于此方法,在此不作贅述。對(duì)于二層組播設(shè)備的^erEdge狀態(tài)端口實(shí)例或非^erEdge狀態(tài)端口實(shí)例也可以進(jìn)行靜態(tài)設(shè)置,具體地,可以指定二層組播設(shè)備上直接連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)為非^erEdge狀態(tài),可以指定二層組播設(shè)備上直接連接下游主機(jī)的端口實(shí)例狀態(tài)為^erEdge狀態(tài);或者,也可以動(dòng)態(tài)設(shè)置二層組播設(shè)備的^erEdge狀態(tài)端口實(shí)例或非 UserEdge狀態(tài)端口實(shí)例。S202 獲取路徑跟蹤請(qǐng)求報(bào)文。當(dāng)獲取路徑跟蹤請(qǐng)求報(bào)文的執(zhí)行主體是所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的二層組播設(shè)備時(shí),獲取路徑跟蹤請(qǐng)求報(bào)文具體包括接收由查詢?cè)O(shè)備發(fā)送的路徑跟蹤查詢報(bào)文;將所述路徑跟蹤查詢報(bào)文修改為路徑跟蹤請(qǐng)求報(bào)文?;蛘撸?dāng)獲取路徑跟蹤請(qǐng)求報(bào)文的執(zhí)行主體不是所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的二層組播設(shè)備時(shí),獲取路徑跟蹤請(qǐng)求報(bào)文具體包括接收由上游二層組播設(shè)備發(fā)送的路徑跟蹤請(qǐng)求報(bào)文。S203 判斷二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài),當(dāng)所述端口實(shí)例狀態(tài)中存在所述非^erEdge狀態(tài)時(shí),執(zhí)行S204 ;當(dāng)所述端口實(shí)例狀態(tài)均為所述^erEdge狀態(tài)時(shí),執(zhí)行S205。每個(gè)二層組播設(shè)備上都有一個(gè)二層組播轉(zhuǎn)發(fā)表,所述二層組播轉(zhuǎn)發(fā)表中存儲(chǔ)著自身設(shè)備的組播成員端口,所述組播成員端口直接或間接連接組成員主機(jī)。二層組播轉(zhuǎn)發(fā)表的具體形式與現(xiàn)有技術(shù)類似,在此不再贅述。所述組播成員端口的端口實(shí)例狀態(tài)存儲(chǔ)于端口實(shí)例狀態(tài)集中,所述端口實(shí)例狀態(tài)集主要用于存儲(chǔ)二層組播設(shè)備上所有組播成員端口的端口實(shí)例狀態(tài)信息。
S204 添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備。實(shí)際應(yīng)用中,下游設(shè)備接收所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文后,再循環(huán)執(zhí)行S203,直至當(dāng)所述端口實(shí)例狀態(tài)均為所述^erEdge狀態(tài)時(shí),執(zhí)行S205。S205 終結(jié)路徑跟蹤請(qǐng)求報(bào)文,添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述 UserEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。實(shí)際應(yīng)用中,獲取從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,也就表示獲取了從組播源或組播路由器到組成員主機(jī)之間的組播轉(zhuǎn)發(fā)路徑信息。本實(shí)施例中,二層組播中的每一跳二層組播設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),直到終結(jié)路徑跟蹤請(qǐng)求報(bào)文,使得路徑跟蹤請(qǐng)求報(bào)文中包含了從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。在二層組播網(wǎng)絡(luò)中,二層組播設(shè)備可以是二層組播交換機(jī),也可以是其他二層組播設(shè)備,本發(fā)明實(shí)施例并不局限于此。下述實(shí)施例3和實(shí)施例4主要以二層組播交換機(jī)為例進(jìn)行詳細(xì)描述。實(shí)施例3參考圖3,圖3為本發(fā)明實(shí)施例3中提供的一種二層組播路徑跟蹤方法實(shí)施例的流程圖。所述二層組播路徑跟蹤方法包括S301 設(shè)置交換機(jī)設(shè)備的端口實(shí)例狀態(tài),所述端口實(shí)例狀態(tài)包括=NetEdge狀態(tài)、 UserEdge狀態(tài)和非^erEdge狀態(tài)。在實(shí)際應(yīng)用中,由于連接組播源或組播路由器的交換機(jī)設(shè)備較少,所以可以直接靜態(tài)設(shè)置交換機(jī)設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài),具體地,可以指定直接連接上游組播源或組播路由器的交換機(jī)設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài)。對(duì)于本領(lǐng)域技術(shù)人員而言,設(shè)置交換機(jī)設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài)的方法不僅僅局限于此方法,在此不作贅述。對(duì)于交換機(jī)設(shè)備的^erEdge狀態(tài)端口實(shí)例或非^erEdge狀態(tài)端口實(shí)例也可以進(jìn)行靜態(tài)設(shè)置,具體地,可以指定交換機(jī)設(shè)備上直接連接下游交換機(jī)設(shè)備的端口實(shí)例狀態(tài)為非^erEdge狀態(tài);可以指定交換機(jī)設(shè)備上直接連接下游主機(jī)的端口實(shí)例狀態(tài)為^erEdge 狀態(tài)。S302 獲取路徑跟蹤請(qǐng)求報(bào)文。本實(shí)施例中的執(zhí)行主體可以是二層網(wǎng)絡(luò)中的任一交換機(jī)設(shè)備,如果執(zhí)行主體是所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的交換機(jī)設(shè)備時(shí),參考圖4,圖4為本發(fā)明實(shí)施例3中提供的獲取路徑跟蹤請(qǐng)求報(bào)文方法實(shí)施例的流程圖,所述獲取路徑跟蹤請(qǐng)求報(bào)文包括S302a 接收由查詢?cè)O(shè)備發(fā)送的路徑跟蹤查詢報(bào)文。二層組播中,查詢?cè)O(shè)備通過路由器口向上游交換機(jī)設(shè)備發(fā)送路徑跟蹤查詢報(bào)文, 所述路徑跟蹤查詢報(bào)文經(jīng)過二層組播交換機(jī)設(shè)備通過路由器口一跳一跳地轉(zhuǎn)發(fā)至NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的交換機(jī)設(shè)備。其中,所述路徑跟蹤查詢報(bào)文的二層頭的源MAC為自身設(shè)備的MAC地址,即查詢?cè)O(shè)備的MAC地址;所述路徑跟蹤查詢報(bào)文承載的IP報(bào)文的源地址為任意地址,目的地址為要查詢的組地址;mtrace報(bào)文類型為Query,封裝要查詢的組播信息(S,G)、(*,G)或 (GMAC)。S302b 將所述路徑跟蹤查詢報(bào)文修改為路徑跟蹤請(qǐng)求報(bào)文。NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的交換機(jī)設(shè)備收到所述路徑跟蹤查詢報(bào)文后,將 mtrace報(bào)文類型由Query修改為Request,添加所述查詢?cè)O(shè)備的MAC地址和本設(shè)備的MAC 地址至路徑跟蹤請(qǐng)求報(bào)文,將所述路徑跟蹤查詢報(bào)文的二層頭的源MAC地址修改為自身設(shè)備的MAC地址,所述自身設(shè)備的MAC地址為所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的交換機(jī)設(shè)備的MAC地址。如果執(zhí)行主體不是所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的交換機(jī)設(shè)備時(shí),所述獲取請(qǐng)求報(bào)文包括接收由上游交換機(jī)設(shè)備發(fā)送的路徑跟蹤請(qǐng)求報(bào)文。實(shí)際應(yīng)用中,通過上游交換機(jī)設(shè)備的非^erEdge狀態(tài)端口實(shí)例接收路徑跟蹤請(qǐng)求報(bào)文,所述路徑跟蹤請(qǐng)求報(bào)文中包含從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的交換機(jī)設(shè)備到自身設(shè)備的上一跳交換機(jī)的組播路徑信息。S303 判斷二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài),當(dāng)所述端口實(shí)例狀態(tài)中存在所述非^erEdge狀態(tài)時(shí),執(zhí)行S304 ;當(dāng)所述端口實(shí)例狀態(tài)均為所述^erEdge狀態(tài)時(shí),執(zhí)行S305。二層組播中的每一跳交換機(jī)設(shè)備收到所述路徑跟蹤請(qǐng)求報(bào)文后,查詢自身設(shè)備上的二層組播轉(zhuǎn)發(fā)表,判斷所述二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài),當(dāng)所述端口實(shí)例狀態(tài)中存在所述非^erEdge狀態(tài)時(shí),執(zhí)行S304 ;當(dāng)所述端口實(shí)例狀態(tài)均為所述 UserEdge狀態(tài)時(shí),執(zhí)行S305。S304 添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備。實(shí)際應(yīng)用中,下游設(shè)備接收所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文后,再循環(huán)執(zhí)行S303,直至當(dāng)所述端口實(shí)例狀態(tài)均為所述^erEdge狀態(tài)時(shí),執(zhí)行S305。S305 終結(jié)路徑跟蹤請(qǐng)求報(bào)文,將自身設(shè)備的MAC地址添加至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述 UserEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。終結(jié)路徑跟蹤請(qǐng)求報(bào)文;將自身設(shè)備的MAC地址添加到所述請(qǐng)求報(bào)文中,即將所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)的交換機(jī)設(shè)備的MAC地址添加到所述路徑跟蹤請(qǐng)求報(bào)文中, 因此所述路徑跟蹤請(qǐng)求報(bào)文包含了從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到所述 UserEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備的組播路徑信息;從所述請(qǐng)求報(bào)文中獲取所述組播路徑信息并發(fā)送至查詢?cè)O(shè)備,由查詢?cè)O(shè)備將所述組播路徑信息進(jìn)行顯示。實(shí)際應(yīng)用中,獲取從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,也就表示獲取了從組播源或組播路由器到組成員主機(jī)之間的組播轉(zhuǎn)發(fā)路徑信息。在本實(shí)施例中,二層組播中的每一跳交換機(jī)設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),直到終結(jié)路徑跟蹤請(qǐng)求報(bào)文,使得路徑跟蹤請(qǐng)求報(bào)文中包含了從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。實(shí)施例4參考圖5,圖5為本發(fā)明實(shí)施例4中提供的一種二層組播路徑跟蹤方法實(shí)施例的流程圖,所述二層組播路徑跟蹤方法包括S501 設(shè)置交換機(jī)設(shè)備的端口實(shí)例狀態(tài),所述端口實(shí)例狀態(tài)包括=NetEdge狀態(tài)、 UserEdge狀態(tài)和非^erEdge狀態(tài)。本實(shí)施例中交換機(jī)設(shè)備端口實(shí)例的NetEdge狀態(tài)、^erEdge狀態(tài)或非^erEdge 狀態(tài)的設(shè)置方法和實(shí)施例3中交換機(jī)設(shè)備端口實(shí)例的NetEdge狀態(tài)、UserEdge狀態(tài)或非 UserEdge狀態(tài)的設(shè)置方法類似,具體可以參考S301中的方法進(jìn)行設(shè)置,在此不再贅述。對(duì)于交換機(jī)設(shè)備端口實(shí)例的^erEdge狀態(tài)或非^erEdge狀態(tài)的設(shè)置也可以進(jìn)行動(dòng)態(tài)設(shè)置。S502 獲取路徑跟蹤請(qǐng)求報(bào)文。本實(shí)施例中路徑跟蹤請(qǐng)求報(bào)文的獲取方法和S302中路徑跟蹤請(qǐng)求報(bào)文的獲取方法相似,具體可以參考S302,在此不再贅述。S503:判斷二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài)中是否存在所述非 UserEdge狀態(tài),如果是,執(zhí)行S504,如果否,執(zhí)行S505。二層組播中的每一跳交換機(jī)設(shè)備收到所述路徑跟蹤請(qǐng)求報(bào)文后,查詢二層組播轉(zhuǎn)發(fā)表,判斷所述二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài)中是否存在所述非 UserEdge狀態(tài),如果存在,執(zhí)行S504,如果不存在,執(zhí)行S505。S504 添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備。實(shí)際應(yīng)用中,當(dāng)所述端口實(shí)例狀態(tài)中存在所述非^erEdge狀態(tài)時(shí),添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,沿著組播轉(zhuǎn)發(fā)表經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例向下游交換機(jī)設(shè)備發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文。由于將自身設(shè)備的MAC 地址添加至所述路徑跟蹤請(qǐng)求報(bào)文,因此所述路徑跟蹤請(qǐng)求報(bào)文包含了從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到自身設(shè)備的組播路徑信息。如果請(qǐng)求組播的組播成員的端口實(shí)例狀態(tài)中既有^erEdge狀態(tài),又有非 UserEdge狀態(tài)時(shí),則不需要向^erEdge狀態(tài)的端口實(shí)例轉(zhuǎn)發(fā)所述路徑跟蹤請(qǐng)求報(bào)文,防止路徑跟蹤報(bào)文被轉(zhuǎn)發(fā)至主機(jī),只需要向非^erEdge狀態(tài)的端口實(shí)例轉(zhuǎn)發(fā)所述路徑跟蹤請(qǐng)求報(bào)文。S505:判斷組播轉(zhuǎn)發(fā)表中請(qǐng)求組播的組播成員的端口實(shí)例狀態(tài)是否都為所述 UserEdge狀態(tài),如果是,執(zhí)行S506。S506 終結(jié)路徑跟蹤請(qǐng)求報(bào)文,將自身設(shè)備的MAC地址添加至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述 UserEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。終結(jié)路徑跟蹤請(qǐng)求報(bào)文;將自身設(shè)備的MAC地址添加到所述路徑跟蹤請(qǐng)求報(bào)文中,即將所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備的MAC地址添加到所述路徑跟蹤請(qǐng)求報(bào)文中,因此所述路徑跟蹤請(qǐng)求報(bào)文包含從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備的組播路徑信息。將所述路徑跟蹤請(qǐng)求報(bào)文修改為路徑跟蹤響應(yīng)報(bào)文,發(fā)送所述路徑跟蹤響應(yīng)報(bào)文至查詢?cè)O(shè)備,由所述查詢?cè)O(shè)備將從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息進(jìn)行顯示;具體地,將mtrace報(bào)文類型由Request修改為Response,同時(shí)將路徑跟蹤響應(yīng)報(bào)文的二層頭的目的MAC地址修改為查詢?cè)O(shè)備的MAC 地址,向整個(gè)二層網(wǎng)絡(luò)單播轉(zhuǎn)發(fā)所述路徑跟蹤響應(yīng)報(bào)文,其中,所述路徑跟蹤響應(yīng)報(bào)文中包含了從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備的組播路徑信息。查詢?cè)O(shè)備接收所述路徑跟蹤響應(yīng)報(bào)文后,終結(jié)所述路徑跟蹤響應(yīng)報(bào)文;從所述路徑跟蹤響應(yīng)報(bào)文中獲取從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備的組播路徑信息,將組播成員信息按照從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到下游交換機(jī)設(shè)備的順序進(jìn)行顯示。實(shí)際應(yīng)用中,獲取從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,也就表示獲取了從組播源或組播路由器到組成員主機(jī)之間的組播轉(zhuǎn)發(fā)路徑信息。對(duì)于交換機(jī)設(shè)備端口實(shí)例的^erEdge狀態(tài)或非^erEdge狀態(tài)的動(dòng)態(tài)設(shè)置具體可以參見圖6,圖6為本發(fā)明實(shí)施例4中提供的動(dòng)態(tài)設(shè)置^erEdge狀態(tài)或非^erEdge狀態(tài)端口實(shí)例的方法實(shí)施例的流程圖,具體包括S601a 將連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)均設(shè)置為^erEdge狀態(tài)。S601b 接收IGMP報(bào)告報(bào)文或離開報(bào)文,根據(jù)所述IGMP報(bào)告報(bào)文或離開報(bào)文修改自身設(shè)備的二層組播轉(zhuǎn)發(fā)表。在二層組播中,IGMP報(bào)告報(bào)文或離開報(bào)文具體為IGMPVl/v2/v3報(bào)告(Iteport)報(bào)文或 IGMPv2 離開(Leave)報(bào)文,所述 IGMPvl/v2/v3 Report 報(bào)文或 IGMPv2 Leave 報(bào)文只能由主機(jī)發(fā)出,并且這類IGMP報(bào)文在經(jīng)過每臺(tái)交換機(jī)設(shè)備時(shí)都是線性的,從下到上只有一份,因此最先收到這類IGMP報(bào)文的交換機(jī)設(shè)備就是連接主機(jī)最近的二層組播交換機(jī)設(shè)備。當(dāng)主機(jī)發(fā)送IGMP報(bào)告報(bào)文時(shí),表示主機(jī)申請(qǐng)加入組播群組;當(dāng)主機(jī)發(fā)送IGMP離開報(bào)文時(shí),表示主機(jī)申請(qǐng)離開組播群組。每一跳交換機(jī)設(shè)備接收IGMP報(bào)告報(bào)文或離開報(bào)文后,根據(jù)所述IGMP報(bào)告報(bào)文或離開報(bào)文修改自身設(shè)備的二層組播轉(zhuǎn)發(fā)表,具體地,如果接收的是IGMP報(bào)告報(bào)文,則將接收IGMP報(bào)告報(bào)文的端口添加到自身設(shè)備的二層組播轉(zhuǎn)發(fā)表的組播成員端口中;如果接收的IGMP離開報(bào)文,則將接收IGMP離開報(bào)文的端口從自身設(shè)備的二層組播轉(zhuǎn)發(fā)表的組播成員端口中刪除。S601c:判斷所述IGMP報(bào)告報(bào)文或離開報(bào)文中的標(biāo)記Flag值是否與自身設(shè)備默認(rèn)設(shè)置的Flagset值一致,如果是,執(zhí)行S601d,如果否,執(zhí)行S601e。所述Flag值可以通過以下任一方式進(jìn)行存儲(chǔ),具體為1)在所述IGMP報(bào)告報(bào)文或離開報(bào)文承載的IP報(bào)文中新增的Option字段來存儲(chǔ)所述Flag值,即將所述Flag值存儲(chǔ)于所述新增的Option字段;其中,所述Option字段的插入位置位于所述IP報(bào)文的報(bào)文頭后,用于記錄本節(jié)點(diǎn)的系統(tǒng)MAC地址+端口實(shí)例?;蛘?,2)復(fù)用IGMP報(bào)告報(bào)文或離開報(bào)文的報(bào)文頭中的第二個(gè)字段來存儲(chǔ)所述Flag值, 即將所述Flag值存儲(chǔ)于所述IGMP報(bào)告報(bào)文或離開報(bào)文的報(bào)文頭中的第二個(gè)字段。參考圖7-圖9,其中,圖7為本發(fā)明實(shí)施例4中提供的IGMPvl R印ort報(bào)文格式示意圖,圖8為本發(fā)明實(shí)施例4中提供的IGMPv2 Report/Leave報(bào)文格式示意圖,圖9為本發(fā)明實(shí)施例4中提供的IGMPv3 Report報(bào)文格式示意圖。圖7中IGMPvl Report報(bào)文的報(bào)文頭中的第二個(gè)字段在RFC1112中的說明是不使用區(qū)域當(dāng)發(fā)送時(shí)為0,當(dāng)接收時(shí)忽略。圖8中IGMPv2 R印ort/Leave報(bào)文的報(bào)文頭中的第二個(gè)字段在RFC2236中的說明是最大響應(yīng)時(shí)間區(qū)域僅僅在會(huì)員身份查詢消息中有意義, 在其他所有消息中,當(dāng)發(fā)送時(shí)置為0,接收時(shí)忽略。圖9中IGMPv3 Report報(bào)文的報(bào)文頭中的第二個(gè)字段在RFC3376中的說明是保留區(qū)域當(dāng)傳送時(shí)置為0,當(dāng)接收時(shí)忽略。通過對(duì)IGMPvl/v2/v3 R印ort報(bào)文或IGMPv2 Leave報(bào)文的報(bào)文頭中的第二個(gè)字段的分析可知,IGMPvl/v2/v3 R印ort報(bào)文或IGMPv2 Leave報(bào)文的報(bào)文頭中的第二個(gè)字段都是發(fā)送時(shí)為0,接收時(shí)忽略,所以該字段是可以復(fù)用做其他的用途,因此本實(shí)施例復(fù)用 IGMP報(bào)告報(bào)文或離開報(bào)文的報(bào)文頭中的第二個(gè)字段來存儲(chǔ)Flag值。其中,由主機(jī)發(fā)出的符合協(xié)議的IGMP報(bào)告報(bào)文或離開報(bào)文中的Flag值為零。但是,主機(jī)設(shè)備有可能發(fā)出不符合協(xié)議的IGMP報(bào)告報(bào)文或離開報(bào)文,其中不符合協(xié)議的IGMP 報(bào)告報(bào)文或離開報(bào)文中的Flag值為非零值。所述自身設(shè)備默認(rèn)設(shè)置的Flagset值為零,所述Flagset值可以認(rèn)為是設(shè)備可信任的IGMP中Flag值。當(dāng)所述IGMP報(bào)告報(bào)文或離開報(bào)文中的標(biāo)記Flag值與自身設(shè)備默認(rèn)設(shè)置的Flagset值(零)一致,表示所述IGMP報(bào)告報(bào)文或離開報(bào)文是由主機(jī)發(fā)出的。S601d:所述端口實(shí)例WherEdge狀態(tài)保持不變,將所述Flag值修改為第一非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游交換機(jī)設(shè)備。如果所述IGMP報(bào)告報(bào)文或離開報(bào)文中的Flag值是零,也就是說,所述IGMP報(bào)告報(bào)文或離開報(bào)文是由主機(jī)發(fā)出,由離主機(jī)最近的交換機(jī)設(shè)備端口實(shí)例接收到,則將離主機(jī)最近的交換機(jī)設(shè)備端口實(shí)例的^erEdge狀態(tài)保持不變,將所述Flag值由零修改為第一非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游交換機(jī)設(shè)備。S601e 修改所述Flagset值為預(yù)定的Flagset值,判斷所述Flag值與所述預(yù)定的 Flagset值是否一致,如果是,執(zhí)行S601f,如果否,執(zhí)行S601g。如果所述IGMP報(bào)告報(bào)文或離開報(bào)文中的Flag值不是零,也就是說,所述IGMP報(bào)告報(bào)文或離開報(bào)文有可能是由主機(jī)設(shè)備發(fā)出的不符合協(xié)議的IGMP報(bào)文,也有可能是經(jīng)過下游交換機(jī)設(shè)備修改后的IGMP報(bào)文;所以需要修改所述Flagset值為預(yù)定的Flagset值后,再進(jìn)行判斷,從而執(zhí)行相應(yīng)處理。所述預(yù)定的Flagset值為由主機(jī)發(fā)出的不符合協(xié)議的IGMP報(bào)文中Flag值的經(jīng)驗(yàn)值。S601f:所述端口實(shí)例WherEdge狀態(tài)保持不變,將所述Flag值修改為第二非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游交換機(jī)設(shè)備。如果所述Flag值與所述預(yù)定的Flagset值一致,也就是說,所述IGMP報(bào)文為由主機(jī)發(fā)出的不符合協(xié)議的IGMP報(bào)文,因此所述端口實(shí)例的^erEdge狀態(tài)保持不變,將所述 Flag值修改為第二非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游交換機(jī)設(shè)備。S601d中的所述第一非零值和S601f中的所述第二非零值為除所述預(yù)定的 Flagset值之外的任一非零值。S601g 將所述端口實(shí)例的^erEdge狀態(tài)修改為非^erEdge狀態(tài),所述Flag值不變,發(fā)送所述IGMP報(bào)告報(bào)文或離開報(bào)文至上游交換機(jī)設(shè)備。如果所述Flag值與預(yù)置的Flagset值不一致,也就是說,所述IGMP報(bào)文為經(jīng)過下游交換機(jī)設(shè)備修改后的IGMP報(bào)文,因此將所述端口實(shí)例的^erEdge狀態(tài)修改為非 UserEdge狀態(tài),所述Flag值不變,發(fā)送所述IGMP報(bào)告報(bào)文或離開報(bào)文至上游交換機(jī)設(shè)備。這樣,IGMP報(bào)告報(bào)文或離開報(bào)文一跳一跳地轉(zhuǎn)發(fā)至NetEdge狀態(tài)端口實(shí)例,所述 NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備將IGMP報(bào)告報(bào)文或離開報(bào)文中的Flag還原為零后發(fā)送至組播路由器或組播源。本實(shí)施例S601c中可以不判斷所述IGMP報(bào)告報(bào)文或離開報(bào)文中的標(biāo)記Flag值是否與自身設(shè)備默認(rèn)設(shè)置的Flagset值一致,而是直接判斷所述IGMP報(bào)告報(bào)文或離開報(bào)文中的標(biāo)記Flag值是否為零,如果是執(zhí)行S601d,如果否,執(zhí)行S601e,相應(yīng)的S601e也可以用下屬方案來代替,具體的,S601e 判斷所述Flag值與預(yù)定值是否一致,如果是,執(zhí)行S601f,如果否,執(zhí)行S601g,其中,所述預(yù)定值為由主機(jī)發(fā)出的不符合協(xié)議的IGMP報(bào)文中Flag值的經(jīng)驗(yàn)值。通過上述動(dòng)態(tài)設(shè)置,二層組播中的交換機(jī)都確定了端口實(shí)例的^erEdge狀態(tài)或非^erEdge狀態(tài),參考圖10,圖10為本發(fā)明實(shí)施例4中提供的動(dòng)態(tài)設(shè)置端口實(shí)例的組網(wǎng)示意圖。在本實(shí)施例中,二層組播中的每一跳交換機(jī)設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),直到終結(jié)路徑跟蹤請(qǐng)求報(bào)文,使得路徑跟蹤請(qǐng)求報(bào)文中包含了從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。實(shí)施例5參考圖11,圖11為本發(fā)明實(shí)施例5提供的二層組播mtrace報(bào)文處理方法實(shí)施例的組網(wǎng)示意圖,其中,虛線箭頭表示路徑跟蹤查詢報(bào)文的路徑,實(shí)線箭頭表示路徑跟蹤請(qǐng)求報(bào)文的路徑,點(diǎn)劃線箭頭表示路徑跟蹤響應(yīng)報(bào)文的路徑;交換機(jī)1為NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備,交換機(jī)4為查詢?cè)O(shè)備;用戶包括用戶1、用戶2、用戶3和用戶4,其中,用戶1、 用戶2和用戶3為組成員主機(jī),用戶4不是組成員主機(jī);與用戶1和用戶2直接連接的交換機(jī)5的端口實(shí)例狀態(tài)均為^erEdge狀態(tài),與用戶3直接連接的交換機(jī)6的端口實(shí)例狀態(tài)為 UserEdge狀態(tài),與用戶4連接的交換機(jī)2的端口實(shí)例狀態(tài)為^erEdge狀態(tài)。圖11中的路徑跟蹤查詢報(bào)文的路徑為由交換機(jī)4經(jīng)過交換機(jī)2到交換機(jī)1 ;路徑跟蹤請(qǐng)求報(bào)文的路徑為由交換機(jī)1經(jīng)交換機(jī)2到交換機(jī)5,由交換機(jī)1經(jīng)交換機(jī)3到交換機(jī)6 ;路徑跟蹤響應(yīng)報(bào)文的路徑為由交換機(jī)5經(jīng)交換機(jī)2到交換機(jī)4,由交換機(jī)6經(jīng)交換機(jī)3、交換機(jī)1交換機(jī)2到交換機(jī)4。
對(duì)于路徑跟蹤查詢報(bào)文、路徑跟蹤請(qǐng)求報(bào)文和路徑跟蹤響應(yīng)報(bào)文的詳細(xì)處理流程請(qǐng)參見上述本發(fā)明實(shí)施例的描述,在此不再贅述。在本實(shí)施例中,二層組播中的每一跳交換機(jī)設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),最終由查詢?cè)O(shè)備將從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)交換機(jī)設(shè)備的組播路徑信息進(jìn)行顯示;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。上述本發(fā)明實(shí)施例主要是針對(duì)IGMP-S協(xié)議的描述,對(duì)于IGMP-P協(xié)議的處理過程與IGMP-S協(xié)議相似,具體可以參見上述本發(fā)明實(shí)施例的描述。基于本發(fā)明實(shí)施例類似的原理,可以對(duì)mtrace的參數(shù)進(jìn)行擴(kuò)展,例如增加IPv6 的信息,實(shí)現(xiàn)對(duì)IPv6轉(zhuǎn)發(fā)的數(shù)據(jù)流的跟蹤;或者,在路徑跟蹤Request報(bào)文中增加字段, 用來指明每臺(tái)交換機(jī)設(shè)備上二層組播的狀態(tài)(如二層組播設(shè)置IGMP/MLD(Multicast Listener Discover,組播偵聽發(fā)現(xiàn)協(xié)議)Snooping、靜態(tài)組;或存在的組播成員信息)來實(shí)現(xiàn)組播的操作、管理和維護(hù)(0AM,Operation Administration and Maintenance)功能。實(shí)施例6參考圖12,圖12為本發(fā)明實(shí)施例6提供的一種二層組播路徑跟蹤裝置實(shí)施例的結(jié)構(gòu)示意圖,所述二層組播路徑跟蹤裝置包括獲取模塊102,用于獲取路徑跟蹤請(qǐng)求報(bào)文。判斷模塊103,用于判斷二層組播轉(zhuǎn)發(fā)表的組播成員端口的端口實(shí)例狀態(tài)。第一處理模塊104,用于當(dāng)所述端口實(shí)例狀態(tài)中存在非^erEdge狀態(tài),添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備。第二處理模塊105,用于當(dāng)所述端口實(shí)例狀態(tài)均SherEdge狀態(tài),終結(jié)路徑跟蹤請(qǐng)求報(bào)文,將自身設(shè)備的MAC地址添加至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。在本實(shí)施例中,二層組播中的每一跳二層組播設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),使得路徑跟蹤請(qǐng)求報(bào)文中包含了從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。實(shí)施例7參考圖13,圖13為本發(fā)明實(shí)施例7提供的一種二層組播路徑跟蹤裝置實(shí)施例的結(jié)構(gòu)示意圖,所述二層組播路徑跟蹤裝置包括設(shè)置模塊101,用于設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài),所述端口實(shí)例狀態(tài)包括 網(wǎng)絡(luò)側(cè)邊緣NetEdge狀態(tài)、用戶側(cè)邊緣^erEdge狀態(tài)和非^erEdge狀態(tài)。在實(shí)際應(yīng)用中,由于連接組播源或組播路由器的二層組播設(shè)備較少,所以可以直接靜態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài),具體地,可以指定直接連接上游組播源或組播路由器的二層組播設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài)。對(duì)于本領(lǐng)域技術(shù)人員而言,設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài)的方法不僅僅局限于此方法,在此不作贅述。
對(duì)于二層組播設(shè)備的^erEdge狀態(tài)端口實(shí)例或非^erEdge狀態(tài)端口實(shí)例也可以進(jìn)行靜態(tài)設(shè)置,具體地,可以指定直接連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)為非 UserEdge狀態(tài);可以指定直接連接下游主機(jī)的端口實(shí)例狀態(tài)為^erEdge狀態(tài);或者,也可以動(dòng)態(tài)設(shè)置二層組播設(shè)備的^erEdge狀態(tài)端口實(shí)例或非^erEdge狀態(tài)端口實(shí)例。獲取模塊102,用于獲取路徑跟蹤請(qǐng)求報(bào)文。判斷模塊103,用于判斷二層組播轉(zhuǎn)發(fā)表的組播成員端口的端口實(shí)例狀態(tài)。二層組播中的每一跳二層組播設(shè)備收到所述路徑跟蹤請(qǐng)求報(bào)文后,查詢二層組播轉(zhuǎn)發(fā)表,判斷所述二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài)。第一處理模塊104,用于當(dāng)所述端口實(shí)例狀態(tài)中存在所述非^erEdge狀態(tài),添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備。第二處理模塊105,用于當(dāng)所述端口實(shí)例狀態(tài)均為所述^erEdge狀態(tài),終結(jié)路徑跟蹤請(qǐng)求報(bào)文,將自身設(shè)備的MAC地址添加至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。在本實(shí)施例中,二層組播中的每一跳二層組播設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),使得路徑跟蹤請(qǐng)求報(bào)文中包含了從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。實(shí)施例8參考圖14a,圖1 是本發(fā)明實(shí)施例8中提供的一種二層組播路徑跟蹤裝置實(shí)施例的第一結(jié)構(gòu)示意圖,所述二層組播路徑跟蹤裝置包括設(shè)置模塊101、獲取模塊102、判斷模塊103、第一處理模塊104和第二處理模塊105 ;其中,所述判斷模塊103、第一處理模塊104和第二處理模塊105的功能與實(shí)施例 5中所述判斷模塊103、第一處理模塊104和第二處理模塊105的功能類似,在此不再贅述。所述設(shè)置模塊101包括第一設(shè)置單元1011和第二設(shè)置單元1012 所述第一預(yù)置單元1011,用于設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài)。其中,所述第一設(shè)置單元1011包括NetEdge設(shè)置子模塊,用于靜態(tài)設(shè)置直接連接上游組播源或組播路由器的端口實(shí)例的狀態(tài)為NetEdge狀態(tài)。所述第二設(shè)置單元1012,用于設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為^erEdge狀態(tài)或非^erEdge狀態(tài)。所述第二設(shè)置單元1012包括^erEdge設(shè)置子模塊101 和非^erEdge設(shè)置子模塊1012b 所述^erEdge設(shè)置子模塊1012a,用于靜態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為 UserEdge狀態(tài),其中,直接連接下游主機(jī)的端口實(shí)例狀態(tài)為^erEdge狀態(tài)。所述非^erEdge設(shè)置子模塊1012b,用于靜態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為非^erEdge狀態(tài),其中,連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)為非^erEdge狀態(tài)。
當(dāng)執(zhí)行主體是所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備時(shí),所述獲取模塊102包括第一接收單元1021和第一修改單元1022 所述第一接收單元1021,用于接收由查詢?cè)O(shè)備發(fā)送的路徑跟蹤查詢報(bào)文。所述第一修改單元1022,用于將所述路徑跟蹤查詢報(bào)文修改為二層組播請(qǐng)求報(bào)文?;蛘?,當(dāng)執(zhí)行主體不是所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備時(shí),所述獲取模塊102 包括第二接收單元1023,如圖14b所示,圖14b是本發(fā)明實(shí)施例8中提供的一種二層組播路徑跟蹤裝置實(shí)施例的第二結(jié)構(gòu)示意圖所述第二接收單元1023,用于接收由上游二層組播設(shè)備發(fā)送的二層組播請(qǐng)求報(bào)文。在本實(shí)施例中,二層組播中的每一跳二層組播設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),使得路徑跟蹤請(qǐng)求報(bào)文中包含了從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。實(shí)施例9參考圖1 和15b,圖1 為本發(fā)明實(shí)施例9中提供的一種二層組播路徑跟蹤裝置實(shí)施例的第一結(jié)構(gòu)示意圖;圖1 為本發(fā)明實(shí)施例9中提供的一種二層組播路徑跟蹤裝置實(shí)施例的第二結(jié)構(gòu)示意圖。所述二層組播路徑跟蹤裝置包括設(shè)置模塊101、獲取模塊102、判斷模塊103、第一處理模塊104和第二處理模塊105 ;其中,所述判斷模塊103、第一處理模塊104和第二處理模塊105的功能與實(shí)施例7中所述判斷模塊103、第一處理模塊104和第二處理模塊105 的功能類似,可參照實(shí)施例7中相關(guān)描述,在此不再贅述。所述設(shè)置模塊101包括第一設(shè)置單元1011和第二設(shè)置單元1012,其中,所述第一設(shè)置單元1011的功能與實(shí)施例8中所述第一設(shè)置單元1011的功能類似,具體可參照實(shí)施例8中相關(guān)描述,在此不再贅述。所述獲取模塊102包括第一接收單元1021和第一修改單元1022,其中,所述第一接收單元1021和第一修改單元1022的功能與實(shí)施例8中所述第一接收單元1021和第一修改單元1022的功能類似,具體可參照實(shí)施例8中相關(guān)描述,在此不再贅述;或者,所述獲取模塊102包括第二接收單元1023,其中,所述第二接收單元1023的功能與實(shí)施例8中所述第二接收單元1023的功能類似,具體可參照實(shí)施例8中相關(guān)描述,在此不再贅述。所述第二設(shè)置單元1012可以包括初始化子模塊1012c、第一接收子模塊1012d、 第一判斷子模塊1012e、第一處理子模塊1012f、第二判斷子模塊1012g、第二處理子模塊 1012h、第三處理子模塊1012i 初始化子模塊1012c,用于將連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)均設(shè)置為 UserEdge 狀態(tài);第一接收子模塊1012d,用于接收因特網(wǎng)組管理協(xié)議IGMP報(bào)告報(bào)文或離開報(bào)文, 根據(jù)所述IGMP報(bào)告報(bào)文或離開報(bào)文修改自身設(shè)備的二層組播轉(zhuǎn)發(fā)表;第一判斷子模塊1012e,用于判斷所述IGMP報(bào)告報(bào)文或離開報(bào)文中的標(biāo)記Flag值是否與自身設(shè)備默認(rèn)設(shè)置的Flagset值一致;
第一處理子模塊1012f,用于當(dāng)?shù)谝慌袛嗄K的判斷結(jié)果為是時(shí),所述端口實(shí)例的 ^erEdge狀態(tài)保持不變,將所述Flag值修改為第一非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備,所述第一非零值為除預(yù)定的Flagset值之外的任一非零值;第二判斷子模塊1012g,用于第一判斷模塊的判斷結(jié)果為否時(shí),修改所述Flagset 值為所述預(yù)定的Flagset值,判斷所述Flag值與所述預(yù)定的Flagset值是否一致;第二處理子模塊1012h,用于當(dāng)?shù)诙袛嗄K的判斷結(jié)果為是時(shí),所述端口實(shí)例的 UserEdge狀態(tài)不變,將所述Flag值修改為第二非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游交換機(jī)設(shè)備,所述第二非零值為除所述預(yù)定的Flagset值之外的任一非零值;第三處理子模塊1012i,用于當(dāng)?shù)诙袛嗄K的判斷結(jié)果為否時(shí),將所述端口實(shí)例的^erEdge狀態(tài)修改為非^erEdge狀態(tài),所述Flag值不變,發(fā)送所述IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備。在本實(shí)施例中,二層組播中的每一跳二層組播設(shè)備獲取路徑跟蹤請(qǐng)求報(bào)文,經(jīng)過相應(yīng)的判斷處理后,將自身設(shè)備的MAC地址添加到路徑跟蹤請(qǐng)求報(bào)文中進(jìn)行下發(fā),使得路徑跟蹤請(qǐng)求報(bào)文中包含了從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息;相比較現(xiàn)有技術(shù)而言,降低了運(yùn)維成本,提高了效率。實(shí)施例10參考圖16,圖16為本發(fā)明實(shí)施例10提供的一種二層組播路徑跟蹤系統(tǒng)實(shí)施例的結(jié)構(gòu)示意圖,所述二層組播路徑跟蹤系統(tǒng)包括二層組播路徑跟蹤裝置11,用于獲取路徑跟蹤請(qǐng)求報(bào)文;判斷二層組播轉(zhuǎn)發(fā)表的組播成員端口的端口實(shí)例狀態(tài);當(dāng)所述端口實(shí)例狀態(tài)中存在非^erEdge狀態(tài),添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備;當(dāng)所述端口實(shí)例狀態(tài)均為 UserEdge狀態(tài),終結(jié)路徑跟蹤請(qǐng)求報(bào)文,添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。 查詢?cè)O(shè)備22,用于接收從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息。所述二層組播路徑跟蹤裝置11還用于設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài),所述端口實(shí)例狀態(tài)包括網(wǎng)絡(luò)側(cè)邊緣NetEdge狀態(tài)、用戶側(cè)邊緣^erEdge狀態(tài)和非^erEdge狀態(tài)。所述設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)包括靜態(tài)設(shè)置直接連接上游組播源或組播路由器的端口實(shí)例狀態(tài)為NetEdge狀態(tài);靜態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為^erEdge狀態(tài)或非^erEdge狀態(tài),其中,直接連接下游主機(jī)的端口實(shí)例狀態(tài)為^erEdge狀態(tài),連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)為非^erEdge狀態(tài);動(dòng)態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為^erEdge狀態(tài)或非^erEdge狀態(tài),具體包括將連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)均設(shè)置為^erEdge狀態(tài);接收因特網(wǎng)組管理協(xié)議IGMP報(bào)告報(bào)文或離開報(bào)文,根據(jù)所述IGMP報(bào)告報(bào)文或離開報(bào)文修改自身設(shè)備的二層組播轉(zhuǎn)發(fā)表;判斷所述IGMP報(bào)告報(bào)文或離開報(bào)文中的標(biāo)記Flag值是否與自身設(shè)備默認(rèn)設(shè)置的Flagset值一致,如果是,所述端口實(shí)例的^erEdge狀態(tài)保持不變,將所述Flag 值修改為第一非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備; 如果否,修改所述Flagset值為預(yù)定的Flagset值,判斷所述Flag值與所述預(yù)定的Flagset 值是否一致,如果是,所述端口實(shí)例的^erEdge狀態(tài)保持不變,將所述Flag值修改為第二非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備;如果否,將所述端口實(shí)例的^erEdge狀態(tài)修改為非^erEdge狀態(tài),所述Flag值不變,發(fā)送所述IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備;所述第一非零值和所述第二非零值為除所述預(yù)定的Flagset值之外的任一非零值。其中,所述根據(jù)所述IGMP報(bào)告報(bào)文或離開報(bào)文修改自身設(shè)備的二層組播轉(zhuǎn)發(fā)表具體為將接收IGMP報(bào)告報(bào)文的端口添加到自身設(shè)備的二層組播轉(zhuǎn)發(fā)表的組播成員端口 ;將接收IGMP離開報(bào)文的端口從自身設(shè)備的二層組播轉(zhuǎn)發(fā)表的組播成員端口中刪除。所述獲取路徑跟蹤請(qǐng)求報(bào)文包括NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備接收由查詢?cè)O(shè)備發(fā)送的路徑跟蹤查詢報(bào)文; NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備將所述路徑跟蹤查詢報(bào)文修改為路徑跟蹤請(qǐng)求報(bào)文?;蛘?,所述獲取路徑跟蹤請(qǐng)求報(bào)文包括非NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備接收由上游二層組播設(shè)備發(fā)送的路徑跟蹤請(qǐng)求報(bào)文。所述查詢?cè)O(shè)備22還用于發(fā)送路徑跟蹤查詢報(bào)文至二層組播跟蹤裝置。需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。 對(duì)于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種二層組播路徑跟蹤方法,其特征在于,所述方法包括獲取路徑跟蹤請(qǐng)求報(bào)文;判斷二層組播轉(zhuǎn)發(fā)表中組播成員端口的端口實(shí)例狀態(tài);當(dāng)所述端口實(shí)例狀態(tài)中存在非用戶側(cè)邊緣^erEdge狀態(tài),添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備;當(dāng)所述端口實(shí)例狀態(tài)均為^erEdge狀態(tài),終結(jié)路徑跟蹤請(qǐng)求報(bào)文,添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從網(wǎng)絡(luò)側(cè)邊緣 NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息, 將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取路徑跟蹤請(qǐng)求報(bào)文之前進(jìn)一步包括設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài),所述端口實(shí)例狀態(tài)包括網(wǎng)絡(luò)側(cè)邊緣NetEdge狀態(tài)、用戶側(cè)邊緣^erEdge狀態(tài)和非^erEdge狀態(tài)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)包括靜態(tài)設(shè)置直接連接上游組播源或組播路由器的端口實(shí)例狀態(tài)為NetEdge狀態(tài)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)包括靜態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為^erEdge狀態(tài)或非^erEdge狀態(tài),其中,直接連接下游主機(jī)的端口實(shí)例狀態(tài)為^erEdge狀態(tài),連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)為非^erEdge狀態(tài)。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)包括動(dòng)態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為^erEdge狀態(tài)或非^erEdge狀態(tài),具體包括將連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)均設(shè)置為^erEdge狀態(tài);接收因特網(wǎng)組管理協(xié)議IGMP報(bào)告報(bào)文或離開報(bào)文,根據(jù)所述IGMP報(bào)告報(bào)文或離開報(bào)文修改自身設(shè)備的二層組播轉(zhuǎn)發(fā)表;判斷所述IGMP報(bào)告報(bào)文或離開報(bào)文中的標(biāo)記Flag值是否與自身設(shè)備默認(rèn)設(shè)置的 Flagset值一致,如果是,所述端口實(shí)例的^erEdge狀態(tài)保持不變,將所述Flag值修改為第一非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備;如果否,修改所述Flagset值為預(yù)定的Flagset值,判斷所述Flag值與所述預(yù)定的 Flagset值是否一致,如果是,所述端口實(shí)例的^erEdge狀態(tài)保持不變,將所述Flag值修改為第二非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備;如果否,將所述端口實(shí)例的^erEdge狀態(tài)修改為非^erEdge狀態(tài),所述Flag值不變,發(fā)送所述 IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備;所述第一非零值和所述第二非零值為除所述預(yù)定的Flagset值之外的任一非零值。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述Flag值存儲(chǔ)于所述IGMP報(bào)告報(bào)文或離開報(bào)文的報(bào)文頭中的第二個(gè)字段; 或者,所述Flag值存儲(chǔ)于所述IGMP報(bào)告報(bào)文或離開報(bào)文承載的IP報(bào)文中新增的Option字段,所述Option字段的插入位置位于所述IP報(bào)文的報(bào)文頭后。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)所述IGMP報(bào)告報(bào)文或離開報(bào)文修改自身設(shè)備的二層組播轉(zhuǎn)發(fā)表具體為將接收IGMP報(bào)告報(bào)文的端口添加到自身設(shè)備的二層組播轉(zhuǎn)發(fā)表的組播成員端口 ;將接收IGMP離開報(bào)文的端口從自身設(shè)備的二層組播轉(zhuǎn)發(fā)表的組播成員端口中刪除。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取路徑跟蹤請(qǐng)求報(bào)文包括 所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備接收由查詢?cè)O(shè)備發(fā)送的路徑跟蹤查詢報(bào)文; 所述NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備將所述路徑跟蹤查詢報(bào)文修改為路徑跟蹤請(qǐng)求報(bào)文。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取路徑跟蹤請(qǐng)求報(bào)文包括非NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備接收由上游二層組播設(shè)備發(fā)送的路徑跟蹤請(qǐng)求報(bào)文。
10.一種二層組播路徑跟蹤裝置,其特征在于,包括 獲取模塊,用于獲取路徑跟蹤請(qǐng)求報(bào)文;判斷模塊,用于判斷二層組播轉(zhuǎn)發(fā)表的組播成員端口的端口實(shí)例狀態(tài); 第一處理模塊,用于當(dāng)所述端口實(shí)例狀態(tài)中存在非^erEdge狀態(tài),添加自身設(shè)備的介質(zhì)訪問控制MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,經(jīng)所述非^erEdge狀態(tài)的端口實(shí)例發(fā)送所述添加了 MAC地址的路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備;第二處理模塊,用于當(dāng)所述端口實(shí)例狀態(tài)均為^erEdge狀態(tài),終結(jié)路徑跟蹤請(qǐng)求報(bào)文,添加自身設(shè)備的MAC地址至所述路徑跟蹤請(qǐng)求報(bào)文,從所述路徑跟蹤請(qǐng)求報(bào)文中獲取從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到所述^erEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將所述組播路徑信息發(fā)送至查詢?cè)O(shè)備。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,進(jìn)一步包括設(shè)置模塊,用于設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài),所述端口實(shí)例狀態(tài)包括網(wǎng)絡(luò)側(cè)邊緣NetEdge狀態(tài)、用戶側(cè)邊緣^erEdge狀態(tài)和非^erEdge狀態(tài)。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述設(shè)置模塊包括第一設(shè)置單元,用于設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為NetEdge狀態(tài); 第二設(shè)置單元,用于設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為^erEdge狀態(tài)或非 UserEdge 狀態(tài)。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第一設(shè)置單元包括NetEdge設(shè)置子模塊,用于靜態(tài)設(shè)置直接連接上游組播源或組播路由器的端口實(shí)例的狀態(tài)為NetEdge狀態(tài)。
14.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第二設(shè)置單元包括 UserEdge設(shè)置子模塊,用于靜態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為^erEdge狀態(tài),其中,直接連接下游主機(jī)的端口實(shí)例狀態(tài)為^erEdge狀態(tài);非^erEdge設(shè)置子模塊,用于靜態(tài)設(shè)置二層組播設(shè)備的端口實(shí)例狀態(tài)為非^erEdge狀態(tài),其中,連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)為非^erEdge狀態(tài)。
15.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述第二設(shè)置單元包括初始化子模塊,用于將連接下游二層組播設(shè)備的端口實(shí)例狀態(tài)均設(shè)置為^erEdge狀態(tài);第一接收子模塊,用于接收因特網(wǎng)組管理協(xié)議IGMP報(bào)告報(bào)文或離開報(bào)文,根據(jù)所述 IGMP報(bào)告報(bào)文或離開報(bào)文修改自身設(shè)備的二層組播轉(zhuǎn)發(fā)表;第一判斷子模塊,用于判斷所述IGMP報(bào)告報(bào)文或離開報(bào)文中的標(biāo)記Flag值是否與自身設(shè)備默認(rèn)設(shè)置的Flagset值一致;第一處理子模塊,用于當(dāng)?shù)谝慌袛嗄K的判斷結(jié)果為是時(shí),所述端口實(shí)例的^erEdge 狀態(tài)保持不變,將所述Flag值修改為第一非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備,所述第一非零值為除預(yù)定的Flagset值之外的任一非零值;第二判斷子模塊,用于第一判斷模塊的判斷結(jié)果為否時(shí),修改所述Flagset值為所述預(yù)定的Flagset值,判斷所述Flag值與所述預(yù)定的Flagset值是否一致;第二處理子模塊,用于當(dāng)?shù)诙袛嗄K的判斷結(jié)果為是時(shí),所述端口實(shí)例的^erEdge 狀態(tài)不變,將所述Flag值修改為第二非零值,發(fā)送所述修改后的IGMP報(bào)告報(bào)文或離開報(bào)文至上游交換機(jī)設(shè)備,所述第二非零值為除所述預(yù)定的Flagset值之外的任一非零值;第三處理子模塊,用于當(dāng)?shù)诙袛嗄K的判斷結(jié)果為否時(shí),將所述端口實(shí)例的 UserEdge狀態(tài)修改為非^erEdge狀態(tài),所述Flag值不變,發(fā)送所述IGMP報(bào)告報(bào)文或離開報(bào)文至上游二層組播設(shè)備。
16.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述獲取模塊包括第一接收單元,用于NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備接收由查詢?cè)O(shè)備發(fā)送的路徑跟蹤查詢報(bào)文;第一修改單元,用于NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備將所述路徑跟蹤查詢報(bào)文修改為路徑跟蹤請(qǐng)求報(bào)文。
17.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述獲取模塊包括第二接收單元,用于非NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備接收由上游二層組播設(shè)備發(fā)送的路徑跟蹤請(qǐng)求報(bào)文。
18.—種二層組播路徑跟蹤系統(tǒng),其特征在于,包括如權(quán)利要求10-17任一項(xiàng)所述的二層組播跟蹤裝置和查詢?cè)O(shè)備,所述查詢?cè)O(shè)備用于接收從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到 UserEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其特征在于,所述查詢?cè)O(shè)備還用于發(fā)送路徑跟蹤查詢報(bào)文至二層組播跟蹤裝置。
全文摘要
本發(fā)明實(shí)施例公開了一種二層組播路徑跟蹤方法、裝置及系統(tǒng),屬于通信領(lǐng)域。二層組播路徑跟蹤方法實(shí)施例包括獲取路徑跟蹤請(qǐng)求報(bào)文;判斷二層組播轉(zhuǎn)發(fā)表的組播成員端口的端口實(shí)例狀態(tài);當(dāng)端口實(shí)例狀態(tài)中存在非UserEdge狀態(tài),添加MAC地址至路徑跟蹤請(qǐng)求報(bào)文,經(jīng)非UserEdge狀態(tài)的端口實(shí)例發(fā)送路徑跟蹤請(qǐng)求報(bào)文至下游設(shè)備;當(dāng)端口實(shí)例狀態(tài)均為UserEdge狀態(tài),終結(jié)路徑跟蹤請(qǐng)求報(bào)文,將MAC地址添加至路徑跟蹤請(qǐng)求報(bào)文,從路徑跟蹤請(qǐng)求報(bào)文中獲取從NetEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備到UserEdge狀態(tài)端口實(shí)例對(duì)應(yīng)設(shè)備的組播路徑信息,將組播路徑信息發(fā)送至查詢?cè)O(shè)備。本發(fā)明實(shí)施例可以降低運(yùn)維成本,提高效率。
文檔編號(hào)H04L12/18GK102265554SQ201180000900
公開日2011年11月30日 申請(qǐng)日期2011年6月20日 優(yōu)先權(quán)日2011年6月20日
發(fā)明者周正斌 申請(qǐng)人:華為技術(shù)有限公司