TRILL网络中的组播报文转发方法和设备.pdf

上传人:00****42 文档编号:4063620 上传时间:2018-08-13 格式:PDF 页数:27 大小:1.83MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410852806.3

申请日:

2014.12.31

公开号:

CN104539545A

公开日:

2015.04.22

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):H04L 12/761变更事项:申请人变更前:杭州华三通信技术有限公司变更后:新华三技术有限公司变更事项:地址变更前:310052 浙江省杭州市滨江区长河路466号变更后:310052 浙江省杭州市滨江区长河路466号|||实质审查的生效IPC(主分类):H04L 12/761申请日:20141231|||公开

IPC分类号:

H04L12/761(2013.01)I; H04L12/741(2013.01)I

主分类号:

H04L12/761

申请人:

杭州华三通信技术有限公司

发明人:

宋小恒

地址:

310052浙江省杭州市滨江区长河路466号

优先权:

专利代理机构:

北京德琦知识产权代理有限公司11018

代理人:

杨春香; 宋志强

PDF下载: PDF下载
内容摘要

本申请提供了TRILL网络中的组播报文转发方法和设备。本发明中,接入RB通过本地接入接口接收组播源发送的组播数据报文,在本地组播组全局MAC地址组播表中查找组播数据报文携带的组播组IP地址、用户虚拟局域网VLAN匹配的表项,未查找到匹配的表项,且本地组播接收RB表中不存在组播组IP地址、用户VLAN匹配的表项,丢弃所述组播数据报文;查找到匹配的表项,根据匹配的表项对所述组播数据报文进行TRILL封装并通过匹配的表项的出接口转发。这能够按需进行组播数据报文的转发,避免组播对网络带宽的浪费。

权利要求书

