Trill网络中的报文转发方法和装置的制造方法

文档序号:9828093阅读:200来源:国知局
Trill网络中的报文转发方法和装置的制造方法
【技术领域】
[0001] 本申请涉及网络通信技术领域,特别涉及一种TRILL网络中的报文转发方法和装 置。
【背景技术】
[0002] 多链路透明互联(Transparent Interconnection of Lots of Links,TRILL) 协议将三层路由技术的中间系统到中间系统(Intermediate System-to-Intermediate System,IS-IS)的设计思路引入二层网络,从而将二层网络的简单、灵活性与三层网络的稳 定、可扩展和高性能有机融合,非常适合数据中心构建大型二层网络的需要。
[0003] 运行TRILL协议的设备称为路由桥(RB)。根据RB在TRILL网络中的位置,又可将 其分为入口(Ingress) RB、中间(Transit) RB和出口(Egress) RB,分别表示报文进入TRILL 网络的入节点、在TRILL网络中经过的中间节点以及离开TRILL网络的出节点。
[0004] RB中具有两类转发表项:单播转发表项和组播转发表项。单播转发表项用于转发 已知单播报文;组播转发表项用于转发多目的报文,其中,多目的报文包括:组播报文、广 播报文和未知单播报文。
[0005] 在现有技术中,无论是RB+VLAN类型的组播转发表项,还是RB+VLAN+MAC类型的 组播转发表项,每一个组播转发表项中的VLAN标识均是单一的,即,VLAN标识是一个指定 VLAN的标识,这样,当VLAN数量较多时,RB上需要记录大量的组播转发表项,从而占用了较 多的存储资源。
[0006] 此外,当RB感知到网络拓扑变化时,需要针对每一个组播转发表项进行更新,这 样,计算总时间与组播转发表项的数量强相关,当组播转发表项的数量较多时,计算总时间 会很长,降低了组播数据量的收敛速度。

【发明内容】

