路由器上组播转发方法及转发路由器的制作方法

文档序号:7759900阅读:318来源:国知局
专利名称:路由器上组播转发方法及转发路由器的制作方法
技术领域
本发明涉及IP组播业务数据的转发技术,特别涉及三层组播技术。
背景技术
在宽窄带路由器上,路由器既支持软件转发,同时带有硬件加速引擎(交换模块) 以支持交换功能;一股既有普通的广域网接口,又有VLAN(虚拟局域网)接口。路由器平台上面进行的是三层组播,是通过CPU进行组播业务转发的。因为增加 了交换模块,交换模块上的物理端口虚拟出VLAN接口,体现出三层接口的特性。现有三层 组播转发实现方法只能知道转发到哪个接口上,而VLAN接口上可能存在多个物理端口,如 果采用现有的实现,会在这些物理端口上广播组播业务报文。即,现有的路由器上的组播转 发模式为,组播业务报文从广域网接口进入,当VLAN接口上有接收成员时,从VLAN接口对 应的所有成员物理端口复制转发。因此现有技术存在三层组播转发时不能精确到物理端口的问题;组播业务报文在 该VLAN上广播,导致带宽浪费和其它设备不必要的CPU能力负担。

发明内容
本发明所要解决的技术问题是,提供一种能精确到物理端口的路由器上组播转发 方法及转发路由器。本发明为解决上述技术问题所采用的技术方案是,路由器上组播转发方法,包括 以下步骤a、输入接口接收到组播业务报文,查找三层组播转发表项是否存在指定的输出接 口,如是,进入步骤b ;如否,转发结束;b、循环处理各指定的输出接口;当输出接口为VLAN接口,设置该VLAN接口对应的 VLANID,复制转发此组播业务报文至CPU和硬件加速引擎之间的通道上;C、硬件加速引擎从通道接收到组播业务报文查找二层组播硬件表项中是否存在 指定的输出物理端口,如是,从指定的输出物理端口将组播业务报文转发出去;如否,丢弃 该组播业务报文,转发结束。在现有三层组播转发的基础上再加上二层组播转发,使得组播业务报文达到输出 接口是VLAN接口时,可以精确到物理端口。只向VLAN接口的有的接收成员的物理端口发 送组播业务报文,没有接收成员的物理端口不会收到组播业务报文。进一步的,步骤b中当输出接口为广域网接口,复制转发此组播业务报文至该广 域网接口。具体的,路由器的广域网接口与VLAN接口运行有三层组播路由协议;三层组播路 由协议用于收集接口成员信息,维护三层组播路由表,并将三层组播转发信息写入三层组 播转发表;VLAN接口对应的各物理端口上运行有二层组播协议与IGMP snooping (因特网组
4成员管理协议监听)协议,通过侦听IGMP(因特网组管理协议)成员报告或离开消息,形成 IGMPsnooping组记录,二层组播协议根据IGMP snooping组记录维护二层组播转发表,并 将二层组播转发信息写入二层组播硬件表。所述三层组播路由协议为PIM-SM、PIM-DM或DVMRP。所述三层组播转发表包含有组播源IP地址、组播目的IP地址、输入接口与输出接 口列表;二层组播硬件表项包含有组播源IP地址、组播目的IP地址,VLAN ID、输出接口列 表;步骤a中根据组播源IP地址、组播目的IP地址查找三层组播转发表项是否存在 指定的输出接口;步骤C中提取并根据组播业务报文中的目的MAC地址和VLAN ID,或者,组播源IP 地址、组播组IP地址和VLAN ID查找二层组播硬件表项。进一步的,步骤a之后,步骤b之前还包括判断接收该组播业务报文的输入接口 是否为三层组播转发表项中指定的输入接口,如是,进入步骤b ;如否,丢弃此组播业务报 文,转发结束。步骤a中,三层组播转发表项无指定的输出接口时,三层组播转发模块向三层组 播路由协议发送缓存缺失消息,转发结束。另外,还提供了一种实现该方法的转发路由器,包括广域网接口、VLAN接口及其对 应的多个物理端口、CPU、硬件加速引擎,所述CPU与硬件加速引擎通过通道进行连接,广域 网接口、VLAN接口与CPU相连,VLAN接口与其对应的多个物理端口连接;所述CPU包含有 三层组播转发模块,硬件加速引擎中包含有二层组播转发模块;所述三层组播转发模块,用于在输入接收到组播业务报文后查找三层组播转发表 项是否存在指定的输出接口 ;如是,当输入接口为VLAN接口,设置该VLAN接口对应的VLAN ID,复制转发此组播业务报文至CPU和硬件加速引擎之间的通道上;如否,转发结束;所述二层组播转发模块,用于从通道接收到组播业务报文后,查找二层组播硬件 表项中是否存在指定的输出物理端口,如是,从指定的输出物理端口将组播业务报文转发 出去;如否,丢弃该组播业务报文,转发结束。进一步的,广域网接口与VLAN接口中均包括有三层组播路由协议模块;硬件加速 引擎中包含有二层组播转发模块,物理端口中包含有二层组播协议模块;所述三层组播路由协议模块,用于收集接口成员信息,维护三层组播路由表,并将 三层组播转发信息写入三层组播转发表;所述二层组播协议模块,用于收集端口成员信息,维护二层组播转发表,并将二层 组播转发信息写入二层组播硬件表。进一步的,所述三层组播转发模块,还用于当三层组播转发表项无指定的输出接 口时,向三层组播路由协议模块发送缓存缺失消息。进一步的,所述物理端口中还包含有IGMP snooping协议模块;所述IGMP snooping协议模块用于,侦听IGMP成员报告或离开消息,形成物理端 口的IGMP snooping组记录,二层组播协议模块根据IGMP snooping组记录维护二层组播 转发表。进一步的,所述三层组播转发模块,用于当指定的输出接口为广域网接口时,复制
5转发组播业务报文至该广域网接口。本发明的有益效果是,使得路由器上的组播转发可以精确到VLAN接口对应的物 理端口,节约带宽。