权利要求书1.  一种TRILL网络中组播报文的转发方法,其特征在于,该方法应用于 TRILL网络的接入路由桥RBridge,该方法包括: 通过本地接入接口接收本地主机作为组播源发送的组播数据报文; 在本地组播组全局MAC地址组播表中查找所述组播数据报文携带的组播 组IP地址、用户虚拟局域网VLAN匹配的表项; 在本地组播组全局MAC地址组播表中未查找到所述组播组IP地址、用户 VLAN匹配的表项,且本地组播接收RB表中不存在所述组播组IP地址、用户 VLAN匹配的表项,丢弃所述组播数据报文; 在本地组播组全局MAC地址组播表中查找到所述组播组IP地址、用户 VLAN匹配的表项,根据匹配的表项对所述组播数据报文进行TRILL封装并通 过匹配的表项的出接口转发;封装的TRILL头的外层以太网头的目的MAC地 址为匹配的表项中的组播组全局MAC地址。 2.  根据权利要求1所述的方法,其特征在于,在本地组播组全局MAC地 址组播表中未查找到所述组播组IP地址、用户VLAN匹配的表项时,如果本地 组播接收RB表中存在所述组播组IP地址、用户VLAN匹配的表项,该方法进 一步包括: 为所述组播组IP地址分配对应的组播组全局MAC地址,将分配的组播组 全局MAC地址、本RB作为源RB的名称Nickname、所述组播组IP地址、用 户VLAN携带在TRILL封装的组播组全局MAC地址通告报文中发送给TRILL 网络中其他RB; 通过公网侧接口接收TRILL封装的组播组全局MAC地址加入报文;组播 组全局MAC地址加入报文是由连接所述组播组IP地址的组播接收者的接入RB 在接收到所述组播组全局MAC地址通告报文后发起的; 确定所述组播组全局MAC地址加入报文的出口设备名称Engress Nickname 为本RB的Nickname,则对所述组播数据报文进行TRILL封装通过该所述公网 侧接口发送,TRILL封装的外层以太网头的目的MAC地址为所述组播组全局 MAC地址;并依据所述公网侧接口、组播组全局MAC地址加入报文携带的所 述组播组全局MAC地址、组播组IP地址、用户VLAN、源RB的Nickname在 本地组播组全局MAC地址组播表学习表项。 3.  根据权利要求1所述的方法,其特征在于,该方法进一步包括: 通过公网侧接口接收TRILL封装的组播数据报文,解封装为组播数据报文, 依据组播数据报文携带的组播组IP地址、用户VLAN在本地组播转发表中查找 到匹配的转发表项,通过匹配的转发表项中的出接口转发组播数据报文。 4.  根据权利要求1所述的方法,其特征在于,该方法进一步包括: 通过本地接入接口接收Internet组管理协议IGMP加入报文,依据本地接入 接口、IGMP加入报文携带的组播组IP地址和用户VLAN在本地组播地址转发 表中学习表项,将本设备的NickName、所述组播组IP地址和用户VLAN携带 在TRILL封装的组播地址加入报文中发送给TRILL网络其他RB; 通过公网侧接口接收TRILL封装的组播地址加入报文,依据组播地址加入 报文携带的NickName、组播组IP地址和用户VLAN在本地组播接收RB表中 学习表项,继续沿着组播地址加入报文携带的用户VLAN对应的组播树转发 TRILL封装的组播地址加入报文,并确认本地是否连接了所述组播地址加入报 文携带的组播组IP地址的组播源,如果是,且已针对所述组播地址加入报文携 带的组播组IP地址分配了组播组全局MAC地址,则以组播地址加入报文携带 的Nickname为目的在本地TRILL路由表中匹配路由,通过匹配的路由将所述 组播地址加入报文携带的组播组IP地址、用户VLAN、以及针对该组播组IP地 址分配的组播组全局MAC地址携带在TRILL封装的组播组全局MAC地址通告 报文发送,封装的TRILL头中Engress Nickname为所述组播地址加入报文携带 的Nickname。 5.  根据权利要求1所述的方法,其特征在于,该方法进一步包括: 通过公网侧接口接收TRILL封装的组播组全局MAC地址通告报文; 在本地存在组播组全局MAC地址通告报文携带的组播组IP地址的组播接 收者时,以组播组全局MAC地址通告报文携带源RB的NickName为目的地在 本地TRILL路由表中查找到匹配的路由,根据匹配的路由单播发送TRILL封装 的组播组全局MAC地址加入报文,封装的TRILL头的Engress Nickname是所 述组播组全局MAC地址通告报文携带的源RB的NickName,所述组播组全局 MAC地址加入报文携带了组播组全局MAC地址通告报文所携带的组播组全局 MAC地址、组播组IP地址、用户VLAN、源RB的Nickname。 6.  根据权利要求1所述的方法,其特征在于,该方法进一步包括: 当本地接入接口连接的组播接收者退出组播组时,判断本地是否还有属于该 组播组的其他组播接收者,如果是,在本地组播转发表中找到本地接入接口匹 配的表项并删除,如果否,在本地组播转发表中找到本地接入接口匹配的表项 并删除,并将本RB的Nickname、组播组的组播组IP地址和所属的用户VLAN 携带在TRILL封装的组播退出报文中发送给TRILL网络中其他RB; 通过公网侧接口收到TRILL封装的组播退出报文,在本地组播接收RB表 中找到组播退出报文携带的组播组IP地址、用户VLAN、组播组退出RB的 Nickname匹配的表项并删除。 7.  根据权利要求1所述的方法,其特征在于,该方法进一步包括: 通过公网侧接口收到网关RB发送的TRILL封装的组播组全局MAC地址退 出报文,确定TRILL头的Engress Nickname是本RB的Nickname,将其解封装 为组播组全局MAC地址退出报文,在本地组播组全局MAC地址组播转发表中 找到组播组全局MAC地址退出报文携带的组播组全局MAC地址、组播组IP 地址、用户VLAN、源RB的Nickname匹配的表项,如果找到的表项只有一条, 该表项的出接口为接收到所述组播组全局MAC地址退出报文的公网侧接口,回 收全局MAC组播地址,并删除找到的表项,否则,从找到的表项中删除出接口 为接收到所述组播组全局MAC地址退出报文的公网侧接口的表项。 8.  一种TRILL网络中组播报文的转发方法,其特征在于,该方法应用于 TRILL网络中汇聚侧的网关路由桥RBridge,该方法包括: 接收TRILL封装的组播数据报文; 依据封装的TRILL头的外层以太网头的目的MAC地址在本地组播组全局 MAC地址组播表中查找匹配的表项; 通过匹配的表项中的出接口转发TRILL封装的组播数据报文。 9.  根据权利要求8所述的方法,其特征在于,该方法进一步包括: 接收TRILL封装的组播组全局MAC地址通告报文; 根据TRILL头中Engress Nickname转发TRILL封装的组播组全局MAC地 址通告报文; 接收TRILL封装的组播组全局MAC地址加入报文,检查本地组播组全局 MAC地址组播转发表是否存在组播组全局MAC地址加入报文携带的组播组全 局MAC地址、组播组IP地址、用户VLAN、源RB的Nickname匹配的表项, 如果否,依据收到的组播组全局MAC地址加入报文的接口、组播组全局 MAC地址加入报文携带的组播组全局MAC地址、组播组IP地址、用户VLAN、 源RB的Nickname在本地组播组全局MAC地址组播转发表中学习转发表项, 并继续依据组播组全局MAC地址加入报文封装的TRILL头中的Engress  Nickname转发TRILL封装的组播组全局MAC地址加入报文; 如果是,依据收到的组播组全局MAC地址加入报文的接口、组播组全局 MAC地址加入报文携带的组播组全局MAC地址、组播组IP地址、用户VLAN、 源RB的Nickname在本地组播组全局MAC地址组播转发表中学习转发表项。 10.  根据权利要求8所述的方法,其特征在于,该方法进一步包括: 接收TRILL封装的组播退出报文,继续依据组播退出报文封装的TRILL头 中的Engress Nickname转发TRILL封装的组播退出报文; 依据组播退出报文携带的Nickname、组播组IP地址、用户VLAN在本地 组播接收RB表找到匹配的表项并删除; 依据组播退出报文携带的组播组IP地址、用户VLAN在本地组播组全局 MAC地址组播转发表中查找匹配的表项,如果找到两条以上的表项,从找到的 表项中删除出接口为本RB连接组播退出报文携带的Nickname对应的路由桥的 接口的表项;如果找到一条表项且该找到的一条表项的出接口为本RB连接组播 退出报文携带的Nickname对应的路由桥的接口,以该找到的表项中源RB的 NickName为目的地在本地TRILL路由表中匹配路由,将该找到的表项中的组播 组全局MAC地址、组播组IP地址、用户VLAN、源RB的Nickname携带在 TRILL封装的组播组全局MAC地址退出报文通过匹配的路由发送,并删除该找 到的表项。 11.  一种TRILL网络中组播报文的转发设备,其特征在于,该设备应用于 接入路由桥RBridge,包括: 接收单元,用于通过本地接入接口接收本地主机作为组播源发送的组播数据 报文; 存储单元,用于存储组播组全局MAC地址组播表、组播接收RB表; 查找单元,用于在所述存储单元存储的组播组全局MAC地址组播表中查找 所述组播数据报文携带的组播组IP地址、用户虚拟局域网VLAN匹配的表项; 处理单元,用于在所述查找单元的查找结果为否时、且确定所述存储单元存 储的组播接收RB表中不存在所述组播组IP地址、用户VLAN匹配的表项,丢 弃所述组播数据报文;以及, 在所述查找单元的查找结果为是时,根据查找的匹配表项对所述组播数据报 文进行TRILL封装并通过匹配表项的出接口转发;封装的TRILL头的外层以太 网头的目的MAC地址为匹配表项中的组播组全局MAC地址。 12.  根据权利要求11所述的设备,其特征在于,所述处理单元在所述查找 单元的查找结果为否,且所述存储单元存储的组播接收RB表中存在所述组播组 IP地址、用户VLAN匹配的表项时,进一步为所述组播组IP地址分配对应的组 播组全局MAC地址,将分配的组播组全局MAC地址、本RB作为源RB的 Nickname、所述组播组IP地址、用户VLAN携带在TRILL封装的组播组全局 MAC地址通告报文中发送给TRILL网络中其他RB; 所述接收单元进一步通过公网侧接口接收TRILL封装的组播组全局MAC 地址加入报文;组播组全局MAC地址加入报文是由连接所述组播组IP地址的 组播接收者的接入RB在接收到所述组播组全局MAC地址通告报文后发起的; 所述处理单元进一步确定所述组播组全局MAC地址加入报文的出口设备 名称Engress Nickname为本RB的Nickname时对所述组播数据报文进行TRILL 封装通过该所述公网侧接口发送,TRILL封装的外层以太网头的目的MAC地址 为所述组播组全局MAC地址;并依据所述公网侧接口、组播组全局MAC地址 加入报文携带的所述组播组全局MAC地址、组播组IP地址、用户VLAN、源 RB的Nickname学习所述组播组全局MAC地址组播表中的表项。 13.  根据权利要求11所述的设备,其特征在于, 所述接收单元进一步通过公网侧接口接收TRILL封装的组播数据报文,以 及通过本地接入接口接收Internet组管理协议IGMP加入报文,以及通过公网侧 接口接收TRILL封装的组播地址加入报文,以及,通过公网侧接口接收TRILL 封装的组播组全局MAC地址通告报文; 所述处理单元进一步对所述接收单元接收的TRILL封装的组播数据报文解 封装为组播数据报文,依据组播数据报文携带的组播组IP地址、用户VLAN在 本地组播转发表中查找到匹配的转发表项,通过匹配的转发表项中的出接口转 发组播数据报文;以及, 依据接收所述IGMP加入报文的本地接入接口、以及IGMP加入报文携带 的组播组IP地址和用户VLAN学习所述组播地址转发表的表项,将本设备的 NickName、所述组播组IP地址和用户VLAN携带在TRILL封装的组播地址加 入报文中发送给TRILL网络其他RB;以及, 依据组播地址加入报文携带的NickName、组播组IP地址和用户VLAN在 本地组播接收RB表中学习表项,继续沿着组播地址加入报文携带的用户VLAN 对应的组播树转发TRILL封装的组播地址加入报文,并确认本地是否连接了所 述组播地址加入报文携带的组播组IP地址的组播源,如果是,且已针对所述组 播地址加入报文携带的组播组IP地址分配了组播组全局MAC地址,则以组播 地址加入报文携带的Nickname为目的在本地TRILL路由表中匹配路由,通过 匹配的路由将所述组播地址加入报文携带的组播组IP地址、用户VLAN、以及 针对该组播组IP地址分配的组播组全局MAC地址携带在TRILL封装的组播组 全局MAC地址通告报文发送,封装的TRILL头中Engress Nickname为所述组 播地址加入报文携带的Nickname;以及, 在本地存在所述接收单元接收的组播组全局MAC地址通告报文携带的组 播组IP地址的组播接收者时,以组播组全局MAC地址通告报文携带源RB的 NickName为目的地在本地TRILL路由表中查找到匹配的路由,根据匹配的路由 单播发送TRILL封装的组播组全局MAC地址加入报文,组播组全局MAC地址 加入报文携带了组播组全局MAC地址通告报文所携带的组播组全局MAC地 址、组播组IP地址、用户VLAN、源RB的Nickname。 14.  根据权利要求11所述的设备,其特征在于, 所述处理单元进一步在本地接入接口连接的组播接收者退出组播组时,判断 本地是否还有属于该组播组的其他组播接收者,如果是,在本地组播转发表中 找到本地接入接口匹配的表项并删除,如果否,在本地组播转发表中找到本地 接入接口匹配的表项并删除,并将本RB的Nickname、组播组的组播组IP地址 和所属的用户VLAN携带在TRILL封装的组播退出报文中发送给TRILL网络 中其他RB; 所述接收单元进一步通过公网侧接口收到TRILL封装的组播退出报文;以 及,通过公网侧接口收到网关RB发送的TRILL封装的组播组全局MAC地址 退出报文; 所述处理单元进一步在所述接收单元接收到组播退出报文时,在存储单元存 储的组播接收RB表中找到所述组播退出报文携带的组播组IP地址、用户 VLAN、组播组退出RB的Nickname匹配的表项并删除;以及, 进一步在所述接收单元接收到TRILL封装的组播组全局MAC地址退出报 文时,发现TRILL头的Engress Nickname是本RB的Nickname,则解封装为组 播组全局MAC地址退出报文,在本地组播组全局MAC地址组播转发表中找到 组播组全局MAC地址退出报文携带的组播组全局MAC地址、组播组IP地址、 用户VLAN、源RB的Nickname匹配的表项,如果找到的表项只有一条,该表 项的出接口为接收到所述组播组全局MAC地址退出报文的公网侧接口,回收全 局MAC组播地址,并删除找到的表项,否则,从找到的表项中删除出接口为接 收到所述组播组全局MAC地址退出报文的公网侧接口的表项。 15.  一种TRILL网络中组播报文的转发设备,其特征在于,该设备应用于 TRILL网络中汇聚侧的网关路由桥RBridge,包括: 接收单元,用于接收TRILL封装的组播数据报文; 存储单元,用于存储组播组全局MAC地址组播转发表; 查找单元,用于依据封装的TRILL头的外层以太网头的目的MAC地址在 所述存储单元存储的组播组全局MAC地址组播表中查找匹配的表项; 处理单元,用于通过匹配的表项中的出接口转发TRILL封装的组播数据报 文。 16.  根据权利要求15所述的设备,其特征在于, 所述接收单元进一步接收TRILL封装的组播组全局MAC地址通告报文; 以及,接收TRILL封装的组播组全局MAC地址加入报文,以及接收TRILL封 装的组播退出报文; 所述处理单元进一步在所述接收单元接收到TRILL封装的组播组全局MAC 地址通告报文时,根据TRILL头中Engress Nickname转发TRILL封装的组播组 全局MAC地址通告报文;以及, 在所述接收单元接收到TRILL封装的组播组全局MAC地址加入报文时, 检查本地组播组全局MAC地址组播转发表是否存在组播组全局MAC地址加入 报文携带的组播组全局MAC地址、组播组IP地址、用户VLAN、源RB的 Nickname匹配的表项,如果否,依据组播组全局MAC地址加入报文的接口、 组播组全局MAC地址加入报文携带的组播组全局MAC地址、组播组IP地址、 用户VLAN、源RB的Nickname学习所述组播组全局MAC地址组播转发表的 表项,并继续依据组播组全局MAC地址加入报文封装的TRILL头中的Engress  Nickname转发TRILL封装的组播组全局MAC地址加入报文;如果是,依据收 到的组播组全局MAC地址加入报文的接口、组播组全局MAC地址加入报文携 带的组播组全局MAC地址、组播组IP地址、用户VLAN、源RB的Nickname 学习组播组全局MAC地址组播转发表的表项;以及, 在所述接收单元接收到TRILL封装的组播退出报文时,继续依据组播退出 报文封装的TRILL头中的Engress Nickname转发TRILL封装的组播退出报文, 并依据组播退出报文携带的Nickname、组播组IP地址、用户VLAN在本地组 播接收RB表找到匹配的表项并删除,以及,依据组播退出报文携带的组播组IP 地址、用户VLAN在本地组播组全局MAC地址组播转发表中查找匹配的表项, 如果找到两条以上的表项,则从找到的表项中删除出接口为本RB连接组播 退出报文携带的Nickname对应的路由桥的接口的表项;如果找到一条表项且该 找到的一条表项的出接口为本RB连接组播退出报文携带的Nickname对应的路 由桥的接口,以该找到的表项中源RB的NickName为目的地在本地TRILL路 由表中匹配路由,将该找到的一条表项中的组播组全局MAC地址、组播组IP 地址、用户VLAN、源RB的Nickname携带在TRILL封装的组播组全局MAC 地址退出报文通过匹配的路由发送,并删除该找到的一条表项。