[0007] 有鉴于此,本申请提供了一种TRILL网络中的报文转发方法和装置。
[0008] 本申请的技术方案如下:
[0009] -方面,提供了一种TRILL网络中的报文转发方法,该方法应用于RB,RB具有组播 转发表项和索引关联表,组播转发表项中包括转发信息与索引的对应关系,转发信息中包 含树根RB的标识和至少两个VLAN的标识,索引关联表中包括索引、RB组与出接口列表的对 应关系,索引关联表中与组播转发表项的索引相对应的RB组中的RB满足以下条件:该RB 是该至少两个VLAN的AVF ;该方法包括:
[0010] 接收多目的报文;
[0011] 查找转发信息包含该多目的报文中携带的报文信息的组播转发表项,其中,该报 文信息包括:树根RB的标识和该多目的报文的内层的VLAN标识;
[0012] 根据查找到的组播转发表项中的索引查找所述索引关联表,以获取该多目的报文 的出接口列表;
[0013] 根据该多目的报文的出接口列表转发该多目的报文。
[0014] 其中,组播转发表项的转发信息中还包含组播MAC地址,则索引关联表中与该组 播转发表项的索引相对应的RB组中的RB满足的条件具体为:该RB是该至少两个VLAN中 的该组播MAC地址的组播接收者;
[0015] 报文信息中还包括多目的报文的内层的目的组播MAC地址。
[0016] 其中,该方法中还包括:
[0017] 当TRILL网络的拓扑变化时,根据变化后的拓扑重新计算用于指导多目的报文转 发的组播分发树;
[0018] 针对索引关联表中的每一个RB组,基于重新计算出的组播分发树,计算到该RB组 中的每一个RB的出接口,将该RB组对应的出接口列表更新为计算出的出接口。
[0019] 其中,该方法中还包括:
[0020] 当其它RB上的AVF或者组播接收者发生了变化时,查找转发信息满足以下条件的 组播转发表项;其中,当该其它RB上增加或减少了 M个VLAN的AVF时,该条件包括:转发 信息中包含有M个VLAN中的X个VLAN的标识,当该其它RB上增加或减少了 M个VLAN中 的同一组播MAC地址的组播接收者时,该条件包括:转发信息中包含有M个VLAN中的X个 VLAN的标识、以及该组播MAC地址,M为不小于1的自然数,X为不小于1且不大于M的自 然数;
[0021] 针对查找到的每一个组播转发表项,在该组播转发表项的转发信息中仅包含X个 VLAN的标识时,判断该组播转发表项中第一索引的引用计数是否大于1 ;其中,引用计数为 索引关联表中的索引被组播转发表项引用的计数;
[0022] 若等于1,则在索引关联表中查找到与第一索引对应的第一 RB组,对第一 RB组进 行更新;其中,当该其它RB上增加了 M个VLAN的AVF或者M个VLAN中的同一组播MAC地址 的组播接收者时,更新为将该其它RB添加到第一 RB组中,当该其它RB上减少了 M个VLAN 的AVF或者M个VLAN中的同一组播MAC地址的组播接收者时,更新为从第一 RB组中删除 该其它RB ;
[0023] 判断索引关联表中是否存在与更新后的第一 RB组相同的RB组;
[0024] 若不存在与更新后的第一 RB组相同的RB组,则将更新后的第一 RB组对应的出接 口列表更新为到更新后的第一 RB组中的每一个RB的出接口;
[0025] 若存在第二RB组与更新后的第一 RB组相同,则将该组播转发表项中的第一索引 更新为第二RB组对应的第二索引,将第二索引的引用计数加1,从索引关联表中删除更新 后的第一 RB组及其对应的第一索引和出接口列表。
[0026] 其中,在判断该组播转发表项中第一索引的引用计数是否大于1之后,还包括:
[0027] 若大于1,则在索引关联表中查找到与第一索引对应的第一 RB组,根据第一 RB组 创建第三RB组;其中,当该其它RB上增加了 M个VLAN的AVF或者M个VLAN中的同一组播 MAC地址的组播接收者时,第三RB组由第一 RB组和该其它RB构成,当该其它RB上减少了 M个VLAN的AVF或者M个VLAN中的同一组播MAC地址的组播接收者时,第三RB组由第一 RB组中除该其它RB以外的RB构成;
[0028] 判断索引关联表中是否存在与第三RB组相同的RB组;
[0029] 若不存在与第三RB组相同的RB组,则将第三RB组、第三索引与出接口列表的对 应关系添加到索引关联表中,将该组播转发表项中的第一索引更新为第三索引,将第三索 引的引用计数加1,将第一索引的引用计数减1 ;其中,第三RB组对应的出接口列表中包括: 到第三RB组中的每一个RB的出接口;
[0030] 若存在第四RB组与第三RB组相同,则将该组播转发表项中的第一索引更新为第 四RB组对应的第四索引,将第四索引的引用计数加1,将第一索引的引用计数减1。
[0031] 其中,该方法中还包括:
[0032] 当其它RB上的AVF或者组播接收者发生了变化时,查找转发信息满足以下条件的 组播转发表项;其中,当该其它RB上增加或减少了 M个VLAN的AVF时,该条件包括:转发 信息中包含有M个VLAN中的X个VLAN的标识,当该其它RB上增加或减少了 M个VLAN中 的同一组播MAC地址的组播接收者时,该条件包括:转发信息中包含有M个VLAN中的X个 VLAN的标识、以及该组播MAC地址,M为不小于1的自然数,X为不小于1且不大于M的自 然数;
[0033] 针对查找到的每一个组播转发表项,在该组播转发表项的转发信息中包含X个 VLAN的标识和其它VLAN的标识时,将该组播转发表项拆分成N1+N2个组播转发表项,拆分 得到的Nl个组播转发表项的转发信息中包含其它VLAN中的至少一个VLAN的标识、索引 为拆分前的组播转发表项中的第一索引,其余的N2个组播转发表项的转发信息中包含X个 VLAN中的至少一个VLAN的标识,其中,Nl和N2为不小于1的自然数;将第一索引的引用计 数加 Nl-I ;其中,引用计数为索引关联表中的索引被组播转发表项引用的计数;
[0034] 在索引关联表中查找到与第一索引对应的第一 RB组,根据第一 RB组创建第三RB 组;其中,当该其它RB上增加了 M个VLAN的AVF或者M个VLAN中的同一组播MAC地址的 组播接收者时,第三RB组由第一 RB组和该其它RB构成,当该其它RB上减少了 M个VLAN 的AVF或者M个VLAN中的同一组播MAC地址的组播接收者时,第三RB组由第一 RB组中除 该其它RB以外的RB构成;
[0035] 判断索引关联表中是否存在与第三RB组相同的RB组;
[0036] 若不存在与第三RB组相同的RB组,则将第三RB组、第三索引与出接口列表的对 应关系添加到索引关联表中,将N2个组播转发表项中的索引设置为第三索引,将第三索引 的引用计数加 N2 ;其中,第三RB组对应的出接口列表中包括:到第三RB组中的每一个RB 的出接口;
[0037] 若存在第四RB组与第三RB组相同,则将N2个组播转发表项中的索引设置为第四 RB组对应的第四索引,将第四索引的引用计数加 N2。
[0038] 另一方面,还提供了一种TRILL网络中的报文转发装置,该装置应用于RB中,RB具 有组播转发表项和索引关联表,组播转发表项中包括转发信息与索引的对应关系,转发信 息中包含树根RB的标识和至少两个VLAN的标识,索引关联表中包括索引、RB组与出接口 列表的对应关系,索引关联表中与组播转发表项的索引相对应的RB组中的RB满足以下条 件:该RB是该至少两个VLAN的AVF ;该装置包括:
[0039] 接收模块,用于接收多目的报文;
[0040] 查找模块,用于在接收模块接收到多目的报文之后,查找转发信息包含该多目的 报文中携带的报文信息的组播转发表项,其中,该报文信息包括:树根RB的标识和该多目 的报文的内层的VLAN标识;还用于根据查找到的组播转发表项中的索引查找索引关联表, 以获取该多目的报文的出接口列表;
[0041] 发送模块,用于根据查找模块获取到的该多目的报文的出接口列表,转发该多目 的报文。
[0042] 其中,组播转发表项的转发信息中还包含组播MAC地址,则索引关联表中与该组 播转发表项的索引相对应的RB组中的RB满足的条件具体为:该RB是该至少两个VLAN中 的该组播MAC地址的组播接收者;
[0043] 报文信息还包括该多目的报文的内层的目的组播MAC地址。
[0044] 其中,该装置中还包括:
[0045] 计算模块,用于当TRILL网络的拓扑变化时,根据变化后的拓扑重新计算用于指 导多目的报文转发的组播分发树,针对索引关联表中的每一个RB组,基于重新计算出的组 播分发树,计算到该RB组中的每一个RB的出接口;
[0046] 索引关联表更新模块,用于在计算模块计算出到RB组中的每一个RB的出接口之 后,将该RB组对应的出接口列表更新为计算出的出接口。
[0047] 其中,该装置中还包括:判断模块、索引关联表更新模块、组播转发表项更新模块 和引用计数更新模块,其中:
[0048] 查找模块,还用于当其它RB上的AVF或者组播接收者发生了变化时,查找转发信 息满足以下条件的组播转发表项;其中,当该其它RB上增加或减少了 M个VLAN的AVF时, 该条件包括:转发信息中包含有M个VLAN中的X个VLAN的标识,当该其它RB上增加或减 少了 M个VLAN中的同一组播MAC地址的组播接收者时,该条件包括:转发信息中包含有M 个VLAN中的X个VLAN的标识、以及该组播MAC地址,M为不小于1的自然数,X为不小于1 且不大于M的自然数;
[0049] 判断模块,用于针对查找模块查找到的每一个组播转发表项,在该组播转发表项 的转发信息中仅包含X个VLAN的标识时,判断该组播转发表项中第一索引的引用计数是否 大于1,其中,引用计数为索引关联表中的索引被组播转发表项引用的计数;还用于判断索 引关联表中是否存在与经过索引关联表更新模块更新后的第一 RB组相同的RB组;
[0050] 索引关联表更新模块,用于若判断模块判断出第一索引的引用计数等于1,则在索 引关联表中查找到与第一索引对应的第一 RB组,对第一 RB组进行更新,其中,当该其它RB 上增加了 M个VLAN的AVF或者M个VLAN中的同一组播MAC地址的组播接收者时,更新为 将该其它RB添加到第一 RB组中,当该其它RB上减少了 M个VLAN的AVF或者M个VLAN中 的同一组播MAC地址的组播接收者时,更新为从第一 RB组中删除该其它RB ;还用于若判断 模块判断出不存在与更新后的第一 RB组相同的RB组,则将更新后的第一 RB组对应的出接 口列表更新为到更新后的第一 RB组中的每一个RB的出接口;还用于在组播转发表项更新 模块将该组播转发表项中的第一索引更新为第二RB组对应的第二索引之后,从索
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1