專利名稱:一種轉(zhuǎn)發(fā)組播流量的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別涉及一種轉(zhuǎn)發(fā)組播流量的方法和裝置。
背景技術(shù):
現(xiàn)有組播的應(yīng)用場(chǎng)景主要可以分為兩類(lèi)第一類(lèi)是組播源和組播接收者沒(méi)有明確 的上下游關(guān)系,例如監(jiān)控業(yè)務(wù)或視頻會(huì)議業(yè)務(wù)等,組播接收者同時(shí)也可能會(huì)是組播源;第二 類(lèi)是組播源和組播接收者具有明確的上下游關(guān)系,例如視頻點(diǎn)播業(yè)務(wù)等,只允許用戶終端 進(jìn)行視頻點(diǎn)播作為組播接收者,而不允許作為組播源。在本發(fā)明中僅涉及第二類(lèi)應(yīng)用場(chǎng)景。承載組播業(yè)務(wù)的組網(wǎng)結(jié)構(gòu)圖可以如圖1所示,三層交換機(jī)S1、S2和S3構(gòu)成三層網(wǎng) 絡(luò)拓?fù)?,運(yùn)行協(xié)議無(wú)關(guān)組播稀疏模式(PIM SM),S3與組播源連接。S4是二層交換機(jī),二層 網(wǎng)絡(luò)中運(yùn)行虛擬路由冗余協(xié)議(VRRP)和多生成樹(shù)協(xié)議(MSTP),S4的下游是作為組播接收 者的主機(jī),Sl的端口 P6被運(yùn)行的MSTP阻塞,不轉(zhuǎn)發(fā)流量。端口 Pl至P6都在相同的虛擬 局域網(wǎng)(VLAN)內(nèi),在該VLAN內(nèi)使能因特網(wǎng)組管理協(xié)議(IGMP)和PIM SM協(xié)議。由于交換 機(jī)Sl和S2之間互發(fā)的PIM Hello報(bào)文,端口 Pl和端口 P2作為路由器端口,交換機(jī)Sl接 收到作為IGMP查詢器的S2發(fā)送來(lái)的IGMP查詢報(bào)文后,將該IGMP查詢報(bào)文通過(guò)所有端口 進(jìn)行轉(zhuǎn)發(fā)。假設(shè)在該VLAN中,Sl是PIM SM的指定路由器(DR),則根據(jù)PIM協(xié)議規(guī)定,在該 VLAN中只有Sl負(fù)責(zé)向上游發(fā)送PIM加入報(bào)文,S3也僅將組播流量通過(guò)Sl進(jìn)行轉(zhuǎn)發(fā)。Sl通 過(guò)P3接收到來(lái)自下游的IGMP加入報(bào)文后,將P3加入組播轉(zhuǎn)發(fā)表中該組播組對(duì)應(yīng)的出接口 列表,另外,還會(huì)將該VLAN中的路由器端口加入該組播組對(duì)應(yīng)的出接口列表。經(jīng)過(guò)上述過(guò)程后,Sl如果接收到S3發(fā)送來(lái)的組播流量,會(huì)將該組播流量通過(guò)對(duì)應(yīng) 出接口列表中的所有端口進(jìn)行轉(zhuǎn)發(fā),即P3端口和Pl端口,組播流量的轉(zhuǎn)發(fā)路徑如圖1中實(shí) 現(xiàn)箭頭所示。實(shí)際上,S2會(huì)將Sl轉(zhuǎn)發(fā)來(lái)的組播流量進(jìn)行丟棄處理,也就是說(shuō),Sl從端口 Pl 轉(zhuǎn)發(fā)的組播流量是多余的,這會(huì)造成網(wǎng)絡(luò)帶寬的浪費(fèi)以及影響交換機(jī)S2的性能。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供了一種轉(zhuǎn)發(fā)組播流量的方法和裝置,對(duì)組播流量的轉(zhuǎn)發(fā)進(jìn) 行優(yōu)化,從而節(jié)約網(wǎng)絡(luò)帶寬和減小對(duì)三層交換機(jī)造成的性能影響。一種轉(zhuǎn)發(fā)組播流量的方法,應(yīng)用于運(yùn)行IGMP和三層組播路由協(xié)議的三層網(wǎng)絡(luò),該 方法包括作為VLAN的指定路由器的三層交換設(shè)備在將物理端口添加到組播轉(zhuǎn)發(fā)表的出接 口列表中之前,判斷該物理端口是主機(jī)端口還是路由器端口,如果是主機(jī)端口,則將該主機(jī) 端口添加到所述出接口列表中;如果是路由器端口,則不將該路由器端口添加到所述出接 口列表中;所述三層交換設(shè)備將接收到的組播流按照所述組播轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。一種轉(zhuǎn)發(fā)組播流量的裝置,該裝置設(shè)置在作為VLAN的指定路由器的三層交換設(shè) 備中,該三層交換設(shè)備所在的三層網(wǎng)絡(luò)運(yùn)行了 IGMP和三層組播路由協(xié)議;該裝置包括判斷處理單元、端口添加單元和流量轉(zhuǎn)發(fā)單元;所述判斷處理單元,用于在所述端口添加單元將物理端口添加到組播轉(zhuǎn)發(fā)表的出 接口列表之前,判斷該物理端口是主機(jī)端口還是路由器端口,如果是主機(jī)端口,則向所述端 口添加單元發(fā)送允許指令;如果是路由器端口,則向所述端口添加單元發(fā)送禁止指令;所述端口添加單元,用于接收到允許指令后,將要添加的物理端口添加到所述出 接口列表中;接收到禁止指令后,不將要添加的物理端口添加到出接口列表中;所述流量轉(zhuǎn)發(fā)單元,用于將所述三層交換設(shè)備接收到的組播流按照所述組播轉(zhuǎn)發(fā) 表進(jìn)行轉(zhuǎn)發(fā)。由以上技術(shù)方案可以看出,由以上描述可以看出,在本發(fā)明中,作為VLAN的DR的 三層交換設(shè)備對(duì)要添加到組播轉(zhuǎn)發(fā)表中的物理端口進(jìn)行區(qū)分,僅將主機(jī)端口添加到組播轉(zhuǎn) 發(fā)表的出接口列表中,而不將路由器端口添加在組播轉(zhuǎn)發(fā)表的出接口列表中,使得該三層 交換設(shè)備根據(jù)組播轉(zhuǎn)發(fā)表進(jìn)行組播流量轉(zhuǎn)發(fā)時(shí),能夠避免將流量轉(zhuǎn)發(fā)至其它三層交換設(shè) 備,從而節(jié)約網(wǎng)絡(luò)帶寬且減小對(duì)其它三層交換設(shè)備造成的性能影響。
圖1為現(xiàn)有技術(shù)中承載組播業(yè)務(wù)的組網(wǎng)示意圖;圖2為本發(fā)明提供的主要方法流程圖;圖3為在圖1所示組網(wǎng)中采用本發(fā)明后的組播流示意圖;圖4為本發(fā)明提供的裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對(duì) 本發(fā)明進(jìn)行詳細(xì)描述。本發(fā)明提供的主要方法可以如圖2所示,主要包括以下步驟步驟201 作為VLAN的DR的三層交換設(shè)備在將物理端口添加到組播轉(zhuǎn)發(fā)表的出 接口列表中之前,判斷該物理端口是路由器端口還是主機(jī)端口,如果是主機(jī)端口,則執(zhí)行步 驟202 ;如果是路由器端口,則執(zhí)行步驟203。步驟202 將該物理端口添加到組播轉(zhuǎn)發(fā)表的出接口列表,執(zhí)行步驟204。步驟203 不將該物理端口添加到組播轉(zhuǎn)發(fā)表的出接口列表,執(zhí)行步驟204。步驟204 將接收到的組播流按照組播轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。下面仍以圖1所示組網(wǎng)為例,對(duì)本發(fā)明提供的上述方法進(jìn)行詳細(xì)描述。在S1、S2和 S3構(gòu)成的三層網(wǎng)絡(luò)中使能三層組播路由協(xié)議,其中,該三層組播路由協(xié)議可以是PIM SM,也 可以是協(xié)議無(wú)關(guān)組播密集模式(PIM DM),由于在三層網(wǎng)絡(luò)具體運(yùn)行何種組播路由協(xié)議對(duì)本 發(fā)明的實(shí)現(xiàn)并不造成影響,在以下的描述中均以PIM SM為例進(jìn)行描述。假設(shè)端口 Pl至P6 共同屬于VLANl,在該VLANl內(nèi)使能IGMP、PIM SM和MSTP,同樣,運(yùn)行MSTP后阻塞端口 P6。在該組網(wǎng)中,可以在VLANl中作為DR的Sl中使能組播轉(zhuǎn)發(fā)優(yōu)化特性,配置該特性 的Sl能夠執(zhí)行本發(fā)明提供的方法,即不將路由器端口加入組播轉(zhuǎn)發(fā)表的出接口列表。例 如,基于 VLANl 在 Sl 中配置一條命令igmp-snooping router-port optimization。需要 說(shuō)明的是,該組播轉(zhuǎn)發(fā)優(yōu)化特性能夠在VLAN視圖下進(jìn)行配置,即針對(duì)某一個(gè)單獨(dú)的VLAN生效。在本發(fā)明中,三層交換設(shè)備對(duì)于IGMP報(bào)文和PIM報(bào)文的轉(zhuǎn)發(fā)仍按照現(xiàn)有技術(shù)中的 方式執(zhí)行。為了方便對(duì)本發(fā)明的理解,首先對(duì)三層交換設(shè)備中通過(guò)運(yùn)行IGMP和PIM SM所 建立的表項(xiàng)進(jìn)行簡(jiǎn)單介紹。本發(fā)明中涉及的該三層交換設(shè)備為使能了 IGMP Snooping功能的三層交換設(shè)備。 該三層交換設(shè)備將接收到IGMP加入報(bào)文的物理端口確定為主機(jī)端口,將接收到IGMP查詢 報(bào)文的端口或者接收到PIM報(bào)文的端口確定為路由器端口,并利用確定的物理端口信息建 立IGMP Snooping表項(xiàng),該IGMPSnooping表項(xiàng)中包含的是二層的端口信息。在圖1所示組 網(wǎng)中,對(duì)于VLANl由于Sl通過(guò)端口 P3接收到IGMP加入報(bào)文,因此,端口 P3被確定為主機(jī) 端口 ;Sl通過(guò)端口 Pl接收到PIM報(bào)文,因此,端口 Pl被確定為路由器端口。建立的VLANl 對(duì)應(yīng)的IGMP Snooping表項(xiàng)的關(guān)鍵內(nèi)容可以為Router Port :P1Host Port :P3與此同時(shí),通過(guò)三層交換設(shè)備上運(yùn)行的PIM SM協(xié)議,Sl上會(huì)形成組播路由表項(xiàng)。 根據(jù)組播流的組播源地址和組播組地址查找對(duì)應(yīng)的組播路由表項(xiàng),就可以確定對(duì)應(yīng)的下游 VLAN0由于三層交換設(shè)備根據(jù)數(shù)據(jù)轉(zhuǎn)發(fā)層面的結(jié)構(gòu)可以分為兩種一種是基于ASIC芯 片的三層交換機(jī),另一種是基于交換板的三層路由器,下面分別列舉實(shí)施例對(duì)這兩種三層 交換設(shè)備實(shí)現(xiàn)本發(fā)明的方法進(jìn)行詳細(xì)描述。實(shí)施例一、基于ASIC芯片的三層交換機(jī)。這種三層交換機(jī)的三層組播轉(zhuǎn)發(fā)和二層 組播轉(zhuǎn)發(fā)是合并的,三層組播轉(zhuǎn)發(fā)表中同時(shí)包含二層的物理端口信息。三層交換機(jī)接收到來(lái)自上游的組播流后,確定是否存在該組播流的組播源和組播 組對(duì)應(yīng)的三層組播轉(zhuǎn)發(fā)表項(xiàng),如果有,則按照該三層組播轉(zhuǎn)發(fā)表項(xiàng)對(duì)應(yīng)的所有出接口進(jìn)行 組播流的轉(zhuǎn)發(fā);如果否,則觸發(fā)建立該組播源和組播組對(duì)應(yīng)的三層組播轉(zhuǎn)發(fā)表項(xiàng)建立?,F(xiàn)有技術(shù)中,三層組播轉(zhuǎn)發(fā)表項(xiàng)的建立過(guò)程為查找組播路由表中該組播源和組 播組對(duì)應(yīng)的下游VLAN,利用確定的該下游VLAN確定IGMPSnooping表項(xiàng)中該下游VLAN對(duì)應(yīng) 的物理端口,將確定的物理端口逐一添加到該組播源和組播組對(duì)應(yīng)的出接口列表中,從而 形成三層組播轉(zhuǎn)發(fā)表項(xiàng)。而本發(fā)明中,在將確定的物理端口逐一添加到組播源和組播組對(duì)應(yīng)的出接口列表 中之前,三層交換機(jī)首先判斷自身是否使能了組播轉(zhuǎn)發(fā)優(yōu)化特性,如果否,則按照現(xiàn)有技術(shù) 的方式將確定的物理端口逐一添加到組播源和組播組對(duì)應(yīng)的出接口列表中;如果是,則判 斷要添加的物理端口是路由器端口還是主機(jī)端口,如果是主機(jī)端口,則將該主機(jī)端口添加 到組播源和組播組對(duì)應(yīng)的出接口列表中,如果是路由器端口,則不添加該路由器端口。另外,當(dāng)IGMP Snooping表項(xiàng)發(fā)生變化時(shí),三層交換機(jī)需要根據(jù)IGMPSnooping表 項(xiàng)的變化更新三層組播轉(zhuǎn)發(fā)表項(xiàng),例如當(dāng)某VLAN對(duì)應(yīng)的IGMPSnooping表項(xiàng)中添加了新的 物理端口時(shí),需要將新添加的物理端口也相應(yīng)的添加到該VLAN作為下游VLAN所對(duì)應(yīng)的出 接口列表中。在添加之前,也需要判斷該添加的物理端口是主機(jī)端口還是路由器端口,如果 是主機(jī)端口,則將該主機(jī)端口添加到對(duì)應(yīng)的出接口列表中,如果是路由器端口,則不添加該 路由器端口。
實(shí)施例二、基于交換板的三層路由器。三層路由器的三層組播轉(zhuǎn)發(fā)和二層組播轉(zhuǎn) 發(fā)是分離的,三層組播轉(zhuǎn)發(fā)依據(jù)組播路由表,二層組播轉(zhuǎn)發(fā)依據(jù)二層組播轉(zhuǎn)發(fā)表。這種情況 下,需要在建立和維護(hù)二層組播轉(zhuǎn)發(fā)表時(shí),對(duì)主機(jī)端口和路由器端口進(jìn)行區(qū)別操作。三層路由器建立IGMP Snooping表項(xiàng)之后,會(huì)利用該IGMP Snooping表項(xiàng)生成二 層組播轉(zhuǎn)發(fā)表,現(xiàn)有技術(shù)中,需要將IGMP Snooping表項(xiàng)中VLAN對(duì)應(yīng)的所有的物理端口都 添加到二層組播轉(zhuǎn)發(fā)表的出接口列表中。在本發(fā)明中,在添加物理端口之前,三層路由器會(huì) 判斷自身是否使能了組播轉(zhuǎn)發(fā)優(yōu)化特性,如果否,則按照現(xiàn)有技術(shù)的方式將物理端口都添 加到該VLAN對(duì)應(yīng)的出接口列表中;如果是,則判斷要添加的物理端口是路由器端口還是主 機(jī)端口,如果是主機(jī)端口,則將該主機(jī)端口添加到二層組播轉(zhuǎn)發(fā)表的出接口列表中,如果是 路由器端口,則不將該路由器端口添加到二層組播轉(zhuǎn)發(fā)表的出接口列表中。同樣,在上述VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中新增加了物理端口時(shí),例如,從新 的物理端口接收到IGMP加入報(bào)文、IGMP查詢報(bào)文或PIM報(bào)文時(shí),需要將新增加的物理端口 同步添加到二層組播轉(zhuǎn)發(fā)表中該VLAN對(duì)應(yīng)的出接口列表中,此時(shí),在添加該物理端口到二 層組播轉(zhuǎn)發(fā)表之前,會(huì)判斷該要添加的物理端口是主機(jī)端口還是路由器端口,如果是主機(jī) 端口,則添加該物理端口到二層組播轉(zhuǎn)發(fā)表中該VLAN對(duì)應(yīng)的出接口列表中,否則,不添加 該物理端口到二層組播轉(zhuǎn)發(fā)表中該VLAN對(duì)應(yīng)的出接口列表中。仍以圖1中的交換機(jī)Sl為例,按照本發(fā)明提供的方法,由于端口 Pl是路由器端 口,因此,端口 Pl不會(huì)被添加到組播轉(zhuǎn)發(fā)表的出接口列表中,這樣,Sl在對(duì)組播流進(jìn)行轉(zhuǎn)發(fā) 時(shí),不會(huì)通過(guò)端口 Pl進(jìn)行轉(zhuǎn)發(fā),此時(shí)的組播流轉(zhuǎn)發(fā)路徑如圖3中箭頭所示。以上是對(duì)本發(fā)明所提供的方法進(jìn)行的詳細(xì)描述,下面對(duì)本發(fā)明所提供的裝置進(jìn)行 詳細(xì)描述。圖4為本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)示意圖,該裝置可以設(shè)置在作為VLAN的DR 的三層交換設(shè)備中,例如圖1中所示的三層交換機(jī)Sl中;如圖4所示,該裝置可以包括判 斷處理單元400和端口添加單元410。判斷處理單元400,用于在端口添加單元410將物理端口添加到組播轉(zhuǎn)發(fā)表的出 接口列表之前,判斷該物理端口是主機(jī)端口還是路由器端口,如果是主機(jī)端口,則向端口添 加單元410發(fā)送允許指令;如果是路由器端口,則向端口添加單元410發(fā)送禁止指令。端口添加單元410,用于接收到允許指令后,將要添加的物理端口添加到出接口列 表中;接收到禁止指令后,不將要添加的物理端口添加到出接口列表中。流量轉(zhuǎn)發(fā)單元420,用于將該三層交換設(shè)備接收到的組播流按照組播轉(zhuǎn)發(fā)表進(jìn)行 轉(zhuǎn)發(fā)。更優(yōu)地,判斷處理單元400可以具體包括第一判斷子單元401和第二判斷子單元 402。第一判斷子單元401,用于判斷該三層交換設(shè)備是否使能組播轉(zhuǎn)發(fā)優(yōu)化性能,如果 是,向第二判斷子單元402發(fā)送判斷通知;否則,向端口添加單元410發(fā)送允許指令。第二判斷子單元402,用于接收到判斷通知后,判斷端口添加單元410要添加到組 播轉(zhuǎn)發(fā)表的出接口列表中的物理端口是主機(jī)端口還是路由器端口,如果是主機(jī)端口,則向 端口添加單元410發(fā)送允許指令;如果是路由器端口,則向端口添加單元410發(fā)送禁止指 令。另外,該裝置還可以包括IGMP Snooping表項(xiàng)建立單元430,用于將三層交換設(shè)備接收到IGMP加入報(bào)文的物理端口確定為主機(jī)端口,將三層交換設(shè)備接收到IGMP查詢報(bào) 文或者PIM報(bào)文的端口確定為路由器端口,并利用確定的主機(jī)端口和路由器端口的物理端 口信息建立VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)。判斷處理單元400可以按照IGMP Snooping表項(xiàng)執(zhí)行判斷該物理端口是主機(jī)端口 還是路由器端口的操作。根據(jù)三層交換設(shè)備的類(lèi)型不同,該裝置可以包括以下兩種情況 第一種情況當(dāng)三層交換設(shè)備是基于ASIC芯片的三層交換機(jī)時(shí),上述組播轉(zhuǎn)發(fā)表 為包含物理端口信息的三層組播轉(zhuǎn)發(fā)表。此時(shí),該裝置還可以包括第一觸發(fā)單元441或第二觸發(fā)單元442。第一觸發(fā)單元441,用于在三層交換設(shè)備接收到來(lái)自上游的組播流后,如果尚不存 在該組播流的組播源和組播組對(duì)應(yīng)的三層組播轉(zhuǎn)發(fā)表項(xiàng),則查找組播路由表中該組播流的 組播源和組播組對(duì)應(yīng)的下游VLAN,確定該下游VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中的物理端 口,并觸發(fā)端口添加單元410將確定的物理端口逐一添加到三層組播轉(zhuǎn)發(fā)表中該組播流的 組播源和組播組對(duì)應(yīng)的出接口列表中。第二觸發(fā)單元442,用于在確定VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中增加了物理端 口時(shí),觸發(fā)端口添加單元410將增加的物理端口添加到三層組播轉(zhuǎn)發(fā)表中VLAN作為下游 VLAN對(duì)應(yīng)的出接口列表中。第二種情況當(dāng)三層交換設(shè)備為基于交換板的三層路由器時(shí),上述組播轉(zhuǎn)發(fā)表為 二層組播轉(zhuǎn)發(fā)表。該裝置還包括第三觸發(fā)單元443或第四觸發(fā)單元444。第三觸發(fā)單元443,用于在IGMP Snooping表項(xiàng)建立單元430建立IGMPSnooping 表項(xiàng)之后,觸發(fā)端口添加單元410將IGMP Snooping表項(xiàng)中VLAN對(duì)應(yīng)的物理端口添加到二 層組播轉(zhuǎn)發(fā)表中VLAN對(duì)應(yīng)的出接口列表中。第四觸發(fā)單元444,用于在確定VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中增加了物理端 口時(shí),觸發(fā)端口添加單元410將增加的物理端口添加到二層組播轉(zhuǎn)發(fā)表中VLAN作為下游 VLAN對(duì)應(yīng)的出接口列表中。由以上描述可以看出,在本發(fā)明中,作為VLAN的DR的三層交換設(shè)備對(duì)要添加到組 播轉(zhuǎn)發(fā)表中的物理端口進(jìn)行區(qū)分,僅將主機(jī)端口添加到組播轉(zhuǎn)發(fā)表的出接口列表中,而不 將路由器端口添加在組播轉(zhuǎn)發(fā)表的出接口列表中,使得該三層交換設(shè)備根據(jù)組播轉(zhuǎn)發(fā)表進(jìn) 行組播流量轉(zhuǎn)發(fā)時(shí),能夠避免將流量轉(zhuǎn)發(fā)至其它三層交換設(shè)備,從而節(jié)約網(wǎng)絡(luò)帶寬且減小 對(duì)其它三層交換設(shè)備造成的性能影響。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
權(quán)利要求
1.一種轉(zhuǎn)發(fā)組播流量的方法,應(yīng)用于運(yùn)行因特網(wǎng)組管理協(xié)議IGMP和三層組播路由協(xié) 議的三層網(wǎng)絡(luò),其特征在于,該方法包括作為虛擬局域網(wǎng)VLAN的指定路由器的三層交換設(shè)備在將物理端口添加到組播轉(zhuǎn)發(fā)表 的出接口列表中之前,判斷該物理端口是主機(jī)端口還是路由器端口,如果是主機(jī)端口,則將 該主機(jī)端口添加到所述出接口列表中;如果是路由器端口,則不將該路由器端口添加到所 述出接口列表中;所述三層交換設(shè)備將接收到的組播流按照所述組播轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述判斷該物理端口是主機(jī)端口還是 路由器端口之前還包括判斷所述三層交換設(shè)備是否使能組播轉(zhuǎn)發(fā)優(yōu)化特性,如果是,繼續(xù) 執(zhí)行所述判斷該物理端口是主機(jī)端口還是路由器端口的步驟;如果否,直接將該物理端口 添加到所述出接口列表中,結(jié)束流程。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述三層交換設(shè)備使能了IGMP Snooping 功能;所述三層交換設(shè)備將接收到IGMP加入報(bào)文的物理端口確定為主機(jī)端口,將接收到 IGMP查詢報(bào)文或者PIM報(bào)文的端口確定為路由器端口,并利用確定的主機(jī)端口和路由器端 口的物理端口信息建立所述VLAN對(duì)應(yīng)的IGMPSnooping表項(xiàng);所述三層交換設(shè)備按照建立的所述IGMP Snooping表項(xiàng)執(zhí)行所述判斷該物理端口是主 機(jī)端口還是路由器端口的步驟。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述三層交換設(shè)備為基于特定用途集 成電路ASIC芯片的三層交換機(jī)時(shí),所述組播轉(zhuǎn)發(fā)表為包含物理端口信息的三層組播轉(zhuǎn)發(fā) 表;所述將物理端口添加到組播轉(zhuǎn)發(fā)表的出接口列表中之前,判斷該物理端口是主機(jī)端口 還是路由器端口具體包括所述三層交換設(shè)備接收到來(lái)自上游的組播流后,如果尚不存在 該組播流的組播源和組播組對(duì)應(yīng)的三層組播轉(zhuǎn)發(fā)表項(xiàng),則查找組播路由表中該組播流的組 播源和組播組對(duì)應(yīng)的下游VLAN,確定該下游VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中的物理端 口,在將確定的物理端口逐一添加到所述三層組播轉(zhuǎn)發(fā)表中該組播流的組播源和組播組對(duì) 應(yīng)的出接口列表之前,判斷要添加的物理端口是主機(jī)端口還是路由器端口 ;或者,所述三層交換設(shè)備確定所述VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中增加了物理端口時(shí),在 將增加的物理端口添加到三層組播轉(zhuǎn)發(fā)表中所述VLAN作為下游VLAN對(duì)應(yīng)的出接口列表中 之前,判斷要添加的物理端口是主機(jī)端口還是路由器端口。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,當(dāng)所述三層交換設(shè)備為基于交換板的三 層路由器時(shí),所述組播轉(zhuǎn)發(fā)表為二層組播轉(zhuǎn)發(fā)表;所述將物理端口添加到組播轉(zhuǎn)發(fā)表的出接口列表中之前,判斷該物理端口是主機(jī)端口 還是路由器端口具體包括所述三層交換設(shè)備在將IGMP Snooping表項(xiàng)中所述VLAN對(duì)應(yīng)的 物理端口添加到二層組播轉(zhuǎn)發(fā)表中所述VLAN對(duì)應(yīng)的出接口列表中之前,判斷要添加的物 理端口是主機(jī)端口還是路由器端口 ;或者,所述三層交換設(shè)備確定所述VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中增加了物理端口時(shí),在 將增加的物理端口添加到二層組播轉(zhuǎn)發(fā)表中所述VLAN對(duì)應(yīng)的出接口列表中之前,判斷要 添加的物理端口是主機(jī)端口還是路由器端口。
6.一種轉(zhuǎn)發(fā)組播流量的裝置,該裝置設(shè)置在作為VLAN的指定路由器的三層交換設(shè)備 中,該三層交換設(shè)備所在的三層網(wǎng)絡(luò)運(yùn)行了 IGMP和三層組播路由協(xié)議;其特征在于,該裝 置包括判斷處理單元、端口添加單元和流量轉(zhuǎn)發(fā)單元;所述判斷處理單元,用于在所述端口添加單元將物理端口添加到組播轉(zhuǎn)發(fā)表的出接口 列表之前,判斷該物理端口是主機(jī)端口還是路由器端口,如果是主機(jī)端口,則向所述端口添 加單元發(fā)送允許指令;如果是路由器端口,則向所述端口添加單元發(fā)送禁止指令;所述端口添加單元,用于接收到允許指令后,將要添加的物理端口添加到所述出接口 列表中;接收到禁止指令后,不將要添加的物理端口添加到出接口列表中;所述流量轉(zhuǎn)發(fā)單元,用于將所述三層交換設(shè)備接收到的組播流按照所述組播轉(zhuǎn)發(fā)表進(jìn) 行轉(zhuǎn)發(fā)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述判斷處理單元包括第一判斷子單元 和第二判斷子單元;所述第一判斷子單元,用于判斷所述三層交換設(shè)備是否使能組播轉(zhuǎn)發(fā)優(yōu)化性能,如果 是,向所述第二判斷子單元發(fā)送判斷通知;否則,向所述端口添加單元發(fā)送允許指令;所述第二判斷子單元,用于接收到判斷通知后,判斷所述端口添加單元要添加到組播 轉(zhuǎn)發(fā)表的出接口列表中的物理端口是主機(jī)端口還是路由器端口,如果是主機(jī)端口,則向所 述端口添加單元發(fā)送允許指令;如果是路由器端口,則向所述端口添加單元發(fā)送禁止指令。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,該裝置還包括IGMPSnooping表項(xiàng)建立 單元,用于將所述三層交換設(shè)備接收到IGMP加入報(bào)文的物理端口確定為主機(jī)端口,將所述 三層交換設(shè)備接收到IGMP查詢報(bào)文或者PIM報(bào)文的端口確定為路由器端口,并利用確定的 主機(jī)端口和路由器端口的物理端口信息建立所述VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng);所述判斷處理單元按照所述IGMP Snooping表項(xiàng)執(zhí)行所述判斷該物理端口是主機(jī)端口 還是路由器端口的操作。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,當(dāng)所述三層交換設(shè)備是基于ASIC芯片的 三層交換機(jī)時(shí),所述組播轉(zhuǎn)發(fā)表為包含物理端口信息的三層組播轉(zhuǎn)發(fā)表;該裝置還包括第一觸發(fā)單元或第二觸發(fā)單元;所述第一觸發(fā)單元,用于在所述三層交換設(shè)備接收到來(lái)自上游的組播流后,如果尚不 存在該組播流的組播源和組播組對(duì)應(yīng)的三層組播轉(zhuǎn)發(fā)表項(xiàng),則查找組播路由表中該組播流 的組播源和組播組對(duì)應(yīng)的下游VLAN,確定該下游VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中的物理 端口,并觸發(fā)所述端口添加單元將確定的物理端口逐一添加到所述三層組播轉(zhuǎn)發(fā)表中該組 播流的組播源和組播組對(duì)應(yīng)的出接口列表中;所述第二觸發(fā)單元,用于在確定所述VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中增加了物理端 口時(shí),觸發(fā)所述端口添加單元將增加的物理端口添加到三層組播轉(zhuǎn)發(fā)表中所述VLAN作為 下游VLAN對(duì)應(yīng)的出接口列表中。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,當(dāng)所述三層交換設(shè)備為基于交換板的三 層路由器時(shí),所述組播轉(zhuǎn)發(fā)表為二層組播轉(zhuǎn)發(fā)表;該裝置還包括第三觸發(fā)單元或第四觸發(fā)單元;所述第三觸發(fā)單元,用于在所述IGMP Snooping表項(xiàng)建立單元建立IGMPSnooping表項(xiàng) 之后,觸發(fā)所述端口添加單元將IGMP Snooping表項(xiàng)中所述VLAN對(duì)應(yīng)的物理端口添加到二層組播轉(zhuǎn)發(fā)表中所述VLAN對(duì)應(yīng)的出接口列表中;所述第四觸發(fā)單元,用于在確定所述VLAN對(duì)應(yīng)的IGMP Snooping表項(xiàng)中增加了物理端 口時(shí),觸發(fā)所述端口添加單元將增加的物理端口添加到二層組播轉(zhuǎn)發(fā)表中所述VLAN作為 下游VLAN對(duì)應(yīng)的出接口列表中。
全文摘要
本發(fā)明提供了一種轉(zhuǎn)發(fā)組播流量的方法和裝置,應(yīng)用于運(yùn)行因特網(wǎng)組管理協(xié)議(IGMP)和三層組播路由協(xié)議的三層網(wǎng)絡(luò),其中,方法包括作為虛擬局域網(wǎng)(VLAN)的指定路由器的三層交換設(shè)備在將物理端口添加到組播轉(zhuǎn)發(fā)表的出接口列表中之前,判斷該物理端口是主機(jī)端口還是路由器端口,如果是主機(jī)端口,則將該主機(jī)端口添加到所述出接口列表中;如果是路由器端口,則不將該路由器端口添加到所述出接口列表中;該三層交換設(shè)備將接收到的組播流按照組播轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā)。本發(fā)明能夠避免作為指定路由器的三層交換設(shè)備將組播流量轉(zhuǎn)發(fā)給其它三層交換設(shè)備,從而節(jié)約網(wǎng)絡(luò)帶寬和減小對(duì)三層交換設(shè)備造成的性能影響。
文檔編號(hào)H04L12/56GK102082720SQ20091023869
公開(kāi)日2011年6月1日 申請(qǐng)日期2009年12月1日 優(yōu)先權(quán)日2009年12月1日
發(fā)明者陳翀 申請(qǐng)人:杭州華三通信技術(shù)有限公司