说明书

说明书TRILL网络中的组播报文转发方法和设备
技术领域
本申请涉及网络通信技术,特别涉及多链路透明互联(TRILL: Transparent Interconnection of Lots of Links)网络中的组播报文转发方法和设 备。
背景技术
目前,TRILL网络中的组播报文是沿着TRILL分发树转发的。TRILL 分发树是从中间系统至中间系统(IS-ISIntermediate System-to-Intermediate  System)的网络拓扑中计算产生的,每棵TRILL分发树能够到达TRILL网 络中的所有路由桥(RB:Rbridge)。
在TRILL网络中,任意一个RB通过用户侧接口接收到组播报文时,都 会沿着TRILL分发树将组播报文组播到其他所有RB上,无论其他RB上是 否存在组播报文的接收者。这会浪费TRILL网络的带宽,尤其是在TRILL 网络中的RB较多而组播业务又仅仅在少量RB存在需求时带宽浪费非常严 重,对其他正常业务的影响也很大。
发明内容
本申请提供了TRILL网络中的组播报文转发方法和设备,以实现按需组播, 避免组播对网络带宽的浪费。
本申请提供的技术方案包括:
一种TRILL网络中组播报文的转发方法,该方法应用于接入路由桥 RBridge,该方法包括:
通过本地接入接口接收本地主机作为组播源发送的组播数据报文;
在本地组播组全局MAC地址组播表中查找所述组播数据报文携带的组播 组IP地址、用户虚拟局域网VLAN匹配的表项;
在本地组播组全局MAC地址组播表中未查找到所述组播组IP地址、用户 VLAN匹配的表项,且本地组播接收RB表中不存在所述组播组IP地址、用户 VLAN匹配的表项,丢弃所述组播数据报文;
在本地组播组全局MAC地址组播表中查找到所述组播组IP地址、用户 VLAN匹配的表项,根据匹配的表项对所述组播数据报文进行TRILL封装并通 过匹配的表项的出接口转发;封装的TRILL头的外层以太网头的目的MAC地 址为匹配的表项中的组播组全局MAC地址。
一种TRILL网络中组播报文的转发方法,该方法应用于TRILL网络中汇聚 侧的网关路由桥RBridge,该方法包括:
接收TRILL封装的组播数据报文;
依据封装的TRILL头的外层以太网头的目的MAC地址在本地组播组全局 MAC地址组播表中查找匹配的表项;
通过匹配的表项中的出接口转发TRILL封装的组播数据报文。
一种TRILL网络中组播报文的转发设备,该设备应用于接入路由桥 RBridge,包括:
接收单元,用于通过本地接入接口接收本地主机作为组播源发送的组播数据 报文;
存储单元,用于存储组播组全局MAC地址组播表、组播接收RB表;
查找单元,用于在所述存储单元存储的组播组全局MAC地址组播表中查找 所述组播数据报文携带的组播组IP地址、用户虚拟局域网VLAN匹配的表项;
处理单元,用于在所述查找单元的查找结果为否时、且确定所述存储单元存 储的组播接收RB表中不存在所述组播组IP地址、用户VLAN匹配的表项,丢 弃所述组播数据报文;以及,
在所述查找单元的查找结果为是时,根据查找的匹配表项对所述组播数据报 文进行TRILL封装并通过匹配表项的出接口转发;封装的TRILL头的外层以太 网头的目的MAC地址为匹配表项中的组播组全局MAC地址。
一种TRILL网络中组播报文的转发设备,该设备应用于TRILL网络中汇聚 侧的网关路由桥RBridge,包括:
接收单元,用于接收TRILL封装的组播数据报文;
存储单元,用于存储组播组全局MAC地址组播转发表;
查找单元,用于依据封装的TRILL头的外层以太网头的目的MAC地址在 所述存储单元存储的组播组全局MAC地址组播表中查找匹配的表项;
处理单元,用于通过匹配的表项中的出接口转发TRILL封装的组播数据报 文。
由以上技术方案可以看出,本发明中,当接入RB接收到本地连接的组播源 发送的组播数据报文时,在本地组播组全局MAC地址组播表中查找所述组播数 据报文携带的组播组IP地址、用户虚拟局域网VLAN匹配的表项,如果未查找 到,且本地组播接收RB表中不存在所述组播组IP地址、用户VLAN匹配的表 项,则丢弃所述组播数据报文,这使得组播数据报文不再在TRILL网络中泛洪, 减少了无效组播在网络中的泛洪;而当本地组播组全局MAC地址组播表中查找 到所述组播组IP地址、用户VLAN匹配的表项,根据匹配的表项对所述组播数 据报文进行TRILL封装并通过匹配的表项的出接口转发;这通过组播组全局 MAC地址组播表按需进行组播数据报文的转发,改进了原有组播数据报文在整 网内广播的方式,避免组播对网络带宽的浪费。
附图说明
图1为本发明提供的方法流程图;
图2为本发明实施例提供的TRILL组网示意图;
图3为本发明实施例提供的组播数据报文转发示意图;
图4为本发明提供的设备结构图;
图5为本发明提供的另一设备结构图。
具体实施方式
本发明提供的方法能够实现按需组播,避免组播对网络带宽的浪费。
下面为了使本发明的目的、技术方案和优点更加清楚,结合附图和具体 实施例对本发明进行详细描述。
参见图1,图1为本发明提供的方法流程图。如图1所示,该流程应用 于TRILL网络中的接入RB。这里,接入RB具体为TRILL网络中处于接入 侧的RB。
如图1所示,该流程可包括以下步骤:
步骤101,通过本地接入接口接收本地主机作为组播源发送的组播数据 报文。
步骤102,在本地组播组全局MAC地址组播表中查找组播数据报文携 带的组播组IP地址、用户虚拟局域网VLAN匹配的表项。
步骤103,在本地组播组全局MAC地址组播表中未查找到组播组IP地 址、用户VLAN匹配的表项,且本地组播接收RB表中不存在组播组IP地 址、用户VLAN匹配的表项,丢弃组播数据报文;在本地组播组全局MAC 地址组播表中查找到组播组IP地址、用户VLAN匹配的表项,根据匹配的 表项对组播数据报文进行TRILL封装并通过匹配的表项的出接口转发;封 装的TRILL头的外层以太网头的目的MAC地址为匹配的表项中的组播组全 局MAC地址。
至此,完成图1所示的流程。
下面通过一个实施例对图1所示流程进行描述:
图2所示为本发明实施例提供的TRILL组网示意图。在图2中,TRILL 网络包括网关路由桥RB5和RB6以及处于接入侧(Access)的路由桥RB1 至RB4。路由桥RB5和RB6具有三层转发能力,可通过热备份路由协议 (HSRP:Hot Standby Routing Protocol)或虚拟路由冗余协议(VRRP: Virtual Router Redundancy Protocol)构成虚拟路由器。图2中,路由桥RB1 至路由桥RB6在TRILL网络稳定后,任意两个路由桥RB之间都存在TRILL 路由,根据TRILL协议各自计算TRILL路由表。
在图2中,路由桥RB1至RB6运行互联网组管理协议(IGMP:Internet  Group Management Protocol)。并且,路由桥RB1至RB4还运行IGMP窥 探(snooping)协议(简称IGSP)。
为了便于描述,路由桥RB1连接主机PC10的接口命名为port1_0,路由 桥RB1连接网关路由桥RB5、网关路由桥RB6的公网侧接口分别命名为 port1_5、port1_6,路由桥RB2连接主机PC20的接口命名为port2_0,路由 桥RB2连接网关路由桥RB5、网关路由桥RB6的公网侧接口分别命名为 port2_5、port2_6,路由桥RB3连接主机PC30、主机PC31的接口分别命名 为port3_0、port3_1,路由桥RB3连接网关路由桥RB5、网关路由桥RB6的 公网侧接口分别命名为port3_5、port3_6,路由桥RB4连接主机PC40的接 口命名为port4_0,路由桥RB4连接网关路由桥RB5、网关路由桥RB6的公 网侧接口分别命名为port4_5、port4_4,网关路由桥RB5连接路由桥RB1至 路由桥RB4的接口分别命名为port5_1至port5_4,网关路由桥RB6连接路 由桥RB1至路由桥RB4的接口分别命名为port6_1至port6_4。
在图2中存在两个组播组,分别为组播组1和组播组2,组播组1的组 播组IP地址为224.1.1.1,所属的用户VLAN为VLAN100,主机PC10为组 播组1的组播源;组播组2的组播组IP地址为225.1.1.1,所属的用户VLAN 为VLAN200,主机PC31为组播组2的组播源。
在图2中,主机PC30作为组播组1的组播接收者发送加入组播组1的 IGMP加入报文;IGMP加入报文携带了组播组1的组播组IP地址224.1.1.1 和VLAN100;
路由桥RB3通过接口port3_0收到IGMP加入报文。
路由桥RB3使能了IGMP SNOOPING功能,依据收到IGMP加入报文 的本地接入接口port3_0、IGMP加入报文携带的组播组IP地址224.1.1.1和 VLAN100在本地组播地址转发表中学习表项。表1-1示出了路由桥RB3本 地组播地址转发表中依据收到IGMP加入报文的本地接入接口、IGMP加入 报文携带的组播组IP地址224.1.1.1和VLAN100学习的表项:
组播组IP地址 VLAN ID 出接口 224.1.1.1 VLAN 100 port3_0
表1-1
路由桥RB3将本设备的设备名称(Nickname)RB3、IGMP加入报文携 带的组播组IP地址224.1.1.1、用户VLAN100通知给TRILL网络中其他 RB;路由桥RB3可以通过预定义的组播地址加入报文携带本设备的 Nickname RB3、组播组IP地址224.1.1.1、用户VLAN100。预定义的组播地 址加入报文可以为中间系统到中间系统路由选择协议(IS-IS:Intermediate  System to Intermediate System Routing Protocol)的终端地址分配(ESADI: End Station Address Distribution Information)消息。在本发明中,可以通过对 IS-IS报文扩展出一个TLV字段携带Nickname RB3、组播组IP地址 224.1.1.1、用户VLAN100。路由桥RB3对组播地址加入报文进行TRILL封 装,封装的TRILL头中接入设备名称(Ingress Nickname)和出口设备名称 (Engress Nickname)分别是路由桥RB3的NicknameRB3和VLAN100对应 的组播树(distribution tree)的树根的Nickname;外层以太网头的源MAC 地址和目的MAC分别是路由桥RB3的TRILL接口的MAC地址和TRILL 组播MAC地址(All-RBridges multicast address)。
路由桥RB1、RB2、RB4至RB6接收到TRILL封装的组播地址加入报 文,依据组播地址加入报文携带的Nickname RB3、组播组IP地址 224.1.1.1、用户VLAN100在本地组播接收RB表中学习表项,并继续沿着组 播地址加入报文携带的VLAN100对应的组播树转发TRILL封装的组播地址 加入报文。表1-2示出路由桥RB1、RB2、RB4至RB6本地组播接收RB表 中依据组播地址加入报文携带的Nickname RB3、组播组IP地址224.1.1.1、 用户VLAN100学习的表项。
组播组IP地址 VLAN ID 组播接收RB的Nickname 224.1.1.1 VLAN 100 Nickname RB3
表1-2
主机PC40发送加入组播组1的IGMP加入报文;IGMP加入报文携带组 播组IP地址224.1.1.1和所属的用户VLAN100;
路由桥RB4通过接口port4_0收到IGMP加入报文。
路由桥RB4使能了IGMP SNOOPING功能,依据收到IGMP加入报文 的本地接入接口port4_0、IGMP加入报文携带的组播组IP地址224.1.1.1和 VLAN100在本地组播地址转发表中学习表项。表1-3示出了路由桥RB4本 地组播地址转发表中依据收到IGMP加入报文的本地接入接口port4_0、IGMP 加入报文携带的组播组IP地址224.1.1.1和VLAN100学习的表项:
组播组IP地址 VLAN ID 出接口 224.1.1.1 VLAN 100 Port4_0
表1-3
路由桥RB4将本设备的Nickname RB4、组播组IP地址224.1.1.1、用户 VLAN100携带在TRILL封装的组播地址加入报文中发送给TRILL网络中其 他RB;封装的TRILL头中Ingress nickname和Engress nickname分别是路由 桥RB4的NicknameRB4和VLAN100对应的组播树的树根的Nickname;外 层以太网头的源MAC地址和目的MAC分别是路由桥RB4的TRILL接口的 MAC地址和TRILL组播MAC地址。
路由桥RB3接收到TRILL封装的组播地址加入报文,依据组播地址加 入报文携带的RB4的Nickname RB4、组播组IP地址224.1.1.1、用户 VLAN100在本地组播接收RB表中学习表项,并继续沿着组播地址加入报文 携带的VLAN100对应的组播树转发TRILL封装的组播地址加入报文。表 1-4示出路由桥RB3本地组播接收RB表中依据组播地址加入报文携带RB4 的Nickname RB4、组播组IP地址224.1.1.1、用户VLAN100在本地组播接 收RB表中学习的表项。
表1-4
组播组IP地址 VLAN ID 组播接收RB的NickName 224.1.1.1 VLAN 100 Nickname RB4
RB1、RB2、RB5、RB6接收到TRILL封装的组播地址加入报文,依据 组播地址加入报文携带Nickname RB4、组播组IP地址224.1.1.1、用户 VLAN100在本地组播接收RB表中学习表项,并继续沿着组播地址加入报文 携带的VLAN100对应的组播树转发TRILL封装的组播地址加入报文。表 1-5示出路由桥RB1、RB2、RB5、RB6本地组播接收RB表中依据组播地址 加入报文携带RB4的Nickname RB4、组播组IP地址224.1.1.1、用户 VLAN100在本地组播接收RB表中学习的表项。
组播组IP地址 VLAN ID 组播接收RB的NickName 224.1.1.1 VLAN 100 Nickname RB3 224.1.1.1 VLAN 100 Nickname RB4
表1-5
在图2中,组播组2的组播源主机PC31发出组播数据报文。组播数据 报文携带了组播组IP地址225.1.1.1和用户VLAN200。
路由桥RB3通过接口port3_1收到组播数据报文,在本地组播接收RB 表中查找组播组IP地址225.1.1.1和用户VLAN200匹配表项,未查找到匹配 的表项,路由桥RB3丢弃组播数据报文,在本地组播转发表中生成一个动 作为丢弃的转发表项,生成的转发表项在一定时间内会老化。因为路由桥 RB3丢弃组播数据报文,使得组播数据报文不再TRILL网络中泛洪,减少了 无效组播在网络中的泛洪。
在图2中,组播组1的组播源主机PC10发出组播数据报文。组播数据 报文携带了组播组IP地址224.1.1.1和用户VLAN100。
路由桥RB1通过接口port1_0收到组播数据报文,在本地组播接收RB 表中查找到组播组IP地址224.1.1.1和用户VLAN100匹配的表项,路由桥 RB1分配一个组播组全局MAC地址。路由桥RB1分配的组播组全局MAC 地址在整个TRILL网络中唯一,占用6个字节,路由桥RB1可以按照以下 方式分配组播组全局MAC地址:第一个字节为用于表示组播的值;第二、 三个字节为RB的Nickname;剩下的三个字节为按照组播组IP地址映射的 值。以RB1分配的组播组全局MAC地址为0102-0301-0101。
路由桥RB1将组播组全局MAC地址0102-0301-0101、组播组IP地址 224.1.1.1、用户VLAN100、源RB的Nickname RB1通知给TRILL网络中其 他RB。路由桥RB1可以通过预定义的组播组全局MAC地址通告报文携带 组播组全局MAC地址0102-0301-0101、组播组IP地址224.1.1.1、用户 VLAN100、源RB的Nickname RB1。预定义的组播组全局MAC地址通告报 文可以是IS-IS的ESADI消息。在本发明中,可以通过对IS-IS报文扩展出 一个TLV字段携带组播组全局MAC地址0102-0301-0101、组播组IP地址 224.1.1.1、用户VLAN100、源RB的Nickname RB1。路由桥RB1对组播组 全局MAC地址通告报文进行TRILL封装,封装的TRILL头中Ingress  nickname和Engress nickname分别是路由桥RB1的Nickname RB1和 VLAN100对应的组播树的树根的Nickname;外层以太网头的源MAC地址 和目的MAC分别是路由桥RB1的TRILL接口的MAC地址和TRILL组播 MAC地址。
路由桥RB2、RB5至RB6接收TRILL封装的组播组全局MAC地址通 告报文,本地不存在组播组全局MAC地址通告报文携带的组播组IP地址 224.1.1.1的组播接收者,则继续沿着组播组全局MAC地址通告报文携带的 VLAN100对应的组播树转发TRILL封装的组播组全局MAC地址通告报文。
路由桥RB3接收TRILL封装的组播组全局MAC地址通告报文,本地存 在组播组IP地址224.1.1.1的组播接收者如主机PC30,以组播组全局MAC 地址通告报文携带源RB的Nickname RB1为目的地在本地TRILL路由表中 查找到匹配的路由,根据匹配的路由单播发送组播组全局MAC地址通告报 文携带的组播组全局MAC地址0102-0301-0101、组播组IP地址224.1.1.1、 用户VLAN100、源RB的Nickname RB1。RB3可以通过预定义的组播组全 局MAC地址加入报文携带组播组全局MAC地址0102-0301-0101、组播组 IP地址224.1.1.1、用户VLAN100、源RB的Nickname RB1。预定义的组播 组全局MAC地址加入报文可以是IS-IS的ESADI消息。在本发明中,可以 通过对IS-IS报文扩展出一个TLV字段携带组播组全局MAC地址 0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的 Nickname RB1。路由桥RB3对组播组全局MAC地址加入报文进行TRILL 封装,封装的TRILL头中Ingress Nickname和Engress Nickname分别是路由 桥RB3的Nickname和路由桥RB1的Nickname;外层以太网头的源MAC地 址和目的MAC分别是路由桥RB3的TRILL接口的MAC地址和下一跳路由 桥RB5的TRILL接口的MAC地址。下一跳路由桥RB5是路由桥RB3根据 Engress Nickname查找TRILL路由表,确定到达路由桥RB1的下一跳路由桥。
路由桥RB4接收TRILL封装的组播组全局MAC地址通告报文,本地存 在组播组IP地址224.1.1.1的组播接收者如主机PC40,以组播组全局MAC 地址通告报文携带源RB的Nickname RB1为目的地在本地TRILL路由表中 查找到匹配的路由,根据匹配的路由对携带了组播组全局MAC地址 0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的 Nickname RB1的组播组全局MAC地址加入报文进行TRILL封装。封装的 TRILL头中Ingress Nickname和Engress Nickname分别是路由桥RB4的 Nickname RB4和路由桥RB1的Nickname RB1;外层以太网头的源MAC地 址和目的MAC分别是路由桥RB4的TRILL接口的MAC地址和下一跳路由 桥RB6的TRILL接口的MAC地址。下一跳路由桥RB6是路由桥RB4根据 Engress Nickname查找TRILL路由表,确定到达路由桥RB1的下一跳路由桥。
路由桥RB5通过接口port5_3收到TRILL封装的组播组全局MAC地址 加入报文,依据收到的组播组全局MAC地址加入报文的接口port5_3、组播 组全局MAC地址加入报文携带的组播组全局MAC地址0102-0301-0101、组 播组IP地址224.1.1.1、用户VLAN100、源RB的Nickname RB1在本地组播 组全局MAC地址组播转发表中学习表项。表1-6示出路由桥RB5依据收到 的组播组全局MAC地址加入报文的接口、携带的组播组全局MAC地址 0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的 Nickname RB1在本地组播组全局MAC地址组播转发表中学习的表项。

