CN103346962B - 未知单播报文转发方法及路由桥 - Google Patents

未知单播报文转发方法及路由桥 Download PDF

Info

Publication number
CN103346962B
CN103346962B CN201310251287.0A CN201310251287A CN103346962B CN 103346962 B CN103346962 B CN 103346962B CN 201310251287 A CN201310251287 A CN 201310251287A CN 103346962 B CN103346962 B CN 103346962B
Authority
CN
China
Prior art keywords
message
trill
mac address
cvlan
address entries
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310251287.0A
Other languages
English (en)
Other versions
CN103346962A (zh
Inventor
戴凡
戴一凡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201310251287.0A priority Critical patent/CN103346962B/zh
Publication of CN103346962A publication Critical patent/CN103346962A/zh
Application granted granted Critical
Publication of CN103346962B publication Critical patent/CN103346962B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明提出未知单播报文转发方法及路由桥。方法包括:预先将RB上与其他RB互联的端口都配置为TRILL混合端口;RB从TRILL接入端口接收到未知单播报文,查找该报文中的CVLAN ID对应的TRILL分发树的根桥,判断该根桥是否为本RB的P2P邻居,若是,直接将该报文转发给所述根桥;RB从TRILL混合端口接收到未封装TRILL头的单播报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,按照查找到的MAC表项,将该报文发送出去,同时,将该MAC表项和对应的CVLAN ID发送给报文的入端口对应的P2P邻居。本发明降低了TRILL网络中的未知单播流量。

Description

未知单播报文转发方法及路由桥
技术领域
本发明涉及多链接透明互联(TRILL,Transparent Interconnection of Lotsof Links)技术领域,尤其涉及TRILL网络中的未知单播报文转发方法及路由桥(RB,Routing Bridge)。
背景技术
TRILL网络中,各RB间会同步所有的媒体接入控制(MAC,Media AccessControl)表项,每台RB上都会有其他RB的MAC表项。RB通过查找MAC表项来进行已知单播的TRILL头部封装,如果没有查到MAC表项,则进行未知单播的转发。
在TRILL网络中,RB根据链路状态数据库(LSDB,Link State Data Base)中的信息为每个虚拟局域网(VLAN,Virtual Local Area Network)都计算生成一棵TRILL分发树,以指导组播、广播和未知单播报文的转发。
图1为现有的未知单播报文在TRILL网络中的转发示意图,如图1所示,当VLAN 10中的未知单播报文进入TRILL网络时,RB1作为入口(Ingress)RB将其封装成TRILL报文,该报文中的出口(Egress)RB为VLAN 10所对应TRILL分发树的根桥RB2;当报文到达根桥后再扩散到整棵TRILL分发树上,最后通过RB3解封装后送达服务器S2;而RB4由于其所在网段没有该报文的接收者,于是将其丢弃。
在一个典型的TRILL组网下,各接入层设备与汇聚层设备呈完全对称状态,网络中存在大量的虚拟机,MAC表项远超接入层设备的MAC表项容量。使用这种方法,当RB的MAC表项容量较小,而整个网络中的虚拟机较多、MAC表项数量比较大的时候,就会出现:RB无法学习到网络中的所有MAC表项,以及各RB学习到的MAC表项不一致的现象,那么,当某个RB的TRILL入端口收到了对该RB未知而对某些RB已知的单播报文时,会进入组播流程,为报文封装组播的TRILL头,然后在网络中进行组播发送。可见,此时网络中会出现很多的未知单播流量,这些未知单播流量会在整个网络中进行广播,产生了大量的无效流量,降低了每个端口的实际转发能力。而汇聚层设备不学习外部的MAC表项,只学习其他邻居RB的MAC表项,其自身的MAC表项学习能力被空置浪费了。
发明内容
本发明提供TRILL网络中的未知单播报文转发方法及RB,以减少TRILL网络中的未知单播流量。
本发明的技术方案是这样实现的:
一种未知单播报文转发方法,应用于多链接透明互联TRILL网络,预先将路由桥RB上与其他RB互联的端口都配置为TRILL混合端口,同时,对于任一TRILL混合端口,将以本RB和与本端口直连的对端RB为分发树根桥的用户虚拟局域网CVLAN都配置为本端口允许VLAN,该方法包括:
当RB从自己的TRILL接入端口接收到未知单播报文时,查找该报文中的CVLAN ID对应的TRILL分发树的根桥,判断该根桥是否为本RB的点对点P2P邻居,若是,不为该报文封装TRILL头,直接将该报文转发给所述根桥;
当RB从自己的TRILL混合端口接收到MAC表项和对应的CVLAN ID时,若判定发送者为该CVLAN的TRILL分发树的根桥,则根据该CVLANID,将该MAC表项下发到驱动和软件中,
其中,所述MAC表项和对应的CVLAN ID为:所述根桥从TRILL混合端口接收到所述RB发来的未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找到对应的MAC表项,将该MAC表项和对应的CVLAN ID发送给所述RB的。
当RB从自己的TRILL接入端口接收到未知单播报文时,所述判断该根桥是否为本RB的P2P邻居之后进一步包括:
RB判定该根桥不为本RB的P2P邻居,则为该报文封装组播TRILL头,TRILL头中的入口RB为本RB,出口RB为该CVLAN的TRILL分发树的根桥RB,将该报文发送出去,以使得:当对端RB从自己的TRILL混合端口接收到该封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去,同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
所述方法进一步包括:
当RB从自己的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的P2P邻居RB,报文中的跳数值为默认值减1,将该报文发送出去,同时,将该MAC表项和对应的CVLAN ID发送给所述P2P邻居RB。
当RB从自己的TRILL混合端口接收到未封装TRILL头的单播报文时,所述在驱动中查找对应的MAC表项,判断是否查找到之后进一步包括:
当RB判定未查找到时,则为该报文封装组播TRILL头,将该报文发送出去;同时,RB在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
所述方法进一步包括:
当RB从自己的TRILL混合端口接收到封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若查找到,则按照查找到的MAC表项将该报文转发出去,同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB
所述RB将该MAC表项下发到驱动和软件中之后进一步包括:
RB从自己的TRILL接入端口接收到单播报文,根据报文中的CVLANID和目的MAC地址,在驱动中查找对应的MAC表项,若查找到且发现该表项中的出口RB的下一跳RB有多个、且其中一个为报文中的CVLAN ID对应的TRILL分发树的根桥RB,则将该报文的下一跳定为该根桥RB进行转发。
所述方法进一步包括:
预先在RB上配置各类MAC表项配置优先级为:本地MAC表项最高、CVLAN的TRILL分发树的根桥发来的MAC表项次之、全网洪泛得来的以本RB为根桥的CVLAN的MAC表项再次之、全网洪泛得来的不以本RB为根桥的CVLAN的MAC表项最低;
且,当RB同时学习到多条新MAC表项时,按照各条MAC表项的优先级的从高到低,依次将各条新MAC表项下发到软件和驱动中;
且,当RB要向软件和驱动下发新MAC表项时,若发现驱动已满,则判断驱动中是否存在优先级低于该新MAC表项的表项,若是,则在驱动中选择优先级最低且剩余老化时长最小的表项,将所选择的表项从驱动中删除,将该新MAC表项下发到软件和驱动中;否则,只将该新MAC表项下发到软件中。
一种未知单播报文转发方法,应用于TRILL网络,预先将RB上与其他RB互联的端口都配置为TRILL混合端口,同时,对于任一TRILL混合端口,将以本RB和与本端口直连的对端RB为分发树根桥的CVLAN都配置为本端口允许VLAN,该方法包括:
当RB从自己的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的P2P邻居RB,报文中的跳数值为默认值减1,将该报文发送出去,同时,将该MAC表项和对应的CVLAN ID发送给所述P2P邻居RB;
其中,所述未封装TRILL头的单播报文为:所述P2P邻居RB从自己的TRILL接入端口接收到未知单播报文时,在判定该报文中的CVLAN ID对应的TRILL分发树的根桥为本RB的P2P邻居的情况下发送给本RB的。
当RB从自己的TRILL混合端口接收到未封装TRILL头的单播报文时,所述在驱动中查找对应的MAC表项,判断是否查找到之后进一步包括:
当RB判定未查找到时,则为该报文封装组播TRILL头,将该报文发送出去;同时,RB在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
所述方法进一步包括:
当RB从自己的TRILL混合端口接收到封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去;同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
一种RB,位于TRILL网络中,本RB上与其他RB互联的端口被配置为TRILL混合端口,同时对于任一TRILL混合端口,以本RB和与本端口直连的对端RB为分发树根桥的CVLAN都被配置为本端口允许VLAN,该RB包括:
接入端口报文处理模块:当从本RB的TRILL接入端口接收到未知单播报文时,查找该报文中的CVLAN ID对应的TRILL分发树的根桥,判断该根桥是否为本RB的P2P邻居,若是,不为该报文封装TRILL头,直接将该报文转发给所述根桥;
表项下发模块:当从本RB的TRILL混合端口接收到MAC表项和对应的CVLAN ID时,若判定发送者为该CVLAN的TRILL分发树的根桥,则根据该CVLAN ID,将该MAC表项下发到驱动和软件中。
所述接入端口报文处理模块进一步用于,当从本RB的TRILL接入端口接收到未知单播报文、且判定报文中的CVLAN ID对应的TRILL分发树的根桥不为本RB的P2P邻居,则为该报文封装组播TRILL头,TRILL头中的入口RB为本RB,出口RB为该CVLAN的TRILL分发树的根桥RB,将该报文发送出去。
所述RB进一步包括混合端口报文处理模块:当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的P2P邻居RB,报文中的跳数值为默认值减1,将该报文发送出去,同时,将查找到的MAC表项和对应的CVLAN ID发送给所述P2P邻居RB。
所述混合端口报文处理模块进一步用于,当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,若在驱动中未查找到对应的MAC表项,则为该报文封装组播TRILL头,将该报文发送出去,同时,在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
所述混合端口报文处理模块进一步用于,当从本RB的TRILL混合端口接收到封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去;同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
所述接入端口报文处理模块进一步用于,当从本RB的TRILL接入端口接收到单播报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,若查找到且发现该表项中的出口RB的下一跳RB有多个,且其中一个为报文中的CVLAN ID对应的TRILL分发树的根桥RB,则将该报文的下一跳定为该根桥RB进行转发。
所述表项下发模块进一步用于,记录各类MAC表项的配置优先级:本地MAC表项最高、CVLAN的TRILL分发树的根桥发来的MAC表项次之、全网洪泛得来的以本RB为根桥的CVLAN的MAC表项再次之、全网洪泛得来的不以本RB为根桥的CVLAN的MAC表项最低;当要向软件和驱动下发新MAC表项时,按照MAC表项的优先级的从高到低,将MAC表项下发到软件和驱动中;且,当要向软件和驱动下发新MAC表项时,若发现驱动已满,则判断驱动中是否存在优先级低于该新MAC表项的表项,若是,则在驱动中选择优先级最低且剩余老化时长最小的表项,将所选择的表项从驱动中删除,将该新MAC表项下发到软件和驱动中;否则,只将该新MAC表项下发到软件中。
一种RB,位于TRILL网络中,本RB上与其他RB互联的端口被配置为TRILL混合端口,同时对于任一TRILL混合端口,以本RB和与本端口直连的对端RB为分发树根桥的CVLAN都被配置为本端口允许VLAN,该RB包括:
混合端口报文处理模块:当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的点对点P2P邻居RB,报文中的跳数值为默认值减1,将该报文转发出去,同时,将该MAC表项和对应的CVLAN ID发送给所述P2P邻居RB。
所述混合端口报文处理模块进一步用于,当从TRILL混合端口接收到未封装TRILL头的单播报文时,若未在驱动中查找到对应的MAC表项,则为该报文封装组播TRILL头,将该报文发送出去;同时,在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
所述混合端口报文处理模块进一步用于,当从TRILL混合端口接收到封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去;同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
可见,本发明中,在保证未知单播流量成功转发的同时,降低了TRILL网络中的未知单播流量。
附图说明
图1为现有的未知单播报文在TRILL网络中的转发示意图;
图2为本发明实施例提供的TRILL网络中的RB学习MAC表项的方法流程图;
图3为本发明实施例一提供的TRILL网络中的未知单播报文转发方法流程图;
图4为本发明实施例二提供的TRILL网络中的未知单播报文转发方法流程图;
图5为本发明应用示例对应的TRILL网络的组网示意图;
图6为本发明实施例一提供的TRILL网络中的RB的组成示意图;
图7为本发明实施例二提供的TRILL网络中的RB的组成示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
本发明中,将RB分为接入层RB和根桥RB。这里,接入层RB和根桥RB是针对某个用户VLAN(CVLAN,Customer VLAN)而言的即,对于一个CVLAN,根桥RB指的是作为该CVLAN的TRILL分发树的根桥的RB,相对地,接入层RB指的是不为该CVLAN的TRILL分发树的根桥的RB。可以看出,对于一个RB来说,针对这个CVLAN,该RB可能是接入层RB,针对另一个CVLAN,该RB可能就是根桥RB了。
图2为本发明实施例提供的TRILL网络中的RB学习MAC表项的方法流程图,如图2所示,其具体步骤如下:
步骤201:将RB上与其他RB互联的端口都配置为TRILL混合(Hybrid)端口,同时,对于RB的任一TRILL Hybrid端口,将以本RB和本端口直连的对端RB为分发树根桥的CVLAN都配置为本端口允许VLAN。
这里,将一个RB上与其他RB互联的端口都配置为TRILL Hybrid端口即,对于一个RB来说,若一个端口直接或间接连接了另一个RB,则该端口要被配置为TRILL Hybrid端口。
步骤202:对于任一RB,预先为该RB上的各类MAC表项配置优先级为:本地MAC表项最高、CVLAN的TRILL分发树的根桥发来的MAC表项次之、全网洪泛得来的以自己为根桥的CVLAN的MAC表项再次之、全网洪泛得来的不以自己为根桥的CVLAN的MAC表项最低。
本地MAC表项,即针对本地MAC地址的表项。
步骤203:对于任一RB,当该RB同时学习到多条新MAC表项时,按照各条MAC表项的优先级的从高到低,依次将各条新MAC表项下发到软件和驱动中;且,当向软件和驱动下发新MAC表项时,若发现驱动已满,且驱动中存在优先级低于该新MAC表项的表项,则在驱动中选择优先级最低且剩余老化时长最小的表项,将所选择的表项从驱动中删除(软件中的该表项仍然保留),将该新MAC表项下发到软件和驱动中;且,当向软件和驱动下发新MAC表项时,若发现驱动已满,且驱动中不存在优先级低于该新MAC表项的表项,则只将该新MAC表项下发到软件中。
这里,RB学习到的新MAC表项指的是:本地MAC表项、CVLAN的TRILL分发树的根桥发来的MAC表项、全网洪泛得来的MAC表项之一。
可见,对于RB来说,驱动和软件中的MAC表项并不一定保持同步。
对于RB来说,当由于老化或者表项内容更新而需要删除一条MAC表项时,要将该表项从驱动和软件中同时删除。
图3为本发明实施例一提供的TRILL网络中的未知单播报文转发方法流程图,本实施例针对接入层RB与根桥RB全连接即,中间不跨接其他RB的场景,如图3所示,其具体步骤如下:
步骤301:接入层RB从自己的TRILL access端口接收到单播报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,未查找到,则确定为未知单播报文,查找该报文中的CVLAN ID对应的TRILL分发树的根桥,若发现该根桥为本RB的P2P邻居,则不为该报文封装TRILL头,直接将该报文转发给该CVLAN的TRILL分发树的根桥RB。
步骤302:根桥RB从自己的TRILL Hybrid端口接收到该未封装TRILL头的单播报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项。
这里,若一个汇聚层RB从自己的TRILL Hybrid端口接收到了未封装TRILL头的单播报文,且发现自己不为该报文中的CVLAN的TRILL分发树的根桥,则直接丢弃该报文即可。
步骤303:根桥RB判断是否查找到,若是,执行步骤304;否则,执行步骤306。
步骤304:根桥RB按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的Egress RB为该MAC表项中的Egress RB,TRILL头中的Ingress RB为该报文的入TRILL Hybrid端口对应的P2P邻居RB,跳数(HopCount)为默认值减一,将该报文发送出去;同时,根桥RB查找该报文的入TRILL Hybrid端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居,即步骤301中的接入层RB。
本步骤中,根桥RB可将MAC表项和对应的CVLAN ID通过终端地址分发信息(ESADI,End Station Address Distribution Information)或TRILL中间系统到中间系统(ISIS,Intermediate System to Intermediate System)协议报文发送给接入层RB。
由于接入层RB发来的是未封装TRILL头的单播报文,因此,根桥RB无法从报文得知发送者是谁,此时,根桥RB可查找该报文的入TRILLHybrid端口对应的P2P邻居,该P2P邻居即为该报文的发送者。
本步骤中,在根桥RB将MAC表项和CVLAN ID发送给接入层RB后,在一定时间内,如:1分钟内,根桥RB不会再将该MAC表项和CVLAN ID以任何方式发送给该接入层RB。
步骤305:接入层RB接收根桥RB发来的该MAC表项和CVLAN ID,发现发送者为该CVLAN的TRILL分发树的根桥,则将该MAC表项下发到驱动和软件中该CVLAN下的MAC表中,本流程结束。
本步骤中,接入层RB在将MAC表项下发到驱动和软件中时,具体操作见步骤203。
此后,当再接收到同样目的MAC地址的单播报文后,接入层RB就可在驱动中查找到对应的MAC表项了,按照已知单播报文进行转发;这里,需要说明的是,若该MAC表项中的Egress RB的下一跳RB有多个,且其中一个为报文中的CVLAN ID对应的TRILL分发树的根桥RB,则需要将该报文的下一跳定为该根桥RB进行转发,以防止乱序。
步骤306:根桥RB为该报文封装组播TRILL头,将该报文发送出去;同时,在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL Hybrid端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居,即步骤301中的接入层RB。
本步骤中,根桥RB可将MAC表项和对应的CVLAN ID通过ESADI或TRILL ISIS协议报文发送给接入层RB。
本步骤中,若根桥RB在软件中未查找到对应的MAC表项,则不作进一步处理。
步骤307:接入层RB接收根桥RB发来的该MAC表项和CVLAN ID,若判定发送者为该CVLAN的TRILL分发树的根桥,则将该MAC表项下发到驱动和软件中该CVLAN下的MAC表中。
本步骤中,接入层RB在将MAC表项下发到驱动和软件中时,具体操作见步骤203。
图4为本发明实施例二提供的TRILL网络中的未知单播报文转发方法流程图,本实施例针对接入层RB与根桥RB非全连接即,中间跨接其他RB的场景,如图4所示,其具体步骤如下:
步骤401:接入层RB从自己的TRILL access端口接收到单播报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,未查找到,则确定为未知单播报文,查找该报文中的CVLAN ID对应的TRILL分发树的根桥,若发现该根桥不为本RB的P2P邻居,则为该报文封装组播TRILL头,TRILL头中的Egress RB为该CVLAN的TRILL分发树的根桥RB。
报文的外部目的MAC地址为all RBs即,代表所有RB的MAC地址,外部源MAC地址为接入层RB的MAC地址。
步骤402:根桥RB接收到该封装了组播TRILL头的单播报文,根据报文内部的CVLAN ID和内部的目的MAC地址,在驱动和软件中查找对应的MAC表项。
步骤403:根桥RB判断是否查找到,若是,执行步骤404;否则,执行步骤406。
步骤404:根桥RB按照查找到的MAC表项将该报文发送出去,同时根据报文的TRILL头中的Ingress RB,将该MAC表项和CVLAN ID发送给该Ingress RB,即步骤401中的接入层RB。
本步骤中,根桥RB可将MAC表项和对应的CVLAN ID通过ESADI或TRILL ISIS协议报文发送给接入层RB。
本步骤中,在根桥RB将该MAC表项发送给接入层RB后,在一定时间内,如:1分钟内,根桥RB不会再将该MAC表项以任何方式发送给该接入层RB。
步骤405:接入层RB接收根桥RB发来的该MAC表项和CVLAN ID,若判定发送者为该CVLAN的TRILL分发树的根桥,则将该表项下发到驱动和软件中该CVLAN下的MAC表中,本流程结束。
本步骤中,接入层RB在将MAC表项下发到驱动和软件中时,具体操作见步骤203。
此后,当再接收到同样目的MAC地址的单播报文后,接入层RB就可在驱动中查找到对应的MAC表项了,按照已知单播报文进行转发。
步骤406:根桥RB将该报文转发给该CVLAN的TRILL分发树的叶子节点。
以下给出本发明的应用示例:
以图5为例,其中,RB1为CVLAN 100的TRILL分发树的根桥,RB3为CVLAN 200的TRILL分发树的根桥。
示例一、针对接入层RB与TRILL分发树根桥RB为P2P邻居的情况:
步骤01:服务器S1通过链路L1发出一个目的MAC地址为S2,CVLAN为100的报文。
步骤02:RB4接收该报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,未查找到,且发现CVLAN 100的TRILL分发树根桥为RB1,且RB1为自己的P2P邻居,则RB4不为该报文封装TRILL头,直接将报文发送给RB1。
步骤03:RB1接收到该未封装TRILL头的单播报文,根据报文中的CVLAN ID的目的MAC地址,在驱动中查找对应的MAC表项,查找到,且表项中的Egress RB为RB7,则为该报文封装TRILL头,TRILL头中的Egress RB为RB7,Ingress RB伪造为RB4,HopCount为默认值-1,然后进行正常TRILL转发流程,报文将从链路L4到达RB7;同时,RB1将查找到的MAC表项和CVLAN 100发送给RB4。
步骤04:RB4接收到RB1发来的该MAC表项和CVLAN 100后,判定该表项是从CVLAN 100的TRILL分发树根桥RB1发来的,则将该MAC表项下发到驱动和软件中CVLAN 100下的MAC表中。
对于本示例,若采用现有技术,则RB4在收到S1发来的未知单播报文后,会为该报文封装组播TRILL头,这样,报文将通过链路L2、L3、L4、L5发送给RB1、RB7、RB3以及S2,其中L5以及RB3收到后只能将该报文丢弃,浪费了链路带宽以及RB3的CPU资源。而使用本发明,L5以及RB3完全不会收到该报文。
示例二、针对接入层RB与TRILL分发树根桥RB不为P2P邻居的情况:
步骤01:S1通过L1发出一个目的MAC地址为S2,CVLAN为200的报文。
步骤02:RB4接收到该报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,未查找到,且发现CVLAN 200的TRILL分发树的根桥为RB3,且RB3不为自己的P2P邻居,则为报文封装组播TRILL头,TRILL头的Ingress RB为RB4,Egress RB=RB3。
步骤03:当RB3收到该封装了组播TRILL头的单播报文后,查看报文内部的CVLAN ID,发现自己为该CVLAN 200的TRILL分发树的根桥,则根据报文内部的目的MAC地址,在驱动/软件中查找对应的MAC表项,若查找到,则根据该MAC表项将该单播报文发送出去;同时,根据报文的TRILL头中的Ingress RB:RB4,将该MAC表项和CVLAN 200发送给RB4。
步骤04:RB4接收到该MAC表项和CVLAN 200后,判定表项中的CVLAN为200,且该MAC表项是从CVLAN 200的TRILL分发树的根桥RB3发来的,则将该MAC表项下发到驱动和软件中CVLAN 200下的MAC表中。
对于本示例,若采用现有技术,RB4在收到S1发来的未知单播报文后,会为该报文封装组播TRILL头,这样,报文将通过链路L2、L3、L4、L5发送给RB1、RB7、RB3以及S2,其中L5以及RB3收到后只能将该报文丢弃,且除非RB4通过全网洪泛学习到该MAC表项,否则,该流量此后会被一直发送到L5以及RB3,浪费了链路带宽以及RB3的处理。而使用本发明后,L5以及RB3除了报文开始发送起到从RB3学习到MAC表项止,此后不会再收到该条流量。
示例三、针对接入层RB与TRILL分发树根桥RB为P2P邻居的情况:
步骤01:S1通过L1发出一个目的MAC地址为S2,CVLAN为100的报文。
步骤02:RB4接收到该报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,未查找到,且发现CVLAN 100的TRILL分发树的根桥为RB1,且RB1为自己的P2P邻居,则RB4不为该报文封装TRILL头,将报文直接发送给RB1。
步骤03:RB1接收到该未封装TRILL头的报文,根据报文中的CVLANID和目的MAC地址,在驱动中查找对应的MAC表项,未查找到,则为该报文封装组播TRILL头,TRILL头中的Ingress RB伪造为RB4,HopCount为默认值-1,然后进行正常TRILL转发流程,报文将从L4到达RB7再到达S2;同时,RB1在软件中查找对应MAC表项,查找到,确定报文的入TRILL Hybrid端口对应的P2P邻居为RB4,将该MAC表项和CVLAN 100发送给RB4。
步骤04:RB4接收到该MAC表项和CVLAN为100后,判定该MAC表项是从CVLAN 100的TRILL分发树的根桥RB1发来的,则将该MAC表项下发到驱动和软件中CVLAN 100下的MAC表中。
对于本示例,若采用现有技术,除非RB4通过全网洪泛学习到该流量的MAC表项,否则,该流量会一直进行未知单播转发,通过L2、L3、L4、L5发送给RB1、RB7、RB3以及S2,其中L5以及RB3收到后只能将该流量丢弃,浪费了链路带宽以及RB3的处理。而使用了本发明,充分利用了RB1的软件资源,L5以及RB3除了从报文第一次发送起到RB4从RB1学习到MAC表项止,此后L5以及RB3不会再收到该条流量。
图6为本发明实施例一提供的TRILL网络中的RB的组成示意图,该RB上与其他RB互联的端口被配置为TRILL混合端口,同时对于任一TRILL混合端口,以本RB和该端口直连的对端RB为分发树根桥的CVLAN都被配置为本端口允许VLAN,如图6所示,该RB主要包括:接入端口报文处理模块61、混合端口报文处理模块62、表项下发模块63、驱动MAC表模块64和软件MAC表模块65,其中:
接入端口报文处理模块61:当从本RB的TRILL接入端口接收到单播报文时,在驱动MAC表模块64中查找对应的MAC表项,若未查找到,确定为未知单播报文,确定该报文中的CVLAN ID对应的TRILL分发树的根桥,判断该根桥是否为本RB的P2P邻居,若是,不为该报文封装TRILL头,直接将该报文转发给该根桥RB。
混合端口报文处理模块62:当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动MAC表模块64中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的P2P邻居RB,将报文中的HopCount设为默认值减1,将该报文发送出去,同时,将查找到的MAC表项和对应的CVLAN ID发送给该P2P邻居RB。
表项下发模块63:当从本RB的TRILL混合端口接收到MAC表项和对应的CVLAN ID时,若判定发送者为该CVLAN的TRILL分发树的根桥,则根据该CVLAN ID,将该MAC表项下发到驱动MAC表模块64和软件MAC表模块65中。
驱动MAC表模块64:存储MAC表项。
软件MAC表模块65:存储MAC表项。
混合端口报文处理模块62进一步用于,当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,若在驱动MAC表模块64中未查找到对应的MAC表项,则为该报文封装组播TRILL头,将该报文发送出去,同时,在软件MAC表模块65中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
接入端口报文处理模块61进一步用于,当从本RB的TRILL接入端口接收到未知单播报文、且判定报文中的CVLAN ID对应的TRILL分发树的根桥不为本RB的P2P邻居,则为该报文封装组播TRILL头,TRILL头中的入口RB为本RB,出口RB为该CVLAN的TRILL分发树的根桥RB,将该报文发送出去;同时,混合端口报文处理模块62进一步用于,当从本RB的TRILL混合端口接收到封装了组播TRILL头的单播报文,根据报文内部的CVLAN ID和目的MAC地址,在驱动MAC表模块64和软件MAC表模块65中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去;同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
接入端口报文处理模块61进一步用于,当从本RB的TRILL接入端口接收到单播报文,根据报文中的CVLAN ID和目的MAC地址,在驱动MAC表模块64中查找对应的MAC表项,若查找到且发现该表项中的出口RB的下一跳RB有多个,且其中一个为报文中的CVLAN ID对应的TRILL分发树的根桥RB,则将该报文的下一跳定为该根桥RB进行转发。
表项下发模块63进一步用于,记录各类MAC表项的配置优先级:本地MAC表项最高、CVLAN的TRILL分发树的根桥发来的MAC表项次之、全网洪泛得来的以本RB为根桥的CVLAN的MAC表项再次之、全网洪泛得来的不以本RB为根桥的CVLAN的MAC表项最低;当要向软件MAC表模块65和驱动MAC表模块64下发新MAC表项时,按照MAC表项的优先级的从高到低进行下发。
表项下发模块63进一步用于,当要向软件MAC表模块65和驱动MAC表模块64下发新MAC表项时,若发现驱动已满,则判断驱动MAC表模块64中是否存在优先级低于该新MAC表项的表项,若是,则在驱动MAC表模块64中选择优先级最低且剩余老化时长最小的表项,将所选择的表项从驱动MAC表模块64中删除,将该新MAC表项下发到软件MAC表模块65和驱动MAC表模块64中;否则,只将该新MAC表项下发到软件MAC表模块65中。
图7为本发明实施例二提供的TRILL网络中的RB的组成示意图,该RB上与其他RB互联的端口被配置为TRILL混合端口,同时对于任一TRILL混合端口,以本RB和本端口直连的对端RB为分发树根桥的CVLAN都被配置为本端口允许VLAN,如图7所示,该RB主要包括:接入端口报文处理模块71、混合端口报文处理模块72、表项下发模块73、驱动MAC表模块74和软件MAC表模块75,其中:
接入端口报文处理模块71:当从本RB的TRILL接入端口接收到单播报文时,在驱动MAC表模块74中查找对应的MAC表项,若未查找到,确定为未知单播报文,确定该报文中的CVLAN ID对应的TRILL分发树的根桥,判断该根桥是否为本RB的P2P邻居,若不是,则为该报文封装组播TRILL头,TRILL头中的入口RB为本RB,出口RB为该CVLAN的TRILL分发树的根桥RB,将该报文发送出去。
混合端口报文处理模块72:当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动MAC表模块74中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的点对点P2P邻居RB,报文中的跳数值为默认值减1,将该报文转发出去,同时,将该MAC表项和对应的CVLAN ID发送给该所述P2P邻居RB。
表项下发模块73:当从本RB的TRILL混合端口接收到MAC表项和对应的CVLAN ID时,若判定发送者为该CVLAN的TRILL分发树的根桥,则根据该CVLAN ID,将该MAC表项下发到驱动MAC表模块74和软件MAC表模块75中。
驱动MAC表模块74:存储MAC表项。
软件MAC表模块75:存储MAC表项。
表项下发模块73进一步用于,记录各类MAC表项的配置优先级:本地MAC表项最高、CVLAN的TRILL分发树的根桥发来的MAC表项次之、全网洪泛得来的以本RB为根桥的CVLAN的MAC表项再次之、全网洪泛得来的不以本RB为根桥的CVLAN的MAC表项最低;当要向软件MAC表模块75和驱动MAC表模块74下发新MAC表项时,按照MAC表项的优先级的从高到低进行下发。
表项下发模块73进一步用于,当要向软件MAC表模块75和驱动MAC表模块74下发新MAC表项时,若发现驱动已满,则判断驱动MAC表模块74中是否存在优先级低于该新MAC表项的表项,若是,则在驱动MAC表模块74中选择优先级最低且剩余老化时长最小的表项,将所选择的表项从驱动MAC表模块74中删除,将该新MAC表项下发到软件MAC表模块75和驱动MAC表模块74中;否则,只将该新MAC表项下发到软件MAC表模块75中。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (20)

1.一种未知单播报文转发方法,应用于多链接透明互联TRILL网络,其特征在于,预先将路由桥RB上与其他RB互联的端口都配置为TRILL混合端口,同时,对于任一TRILL混合端口,将以本RB和与本端口直连的对端RB为分发树根桥的用户虚拟局域网CVLAN都配置为本端口允许VLAN,该方法包括:
当RB从自己的TRILL接入端口接收到未知单播报文时,查找该报文中的CVLAN ID对应的TRILL分发树的根桥,判断该根桥是否为本RB的点对点P2P邻居,若是,不为该报文封装TRILL头,直接将该报文转发给所述根桥;
当RB从自己的TRILL混合端口接收到MAC表项和对应的CVLAN ID时,若判定发送者为该CVLAN的TRILL分发树的根桥,则根据该CVLANID,将该MAC表项下发到驱动和软件中,
其中,所述MAC表项和对应的CVLAN ID为:所述根桥从TRILL混合端口接收到所述RB发来的未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找到对应的MAC表项,将该MAC表项和对应的CVLAN ID发送给所述RB的。
2.根据权利要求1所述的方法,其特征在于,当RB从自己的TRILL接入端口接收到未知单播报文时,所述判断该根桥是否为本RB的P2P邻居之后进一步包括:
RB判定该根桥不为本RB的P2P邻居,则为该报文封装组播TRILL头,TRILL头中的入口RB为本RB,出口RB为该CVLAN的TRILL分发树的根桥RB,将该报文发送出去,以使得:当对端RB从自己的TRILL混合端口接收到该封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去,同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
3.根据权利要求1或2所述的方法,其特征在于,所述方法进一步包括:
当RB从自己的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的P2P邻居RB,报文中的跳数值为默认值减1,将该报文发送出去,同时,将该MAC表项和对应的CVLAN ID发送给所述P2P邻居RB。
4.根据权利要求3所述的方法,其特征在于,当RB从自己的TRILL混合端口接收到未封装TRILL头的单播报文时,所述在驱动中查找对应的MAC表项,判断是否查找到之后进一步包括:
当RB判定未查找到时,则为该报文封装组播TRILL头,将该报文发送出去;同时,RB在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
5.根据权利要求3所述的方法,其特征在于,所述方法进一步包括:
当RB从自己的TRILL混合端口接收到封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若查找到,则按照查找到的MAC表项将该报文转发出去,同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
6.根据权利要求1或2所述的方法,其特征在于,所述RB将该MAC表项下发到驱动和软件中之后进一步包括:
RB从自己的TRILL接入端口接收到单播报文,根据报文中的CVLANID和目的MAC地址,在驱动中查找对应的MAC表项,若查找到且发现该表项中的出口RB的下一跳RB有多个、且其中一个为报文中的CVLAN ID对应的TRILL分发树的根桥RB,则将该报文的下一跳定为该根桥RB进行转发。
7.根据权利要求1或2所述的方法,其特征在于,所述方法进一步包括:
预先在RB上配置各类MAC表项配置优先级为:本地MAC表项最高、CVLAN的TRILL分发树的根桥发来的MAC表项次之、全网洪泛得来的以本RB为根桥的CVLAN的MAC表项再次之、全网洪泛得来的不以本RB为根桥的CVLAN的MAC表项最低;
且,当RB同时学习到多条新MAC表项时,按照各条MAC表项的优先级的从高到低,依次将各条新MAC表项下发到软件和驱动中;
且,当RB要向软件和驱动下发新MAC表项时,若发现驱动已满,则判断驱动中是否存在优先级低于该新MAC表项的表项,若是,则在驱动中选择优先级最低且剩余老化时长最小的表项,将所选择的表项从驱动中删除,将该新MAC表项下发到软件和驱动中;否则,只将该新MAC表项下发到软件中。
8.一种未知单播报文转发方法,应用于多链接透明互联TRILL网络,其特征在于,预先将路由桥RB上与其他RB互联的端口都配置为TRILL混合端口,同时,对于任一TRILL混合端口,将以本RB和与本端口直连的对端RB为分发树根桥的用户虚拟局域网CVLAN都配置为本端口允许VLAN,该方法包括:
当RB从自己的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的点对点P2P邻居RB,报文中的跳数值为默认值减1,将该报文发送出去,同时,将该MAC表项和对应的CVLAN ID发送给所述P2P邻居RB;
其中,所述未封装TRILL头的单播报文为:所述P2P邻居RB从自己的TRILL接入端口接收到未知单播报文时,在判定该报文中的CVLAN ID对应的TRILL分发树的根桥为本RB的P2P邻居的情况下发送给本RB的。
9.根据权利要求8所述的方法,其特征在于,当RB从自己的TRILL混合端口接收到未封装TRILL头的单播报文时,所述在驱动中查找对应的MAC表项,判断是否查找到之后进一步包括:
当RB判定未查找到时,则为该报文封装组播TRILL头,将该报文发送出去;同时,RB在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
10.根据权利要求8或9所述的方法,其特征在于,所述方法进一步包括:
当RB从自己的TRILL混合端口接收到封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去;同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
11.一种路由桥RB,位于多链接透明互联TRILL网络中,其特征在于,本RB上与其他RB互联的端口被配置为TRILL混合端口,同时对于任一TRILL混合端口,以本RB和与本端口直连的对端RB为分发树根桥的用户虚拟局域网CVLAN都被配置为本端口允许VLAN,该RB包括:
接入端口报文处理模块:当从本RB的TRILL接入端口接收到未知单播报文时,查找该报文中的CVLAN ID对应的TRILL分发树的根桥,判断该根桥是否为本RB的点对点P2P邻居,若是,不为该报文封装TRILL头,直接将该报文转发给所述根桥;
表项下发模块:当从本RB的TRILL混合端口接收到MAC表项和对应的CVLAN ID时,若判定发送者为该CVLAN的TRILL分发树的根桥,则根据该CVLAN ID,将该MAC表项下发到驱动和软件中。
12.根据权利要求11所述的RB,其特征在于,所述接入端口报文处理模块进一步用于,当从本RB的TRILL接入端口接收到未知单播报文、且判定报文中的CVLAN ID对应的TRILL分发树的根桥不为本RB的P2P邻居,则为该报文封装组播TRILL头,TRILL头中的入口RB为本RB,出口RB为该CVLAN的TRILL分发树的根桥RB,将该报文发送出去。
13.根据权利要求11或12所述的RB,其特征在于,所述RB进一步包括混合端口报文处理模块:当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的P2P邻居RB,报文中的跳数值为默认值减1,将该报文发送出去,同时,将查找到的MAC表项和对应的CVLAN ID发送给所述P2P邻居RB。
14.根据权利要求13所述的RB,其特征在于,所述混合端口报文处理模块进一步用于,当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,若在驱动中未查找到对应的MAC表项,则为该报文封装组播TRILL头,将该报文发送出去,同时,在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
15.根据权利要求13所述的RB,其特征在于,所述混合端口报文处理模块进一步用于,当从本RB的TRILL混合端口接收到封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去;同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
16.根据权利要求11或12所述的RB,其特征在于,所述接入端口报文处理模块进一步用于,当从本RB的TRILL接入端口接收到单播报文,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,若查找到且发现该表项中的出口RB的下一跳RB有多个,且其中一个为报文中的CVLAN ID对应的TRILL分发树的根桥RB,则将该报文的下一跳定为该根桥RB进行转发。
17.根据权利要求11或12所述的RB,其特征在于,所述表项下发模块进一步用于,记录各类MAC表项的配置优先级:本地MAC表项最高、CVLAN的TRILL分发树的根桥发来的MAC表项次之、全网洪泛得来的以本RB为根桥的CVLAN的MAC表项再次之、全网洪泛得来的不以本RB为根桥的CVLAN的MAC表项最低;当要向软件和驱动下发新MAC表项时,按照MAC表项的优先级的从高到低,将MAC表项下发到软件和驱动中;且,当要向软件和驱动下发新MAC表项时,若发现驱动已满,则判断驱动中是否存在优先级低于该新MAC表项的表项,若是,则在驱动中选择优先级最低且剩余老化时长最小的表项,将所选择的表项从驱动中删除,将该新MAC表项下发到软件和驱动中;否则,只将该新MAC表项下发到软件中。
18.一种路由桥RB,位于多链接透明互联TRILL网络中,其特征在于,本RB上与其他RB互联的端口被配置为TRILL混合端口,同时对于任一TRILL混合端口,以本RB和与本端口直连的对端RB为分发树根桥的用户虚拟局域网CVLAN都被配置为本端口允许VLAN,该RB包括:
混合端口报文处理模块:当从本RB的TRILL混合端口接收到未封装TRILL头的单播报文时,根据报文中的CVLAN ID和目的MAC地址,在驱动中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项为该报文封装单播TRILL头,其中,TRILL头中的入口RB为该报文的入TRILL混合端口对应的点对点P2P邻居RB,报文中的跳数值为默认值减1,将该报文转发出去,同时,将该MAC表项和对应的CVLAN ID发送给所述P2P邻居RB,其中,所述未封装TRILL头的单播报文为:所述P2P邻居RB从自己的TRILL接入端口接收到未知单播报文时,在判定该报文中的CVLAN ID对应的TRILL分发树的根桥为本RB的P2P邻居的情况下发送给本RB的。
19.根据权利要求18所述的RB,其特征在于,所述混合端口报文处理模块进一步用于,当从TRILL混合端口接收到未封装TRILL头的单播报文时,若未在驱动中查找到对应的MAC表项,则为该报文封装组播TRILL头,将该报文发送出去;同时,在软件中查找对应的MAC表项,若查找到,则查找该报文的入TRILL混合端口对应的P2P邻居,将该MAC表项和对应的CVLAN ID发送给该P2P邻居。
20.根据权利要求18或19所述的RB,其特征在于,所述混合端口报文处理模块进一步用于,当从TRILL混合端口接收到封装了组播TRILL头的单播报文时,根据报文内部的CVLAN ID和目的MAC地址,在驱动和软件中查找对应的MAC表项,判断是否查找到,若是,按照查找到的MAC表项将该报文转发出去;同时,根据报文的TRILL头中的入口RB,将该MAC表项和对应的CVLAN ID发送给该入口RB。
CN201310251287.0A 2013-06-20 2013-06-20 未知单播报文转发方法及路由桥 Active CN103346962B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310251287.0A CN103346962B (zh) 2013-06-20 2013-06-20 未知单播报文转发方法及路由桥

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310251287.0A CN103346962B (zh) 2013-06-20 2013-06-20 未知单播报文转发方法及路由桥

Publications (2)

Publication Number Publication Date
CN103346962A CN103346962A (zh) 2013-10-09
CN103346962B true CN103346962B (zh) 2016-08-17

Family

ID=49281738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310251287.0A Active CN103346962B (zh) 2013-06-20 2013-06-20 未知单播报文转发方法及路由桥

Country Status (1)

Country Link
CN (1) CN103346962B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105530189B (zh) * 2014-09-29 2020-05-08 华为技术有限公司 Trill网络中转发报文的方法和路由桥
CN104836744B (zh) * 2015-05-29 2018-06-12 新华三技术有限公司 一种报文处理方法和装置
CN107124406A (zh) * 2017-04-21 2017-09-01 上海市共进通信技术有限公司 家庭网关对大流量未知单播攻击的保护系统及其方法
CN112804158B (zh) * 2021-03-31 2021-09-21 四川新网银行股份有限公司 一种交换机未知单播转发与控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694714A (zh) * 2011-03-21 2012-09-26 华为技术有限公司 Trill网络中发送报文的方法、装置、系统以及非转发网桥
CN102957616A (zh) * 2011-08-18 2013-03-06 盛科网络(苏州)有限公司 在asic中转发trill网络报文的方法及系统
CN103095579A (zh) * 2013-01-18 2013-05-08 华为技术有限公司 Trill网络互联方法、装置及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4437984B2 (ja) * 2005-08-24 2010-03-24 アラクサラネットワークス株式会社 ネットワーク中継装置及びその制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102694714A (zh) * 2011-03-21 2012-09-26 华为技术有限公司 Trill网络中发送报文的方法、装置、系统以及非转发网桥
CN102957616A (zh) * 2011-08-18 2013-03-06 盛科网络(苏州)有限公司 在asic中转发trill网络报文的方法及系统
CN103095579A (zh) * 2013-01-18 2013-05-08 华为技术有限公司 Trill网络互联方法、装置及系统

Also Published As

Publication number Publication date
CN103346962A (zh) 2013-10-09

Similar Documents

Publication Publication Date Title
US8885643B2 (en) Method for multicast flow routing selection
US9525563B2 (en) Forwarding packets in an edge device
US7653056B1 (en) Virtual switching using a provisional identifier to conceal a user identifier
CN101335708B (zh) 一种报文转发方法和一种运营商边缘汇聚设备
CN101616014B (zh) 一种实现跨虚拟专用局域网组播的方法
CN1938997A (zh) 在基于地址的运营商网络中的区分转发
CN103209132B (zh) 在透明多链路互联(trill)网络中实现组播的方法、装置及系统
CN104954265B (zh) 发送组播报文的方法及交换机
CN108259333A (zh) 一种bum流量控制方法、相关装置以及系统
CN102970227A (zh) 在asic中实现vxlan报文转发的方法和装置
CN103346962B (zh) 未知单播报文转发方法及路由桥
CN1992670A (zh) 一种以太网承载帧中继的方法
CN102158409B (zh) 一种ip报文转发控制方法及其设备
US7760723B1 (en) Relaying a data stream from a data device to a network tunnel
CN104601466B (zh) 一种路由控制方法、边界路由器
CN102510414A (zh) 一种传递主机名的方法和装置
CN105337884A (zh) 基于逻辑端口实现多级报文编辑业务控制的方法及装置
CN102857429B (zh) 在trill网络中承载路由的方法和装置
CN103685032B (zh) 报文转发方法及网络地址转换服务器
JP2022537296A (ja) Evpnメッセージ転送方法、システム、記憶媒体及び端末
EP2897328B1 (en) Method, system and apparatus for establishing communication link
CN105939285A (zh) 报文转发方法及装置
CN103138955A (zh) 在第2层网络中使用多个igmp查询器
CN102571375A (zh) 组播转发方法、装置及网络设备
CN102801622A (zh) 一种数据报文的转发方法及转发装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230609

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right