專利名稱:組播路由跟蹤的方法和路由器的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡通信領域,特別涉及一種組播路由跟蹤的方法和路由器。
技術背景Mtracert (Multicast Trace Route,組播路由跟蹤)是一種追蹤組播報文的轉(zhuǎn)發(fā)路徑、定位 組播環(huán)境中網(wǎng)絡故障的工具。隨著組播應用日益廣泛,組播維護和故障定位的需求自然成為 必要的需求,組播路由跟蹤功能顯得越來越重要。組播路由跟蹤除了具有路徑跟蹤的功能外, 還具有收集和分析流量信息的功能。由于組播路由跟蹤中的Request (請求)報文中包含流量 統(tǒng)計的字段,因此可以在組播路由跟蹤的同時完成流量統(tǒng)計的信息收集。另外,還可以通過 以一定時間為間隔連續(xù)進行幾次組播路由跟蹤,完成組播流量、速率的統(tǒng)計?,F(xiàn)有技術中組播路由跟蹤的基本原理是在路由器(或網(wǎng)管主機)上輸入mtrace命令, 指定組播源地址、接收者地址、組播組,發(fā)起組播路由追蹤,向接收者的最后一跳路由器發(fā) 送IGMP (Internet Group Management Protocol,互聯(lián)網(wǎng)組管理協(xié)議)Traceroute Query (査詢) 報文;最后一跳路由器收到后,在該報文中添加本路由器的信息,向沿著到組播源的逆向組 播路徑方向的上一跳鄰居路由器發(fā)送IGMP Traceroute Request (請求)報文,收到IGMP Traceroute Request報文的路由器,在Request報文中添加包含本路由器信息的Response Block(響應數(shù)據(jù)塊),然后繼續(xù)向上一跳路由器發(fā)送IGMPTracerouteRequest報文,依次類推,直 到到達連接組播源的第一跳路由器或遇到致命錯誤;當?shù)谝惶酚善魇盏絀GMP Traceroute Request報文后,則向發(fā)起Mtraee跟蹤的路由器發(fā)送IGMP Traceroute Response (響應)報文, 該IGMP Traceroute Response報文中包含了 IGMP Traceroute Request報文中的全部信息,僅改 變了報文的類型;最終由發(fā)起組播路由跟蹤的路由器對收到的IGMP Traceroute Response報文 進行分析顯示。由于組播轉(zhuǎn)發(fā)路徑上的每跳路由器添加的響應數(shù)據(jù)塊都包含報文到達時間、 出接口地址、入接口地址、上一跳地址、入接口的接收報文數(shù)量、出接口的發(fā)送報文數(shù)量、(S, G)(組播源地址,組播組地址)轉(zhuǎn)發(fā)包數(shù)量、錯誤碼等關鍵信息,因此IGMP Traceroute Request報文中會包含上述各種信息,相應地IGMP Traceroute Response報文中也會包含上述 各種信息,發(fā)起組播跟蹤的路由器通過對收到的IGMP Traceroute Response報文進行分析,就
能完成追蹤組播路徑、定位組播故障和分析組播流量等功能。例如,參見圖1 ,路由器A發(fā)起組播路由跟蹤,發(fā)送IGMP Traceroute Query報文給最后 一跳路由器R5, R5收到IGMP Traceroute Query報文后發(fā)送IGMP Traceroute Request報文給 逆向組播路徑的上一跳路由器R4,R4添加包含R4信息的響應數(shù)據(jù)塊后發(fā)送IGMP Traceroute Request報文給路由器R2, R2添加包含R2信息的響應數(shù)據(jù)塊后發(fā)送IGMP Traceroute Request 報文給第一跳路由器Rl , Rl收到后改變報文類型發(fā)送IGMP Traceroute Response報文給發(fā)起 者A, A收到后可以根據(jù)IGMP Traceroute Response報文進行分析,完成組播路由跟蹤以及流 量統(tǒng)計等功能。在組播路由跟蹤的過程中,當路由器收到發(fā)送給自己的IGMP Traceroute Query報文時, 如果發(fā)現(xiàn)自已不是真正的最后一跳路由器,則向組播跟蹤發(fā)起者回應包含錯誤碼為 WRONG—LAST—HOP的IGMP Traceroute Response報文。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)上述現(xiàn)有技術至少存在以下缺點 當收到IGMP Traceroute Query報文的路由器與接收者直連,且該路由器上發(fā)往接收者的 報文的入接口和出接口相同時,可能無法完成正確路徑追蹤,或者會產(chǎn)生兩個不同的IGMP Traceroute Response報文,即具有上述特征的路由器收到Query報文后,如果發(fā)現(xiàn)自已不是真 正的最后一跳路由器,會產(chǎn)生一個包含錯誤碼為WRONG—LAST_HOP的IGMP Traceroute Response報文,而真正的最后一跳路由器若沒有收到IGMP Traceroute Response報文,則不 會進行路由跟蹤,正確的路徑追蹤無法完成;而真正的最后一條路由器若收到了 IGMP Traceroute Response報文,并進行路由跟蹤,最后發(fā)起者就會收到兩個IGMP Traceroute Response報文。通常發(fā)起者會處理先收到的IGMP Traceroute Response報文,然后結束組播 路由跟蹤過程,對于后收到的IGMP Traceroute Response報文則丟棄。如果先收到的IGMP Traceroute Response報文為正確的IGMP Traceroute Response報文,則能夠準確定位最后一跳 路由器,并完成組播路由跟蹤;如果先收到的IGMP Traceroute Response報文為包含錯誤碼的 IGMP Traceroute Response報文,則無法定位出最后一跳路由器,組播路由跟蹤失敗,無法完 成正確路徑追蹤。例如,參見圖2,組播源為S1,組播路由跟蹤發(fā)起者為路由器RTA,路由器RTB與RTC 均與接收者PCI相連,其中RTB為真正最后一跳路由器,當RTA發(fā)起mtrace組播路由跟蹤 時, 一種情況是如果在發(fā)送的IGMP Traceroute Query報文中指定參數(shù)為組播源地址2.2.2.2, 最后一跳路由器地址1.1.1.2,接收者地址U丄3,追蹤組地址為G或者為空,則指定的最后 一跳路由器RTC收到該IGMPTraceroute Query報文后,發(fā)現(xiàn)自己不是真正的最后一跳路由器,
會返回一個包含錯誤碼為WRONG—LAST—HOP的IGMP Traceroute Response報文給RTA, RTA收到IGMP Traceroute Response報文后,結束組播路由跟蹤,這種情況下真正的最后一 跳路由器RTB沒有收到IGMPTracerouteQuery報文,不會進行路由跟蹤,則無法完成正確路 徑追蹤。另外一種情況是,如果RTA在發(fā)送的IGMP Traceroute Query報文中指定參數(shù)為組 播源地址2.2.2.2,接收者地址1丄1.2,追蹤組地址為G或者為空,且攜帶Alert選項,則IGMP Traceroute Query報文經(jīng)過的所有路由器都會對該報文既上送又轉(zhuǎn)發(fā)。這種場景下IGMP Traceroute Query報文中沒有指定最后一跳路由器,而且指定的接收者并不是真正的接收者 PC1。其中,RTB收到IGMP Traceroute Query報文后,判斷自己是真正的最后一跳路由器, 則進行路由追蹤,最終RTA會收到一個IGMP Traceroute Response報文。同時,RTB還會繼 續(xù)轉(zhuǎn)發(fā)IGMP Traceroute Query報文,因此RTC會收到IGMP Traceroute Query報文后,RTC 收到后判斷出自己不是真正的最后一跳路由器,則RTC返回一個包含錯誤碼為 WRONG—LAST—HOP的IGMP Traceroute Response報文給RTA。最終發(fā)起者RTA會收到兩個 IGMP Traceroute Response報文,RTA會處理先收到的IGMP Traceroute Response報文,后收 到的IGMP Traceroute Response報文則丟棄。如果先收到正確的IGMP Traceroute Response報 文,則組播路由跟蹤成功,如果先收到包含錯誤碼的IGMP Traceroute Response報文,則組播 路由跟蹤失敗。發(fā)明內(nèi)容為了正確完成組播路由跟蹤,本發(fā)明實施例提供了一種組播路由跟蹤的方法和路由器。所述技術方案如下一方面, 一種組播路由跟蹤的方法,所述方法包括接收執(zhí)行組播路由跟蹤的路由器發(fā)來的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文;確定自己與所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文中指定的接收者直連,且發(fā)往所述接收者的報文的入接口和出接口相同;根據(jù)所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文中的組播組地址修改所述互聯(lián)網(wǎng)組管 理協(xié)議組播路由跟蹤查詢報文,向所述出接口發(fā)送所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文;所述接收者的最后一跳路由器根據(jù)接收到的所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報 文或所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文,沿著到組播源地址的逆向組播 路徑向上一跳路由器發(fā)送互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請求報文,直到連接組播源的第一
跳路由器收到所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請求報文后,向所述執(zhí)行組播路由跟蹤的 路由器發(fā)送互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤響應報文。 另一方面, 一種路由器,所述路由器包括接收模塊,用于接收執(zhí)行組播路由跟蹤的設備發(fā)來的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查 詢報文;判斷模塊,用于判斷是否所述路由器與所述接收模塊收到的互聯(lián)網(wǎng)組管理協(xié)議組播路由 跟蹤查詢報文中指定的接收者直連,且所述路由器上發(fā)往所述接收者的報文的入接口和出接 口相同;發(fā)送模塊,用于當所述判斷模塊判斷的結果為是時,根據(jù)所述接收模塊收到的互聯(lián)網(wǎng)組 管理協(xié)議組播路由跟蹤查詢報文中的組播組地址修改所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査 詢報文,向所述出接口發(fā)送所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文,使所述 接收者的最后一跳路由器接收到所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文。本發(fā)明實施例提供的技術方案的有益效果是通過修改互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文的目的地址后轉(zhuǎn)發(fā)該互聯(lián)網(wǎng)組管理協(xié) 議組播路由跟蹤査詢報文,可以確保真正的最后一跳路由器能夠收到并處理互聯(lián)網(wǎng)組管理協(xié) 議組播路由跟蹤查詢報文或修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文,從而保證組 播路由跟蹤的發(fā)起者只收到一個正確的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤響應報文,完成正確 的組播路由跟蹤。
圖1是現(xiàn)有技術中組播路由跟蹤的原理示意圖; 圖2是現(xiàn)有技術中特定組網(wǎng)環(huán)境下組播路由跟蹤的示意圖 圖3是本發(fā)明實施例1提供的組播路由跟蹤的方法流程圖; 圖4是本發(fā)明實施例2提供的組播路由跟蹤的方法流程圖; 圖5是本發(fā)明實施例3提供的路由器的結構圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進 一步地詳細描述。本發(fā)明實施例解決特殊組網(wǎng)環(huán)境下定位最后一跳路由器的問題,特殊組網(wǎng)環(huán)境是指收到IGMP Tmceroute Query報文(以下稱為查詢報文)的路由器與接收者直連,且該路由器上發(fā) 往接收者的報文的入接口和出接口相同,這種情況下收到查詢報文的路由器并不是真正的最 后一跳路由器。本發(fā)明實施例通過修改査詢報文中的目的地址,確保真正的最后一跳路由器 能夠收到并處理査詢報文或修改后的査詢報文,從而正確完成組播路由跟蹤。 實施例1本實施例以査詢報文中指定了最后一跳路由器為例進行說明,參見圖3,本發(fā)明實施例 提供了一種組播路由跟蹤的方法,具體包括以下步驟步驟101:在執(zhí)行組播路由跟蹤的路由器上輸入mtmce命令,mtrace命令中指定了組播 源地址、最后一跳路由器地址、組播接收者地址和組播組地址,即執(zhí)行組播路由跟蹤的路 由器(即發(fā)起者)向所述mtrace命令中指定的最后一跳路由器發(fā)送查詢報文。在査詢報文中 指定最后一跳路由器的情況下,査詢報文不攜帶Alert選項。步驟102:所述mtrace命令中指定的最后一跳路由器接收到上述査詢報文。步驟103:所述mtrace命令中指定的最后一跳路由器判斷是否自己與收到的査詢報文中 指定的接收者直連,且該路由器上發(fā)往接收者的報文的入接口和出接口相同;如果是,執(zhí)行 步驟105;否則,執(zhí)行步驟104。步驟104:所述mtrace命令中指定的最后一跳路由器按照現(xiàn)有技術中的處理流程進行處理。步驟105:所述mtrace命令中指定的最后一跳路由器根據(jù)收到的查詢報文中的組播組地 址修改查詢報文,向上述出接口發(fā)送修改后的査詢報文,使接收者的真正的最后一跳路由器 接收到修改后的査詢報文。其中,所述mtmce命令中指定的最后一跳路由器根據(jù)査詢報文中的組播組地址修改査詢 報文的步驟具體包括判斷査詢報文中的組播組地址是否為空;如果為空,則將査詢報文的目的地址修改為沿 著源地址的逆向組播路徑方向的上一跳路由器,此時上一跳路由器即真正的最后一跳路由器; 如果不為空,則將査詢報文的目的地址修改為所有路由器的組播地址,即將目的地址修改為 224.0.0.2,從而保證真正的最后一跳路由器能夠收到修改后的査詢報文。步驟106:所述真正的最后一跳路由器接收到修改后的査詢報文,根據(jù)修改后的查詢報 文生成IGMP Traceroute Request報文(以下稱為請求報文),沿著到組播源地址的逆向組播路 徑向上一跳路由器發(fā)送該請求報文。其中,所述真正的最后一跳路由器收到修改后的査詢報文后,發(fā)現(xiàn)該査詢報文中的目的
地址是自己或224.0.0.2,則所述真正的最后一跳路由器在修改后的査詢報文中添加自己的信 息生成請求報文,沿著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送請求報文。步驟107:所述真正的最后一跳路由器的上一跳路由器收到請求報文后,繼續(xù)沿著到組 播源地址的逆向組播路徑向自己的上一跳路由器發(fā)送該請求報文,直到連接組播源的第一跳 路由器收到該請求報文。步驟108:第一跳路由器根據(jù)收到的請求報文向發(fā)起者發(fā)送IGMPTmcerouteRespcmse報 文(以下稱為響應報文)。步驟109:發(fā)起者收到響應報文后進行分析,完成組播路由跟蹤。例如,參見圖2, RTA發(fā)起組播路由跟蹤,組播組地址為G,指定最后一跳路由器地址 為1丄1.2,指定的最后一跳路由器RTC收到查詢報文后,發(fā)現(xiàn)自己與接收者PC1直連,且 RTC上發(fā)往PC1的報文的入接口和出接口相同,表明自己并不是真正的最后一跳路由器,則 將查詢報文的目的地址更改為224.0.0.2,然后發(fā)送修改后的査詢報文,真正的最后一跳路由 器RTB收到修改后的查詢報文后,根據(jù)修改后的查詢報文生成請求報文并發(fā)送請求報文,進 行路徑跟蹤,直至組播路由跟蹤結束。本實施例針對查詢報文中指定的最后一跳路由器并不是真正的最后一跳路由器的場景, 通過修改査詢報文的目的地址后轉(zhuǎn)發(fā)該査詢報文,可以確保真正的最后一跳路由器能夠收到 并處理修改后的査詢報文,保證組播路由跟蹤的發(fā)起者只收到一個正確的響應報文,從而完 成正確的組播路由跟蹤。實施例2本實施例以査詢報文中沒有指定最后一跳路由器為例進行說明,參見圖4,本發(fā)明實施 例提供了一種組播路由跟蹤的方法,具體包括以下步驟步驟201:在執(zhí)行組播路由跟蹤的路由器上輸入mtrace命令,mtrace命令中指定了組播 源地址、組播接收者地址和組播組地址,執(zhí)行組播路由跟蹤的路由器則根據(jù)該mtrace命令向 網(wǎng)絡中發(fā)送査詢報文。即執(zhí)行組播路由跟蹤的路由器(即發(fā)起者)向所述mtrace命令中指 定的組播接收者發(fā)送査詢報文,該査詢報文攜帶Alert選項。這種情況下,査詢報文經(jīng)過的所 有路由器都會既上送又轉(zhuǎn)發(fā)。歩驟202:真正的最后一跳路由器收到查詢報文后,由于查詢報文攜帶Alert選項,則既 將查詢報文上送控制平面進行處理,又將査詢報文轉(zhuǎn)發(fā)出去。其中,所述真正的最后一跳路由器將査詢報文上送控制平面進行處理的過程具體如下-根據(jù)該查詢報文判斷自己為真正的最后一跳路由器,則根據(jù)該査詢報文生成請求報文, 沿著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送該請求報文。相應地,上一跳路由器收到請求報文后,繼續(xù)沿著到組播源地址的逆向組播路徑向自己 的上一跳路由器發(fā)送該請求報文,直到連接組播源的第一跳路由器收到該請求報文。第一跳 路由器根據(jù)收到的請求報文向發(fā)起者發(fā)送響應報文。發(fā)起者收到該響應報文后,進行分析完 成組播路由跟蹤。步驟203:網(wǎng)絡中的路由器接收到真正的最后一跳路由器轉(zhuǎn)發(fā)的查詢報文。步驟204:所述網(wǎng)絡中的路由器判斷是否自己與收到的査詢報文中指定的接收者直連,且該路由器上發(fā)往接收者的報文的入接口和出接口相同;如果是,則執(zhí)行步驟206;否則,執(zhí)行步驟205。步驟205:所述網(wǎng)絡中的路由器按照現(xiàn)有技術中的處理流程進行處理,然后結束。步驟206:此時所述網(wǎng)絡中的路由器判斷出自己不是真正的最后一跳路由器,則根據(jù)收到的查詢報文中的組播組地址修改查詢報文,向上述出接口發(fā)送修改后的査詢報文,使接收 者的真正的最后一跳路由器接收到修改后的查詢報文。其中,根據(jù)査詢報文中的組播組地址修改查詢報文的步驟具體包括 判斷査詢報文中的組播組地址是否為空;如果為空,則將査詢報文的目的地址修改為沿 著源地址的逆向組播路徑方向的上一跳路由器,此時上一跳路由器即真正的最后一跳路由器;如果不為空,則將査詢報文的目的地址修改為所有路由器的組播地址,即將目的地址修改為224.0.0.2,從而保證真正的最后一跳路由器能夠收到修改后的査詢報文。步驟207:真正的最后一跳路由器接收到修改后的查詢報文,比較當前收到的修改后的査詢報文的ID與上次處理過的査詢報文的ID是否相同,由于真正的最后一跳路由器上次將 査詢報文上送處理時記錄了該查詢報文的ID,且修改后的查詢報文中的ID并沒有改變,因 此此時比較的結果是兩個ID相同,則真正的最后一跳路由器不處理當前收到的修改后的査詢 報文,直接丟棄該修改后的査詢報文,從而保證發(fā)起者只收到一個響應報文。例如,參見圖2, RTA發(fā)起組播路由跟蹤,組播組地址為G,攜帶Alert選項,真正的最 后一跳路由器RTB收到查詢報文后,上送控制平面處理并轉(zhuǎn)發(fā)給RTC,其中控制平面生成請 求報文,從而進行組播路由跟蹤,直至組播路由跟蹤結束。另外,RTC收到査詢報文后,發(fā) 現(xiàn)自己與接收者PC1直連,且RTC上發(fā)往PC1的報文的入接口和出接口相同,則將査詢報 文的目的地址更改為224.0.0.2,然后發(fā)送修改后的査詢報文,真正的最后一跳路由器RTB收 到修改后的査詢報文后,比較修改后的査詢報文的ID與上次處理的査詢報文的ID后,丟棄 修改后的査詢報文,從而保證RTA只收到一個響應報文。
本實施例針對査詢報文中不指定最后一跳路由器而指定接收者的場景,真正的最后一跳 路由器收到査詢報文后進行組播路由跟蹤,且丟棄非真正的最后一跳路由器修改后的査詢報文,可以確保發(fā)起者只收到一個響應報文,完成正確的組播路由跟蹤。實施例3參見圖5,本發(fā)明實施例提供了一種路由器,具體包括 接收模塊,用于接收執(zhí)行組播路由跟蹤的設備發(fā)來的査詢報文;判斷模塊,用于判斷是否路由器與接收模塊收到的查詢報文中指定的接收者直連,且路 由器上發(fā)往接收者的報文的入接口和出接口相同;發(fā)送模塊,用于當判斷模塊判斷的結果為是時,根據(jù)接收模塊收到的査詢報文中的組播 組地址修改查詢報文,向出接口發(fā)送修改后的査詢報文,使接收者的最后一跳路由器接收到 修改后的査詢報文。進一步地,發(fā)送模塊具體包括-判斷單元,用于當判斷模塊判斷的結果為是時,判斷接收模塊收到的查詢報文中的組播 組地址是否為空;修改單元,用于當判斷單元判斷的結果為空時,將查詢報文的目的地址修改為沿著源地 址的逆向組播路徑方向的上一跳路由器;當判斷單元判斷的結果不為空時,將查詢報文的目 的地址修改為所有路由器的組播地址;發(fā)送單元,用于向出接口發(fā)送修改單元修改后的查詢報文,使接收者的最后一跳路由器 接收到修改后的查詢報文。本實施例通過修改査詢報文的目的地址后轉(zhuǎn)發(fā)該查詢報文,可以確保真正的最后一跳路 由器能夠收到修改后的查詢報文,最后一跳路由器根據(jù)收到的査詢報文和修改后的査詢報文 發(fā)送請求報文,從而完成正確的組播路由跟蹤。本發(fā)明實施例可以利用軟件實現(xiàn),相應的軟件程序可以存儲在可讀取的存儲介質(zhì)中,如 路由器的硬盤或緩存中。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之 內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權利要求
1.一種組播路由跟蹤的方法,其特征在于,所述方法包括接收執(zhí)行組播路由跟蹤的路由器發(fā)來的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文;確定自己與所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文中指定的接收者直連,且發(fā)往所述接收者的報文的入接口和出接口相同根據(jù)所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文中的組播組地址修改所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文,向所述出接口發(fā)送所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文;所述接收者的最后一跳路由器根據(jù)接收到的所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文或所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文,沿著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請求報文,直到連接組播源的第一跳路由器收到所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請求報文后,向所述執(zhí)行組播路由跟蹤的路由器發(fā)送互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤響應報文。
2. 根據(jù)權利要求l所述的組播路由跟蹤的方法,其特征在于,所述根據(jù)所述互聯(lián)網(wǎng)組管 理協(xié)議組播路由跟蹤查詢報文中的組播組地址修改所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢 報文,具體包括-判斷所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文中的組播組地址是否為空; 如果為空,則將所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文的目的地址修改為沿著源地址的逆向組播路徑方向的上一跳路由器;如果不為空,則將所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文的目的地址修改為所有路由器的組播地址。
3. 根據(jù)權利要求l所述的組播路由跟蹤的方法,其特征在于,所述接收者的最后一跳路 由器根據(jù)接收到的所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文或所述修改后的互聯(lián)網(wǎng)組管 理協(xié)議組播路由跟蹤查詢報文,沿著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送互聯(lián) 網(wǎng)組管理協(xié)議組播路由跟蹤請求報文,具體包括所述接收者的最后一跳路由器接收到所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文,且 所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文中的目的地址是自己,則所述最后一跳路由器 在所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文中添加自己的信息生成互聯(lián)網(wǎng)組管理協(xié)議組 播路由跟蹤請求報文,沿著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送所述互聯(lián)網(wǎng)組 管理協(xié)議組播路由跟蹤請求報文。
4. 根據(jù)權利要求l所述的組播路由跟蹤的方法,其特征在于,所述接收者的最后一跳路 由器根據(jù)接收到的所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文或所述修改后的互聯(lián)網(wǎng)組管 理協(xié)議組播路由跟蹤査詢報文,沿著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請求報文,具體包括所述接收者的最后一跳路由器接收到所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文,且 所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文中指定的最后一跳路由器不是自己,則轉(zhuǎn)發(fā)所 述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文;當接收到所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播 路由跟蹤查詢報文,且所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文中的目的地址 是自己或所有路由器的組播地址時,所述最后一跳路由器在所述修改后的互聯(lián)網(wǎng)組管理協(xié)議 組播路由跟蹤査詢報文中添加自己的信息生成互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請求報文,沿 著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請 求報文。
5. 根據(jù)權利要求1所述的組播路由跟蹤的方法,其特征在于,所述接收者的最后一跳路 由器根據(jù)接收到的所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文或所述修改后的互聯(lián)網(wǎng)組管 理協(xié)議組播路由跟蹤查詢報文,沿著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送互聯(lián) 網(wǎng)組管理協(xié)議組播路由跟蹤請求報文,具體包括-所述接收者的最后一跳路由器接收到所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文,且 所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文中未指定最后一跳路由器,則判斷出自己是最 后一跳路由器后,在所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文中添加自己的信息生成互 聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請求報文,沿著到組播源地址的逆向組播路徑向上一跳路由器 發(fā)送所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤請求報文。
6. 根據(jù)權利要求5所述的組播路由跟蹤的方法,其特征在于,所述方法還包括 所述最后一跳路由器收到所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文后,還接收到所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文,則丟棄所述修改后的互聯(lián)網(wǎng)組管理協(xié) 議組播路由跟蹤査詢報文。
7. —種路由器,其特征在于,所述路由器包括接收模塊,用于接收執(zhí)行組播路由跟蹤的設備發(fā)來的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查 詢報文;判斷模塊,用于判斷是否所述路由器與所述接收模塊收到的互聯(lián)網(wǎng)組管理協(xié)議組播路由 跟蹤査詢報文中指定的接收者直連,且所述路由器上發(fā)往所述接收者的報文的入接口和出接 口相同;發(fā)送模塊,用于當所述判斷模塊判斷的結果為是時,根據(jù)所述接收模塊收到的互聯(lián)網(wǎng)組 管理協(xié)議組播路由跟蹤査詢報文中的組播組地址修改所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査 詢報文,向所述出接口發(fā)送所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文,使所述 接收者的最后一跳路由器接收到所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文。
8. 根據(jù)權利要求7所述的路由器,其特征在于,所述發(fā)送模塊具體包括-判斷單元,用于當所述判斷模塊判斷的結果為是時,判斷所述接收模塊收到的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤査詢報文中的組播組地址是否為空;修改單元,用于當所述判斷單元判斷的結果為空時,將所述互聯(lián)網(wǎng)組管理協(xié)議組播路由 跟蹤査詢報文的目的地址修改為沿著源地址的逆向組播路徑方向的上一跳路由器;當所述判 斷單元判斷的結果不為空時,將所述互聯(lián)網(wǎng)組管理協(xié)議組播路由跟蹤查詢報文的目的地址修改為所有路由器的組播地址;發(fā)送單元,用于向所述出接口發(fā)送所述修改單元修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路由跟 蹤査詢報文,使所述接收者的最后一跳路由器接收到所述修改后的互聯(lián)網(wǎng)組管理協(xié)議組播路 由跟蹤査詢報文。
全文摘要
本發(fā)明公開了一種組播路由跟蹤的方法和路由器,屬于網(wǎng)絡通信領域。方法包括接收查詢報文;確定自己與接收者直連且發(fā)往接收者的報文的入接口和出接口相同;根據(jù)查詢報文中的組播組地址修改查詢報文,向出接口發(fā)送修改后的查詢報文;最后一跳路由器根據(jù)接收到的查詢報文或修改后的查詢報文,沿著到組播源地址的逆向組播路徑向上一跳路由器發(fā)送請求報文,直到連接組播源的第一跳路由器收到請求報文后,向發(fā)起者發(fā)送響應報文。路由器包括接收模塊、判斷模塊和發(fā)送模塊。本發(fā)明確保真正的最后一跳路由器能夠收到并處理查詢報文或修改后的查詢報文,從而保證發(fā)起者只收到一個正確的響應報文,完成正確的組播路由跟蹤。
文檔編號H04L12/56GK101159688SQ200710177019
公開日2008年4月9日 申請日期2007年11月8日 優(yōu)先權日2007年11月8日
發(fā)明者王玉平 申請人:華為技術有限公司