表1-6
路由桥RB5根据TRILL封装的组播组全局MAC地址加入报文的Engress  Nickname RB1确定下一跳路由桥是路由桥RB1,将外层的源MAC地址和目 的MAC地址分别修改为路由桥RB5和下一跳路由桥RB1的TRILL接口的 MAC地址,将TRILL封装的组播组全局MAC地址加入报文发送至RB1。
路由桥RB6通过接口port6_4收到TRILL封装的组播组全局MAC地址 加入报文,依据收到的组播组全局MAC地址加入报文的接口port6_4、组播 组全局MAC地址加入报文携带的组播组全局MAC地址0102-0301-0101、组 播组IP地址224.1.1.1、用户VLAN100、源RB的Nickname RB1在本地组播 组全局MAC地址组播转发表中学习转发表项。表1-7示出路由桥RB6依据 收到的组播组全局MAC地址加入报文的接口、携带的组播组全局MAC地址 0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的 Nickname RB1在本地组播组全局MAC地址组播转发表中学习的转发表项。

表1-7
路由桥RB6根据TRILL封装的组播组全局MAC地址加入报文的Engress  Nickname RB1确定下一跳路由桥是路由桥RB1,将外层的源MAC地址和目 的MAC地址分别修改为路由桥RB6和下一跳路由桥RB1的TRILL接口的 MAC地址,将TRILL封装的组播组全局MAC地址加入报文发送至路由桥 RB1。
RB1通过接口Port1_5收到TRILL封装的组播组全局MAC地址加入报 文,确定TRILL头中Engress Nickname是本设备的Nickname,将其解封装 为组播组全局MAC地址加入报文。依据收到组播组全局MAC地址加入报文 的接口Port1_5、组播组全局MAC地址加入报文携带的组播组全局MAC地 址0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的 Nickname RB1在本地组播组全局MAC地址组播转发表中学习转发表项。 RB1通过接口Port1_6收到TRILL封装的组播组全局MAC地址加入报文的 处理类似。表1-8示出路由桥RB1依据收到的TRILL封装的组播组全局MAC 地址加入报文的接口、携带的组播组全局MAC地址0102-0301-0101、组播 组IP地址224.1.1.1、用户VLAN100、源RB的Nickname RB1在本地组播组 全局MAC地址组播转发表中学习的表项。