图1为实施例路由器结构示意图;图2为三层组播转发流程图;图3为二层组播转发流程图。
具体实施例方式本发明同时结合IP三层组播和IP 二层组播分别形成软、硬件组播转发表和转发 控制流程。通过IP三层组播,形成和维护三层组播转发表,记录组播源IP地址,组播目的 IP地址,输入接口和输出接口列表。通过IP 二层组播,形成和维护特定VLAN接口上的成员 端口列表,并且将以上成员端口列表信息写入到硬件加速引擎中的二层组播硬件表项中。在进行组播业务转发时,组播业务流通过宽窄带路由器的广域网接口进入,然后 经过软件转发(三层组播转发),到达有接收成员的广域网接口和VLAN接口上。如果输出 接口是广域网接口,组播业务报文被复制转发到广域网接口上。如果输出接口是VLAN接 口,则设置VLAN ID,将此组播业务报文复制转发到CPU和硬件加速引擎之间的通道上。硬 件加速引擎根据从通道上到达的组播业务报文信息,提取出VLAN ID和目的MAC或者组播 源IP地址、组播组IP地址。硬件加速引擎再查找二层组播硬件表项。如果该表项存在,硬 件加速引擎将组播业务报文复制转发到各个输出端口上;否则,丢弃此组播业务报文。宽窄带路由器的结构图如图1 广域网接口、VLAN接口及其对应的多个物理端口、CPU、硬件加速引擎,CPU与硬件 加速引擎通过通道进行连接,广域网接口、VLAN接口与CPU相连,VLAN接口与其对应的多个 物理端口连接;CPU、硬件加速引擎和两者之间的通道。CPU负责完成三层组播软件转发流 程,将广域网接口的组播流发送到对应的广域网接口,且将VLAN输出接口的组播业务流通 过通道发送给硬件加速引擎。硬件加速引擎负责进行二层组播硬件转发。当硬件加速引擎 从通道收到组播业务报文时,提取VLAN ID和对应信息,将此报文复制转发具有接收成员的 各个端口上;CPU包含有三层组播转发模块,硬件加速引擎中包含有二层组播转发模块;广域 网接口与VLAN接口中均包括有三层组播路由协议模块;硬件加速引擎中包含有二层组播 转发模块,物理端口中包含有二层组播协议模块、IGMP snooping协议模块;IGMP snooping协议模块用于,侦听IGMP成员报告或离开消息,形成物理端口的 IGMPsnooping组记录,二层组播协议模块根据IGMP snooping组记录(成员端口列表)维 护二层组播转发表;二层组播协议模块,用于收集端口成员信息,维护二层组播转发表,并将二层组播 转发信息写入二层组播硬件表;二层组播转发模块,用于从通道接收到组播业务报文后,查找二层组播硬件表项 中是否存在指定的输出物理端口,如是,从指定的输出物理端口将组播业务报文转发出去;
6如否,丢弃该组播业务报文,转发结束;三层组播路由协议模块,用于收集接口成员信息,维护三层组播路由表,并将三层 组播转发信息写入三层组播转发表;三层组播转发模块,用于在输入接收到组播业务报文后查找三层组播转发表项是 否存在指定的输出接口 ;如是,当输入接口为VLAN接口,设置该VLAN接口对应的VLAN ID, 复制转发此组播业务报文至CPU和硬件加速引擎之间的通道上;如否,转发结束;当三层组 播转发表项无指定的输出接口时,向三层组播路由协议模块发送缓存缺失消息。如图2所示,三层组播软件转发的流程有一次组播路由,多次转发的特点。首先, 根据组播源IP地址和组播组IP地址查找是否存在对应的三层组播转发表项。如果不存在 该表项,那么转发模块会向三层组播路由协议发送“缓存缺失”消息。然后转发流程结束。 接着,检查报文到达接口和转发表项指定的输入接口是否一致。如果不一致,丢弃此组播业 务报文,转发流程结束。否则,接下来循环处理输出接口列表。如果输出接口是广域网接口, 将此报文复制转发到该接口上。如果输出接口是VLAN接口,设置VLAN ID(因为可能存在 多个输出VLAN接口,设置了 VLAN ID,硬件加速引擎才能区别处理),将此报文复制转发到 CPU和硬件加速引擎之间的通道上。当三层组播路由协议收到三层组播转发模块发送的“缓 存缺失”消息后,将根据三层组播路由信息,向三层组播转发模块写下三层组播转发表项。如图3所示,二层组播硬件转发的流程硬件加速引擎从通道上接收到组播业务 报文后,提取二层组播相关信息,例如(目的MAC,VLAN ID)或者(组播源IP地址,组播组 IP地址,VLAN ID),查找对应硬件转发表项。具体支持哪种情况将根据引擎的能力而定。如 果表项不存在,丢弃该报文。否则,循环处理输出端口列表。将组播业务报文复制转发到对 应的端口上。具体的方案如下第一步,三层组播路由协议在路由器各个广域网接口和VLAN接口上运行。收集各 个接口上的成员信息,然后形成(*,组播组IP地址)或者(组播源IP地址,组播组IP地 址)的三层组播路由表。第二步,二层组播协议运行在各个VLAN接口对应的VLAN上。收集各个端口上的 IGMPsnooping组记录;然后形成诸如(*,组播组IP地址,VLAN ID)和(组播源IP地址,组 播组IP地址,VLAN ID)的成员端口列表。第三步,二层组播协议将这些端口上的成员端口列表综合成为二层组播转发表 项,写入到硬件加速引擎的硬件表项中。形如(目的MAC,VLAN ID,输出端口列表)或者 (组播源IP地址,组播组IP地址,VLAN ID,输出端口列表)加上(*,组播组IP地址,VLAN ID,输出端口列表)的形式。具体要根据硬件加速引擎的支持能力。‘*’表示匹配任何组播 源IP地址。第四步,组播业务流到达广域接口时,三层组播转发模块根据组播源IP地址和组 播组IP地址查找三层组播转发表项。如果该表项不存在,转发模块向三层组播路由协议发 送“缓存缺失”消息,转发流程结束。而三层组播路由协议收到此消息后,将根据自己维护 的组播路由信息向转发模块写入三层组播转发表。形如(组播源IP地址,组播组IP地址, 输入接口,输出接口列表)。否则,表示三层组播转发表项存在。转发模块检查报文到达接 口和表项指定的输入接口是否一致。如果不一致,丢弃此组播业务报文,转发流程结束。否
7则,循环处理输出接口列表。如果输出接口是广域网接口,将组播业务报文复制转发到该接 口上。否贝IJ,输出接口是VLAN接口,设置VLAN ID,将此报文复制转发到CPU和硬件加速引 擎之间的通道上。 第五步,当硬件加速引擎收到来自通道中的组播业务报文后,根据VLAN ID和组播 业务流信息,目的MAC地址或者组播源IP地址和组播组IP地址,查找硬件转发表项。如果 无此表项,丢弃此报文。否则,循环处理输出端口列表。在有接收成员的端口复制发送此报 文。不具有接收成员的端口,不转发该报文。
权利要求
路由器上组播转发方法,其特征在于,包括以下步骤a、输入接口接收到组播业务报文,查找三层组播转发表项是否存在指定的输出接口,如是,进入步骤b;如否,转发结束;b、循环处理各指定的输出接口;当输出接口为VLAN接口,设置该VLAN接口对应的VLANID,复制转发此组播业务报文至CPU和硬件加速引擎之间的通道上;c、硬件加速引擎从通道接收到组播业务报文查找二层组播硬件表项中是否存在指定的输出物理端口,如是,从指定的输出物理端口将组播业务报文转发出去;如否,丢弃该组播业务报文,转发结束。
2.如权利要求1所述路由器上组播转发方法,其特征在于,步骤b中当输出接口为广域 网接口,复制转发此组播业务报文至该广域网接口。
3.如权利要求2所述路由器上组播转发方法,其特征在于,路由器的广域网接口与 VLAN接口运行有三层组播路由协议;三层组播路由协议用于收集接口成员信息,维护三层 组播路由表,并将三层组播转发信息写入三层组播转发表;VLAN接口对应的各物理端口上运行有二层组播协议与IGMP snooping协议,通过侦听 IGMP成员报告或离开消息,形成IGMP snooping组记录,二层组播协议根据IGMP snooping 组记录维护二层组播转发表,并将二层组播转发信息写入二层组播硬件表。
4.如权利要求1所述路由器上组播转发方法,其特征在于,所述三层组播转发表包含 有组播源IP地址、组播目的IP地址、输入接口与输出接口列表;二层组播硬件表项包含有 组播源IP地址、组播目的IP地址,VLAN ID、输出接口列表;步骤a中根据组播源IP地址、组播目的IP地址查找三层组播转发表项是否存在指定 的输出接口;步骤c中提取并根据组播业务报文中的目的MAC地址和VLAN ID,或者,组播源IP地 址、组播组IP地址和VLAN ID查找二层组播硬件表项。
5.如权利要求1所述路由器上组播转发方法,其特征在于,步骤a之后,步骤b之前还 包括判断接收该组播业务报文的输入接口是否为三层组播转发表项中指定的输入接口, 如是,进入步骤b ;如否,丢弃此组播业务报文,转发结束。
6.如权利要求1所述路由器上组播转发方法,其特征在于,步骤a中,三层组播转发表 项无指定的输出接口时,三层组播转发模块向三层组播路由协议发送缓存缺失消息,转发 结束。
7.转发路由器,包括广域网接口、VLAN接口及其对应的多个物理端口、CPU、硬件加速 引擎,所述CPU与硬件加速引擎通过通道进行连接,广域网接口、VLAN接口与CPU相连,VLAN 接口与其对应的多个物理端口连接;其特征在于,所述CPU包含有三层组播转发模块,硬件 加速引擎中包含有二层组播转发模块;所述三层组播转发模块,用于在输入接收到组播业务报文后查找三层组播转发表项是 否存在指定的输出接口 ;如是,当输入接口为VLAN接口,设置该VLAN接口对应的VLAN ID, 复制转发此组播业务报文至CPU和硬件加速引擎之间的通道上;如否,转发结束;所述二层组播转发模块,用于从通道接收到组播业务报文后,查找二层组播硬件表项 中是否存在指定的输出物理端口,如是,从指定的输出物理端口将组播业务报文转发出去; 如否,丢弃该组播业务报文,转发结束。
8.如权利要求7所述转发路由器,其特征在于,所述三层组播转发模块,用于当指定的 输出接口为广域网接口时,复制转发组播业务报文至该广域网接口。
9.如权利要求7所述转发路由器,其特征在于,广域网接口与VLAN接口中均包括有三 层组播路由协议模块;硬件加速引擎中包含有二层组播转发模块,物理端口中包含有二层 组播协议模块;所述三层组播路由协议模块,用于收集接口成员信息,维护三层组播路由表,并将三层 组播转发信息写入三层组播转发表;所述二层组播协议模块,用于收集端口成员信息,维护二层组播转发表,并将二层组播 转发信息写入二层组播硬件表。
10.如权利要求9所述转发路由器,其特征在于,所述三层组播转发模块,还用于当三 层组播转发表项无指定的输出接口时,向三层组播路由协议模块发送缓存缺失消息。
11.如权利要求7、8或9所述转发路由器,其特征在于,所述物理端口中还包含有 IGMPsnooping协议模块;所述IGMP snooping协议模块用于,侦听IGMP成员报告或离开消 息,形成物理端口的IGMP snooping组记录,二层组播协议模块根据IGMP snooping组记录 维护二层组播转发表。
全文摘要
本发明提供一种能精确到物理端口的路由器上组播转发方法及转发路由器。方法包括步骤a、输入接口查找三层组播转发表项是否存在指定的输出接口,如是,进入步骤b;如否,转发结束;b、当输出接口为VLAN接口,设置该VLAN接口对应的VLAN ID,复制转发此组播业务报文;c、硬件加速引擎查找二层组播硬件表项中是否存在指定的输出物理端口,如是,从指定的输出物理端口将组播业务报文转发出去。在现有三层组播转发的基础上再加上二层组播转发,使得组播业务报文达到输出接口是VLAN接口时,可以精确到物理端口。
文档编号H04L12/56GK101917351SQ20101028329
公开日2010年12月15日 申请日期2010年9月16日 优先权日2010年3月31日
发明者王强, 赵春刚 申请人:迈普通信技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1