專利名稱:路由器上組播轉(zhuǎn)發(fā)方法及轉(zhuǎn)發(fā)路由器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及IP組播業(yè)務(wù)數(shù)據(jù)的轉(zhuǎn)發(fā)技術(shù),特別涉及三層組播技術(shù)。
背景技術(shù):
在寬窄帶路由器上,路由器既支持軟件轉(zhuǎn)發(fā),同時(shí)帶有硬件加速引擎(交換模塊) 以支持交換功能;一股既有普通的廣域網(wǎng)接口,又有VLAN(虛擬局域網(wǎng))接口。路由器平臺(tái)上面進(jìn)行的是三層組播,是通過CPU進(jìn)行組播業(yè)務(wù)轉(zhuǎn)發(fā)的。因?yàn)樵黾?了交換模塊,交換模塊上的物理端口虛擬出VLAN接口,體現(xiàn)出三層接口的特性。現(xiàn)有三層 組播轉(zhuǎn)發(fā)實(shí)現(xiàn)方法只能知道轉(zhuǎn)發(fā)到哪個(gè)接口上,而VLAN接口上可能存在多個(gè)物理端口,如 果采用現(xiàn)有的實(shí)現(xiàn),會(huì)在這些物理端口上廣播組播業(yè)務(wù)報(bào)文。即,現(xiàn)有的路由器上的組播轉(zhuǎn) 發(fā)模式為,組播業(yè)務(wù)報(bào)文從廣域網(wǎng)接口進(jìn)入,當(dāng)VLAN接口上有接收成員時(shí),從VLAN接口對(duì) 應(yīng)的所有成員物理端口復(fù)制轉(zhuǎn)發(fā)。因此現(xiàn)有技術(shù)存在三層組播轉(zhuǎn)發(fā)時(shí)不能精確到物理端口的問題;組播業(yè)務(wù)報(bào)文在 該VLAN上廣播,導(dǎo)致帶寬浪費(fèi)和其它設(shè)備不必要的CPU能力負(fù)擔(dān)。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是,提供一種能精確到物理端口的路由器上組播轉(zhuǎn)發(fā) 方法及轉(zhuǎn)發(fā)路由器。本發(fā)明為解決上述技術(shù)問題所采用的技術(shù)方案是,路由器上組播轉(zhuǎn)發(fā)方法,包括 以下步驟a、輸入接口接收到組播業(yè)務(wù)報(bào)文,查找三層組播轉(zhuǎn)發(fā)表項(xiàng)是否存在指定的輸出接 口,如是,進(jìn)入步驟b ;如否,轉(zhuǎn)發(fā)結(jié)束;b、循環(huán)處理各指定的輸出接口;當(dāng)輸出接口為VLAN接口,設(shè)置該VLAN接口對(duì)應(yīng)的 VLANID,復(fù)制轉(zhuǎn)發(fā)此組播業(yè)務(wù)報(bào)文至CPU和硬件加速引擎之間的通道上;C、硬件加速引擎從通道接收到組播業(yè)務(wù)報(bào)文查找二層組播硬件表項(xiàng)中是否存在 指定的輸出物理端口,如是,從指定的輸出物理端口將組播業(yè)務(wù)報(bào)文轉(zhuǎn)發(fā)出去;如否,丟棄 該組播業(yè)務(wù)報(bào)文,轉(zhuǎn)發(fā)結(jié)束。在現(xiàn)有三層組播轉(zhuǎn)發(fā)的基礎(chǔ)上再加上二層組播轉(zhuǎn)發(fā),使得組播業(yè)務(wù)報(bào)文達(dá)到輸出 接口是VLAN接口時(shí),可以精確到物理端口。只向VLAN接口的有的接收成員的物理端口發(fā) 送組播業(yè)務(wù)報(bào)文,沒有接收成員的物理端口不會(huì)收到組播業(yè)務(wù)報(bào)文。進(jìn)一步的,步驟b中當(dāng)輸出接口為廣域網(wǎng)接口,復(fù)制轉(zhuǎn)發(fā)此組播業(yè)務(wù)報(bào)文至該廣 域網(wǎng)接口。具體的,路由器的廣域網(wǎng)接口與VLAN接口運(yùn)行有三層組播路由協(xié)議;三層組播路 由協(xié)議用于收集接口成員信息,維護(hù)三層組播路由表,并將三層組播轉(zhuǎn)發(fā)信息寫入三層組 播轉(zhuǎn)發(fā)表;VLAN接口對(duì)應(yīng)的各物理端口上運(yùn)行有二層組播協(xié)議與IGMP snooping (因特網(wǎng)組
4成員管理協(xié)議監(jiān)聽)協(xié)議,通過偵聽IGMP(因特網(wǎng)組管理協(xié)議)成員報(bào)告或離開消息,形成 IGMPsnooping組記錄,二層組播協(xié)議根據(jù)IGMP snooping組記錄維護(hù)二層組播轉(zhuǎn)發(fā)表,并 將二層組播轉(zhuǎn)發(fā)信息寫入二層組播硬件表。所述三層組播路由協(xié)議為PIM-SM、PIM-DM或DVMRP。所述三層組播轉(zhuǎn)發(fā)表包含有組播源IP地址、組播目的IP地址、輸入接口與輸出接 口列表;二層組播硬件表項(xiàng)包含有組播源IP地址、組播目的IP地址,VLAN ID、輸出接口列 表;步驟a中根據(jù)組播源IP地址、組播目的IP地址查找三層組播轉(zhuǎn)發(fā)表項(xiàng)是否存在 指定的輸出接口;步驟C中提取并根據(jù)組播業(yè)務(wù)報(bào)文中的目的MAC地址和VLAN ID,或者,組播源IP 地址、組播組IP地址和VLAN ID查找二層組播硬件表項(xiàng)。進(jìn)一步的,步驟a之后,步驟b之前還包括判斷接收該組播業(yè)務(wù)報(bào)文的輸入接口 是否為三層組播轉(zhuǎn)發(fā)表項(xiàng)中指定的輸入接口,如是,進(jìn)入步驟b ;如否,丟棄此組播業(yè)務(wù)報(bào) 文,轉(zhuǎn)發(fā)結(jié)束。步驟a中,三層組播轉(zhuǎn)發(fā)表項(xiàng)無指定的輸出接口時(shí),三層組播轉(zhuǎn)發(fā)模塊向三層組 播路由協(xié)議發(fā)送緩存缺失消息,轉(zhuǎn)發(fā)結(jié)束。另外,還提供了一種實(shí)現(xiàn)該方法的轉(zhuǎn)發(fā)路由器,包括廣域網(wǎng)接口、VLAN接口及其對(duì) 應(yīng)的多個(gè)物理端口、CPU、硬件加速引擎,所述CPU與硬件加速引擎通過通道進(jìn)行連接,廣域 網(wǎng)接口、VLAN接口與CPU相連,VLAN接口與其對(duì)應(yīng)的多個(gè)物理端口連接;所述CPU包含有 三層組播轉(zhuǎn)發(fā)模塊,硬件加速引擎中包含有二層組播轉(zhuǎn)發(fā)模塊;所述三層組播轉(zhuǎn)發(fā)模塊,用于在輸入接收到組播業(yè)務(wù)報(bào)文后查找三層組播轉(zhuǎn)發(fā)表 項(xiàng)是否存在指定的輸出接口 ;如是,當(dāng)輸入接口為VLAN接口,設(shè)置該VLAN接口對(duì)應(yīng)的VLAN ID,復(fù)制轉(zhuǎn)發(fā)此組播業(yè)務(wù)報(bào)文至CPU和硬件加速引擎之間的通道上;如否,轉(zhuǎn)發(fā)結(jié)束;所述二層組播轉(zhuǎn)發(fā)模塊,用于從通道接收到組播業(yè)務(wù)報(bào)文后,查找二層組播硬件 表項(xiàng)中是否存在指定的輸出物理端口,如是,從指定的輸出物理端口將組播業(yè)務(wù)報(bào)文轉(zhuǎn)發(fā) 出去;如否,丟棄該組播業(yè)務(wù)報(bào)文,轉(zhuǎn)發(fā)結(jié)束。進(jìn)一步的,廣域網(wǎng)接口與VLAN接口中均包括有三層組播路由協(xié)議模塊;硬件加速 引擎中包含有二層組播轉(zhuǎn)發(fā)模塊,物理端口中包含有二層組播協(xié)議模塊;所述三層組播路由協(xié)議模塊,用于收集接口成員信息,維護(hù)三層組播路由表,并將 三層組播轉(zhuǎn)發(fā)信息寫入三層組播轉(zhuǎn)發(fā)表;所述二層組播協(xié)議模塊,用于收集端口成員信息,維護(hù)二層組播轉(zhuǎn)發(fā)表,并將二層 組播轉(zhuǎn)發(fā)信息寫入二層組播硬件表。進(jìn)一步的,所述三層組播轉(zhuǎn)發(fā)模塊,還用于當(dāng)三層組播轉(zhuǎn)發(fā)表項(xiàng)無指定的輸出接 口時(shí),向三層組播路由協(xié)議模塊發(fā)送緩存缺失消息。進(jìn)一步的,所述物理端口中還包含有IGMP snooping協(xié)議模塊;所述IGMP snooping協(xié)議模塊用于,偵聽IGMP成員報(bào)告或離開消息,形成物理端 口的IGMP snooping組記錄,二層組播協(xié)議模塊根據(jù)IGMP snooping組記錄維護(hù)二層組播 轉(zhuǎn)發(fā)表。進(jìn)一步的,所述三層組播轉(zhuǎn)發(fā)模塊,用于當(dāng)指定的輸出接口為廣域網(wǎng)接口時(shí),復(fù)制
5轉(zhuǎn)發(fā)組播業(yè)務(wù)報(bào)文至該廣域網(wǎng)接口。本發(fā)明的有益效果是,使得路由器上的組播轉(zhuǎn)發(fā)可以精確到VLAN接口對(duì)應(yīng)的物 理端口,節(jié)約帶寬。
圖1為實(shí)施例路由器結(jié)構(gòu)示意圖;圖2為三層組播轉(zhuǎn)發(fā)流程圖;圖3為二層組播轉(zhuǎn)發(fā)流程圖。
具體實(shí)施例方式本發(fā)明同時(shí)結(jié)合IP三層組播和IP 二層組播分別形成軟、硬件組播轉(zhuǎn)發(fā)表和轉(zhuǎn)發(fā) 控制流程。通過IP三層組播,形成和維護(hù)三層組播轉(zhuǎn)發(fā)表,記錄組播源IP地址,組播目的 IP地址,輸入接口和輸出接口列表。通過IP 二層組播,形成和維護(hù)特定VLAN接口上的成員 端口列表,并且將以上成員端口列表信息寫入到硬件加速引擎中的二層組播硬件表項(xiàng)中。在進(jìn)行組播業(yè)務(wù)轉(zhuǎn)發(fā)時(shí),組播業(yè)務(wù)流通過寬窄帶路由器的廣域網(wǎng)接口進(jìn)入,然后 經(jīng)過軟件轉(zhuǎn)發(fā)(三層組播轉(zhuǎn)發(fā)),到達(dá)有接收成員的廣域網(wǎng)接口和VLAN接口上。如果輸出 接口是廣域網(wǎng)接口,組播業(yè)務(wù)報(bào)文被復(fù)制轉(zhuǎn)發(fā)到廣域網(wǎng)接口上。如果輸出接口是VLAN接 口,則設(shè)置VLAN ID,將此組播業(yè)務(wù)報(bào)文復(fù)制轉(zhuǎn)發(fā)到CPU和硬件加速引擎之間的通道上。硬 件加速引擎根據(jù)從通道上到達(dá)的組播業(yè)務(wù)報(bào)文信息,提取出VLAN ID和目的MAC或者組播 源IP地址、組播組IP地址。硬件加速引擎再查找二層組播硬件表項(xiàng)。如果該表項(xiàng)存在,硬 件加速引擎將組播業(yè)務(wù)報(bào)文復(fù)制轉(zhuǎn)發(fā)到各個(gè)輸出端口上;否則,丟棄此組播業(yè)務(wù)報(bào)文。寬窄帶路由器的結(jié)構(gòu)圖如圖1 廣域網(wǎng)接口、VLAN接口及其對(duì)應(yīng)的多個(gè)物理端口、CPU、硬件加速引擎,CPU與硬件 加速引擎通過通道進(jìn)行連接,廣域網(wǎng)接口、VLAN接口與CPU相連,VLAN接口與其對(duì)應(yīng)的多個(gè) 物理端口連接;CPU、硬件加速引擎和兩者之間的通道。CPU負(fù)責(zé)完成三層組播軟件轉(zhuǎn)發(fā)流 程,將廣域網(wǎng)接口的組播流發(fā)送到對(duì)應(yīng)的廣域網(wǎng)接口,且將VLAN輸出接口的組播業(yè)務(wù)流通 過通道發(fā)送給硬件加速引擎。硬件加速引擎負(fù)責(zé)進(jìn)行二層組播硬件轉(zhuǎn)發(fā)。當(dāng)硬件加速引擎 從通道收到組播業(yè)務(wù)報(bào)文時(shí),提取VLAN ID和對(duì)應(yīng)信息,將此報(bào)文復(fù)制轉(zhuǎn)發(fā)具有接收成員的 各個(gè)端口上;CPU包含有三層組播轉(zhuǎn)發(fā)模塊,硬件加速引擎中包含有二層組播轉(zhuǎn)發(fā)模塊;廣域 網(wǎng)接口與VLAN接口中均包括有三層組播路由協(xié)議模塊;硬件加速引擎中包含有二層組播 轉(zhuǎn)發(fā)模塊,物理端口中包含有二層組播協(xié)議模塊、IGMP snooping協(xié)議模塊;IGMP snooping協(xié)議模塊用于,偵聽IGMP成員報(bào)告或離開消息,形成物理端口的 IGMPsnooping組記錄,二層組播協(xié)議模塊根據(jù)IGMP snooping組記錄(成員端口列表)維 護(hù)二層組播轉(zhuǎn)發(fā)表;二層組播協(xié)議模塊,用于收集端口成員信息,維護(hù)二層組播轉(zhuǎn)發(fā)表,并將二層組播 轉(zhuǎn)發(fā)信息寫入二層組播硬件表;二層組播轉(zhuǎn)發(fā)模塊,用于從通道接收到組播業(yè)務(wù)報(bào)文后,查找二層組播硬件表項(xiàng) 中是否存在指定的輸出物理端口,如是,從指定的輸出物理端口將組播業(yè)務(wù)報(bào)文轉(zhuǎn)發(fā)出去;
6如否,丟棄該組播業(yè)務(wù)報(bào)文,轉(zhuǎn)發(fā)結(jié)束;三層組播路由協(xié)議模塊,用于收集接口成員信息,維護(hù)三層組播路由表,并將三層 組播轉(zhuǎn)發(fā)信息寫入三層組播轉(zhuǎn)發(fā)表;三層組播轉(zhuǎn)發(fā)模塊,用于在輸入接收到組播業(yè)務(wù)報(bào)文后查找三層組播轉(zhuǎn)發(fā)表項(xiàng)是 否存在指定的輸出接口 ;如是,當(dāng)輸入接口為VLAN接口,設(shè)置該VLAN接口對(duì)應(yīng)的VLAN ID, 復(fù)制轉(zhuǎn)發(fā)此組播業(yè)務(wù)報(bào)文至CPU和硬件加速引擎之間的通道上;如否,轉(zhuǎn)發(fā)結(jié)束;當(dāng)三層組 播轉(zhuǎn)發(fā)表項(xiàng)無指定的輸出接口時(shí),向三層組播路由協(xié)議模塊發(fā)送緩存缺失消息。如圖2所示,三層組播軟件轉(zhuǎn)發(fā)的流程有一次組播路由,多次轉(zhuǎn)發(fā)的特點(diǎn)。首先, 根據(jù)組播源IP地址和組播組IP地址查找是否存在對(duì)應(yīng)的三層組播轉(zhuǎn)發(fā)表項(xiàng)。如果不存在 該表項(xiàng),那么轉(zhuǎn)發(fā)模塊會(huì)向三層組播路由協(xié)議發(fā)送“緩存缺失”消息。然后轉(zhuǎn)發(fā)流程結(jié)束。 接著,檢查報(bào)文到達(dá)接口和轉(zhuǎn)發(fā)表項(xiàng)指定的輸入接口是否一致。如果不一致,丟棄此組播業(yè) 務(wù)報(bào)文,轉(zhuǎn)發(fā)流程結(jié)束。否則,接下來循環(huán)處理輸出接口列表。如果輸出接口是廣域網(wǎng)接口, 將此報(bào)文復(fù)制轉(zhuǎn)發(fā)到該接口上。如果輸出接口是VLAN接口,設(shè)置VLAN ID(因?yàn)榭赡艽嬖?多個(gè)輸出VLAN接口,設(shè)置了 VLAN ID,硬件加速引擎才能區(qū)別處理),將此報(bào)文復(fù)制轉(zhuǎn)發(fā)到 CPU和硬件加速引擎之間的通道上。當(dāng)三層組播路由協(xié)議收到三層組播轉(zhuǎn)發(fā)模塊發(fā)送的“緩 存缺失”消息后,將根據(jù)三層組播路由信息,向三層組播轉(zhuǎn)發(fā)模塊寫下三層組播轉(zhuǎn)發(fā)表項(xiàng)。如圖3所示,二層組播硬件轉(zhuǎn)發(fā)的流程硬件加速引擎從通道上接收到組播業(yè)務(wù) 報(bào)文后,提取二層組播相關(guān)信息,例如(目的MAC,VLAN ID)或者(組播源IP地址,組播組 IP地址,VLAN ID),查找對(duì)應(yīng)硬件轉(zhuǎn)發(fā)表項(xiàng)。具體支持哪種情況將根據(jù)引擎的能力而定。如 果表項(xiàng)不存在,丟棄該報(bào)文。否則,循環(huán)處理輸出端口列表。將組播業(yè)務(wù)報(bào)文復(fù)制轉(zhuǎn)發(fā)到對(duì) 應(yīng)的端口上。具體的方案如下第一步,三層組播路由協(xié)議在路由器各個(gè)廣域網(wǎng)接口和VLAN接口上運(yùn)行。收集各 個(gè)接口上的成員信息,然后形成(*,組播組IP地址)或者(組播源IP地址,組播組IP地 址)的三層組播路由表。第二步,二層組播協(xié)議運(yùn)行在各個(gè)VLAN接口對(duì)應(yīng)的VLAN上。收集各個(gè)端口上的 IGMPsnooping組記錄;然后形成諸如(*,組播組IP地址,VLAN ID)和(組播源IP地址,組 播組IP地址,VLAN ID)的成員端口列表。第三步,二層組播協(xié)議將這些端口上的成員端口列表綜合成為二層組播轉(zhuǎn)發(fā)表 項(xiàng),寫入到硬件加速引擎的硬件表項(xiàng)中。形如(目的MAC,VLAN ID,輸出端口列表)或者 (組播源IP地址,組播組IP地址,VLAN ID,輸出端口列表)加上(*,組播組IP地址,VLAN ID,輸出端口列表)的形式。具體要根據(jù)硬件加速引擎的支持能力。‘*’表示匹配任何組播 源IP地址。第四步,組播業(yè)務(wù)流到達(dá)廣域接口時(shí),三層組播轉(zhuǎn)發(fā)模塊根據(jù)組播源IP地址和組 播組IP地址查找三層組播轉(zhuǎn)發(fā)表項(xiàng)。如果該表項(xiàng)不存在,轉(zhuǎn)發(fā)模塊向三層組播路由協(xié)議發(fā) 送“緩存缺失”消息,轉(zhuǎn)發(fā)流程結(jié)束。而三層組播路由協(xié)議收到此消息后,將根據(jù)自己維護(hù) 的組播路由信息向轉(zhuǎn)發(fā)模塊寫入三層組播轉(zhuǎn)發(fā)表。形如(組播源IP地址,組播組IP地址, 輸入接口,輸出接口列表)。否則,表示三層組播轉(zhuǎn)發(fā)表項(xiàng)存在。轉(zhuǎn)發(fā)模塊檢查報(bào)文到達(dá)接 口和表項(xiàng)指定的輸入接口是否一致。如果不一致,丟棄此組播業(yè)務(wù)報(bào)文,轉(zhuǎn)發(fā)流程結(jié)束。否
7則,循環(huán)處理輸出接口列表。如果輸出接口是廣域網(wǎng)接口,將組播業(yè)務(wù)報(bào)文復(fù)制轉(zhuǎn)發(fā)到該接 口上。否貝IJ,輸出接口是VLAN接口,設(shè)置VLAN ID,將此報(bào)文復(fù)制轉(zhuǎn)發(fā)到CPU和硬件加速引 擎之間的通道上。 第五步,當(dāng)硬件加速引擎收到來自通道中的組播業(yè)務(wù)報(bào)文后,根據(jù)VLAN ID和組播 業(yè)務(wù)流信息,目的MAC地址或者組播源IP地址和組播組IP地址,查找硬件轉(zhuǎn)發(fā)表項(xiàng)。如果 無此表項(xiàng),丟棄此報(bào)文。否則,循環(huán)處理輸出端口列表。在有接收成員的端口復(fù)制發(fā)送此報(bào) 文。不具有接收成員的端口,不轉(zhuǎn)發(fā)該報(bào)文。
權(quán)利要求
路由器上組播轉(zhuǎn)發(fā)方法,其特征在于,包括以下步驟a、輸入接口接收到組播業(yè)務(wù)報(bào)文,查找三層組播轉(zhuǎn)發(fā)表項(xiàng)是否存在指定的輸出接口,如是,進(jìn)入步驟b;如否,轉(zhuǎn)發(fā)結(jié)束;b、循環(huán)處理各指定的輸出接口;當(dāng)輸出接口為VLAN接口,設(shè)置該VLAN接口對(duì)應(yīng)的VLANID,復(fù)制轉(zhuǎn)發(fā)此組播業(yè)務(wù)報(bào)文至CPU和硬件加速引擎之間的通道上;c、硬件加速引擎從通道接收到組播業(yè)務(wù)報(bào)文查找二層組播硬件表項(xiàng)中是否存在指定的輸出物理端口,如是,從指定的輸出物理端口將組播業(yè)務(wù)報(bào)文轉(zhuǎn)發(fā)出去;如否,丟棄該組播業(yè)務(wù)報(bào)文,轉(zhuǎn)發(fā)結(jié)束。
2.如權(quán)利要求1所述路由器上組播轉(zhuǎn)發(fā)方法,其特征在于,步驟b中當(dāng)輸出接口為廣域 網(wǎng)接口,復(fù)制轉(zhuǎn)發(fā)此組播業(yè)務(wù)報(bào)文至該廣域網(wǎng)接口。
3.如權(quán)利要求2所述路由器上組播轉(zhuǎn)發(fā)方法,其特征在于,路由器的廣域網(wǎng)接口與 VLAN接口運(yùn)行有三層組播路由協(xié)議;三層組播路由協(xié)議用于收集接口成員信息,維護(hù)三層 組播路由表,并將三層組播轉(zhuǎn)發(fā)信息寫入三層組播轉(zhuǎn)發(fā)表;VLAN接口對(duì)應(yīng)的各物理端口上運(yùn)行有二層組播協(xié)議與IGMP snooping協(xié)議,通過偵聽 IGMP成員報(bào)告或離開消息,形成IGMP snooping組記錄,二層組播協(xié)議根據(jù)IGMP snooping 組記錄維護(hù)二層組播轉(zhuǎn)發(fā)表,并將二層組播轉(zhuǎn)發(fā)信息寫入二層組播硬件表。
4.如權(quán)利要求1所述路由器上組播轉(zhuǎn)發(fā)方法,其特征在于,所述三層組播轉(zhuǎn)發(fā)表包含 有組播源IP地址、組播目的IP地址、輸入接口與輸出接口列表;二層組播硬件表項(xiàng)包含有 組播源IP地址、組播目的IP地址,VLAN ID、輸出接口列表;步驟a中根據(jù)組播源IP地址、組播目的IP地址查找三層組播轉(zhuǎn)發(fā)表項(xiàng)是否存在指定 的輸出接口;步驟c中提取并根據(jù)組播業(yè)務(wù)報(bào)文中的目的MAC地址和VLAN ID,或者,組播源IP地 址、組播組IP地址和VLAN ID查找二層組播硬件表項(xiàng)。
5.如權(quán)利要求1所述路由器上組播轉(zhuǎn)發(fā)方法,其特征在于,步驟a之后,步驟b之前還 包括判斷接收該組播業(yè)務(wù)報(bào)文的輸入接口是否為三層組播轉(zhuǎn)發(fā)表項(xiàng)中指定的輸入接口, 如是,進(jìn)入步驟b ;如否,丟棄此組播業(yè)務(wù)報(bào)文,轉(zhuǎn)發(fā)結(jié)束。
6.如權(quán)利要求1所述路由器上組播轉(zhuǎn)發(fā)方法,其特征在于,步驟a中,三層組播轉(zhuǎn)發(fā)表 項(xiàng)無指定的輸出接口時(shí),三層組播轉(zhuǎn)發(fā)模塊向三層組播路由協(xié)議發(fā)送緩存缺失消息,轉(zhuǎn)發(fā) 結(jié)束。
7.轉(zhuǎn)發(fā)路由器,包括廣域網(wǎng)接口、VLAN接口及其對(duì)應(yīng)的多個(gè)物理端口、CPU、硬件加速 引擎,所述CPU與硬件加速引擎通過通道進(jìn)行連接,廣域網(wǎng)接口、VLAN接口與CPU相連,VLAN 接口與其對(duì)應(yīng)的多個(gè)物理端口連接;其特征在于,所述CPU包含有三層組播轉(zhuǎn)發(fā)模塊,硬件 加速引擎中包含有二層組播轉(zhuǎn)發(fā)模塊;所述三層組播轉(zhuǎn)發(fā)模塊,用于在輸入接收到組播業(yè)務(wù)報(bào)文后查找三層組播轉(zhuǎn)發(fā)表項(xiàng)是 否存在指定的輸出接口 ;如是,當(dāng)輸入接口為VLAN接口,設(shè)置該VLAN接口對(duì)應(yīng)的VLAN ID, 復(fù)制轉(zhuǎn)發(fā)此組播業(yè)務(wù)報(bào)文至CPU和硬件加速引擎之間的通道上;如否,轉(zhuǎn)發(fā)結(jié)束;所述二層組播轉(zhuǎn)發(fā)模塊,用于從通道接收到組播業(yè)務(wù)報(bào)文后,查找二層組播硬件表項(xiàng) 中是否存在指定的輸出物理端口,如是,從指定的輸出物理端口將組播業(yè)務(wù)報(bào)文轉(zhuǎn)發(fā)出去; 如否,丟棄該組播業(yè)務(wù)報(bào)文,轉(zhuǎn)發(fā)結(jié)束。
8.如權(quán)利要求7所述轉(zhuǎn)發(fā)路由器,其特征在于,所述三層組播轉(zhuǎn)發(fā)模塊,用于當(dāng)指定的 輸出接口為廣域網(wǎng)接口時(shí),復(fù)制轉(zhuǎn)發(fā)組播業(yè)務(wù)報(bào)文至該廣域網(wǎng)接口。
9.如權(quán)利要求7所述轉(zhuǎn)發(fā)路由器,其特征在于,廣域網(wǎng)接口與VLAN接口中均包括有三 層組播路由協(xié)議模塊;硬件加速引擎中包含有二層組播轉(zhuǎn)發(fā)模塊,物理端口中包含有二層 組播協(xié)議模塊;所述三層組播路由協(xié)議模塊,用于收集接口成員信息,維護(hù)三層組播路由表,并將三層 組播轉(zhuǎn)發(fā)信息寫入三層組播轉(zhuǎn)發(fā)表;所述二層組播協(xié)議模塊,用于收集端口成員信息,維護(hù)二層組播轉(zhuǎn)發(fā)表,并將二層組播 轉(zhuǎn)發(fā)信息寫入二層組播硬件表。
10.如權(quán)利要求9所述轉(zhuǎn)發(fā)路由器,其特征在于,所述三層組播轉(zhuǎn)發(fā)模塊,還用于當(dāng)三 層組播轉(zhuǎn)發(fā)表項(xiàng)無指定的輸出接口時(shí),向三層組播路由協(xié)議模塊發(fā)送緩存缺失消息。
11.如權(quán)利要求7、8或9所述轉(zhuǎn)發(fā)路由器,其特征在于,所述物理端口中還包含有 IGMPsnooping協(xié)議模塊;所述IGMP snooping協(xié)議模塊用于,偵聽IGMP成員報(bào)告或離開消 息,形成物理端口的IGMP snooping組記錄,二層組播協(xié)議模塊根據(jù)IGMP snooping組記錄 維護(hù)二層組播轉(zhuǎn)發(fā)表。
全文摘要
本發(fā)明提供一種能精確到物理端口的路由器上組播轉(zhuǎn)發(fā)方法及轉(zhuǎn)發(fā)路由器。方法包括步驟a、輸入接口查找三層組播轉(zhuǎn)發(fā)表項(xiàng)是否存在指定的輸出接口,如是,進(jìn)入步驟b;如否,轉(zhuǎn)發(fā)結(jié)束;b、當(dāng)輸出接口為VLAN接口,設(shè)置該VLAN接口對(duì)應(yīng)的VLAN ID,復(fù)制轉(zhuǎn)發(fā)此組播業(yè)務(wù)報(bào)文;c、硬件加速引擎查找二層組播硬件表項(xiàng)中是否存在指定的輸出物理端口,如是,從指定的輸出物理端口將組播業(yè)務(wù)報(bào)文轉(zhuǎn)發(fā)出去。在現(xiàn)有三層組播轉(zhuǎn)發(fā)的基礎(chǔ)上再加上二層組播轉(zhuǎn)發(fā),使得組播業(yè)務(wù)報(bào)文達(dá)到輸出接口是VLAN接口時(shí),可以精確到物理端口。
文檔編號(hào)H04L12/56GK101917351SQ20101028329
公開日2010年12月15日 申請(qǐng)日期2010年9月16日 優(yōu)先權(quán)日2010年3月31日
發(fā)明者王強(qiáng), 趙春剛 申請(qǐng)人:邁普通信技術(shù)股份有限公司