表1-8
路由桥RB1根据组播数据报文携带的组播组IP地址224.1.1.1、用户 VLAN100在本地组播组全局MAC地址组播转发表中查找匹配的表项,查找 到两条匹配的表项,则复制一个与该组播数据报文完全相同的组播数据报文, 根据两条匹配的表项分别对两个完全相同的组播数据报文进行TRILL封装 并通过两条匹配的表项的出接口转发。一个组播数据报文封装的TRILL头中 Ingress Nickname和Engress Nickname分别是RB1的Nickname和VLAN100 对应的组播树的树根的Nickname,外层以太网头的源MAC地址和目的 MAC分别是RB1的TRILL接口的MAC地址和组播组全局MAC地址 0102-0301-0101,通过port1_5发送,另一个组播数据报文封装的TRILL头 中Ingress Nickname和Engress Nickname分别是RB1的Nickname和 VLAN100对应的组播树的树根的Nickname,外层以太网头的源MAC地址 和目的MAC分别是路由桥RB1的TRILL接口的MAC地址和 0102-0301-0101,通过port1_6发送。
路由桥RB5通过接口port5_1收到TRILL封装的组播数据报文,确定外 层以太网头的目的MAC是组播组全局MAC地址0102-0301-0101,在本地组 播组全局MAC地址组播转发表中找到组播组全局MAC地址0102-0301-0101 匹配的表项,通过匹配的表项中的出接口port5_3发送TRILL封装的组播数 据报文。
路由桥RB6通过接口port6_1收到TRILL封装的组播数据报文,发现外 层以太网头的目的MAC是组播组全局MAC地址0102-0301-0101,在本地组 播组全局MAC地址组播转发表中找到组播组全局MAC地址0102-0301-0101 匹配的表项,通过匹配的表项中的出接口port6_4发送TRILL封装的组播数 据报文。
路由桥RB3通过接口port3_5收到TRILL封装的组播数据报文,确定外 层以太网头的目的MAC是组播组全局MAC地址0102-0301-0101,在本地组 播组全局MAC地址组播转发表中未找到组播组全局MAC地址 0102-0301-0101匹配的表项,将其解封装为组播数据报文,在本地组播地址 转发表中查找到组播数据报文携带的组播组IP地址224.1.1.1和VLAN100 匹配的表项,通过匹配的表项中的出接口port3_0发送组播数据报文,最终 组播数据报文到达主机PC30。
路由桥RB4通过接口Port4_6收到TRILL封装的组播数据报文,确定外 层以太网头的目的MAC是组播组全局MAC地址0102-0301-0101,在本地组 播组全局MAC地址组播转发表中未找到组播组全局MAC地址 0102-0301-0101匹配的表项,将其解封装为组播数据报文,在本地组播地址 转发表中查找到组播数据报文携带的组播组IP地址224.1.1.1和VLAN100 匹配的表项,通过匹配的表项中的出接口port4_0发送组播数据报文,最终 组播数据报文到达主机PC40。
至此,完成组播组1的组播源(主机PC10)在组播组1发送组播数据报 文的描述。这种组播数据报文的转发能够保证只有组播接收者接收到,组播 数据报文不会在TRILL网络中泛洪,减少了无效组播在网络中的泛洪。图3 具体示出了组播组1的组播源(主机PC10)发送的组播数据报文的流向路径。
之后,在图2中,路由桥RB2的本地主机PC20发送加入组播组1的IGMP 加入报文;IGMP加入报文携带了组播组IP地址224.1.1.1和VLAN100。
路由桥RB2使能了IGMP SNOOPING功能,通过接口port2_0收到 IGMP加入报文,依据收到IGMP加入报文的本地接入接口port2_0、IGMP 加入报文携带的组播组IP地址224.1.1.1和VLAN100在本地组播地址转发表 中学习转发表项。表1-9示出了路由桥RB2本地组播地址转发表中依据收到 IGMP加入报文的本地接入接口、IGMP加入报文携带的组播组IP地址 224.1.1.1和VLAN100学习的转发表项:
组播组IP地址 VLAN ID 出接口 224.1.1.1 VLAN 100 Port2_0
表1-9
路由桥RB2将本设备的Nickname RB4、组播组IP地址224.1.1.1、用户 VLAN100携带在TRILL封装的组播地址加入报文中发送给TRILL网络中其 他RB;封装的TRILL头中Ingress nickname和Engress nickname分别是路由 桥RB2的Nickname RB2和VLAN100对应的组播树的树根的Nickname;外 层以太网头的源MAC地址和目的MAC分别是路由桥RB2的TRILL接口的 MAC地址和TRILL组播MAC地址。
RB1、RB3至RB6收到TRILL封装的组播地址加入报文,依据组播地 址加入报文携带的Nickname RB2、组播组IP地址224.1.1.1、用户VLAN100 在本地组播接收RB表中学习组播接收表项,并继续沿着组播地址加入报文 携带的VLAN100对应的组播树转发TRILL封装的组播地址加入报文。此时 学习的组播接收表项中组播组IP地址为224.1.1.1,VLAN ID为VLAN100, 组播接收RB的NickName为Nickname RB2。
连接了组播组IP地址224.1.1.1的组播源即主机PC10的RB1在本地组 播组全局MAC地址组播转发表中查找到组播组IP地址224.1.1.1、VLAN100 匹配的表项,以TRILL封装的组播地址加入报文携带的Nickname RB2为目 的地在本地TRILL路由表中查找匹配的路由,根据匹配的路由和匹配的表项 对组播组全局MAC地址通告报文进行TRILL封装。组播组全局MAC地址 通告报文携带匹配的 表项中的组播组全局MAC地址0102-0301-0101、组播组IP地址224.1.1.1、 用户VLAN100、源RB的Nickname RB1。组播组全局MAC地址通告报文封 装的TRILL头中Ingress Nickname和Engress Nickname分别是路由桥RB1 的Nickname RB1和路由桥RB2的Nickname RB2;外层以太网头的源MAC 地址和目的MAC分别是路由桥RB1的TRILL接口的MAC地址和下一跳路 由桥RB5的TRILL接口的MAC地址。
路由桥RB5收到TRILL封装的组播组全局MAC地址通告报文,根据 TRILL头中Engress Nickname确定下一跳路由桥是路由桥RB2,将外层以太 网头的源MAC地址和目的MAC地址分别修改为路由桥RB5和路由桥RB2 的TRILL接口的MAC地址,将TRILL封装的组播组全局MAC地址通告报 文发送至路由桥RB2。
路由桥RB2收到TRILL封装的组播组全局MAC地址通告报文,确定 TRILL头的Engress Nickname是本设备的Nickname,将其解封装为组播组全 局MAC地址通告报文,以组播组全局MAC地址通告报文携带源RB的 Nickname RB1为目的地在本地TRILL路由表中查找到匹配的路由,根据匹 配的路由对携带了组播组全局MAC地址0102-0301-0101、组播组IP地址 224.1.1.1、用户VLAN100、源RB的Nickname RB1的组播组全局MAC地 址加入报文进行TRILL封装。封装的TRILL头中Ingress Nickname和Engress  Nickname分别是路由桥RB2的Nickname RB2和路由桥RB1的Nickname  RB1;外层以太网头的源MAC地址和目的MAC分别是路由桥RB4的TRILL 接口的MAC地址和下一跳路由桥RB5的TRILL接口的MAC地址。下一跳 路由桥RB5是路由桥RB2根据Engress Nickname查找TRILL路由表,确定 到达路由桥RB1的下一跳路由桥。
路由桥RB5通过接口port5_2收到TRILL封装的组播组全局MAC地址 加入报文,依据组播组全局MAC地址加入报文携带的组播组全局MAC地址 0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的 Nickname RB1在本地组播组全局MAC地址组播转发表中查找匹配的表项,
如果未查找到匹配的表项,则依据收到的组播组全局MAC地址加入报 文的接口port5_2、组播组全局MAC地址加入报文携带的组播组全局MAC 地址0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的 Nickname RB1在本地组播组全局MAC地址组播转发表中学习转发表项,并 继续向组播组全局MAC地址加入报文的TRILL头中的Engress Nickname转 发TRILL封装的组播组全局MAC地址加入报文。在转发时,可以根据组播 组全局MAC地址加入报文的TRILL头中Engress Nickname在本地TRILL路 由表中确定下一跳路由桥,将外层的源MAC地址和目的MAC地址分别修改 为路由桥RB5和下一跳路由桥的TRILL接口的MAC地址。下一跳路由桥收 到TRILL封装的组播组全局MAC地址加入报文后按照类似路由桥RB5的处 理方式处理。
如果查找到,如表1-6所示的路由桥RB5本地组播组全局MAC地址组 播转发表,则仅依据收到的组播组全局MAC地址加入报文的接口port5_2、 组播组全局MAC地址加入报文携带的组播组全局MAC地址 0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的 Nickname RB1在本地组播组全局MAC地址组播转发表中学习转发表项,不 再继续转发TRILL封装的组播组全局MAC地址加入报文。结合表1-6,则 执行到此时,表1-10示出了路由桥RB5依据收到的组播组全局MAC地址加 入报文的接口、携带的组播组全局MAC地址0102-0301-0101、组播组IP地 址224.1.1.1、用户VLAN100、源RB的Nickname RB1在本地组播组全局 MAC地址组播转发表中学习的转发表项。

表1-10
以上是对组播源连接的RB(不妨称为源RB)在为组播组分配组播组全 局MAC地址后后续组播接收者再加入该组播组时的描述。
在图2中,当主机PC40退出地址为224.1.1.1的组播组1时,路由桥RB4 判断出本地是否还有其他主机在地址为224.1.1.1的组播组1中,
路由桥RB4在判断出本地还有其他主机PC41(图2中未示出)在地址 为224.1.1.1的组播组1,路由桥RB4在本地组播转发表中找到port4_0匹配 的表项并删除,结束当前流程。下文重点描述路由桥RB4判断出本地未有其 他主机在地址为224.1.1.1的组播组1时的情况。
路由桥RB4在判断出本地没有其他主机在地址为224.1.1.1的组播组1, 在本地组播转发表中找到port4_0匹配的表项并删除,并发送退出地址为 224.1.1.1的组播组1的通知给TRILL网络中其他路由桥RB。路由桥RB4可 以通过预定义的组播退出报文通知路由桥RB4退出地址为224.1.1.1的组播 组1。组播退出报文可以是IS-IS的ESADI消息。在本发明中,可以通过对 IS-IS报文扩展出一个TLV字段携带退出的组播组1的组播组IP地址 224.1.1.1、用户VLAN100、路由桥RB4作为组播组退出RB的Nickname RB4。 路由桥RB4对组播退出报文进行TRILL封装,封装的TRILL头中Ingress  Nickname和Engress Nickname分别是路由桥RB4的Nickname RB4和 VLAN100对应的组播树的树根的Nickname;外层以太网头的源MAC地址 和目的MAC分别是路由桥RB4的TRILL接口的MAC地址和TRILL组播 MAC地址。
路由桥RB1至RB3收到TRILL封装的组播退出报文,在本地组播接收 RB表中找到组播退出报文携带的组播组IP地址224.1.1.1、用户VLAN100、 NicknameRB4匹配的表项并删除,并继续沿着组播退出报文携带的VLAN100 对应的组播树转发TRILL封装的组播退出报文。
网关路由桥RB5收到TRILL封装的组播退出报文,在本地组播接收RB 表中找到组播退出报文携带的组播组IP地址224.1.1.1、用户VLAN100、 NicknameRB4匹配的表项并删除,并确定与组播退出报文携带的 NicknameRB4对应的路由桥RB4连接的接口,在本地组播组全局MAC地址 组播转发表中未查找到匹配的表项,继续沿着组播退出报文携带的VLAN100 对应的组播树转发TRILL封装的组播退出报文。
网关路由桥RB6收到TRILL封装的组播退出报文,在本地组播接收RB 表中找到组播退出报文携带的组播组IP地址224.1.1.1、用户VLAN100、 NicknameRB4匹配的表项并删除,并继续沿着组播退出报文携带的VLAN100 对应的组播树转发TRILL封装的组播退出报文,以及,进一步在本地组播组 全局MAC地址组播转发表中查找到匹配的表项;
网关路由桥RB6确定匹配的表项有两条以上,其中一条表项的出接口为 网关路由桥RB6与组播退出报文携带的NicknameRB4对应的路由桥RB4连 接的接口,则删除该表项,结束当前流程;以下重点描述网关路由桥RB6确 定匹配的表项只有一条,该表项的出接口为网关路由桥RB6与组播退出报文 携带的NicknameRB4对应的路由桥RB4连接的接口的情况。
网关路由桥RB6确定匹配的表项只有一条,该表项的出接口为网关路由 桥RB6与组播退出报文携带的NicknameRB4对应的路由桥RB4连接的接口, 则以匹配表项中源RB的NickNameRB1为目的地在本地TRILL路由表中匹 配路由,通过匹配的路由单播发送预定义的组播组全局MAC地址退出报文, 并删除匹配的表项。预定义的组播组全局MAC地址退出报文可以是IS-IS的 ESADI消息。在本发明中,可以通过对IS-IS报文扩展出一个TLV字段携带 组播组全局MAC地址0102-0301-0101、组播组IP地址224.1.1.1、用户 VLAN100、源RB的Nickname RB1。网关路由桥RB6对组播组全局MAC 地址退出报文进行TRILL封装,封装的TRILL头中Ingress Nickname和 Engress Nickname分别是路由桥RB6的Nickname RB6和源RB的Nickname  RB1;外层以太网头的源MAC地址和目的MAC分别是路由桥RB6的TRILL 接口的MAC地址和下一跳路由桥RB1的TRILL接口的MAC地址。
路由桥RB1通过接口port1_6收到TRILL封装的组播组全局MAC地址 退出报文,确定TRILL头的Engress Nickname是本设备的Nickname,将其 解封装为组播组全局MAC地址退出报文,在本地组播组全局MAC地址组播 转发表中找到接口port1_6、组播组全局MAC地址退出报文携带的组播组全 局MAC地址0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、 源RB的Nickname RB1匹配的表项并删除。
以上是对组播接收者PC40退出组播组1时的描述。组播接收者PC30、 PC20退出组播组1时的处理类似组播接收者PC40退出组播组1的处理。
在上面描述中,路由桥RB1在从本地组播组全局MAC地址组播转发表 中删除表项时,还可进一步在本地组播组全局MAC地址组播转发表中找到 组播组全局MAC地址退出报文携带的组播组全局MAC地址 0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、源RB的Nickname  RB1匹配的表项,如果找到的表项只有一条,该表项的出接口为port1_6,则 除了删除表项,还可以回收全局MAC组播地址0102-0301-0101。路由桥RB1 可以通过发送预定义的全局MAC组地址回收报文回收全局MAC组播地址 0102-0301-0101。组播组全局MAC地址回收报文可以是IS-IS的ESADI消 息。在本发明中,可以通过对IS-IS报文扩展出一个TLV字段携带组播组全 局MAC地址0102-0301-0101、组播组IP地址224.1.1.1、用户VLAN100、 源RB的Nickname RB1。网关路由桥RB1对组播组全局MAC地址回收报文 进行TRILL封装,封装的TRILL头中Ingress Nickname和Engress Nickname 分别是路由桥RB1的Nickname RB1和VLAN100对应的组播树的树根的 Nickname;外层以太网头的源MAC地址和目的MAC分别是路由桥RB1的 TRILL接口的MAC地址和TRILL组播MAC地址。
RB2至RB6收到组播组全局MAC地址回收报文,依据组播组全局MAC 地址回收报文携带的组播组全局MAC地址0102-0301-0101、组播组IP地址 224.1.1.1、用户VLAN100、源RB的Nickname RB1在本地全局组播组全局 MAC地址组播转发表中删除匹配的表项。
至此,完成本发明提供的方法的描述。
下面对本发明提供的设备进行描述:
参见图4,图4为本发明提供的设备结构图。该设备应用于接入RB,包 括:
接收单元401,用于通过本地接入接口405接收本地主机作为组播源发送的 组播数据报文;
存储单元402,用于存储组播组全局MAC地址组播表、组播接收RB表;
查找单元403,用于在所述存储单元402存储的组播组全局MAC地址组播 表中查找所述组播数据报文携带的组播组IP地址、用户虚拟局域网VLAN匹配 的表项;
处理单元404,用于在所述查找单元403的查找结果为否时、且确定所述存 储单元402存储的组播接收RB表中不存在所述组播组IP地址、用户VLAN匹 配的表项,丢弃所述组播数据报文;以及,
在所述查找单元403的查找结果为是时,根据查找的匹配表项对所述组播数 据报文进行TRILL封装并通过匹配表项的出接口转发;封装的TRILL头的外层 以太网头的目的MAC地址为匹配表项中的组播组全局MAC地址。
优选地,所述处理单元404在所述查找单元403的查找结果为否,且所述存 储单元402存储的组播接收RB表中存在所述组播组IP地址、用户VLAN匹配 的表项时,进一步为所述组播组IP地址分配对应的组播组全局MAC地址,将 分配的组播组全局MAC地址、本RB作为源RB的Nickname、所述组播组IP 地址、用户VLAN携带在TRILL封装的组播组全局MAC地址通告报文中发送 给TRILL网络中其他RB;
优选地,所述接收单元401进一步通过公网侧接口406接收TRILL封装的 组播组全局MAC地址加入报文;组播组全局MAC地址加入报文是由连接所述 组播组IP地址的组播接收者的接入RB在接收到所述组播组全局MAC地址通 告报文后发起的;
优选地,所述处理单元404进一步在所述接收单元401接收到TRILL封装 的组播组全局MAC地址加入报文时,确定所述组播组全局MAC地址加入报文 的出口设备名称Engress Nickname为本RB的Nickname,则对所述组播数据报 文进行TRILL封装通过该所述公网侧接口406发送,TRILL封装的外层以太网 头的目的MAC地址为所述组播组全局MAC地址;并依据所述公网侧接口406、 组播组全局MAC地址加入报文携带的所述组播组全局MAC地址、组播组IP 地址、用户VLAN、源RB的Nickname学习所述组播组全局MAC地址组播表 中的表项。
优选地,所述接收单元401进一步通过公网侧接口406接收TRILL封装的 组播数据报文,以及,
进一步通过本地接入接口405接收IGMP加入报文,以及
进一步通过公网侧接口406接收TRILL封装的组播地址加入报文,以及,
进一步通过公网侧接口406接收TRILL封装的组播组全局MAC地址通告 报文。
优选地,所述处理单元404进一步在所述接收单元401接收到TRILL封装 的组播数据报文时,对所述接收单元401接收的TRILL封装的组播数据报文解 封装为组播数据报文,依据组播数据报文携带的组播组IP地址、用户VLAN在 本地组播转发表中查找到匹配的转发表项,通过匹配的转发表项中的出接口转 发组播数据报文;以及,
进一步在所述接收单元401接收到IGMP加入报文时,依据接收所述IGMP 加入报文的本地接入接口405、以及IGMP加入报文携带的组播组IP地址和用 户VLAN学习所述组播地址转发表的表项,将本设备的NickName、所述组播组 IP地址和用户VLAN携带在TRILL封装的组播地址加入报文中发送给TRILL 网络其他RB;以及,
进一步在所述接收单元401接收到TRILL封装的组播地址加入报文时,依 据组播地址加入报文携带的NickName、组播组IP地址和用户VLAN在本地组 播接收RB表中学习表项,继续沿着组播地址加入报文携带的用户VLAN对应 的组播树转发TRILL封装的组播地址加入报文,并确认本地是否连接了所述组 播地址加入报文携带的组播组IP地址的组播源,如果是,且已针对所述组播地 址加入报文携带的组播组IP地址分配了组播组全局MAC地址,则以组播地址 加入报文携带的Nickname为目的在本地TRILL路由表中匹配路由,通过匹配 的路由将所述组播地址加入报文携带的组播组IP地址、用户VLAN、以及针对 该组播组IP地址分配的组播组全局MAC地址携带在TRILL封装的组播组全局 MAC地址通告报文发送,封装的TRILL头中Engress Nickname为所述组播地址 加入报文携带的Nickname;以及,
进一步在所述接收单元401接收到TRILL封装的组播组全局MAC地址通 告报文时,在本地存在所述接收单元401接收的组播组全局MAC地址通告报文 携带的组播组IP地址的组播接收者,则以组播组全局MAC地址通告报文携带 源RB的NickName为目的地在本地TRILL路由表中查找到匹配的路由,根据 匹配的路由单播发送TRILL封装的组播组全局MAC地址加入报文,组播组全 局MAC地址加入报文携带了组播组全局MAC地址通告报文所携带的组播组全 局MAC地址、组播组IP地址、用户VLAN、源RB的Nickname。
优选地,所述处理单元404进一步在本地接入接口405连接的组播接收者退 出组播组时,判断本地是否还有属于该组播组的其他组播接收者,如果是,在 本地组播转发表中找到本地接入接口405匹配的表项并删除,如果否,在本地 组播转发表中找到本地接入接口405匹配的表项并删除,并将本RB的 Nickname、组播组的组播组IP地址和所属的用户VLAN携带在TRILL封装的 组播退出报文中发送给TRILL网络中其他RB;
优选地,所述接收单元401进一步通过公网侧接口406收到TRILL封装的 组播退出报文;以及,
进一步通过公网侧接口406收到网关RB发送的TRILL封装的组播组全局 MAC地址退出报文;
优选地,所述处理单元404进一步在所述接收单元401接收到组播退出报文 时,在存储单元402存储的组播接收RB表中找到所述组播退出报文携带的组播 组IP地址、用户VLAN、组播组退出RB的Nickname匹配的表项并删除;以及,
进一步在所述接收单元401接收到TRILL封装的组播组全局MAC地址退 出报文时,发现TRILL头的Engress Nickname是本RB的Nickname,则解封装 为组播组全局MAC地址退出报文,在本地组播组全局MAC地址组播转发表中 找到组播组全局MAC地址退出报文携带的组播组全局MAC地址、组播组IP 地址、用户VLAN、源RB的Nickname匹配的表项,如果找到的表项只有一条, 该表项的出接口为接收到所述组播组全局MAC地址退出报文的公网侧接口 406,回收全局MAC组播地址,并删除找到的表项,否则,从找到的表项中删 除出接口为接收到所述组播组全局MAC地址退出报文的公网侧接口406的表 项。
至此,完成图4所示的设备描述。需要说明的是,图4所示的各个单元、以 及接口均可通过互联机构407相连,具体已在图4示出。
参见图5,图5为本发明提供的另一设备结构图。该设备应用于网关RB, 包括:
接收单元501,用于接收TRILL封装的组播数据报文;
存储单元502,用于存储组播组全局MAC地址组播转发表;
查找单元503,用于依据封装的TRILL头的外层以太网头的目的MAC地址 在存储单元502存储的组播组全局MAC地址组播表中查找匹配的表项;
处理单元504,用于通过匹配的表项中的出接口转发TRILL封装的组播数 据报文。
优选地,接收单元501进一步接收TRILL封装的组播组全局MAC地址通 告报文;以及,接收TRILL封装的组播组全局MAC地址加入报文,以及接收 TRILL封装的组播退出报文;
处理单元504进一步在所述接收单元接收到TRILL封装的组播组全局MAC 地址通告报文时,根据TRILL头中Engress Nickname转发TRILL封装的组播组 全局MAC地址通告报文;以及,
在接收单元501接收到TRILL封装的组播组全局MAC地址加入报文时, 检查本地组播组全局MAC地址组播转发表是否存在组播组全局MAC地址加入 报文携带的组播组全局MAC地址、组播组IP地址、用户VLAN、源RB的 Nickname匹配的表项,如果否,依据组播组全局MAC地址加入报文的接口、 组播组全局MAC地址加入报文携带的组播组全局MAC地址、组播组IP地址、 用户VLAN、源RB的Nickname学习所述组播组全局MAC地址组播转发表的 表项,并继续依据组播组全局MAC地址加入报文封装的TRILL头中的Engress  Nickname转发TRILL封装的组播组全局MAC地址加入报文;如果是,依据收 到的组播组全局MAC地址加入报文的接口、组播组全局MAC地址加入报文携 带的组播组全局MAC地址、组播组IP地址、用户VLAN、源RB的Nickname 学习组播组全局MAC地址组播转发表的表项;以及,
在接收单元501接收到TRILL封装的组播退出报文时,继续依据组播退出 报文封装的TRILL头中的Engress Nickname转发TRILL封装的组播退出报文, 并依据组播退出报文携带的Nickname、组播组IP地址、用户VLAN在本地组 播接收RB表找到匹配的表项并删除,以及,依据组播退出报文携带的组播组IP 地址、用户VLAN在本地组播组全局MAC地址组播转发表中查找匹配的表项,
如果找到两条以上的表项,则从找到的表项中删除出接口为本RB连接组播 退出报文携带的Nickname对应的路由桥的接口的表项;如果找到一条表项且该 找到的一条表项的出接口为本RB连接组播退出报文携带的Nickname对应的路 由桥的接口,以该找到的表项中源RB的NickName为目的地在本地TRILL路 由表中匹配路由,将该找到的一条表项中的组播组全局MAC地址、组播组IP 地址、用户VLAN、源RB的Nickname携带在TRILL封装的组播组全局MAC 地址退出报文通过匹配的路由发送,并删除该找到的一条表项。
需要说明的是,接收单元501都是通过公网侧接口505接收上述的报文。图 5示出了公网侧接口505。
至此,完成图5所示的设备描述。需要说明的是,图5所示的各个单元、以 及接口均可通过互联机构506相连,具体已在图5示出。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在 本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含 在本发明保护的范围之内。

TRILL网络中的组播报文转发方法和设备.pdf_第1页
第1页 / 共27页
TRILL网络中的组播报文转发方法和设备.pdf_第2页
第2页 / 共27页
TRILL网络中的组播报文转发方法和设备.pdf_第3页
第3页 / 共27页
点击查看更多>>
资源描述

《TRILL网络中的组播报文转发方法和设备.pdf》由会员分享,可在线阅读,更多相关《TRILL网络中的组播报文转发方法和设备.pdf(27页珍藏版)》请在专利查询网上搜索。

本申请提供了TRILL网络中的组播报文转发方法和设备。本发明中,接入RB通过本地接入接口接收组播源发送的组播数据报文,在本地组播组全局MAC地址组播表中查找组播数据报文携带的组播组IP地址、用户虚拟局域网VLAN匹配的表项,未查找到匹配的表项,且本地组播接收RB表中不存在组播组IP地址、用户VLAN匹配的表项,丢弃所述组播数据报文;查找到匹配的表项,根据匹配的表项对所述组播数据报文进行TRILL封。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1