SPBM网络中的报文转发方法及装置
技术领域
本申请涉及网络通信技术领域,特别涉及一种SPBM网络中的报文转发方法及装置。
背景技术
SPB(Shortest Path Bridging,最短路径桥)是IEEE802.1aq定义的一种以太网标准,是MSTP(Multiple Spanning Tree Protocol,多生成树协议)的进一步延伸,旨在构建大型扁平的无阻塞二层网络。SPB使用SPB-IS-IS(Intermediate System toIntermediate System,中间系统到中间系统)来共享网络中的链路状态,且网络中的各个节点并行计算各节点之间的最短路径,避免了使用STP(Spanning Tree Protocol,生成树协议)协议带来的不稳定性和部分链路利用效率低下的不足。
IEEE802.1aq定义了两种SPB模式:VLAN模式(SPBV(Shortest Path BridgingVLAN Mode,VLAN模式的最短路径桥))和M-in-M(Mac-in-Mac)模式(SPBM(ShortestPath Bridging MAC Mode,M-in-M模式的最短路径桥))。SPBM模式继承了IEEE802.1ah规定的报文封装格式及多实例的思想,但重新定义了数据平面的转发方式和控制平面,由SPB-IS-IS来学习链路状态信息,并进行全网同步,计算转发路径。SPBM是一种二层VPN(Virtual Private Network,虚拟专用网络)技术,其网络模型与IEEE802.1ah定义的M-in-M网络模型基本一致。如图1所示,在SPBM网络中,骨干网络主要包括BEB和BCB等类型的设备以及这些设备之间的骨干链路。
下面对SPBM网络中涉及的各种技术术语进行解释如下:
BEB(Backbone Edge Bridge,骨干网边缘网桥):BEB设备是骨干网络的边缘设备,相当于MPLS(Multiprotocol Label Switching,多协议标签交换)网络中的PE(Provider Edge,服务提供商网络边缘)设备。它负责将来自用户网络的报文进行M-in-M封装,并将得到的M-in-M报文转发到骨干网络中,或者将来自骨干网络的M-in-M报文进行解封装,并转发到用户网络中。
BCB(Backbone Core Bridge,骨干网核心网桥):BCB设备是骨干网络的核心设备,相当于MPLS网络中的P设备。它负责按照B-MAC(Backbone MAC,骨干网MAC)和B-VLAN(Backbone VLAN,骨干网VLAN)转发M-in-M报文。BCB设备只需要转发报文和学习骨干网中的MAC地址,不需要学习用户网络中大量的MAC(Media Access Control,媒体访问控制)地址,从而降低了网络部署的成本,也为骨干网络提供了更好的可扩展性。
M-in-M报文:经过M-in-M封装的报文简称为M-in-M报文。
B-MAC/B-VLAN:BEB设备在对用户报文进行M-in-M封装时,会为用户报文打上运营商分配的MAC地址和VLAN(Virtual Local Area Network,虚拟局域网)。这个由运营商分配的MAC地址和VLAN就分别称为B-MAC和B-VLAN。在骨干网络中,BCB设备就是按照B-MAC和B-VLAN转发M-in-M报文的。B-MAC包括:源B-MAC和目的B-MAC,BEB设备在对用户报文进行M-in-M封装时,会将自己的MAC作为源B-MAC、将SPBM隧道目的端的BEB设备的MAC作为目的B-MAC进行封装。
骨干链路/接入链路:BEB设备与BCB设备之间、以及BCB设备之间的链路称为骨干链路,BEB设备连接用户网络的链路为接入链路。来自用户网络的用户报文被封装成M-in-M报文后,会通过BEB设备相应的骨干链路转发出去;而来自骨干网络的M-in-M报文被解封装后,会按照用户目的MAC地址通过BEB设备相应的接入链路转发出去。
服务实例和I-SID:在骨干网络中,一个服务实例代表一类业务或者用户,I-SID(Backbone Service Instance Identifier,骨干网服务实例编号)是服务实例的唯一编号。
(1)SPBM的数据平面
SPBM继承了IEEE802.1ah定义的M-in-M报文的封装格式,在M-in-M封装过程中,在用户原始的以太网报文的外层增加了服务实例、B-VLAN标签、B-MAC地址信息,骨干网络通过这些信息对封装得到的M-in-M报文进行转发。
下面对M-in-M报文中涉及的相关术语进行解释如下:
B-DA(Backbone Destination MAC address,骨干网目的MAC地址):即目的B-MAC,是M-in-M封装的外层目的MAC地址,为SPBM隧道目的端的BEB设备的MAC地址。
B-SA(Backbone Source MAC address,骨干网源MAC地址):即源B-MAC,是M-in-M封装的外层源MAC地址,为SPBM隧道源端的BEB设备的MAC地址。
B-Tag(Backbone VLAN Tag,骨干网VLAN标签):即B-VLAN Tag,是M-in-M封装的外层VLAN Tag,用来标识报文在骨干网中的VLAN和优先级信息,其TPID(Tag Protocol Identifier,标签协议标识)值固定为0x88a8。
I-Tag(Backbone Service Instance Tag,骨干网服务实例标签):M-in-M封装中的业务标记,包括:报文在BEB设备上处理时的传送优先级I-PCP和丢弃优先级I-DEI、标识服务实例的I-SID,其TPID值固定为0x88e7。
C-DA(Customer Destination MAC address,用户网络目的MAC地址):用户报文原始的目的MAC地址。
C-SA(Customer Destination MAC address,用户网络源MAC地址):用户报文原始的源MAC地址。
BEB设备从连接用户网络的用户侧端口收到用户报文后,根据报文入端口和VLAN映射到相应的服务实例中进行查表转发,如果查到的出接口为SPBM隧道口,则根据该服务实例与B-VLAN的映射关系,得到B-Tag,然后使用该服务实例的I-SID、B-Tag和B-MAC对该用户报文进行M-in-M隧道封装。经过M-in-M隧道封装后的报文进入SPT区域内之后,BCB设备根据报文头的B-MAC、B-VLAN进行转发。在B-VLAN内不动态学习MAC地址,丢弃全F的广播报文、未知地址的单播报文和未知地址的组播报文,且在报文Ingress时根据B-SA和B-VLAN进行RPF(Reverse PathForwarding,逆向路径转发)检查,以防止环路;B-VLAN内的转发表项包括:单播表项和组播表项,都由SPB-IS-IS下刷。骨干链路上只需要允许B-VLAN内的数据流通过。
(2)SPBM的控制平面
SPBM在B-VLAN内不动态学习MAC地址,其转发表项都是由控制平面SPB-IS-IS学习并下刷。SPB-IS-IS的功能包括:
1)建立SPB桥之间的IS-IS邻居,进行链路状态数据库的快速更新和同步。
2)I-SID的通告,负载分担算法的通告。
3)各个节点并行计算SPT(Shortest Path Tree,最短路径树),并给数据平面下发转发表项。
现有技术中,在SPBM网络中,每一个骨干网网桥设备(BEB设备或BCB设备)都会生成LSP(Link State PDU,链路状态协议数据单元),此LSP中包含了本设备的所有链路状态信息、B-MAC/B-VLAN以及I-SID的对应关系。当网络中的每一个骨干网网桥设备都收到其它设备的LSP信息后,会根据所有设备的LSP计算出SPBM网络的网络拓扑,再根据该网络拓扑,以本设备为根节点计算SPT树,根据计算得到的SPT树生成相应的转发表项下发到数据平面。数据平面根据这些转发表项进行报文的处理。后续,当网络中的某一条链路发生故障时,每一个骨干网网桥设备都需要重新计算SPT树并重新下发转发表项,之后才能最终使得被中断的数据流通过新的转发路径继续传送,这样,就导致在某一条链路故障时,数据流的恢复时间较长,丢包时间也比较长。
发明内容
本申请提供了一种SPBM网络中的报文转发方法及装置,以解决现有技术中存在的在某一条链路故障时,数据流的恢复时间较长,丢包时间也比较长的问题。
本申请的技术方案如下:
一方面,提供了一种SPBM网络中的报文转发方法,该SPBM网络中包括:多个BEB设备和BCB设备,该方法应用于BEB设备,该方法包括:
针对每一个其他BEB设备,计算一条本设备与该其他BEB设备之间的最短转发路径作为主用转发路径,以及在假定主用转发路径中断的情况下,计算一条本设备与该其他BEB设备之间的最短转发路径作为备用转发路径;
当要向第一BEB设备发送数据流时,通过本设备与第一BEB设备之间的主用转发路径和备用转发路径发送数据流;
当检测到本设备与第一BEB设备之间的主用转发路径中断时,通过本设备与第一BEB设备之间的备用转发路径发送数据流。
另一方面,还提供了一种SPBM网络中的报文转发方法,该SPBM网络中包括:多个BEB设备和BCB设备,BEB设备具有主用MAC地址和备用MAC地址,该方法应用于BCB设备,该方法包括:
接收SPBM网络中的BEB设备的主用MAC地址和备用MAC地址;
计算SPBM网络的网络拓扑,根据该网络拓扑,以本设备为根节点计算SPT树,确定到每一个BEB设备的出端口;针对每一个BEB设备,将包含有该BEB设备的主用MAC地址及其对应的B-VLAN、确定的到该BEB设备的出端口的表项配置到B-MAC地址表中;
针对该网络拓扑中的任意两个BEB设备,在假定两个BEB设备之间的最短转发路径中断的情况下,重新计算SPBM网络的网络拓扑,根据重新计算的网络拓扑,以本设备为根节点计算SPT树,确定到每一个BEB设备的出端口;针对每一个BEB设备,将包含有该BEB设备的备用MAC地址及其对应的B-VLAN、确定的到该BEB设备的出端口的表项配置到B-MAC地址表中;
接收到M-in-M报文之后,根据接收的M-in-M报文中的目的B-MAC地址和B-VLAN,在B-MAC地址表中查找到对应的出端口,将接收的M-in-M报文通过查找到的出端口转发出去。
又一方面,还提供了一种SPBM网络中的报文转发装置,该SPBM网络中包括:多个BEB设备和BCB设备,该装置应用于BEB设备,该装置包括:
路径计算模块,用于针对每一个其他BEB设备,计算一条本设备与该其他BEB设备之间的最短转发路径作为主用转发路径,以及在假定主用转发路径中断的情况下,计算一条本设备与该其他BEB设备之间的最短转发路径作为备用转发路径;
检测模块,用于检测本设备与其他BEB设备之间的主用转发路径和备用转发路径的状态;
收发处理模块,用于当要向第一BEB设备发送数据流时,通过本设备与第一BEB设备之间的主用转发路径和备用转发路径发送数据流;还用于当检测模块检测到本设备与第一BEB设备之间的主用转发路径中断时,通过本设备与第一BEB设备之间的备用转发路径发送数据流。
又一方面,还提供了一种SPBM网络中的报文转发装置,该SPBM网络中包括:多个BEB设备和BCB设备,BEB设备具有主用MAC地址和备用MAC地址,该装置应用于BCB设备,该装置包括:
接收模块,用于接收SPBM网络中的BEB设备的主用MAC地址和备用MAC地址;还用于接收M-in-M报文;
配置模块,用于计算SPBM网络的网络拓扑,根据该网络拓扑,以本设备为根节点计算SPT树,确定到每一个BEB设备的出端口,针对每一个BEB设备,将包含有该BEB设备的主用MAC地址及其对应的B-VLAN、确定的到该BEB设备的出端口的表项配置到B-MAC地址表中;还用于针对该网络拓扑中的任意两个BEB设备,在假定两个BEB设备之间的最短转发路径中断的情况下,重新计算SPBM网络的网络拓扑,根据重新计算的网络拓扑,以本设备为根节点计算SPT树,确定到每一个BEB设备的出端口,针对每一个BEB设备,将包含有该BEB设备的备用MAC地址及其对应的B-VLAN、确定的到该BEB设备的出端口的表项配置到B-MAC地址表中;
查找模块,用于在接收模块接收到M-in-M报文之后,根据接收的M-in-M报文中的目的B-MAC地址和B-VLAN,在B-MAC地址表中查找到对应的出端口,将接收的M-in-M报文通过查找到的出端口转发出去。
在本申请的技术方案中,针对每一个其他BEB设备,本BEB设备在计算出一条从本设备到该其他BEB设备之间的最短转发路径之后,还会在假定该转发路径中断的情况下,再计算一条从本设备到该其他BEB设备之间的最短转发路径作为备用转发路径,而最先计算出的那一条作为主用转发路径,当要向某一个其他BEB设备,称为第一BEB设备发送数据流时,会使用本设备与第一BEB设备之间的主用转发路径和备用转发路径同时发送该数据流,这样,当检测到本设备与第一BEB设备之间的主用转发路径发生故障而中断后,由于主用转发路径中断了,因此通过主用转发路径发送的数据流无法到达第一BEB设备,但是,通过备用转发路径的数据流仍然可以达到第一BEB设备。由于预先计算出了两条转发路径:主用转发路径和备用转发路径,发送数据时,同时使用这两条转发路径发送数据流,这样,就可以在一条转发路径中断后,数据流可以不中断地通过另一条转发路径发送给目的端,从而,数据流不会因为一条转发路径的中断而被中断,解决了现有技术存在的数据流的恢复时间较长,丢包时间也比较长的问题。
附图说明
图1是一种SPBM网络的典型组成示意图;
图2是本申请的实施例一的SPBM网络中的报文转发方法的流程图;
图3是本申请的实施例二的一种实际的SPBM网络的结构示意图;
图4是图3中的在假定BEB1与BEB2之间的主用转发路径中断的情况下的SPBM网络的网络拓扑图;
图5是本申请的实施例三的应用于BEB设备的报文转发装置的结构示意图;
图6是本申请的实施例三的应用于BCB设备的报文转发装置的结构示意图。
具体实施方式
为了解决现有技术中存在的在某一条链路故障时,数据流的恢复时间较长,丢包时间也比较长的问题,本申请的以下实施例中提供了一种SPBM网络中的报文转发方法以及一种可以应用该方法的报文转发装置。
本申请实施例的技术方案中,针对每一个其他BEB设备,本BEB设备在计算出一条从本设备到该其他BEB设备之间的最短转发路径之后,还会在假定该转发路径中断的情况下,再计算一条从本设备到该其他BEB设备之间的最短转发路径作为备用转发路径,而最先计算出的那一条作为主用转发路径,当要向某一个其他BEB设备,称为第一BEB设备发送数据流时,会使用本设备与第一BEB设备之间的主用转发路径和备用转发路径同时发送该数据流,这样,当检测到本设备与第一BEB设备之间的主用转发路径发生故障而中断后,由于主用转发路径中断了,因此通过主用转发路径发送的数据流无法到达第一BEB设备,但是,通过备用转发路径的数据流仍然可以达到第一BEB设备。由于预先计算出了两条转发路径:主用转发路径和备用转发路径,发送数据时,同时使用这两条转发路径发送数据流,这样,就可以在一条转发路径中断后,数据流可以不中断地通过另一条转发路径发送给目的端,从而,数据流不会因为一条转发路径的中断而被中断,解决了现有技术存在的数据流的恢复时间较长,丢包时间也比较长的问题。
在以下的实施例中,SPBM网络中包括:多个BEB设备和BCB设备。
实施例一
本申请的实施例一的SPBM网络中的报文转发方法包括以下两个方面的内容:BEB设备执行的方法以及BCB设备执行的方法:
1、BEB设备
该方法可以由SPBM网络中的任一BEB设备来执行。如图2所示,该方法包括以下步骤:
步骤S202,针对每一个其他BEB设备,计算一条本设备与该其他BEB设备之间的最短转发路径作为主用转发路径,以及在假定该主用转发路径中断的情况下,计算一条本设备与该其他BEB设备之间的最短转发路径作为备用转发路径;
本设备与每一个其他BEB设备之间都计算出了两条转发路径:主用转发路径和备用转发路径,当要向某一个其他BEB设备发送数据流时,同时使用本设备与该其他BEB设备的主用转发路径和备用转发路径发送该数据流,这样,就发送了两份相同的数据流,但是,该其他BEB设备只能接收一份数据流。本申请实施例中,规定该其他BEB设备只能接收主用转发路径上的数据流,而需要丢弃备用转发路径上的数据流,即,数据流是双发单收的。
为了实现数据流的双发单收,每一个BEB设备需要具有两个MAC地址:一个主用MAC地址和一个备用MAC地址,主用转发路径使用主用MAC地址,备用转发路径使用备用MAC地址。这样,在上述的方法中,BEB设备还需要向外通告本设备的主用MAC地址和备用MAC地址,以及,接收其他BEB设备的主用MAC地址和备用MAC地址。在实际实施过程中,可以扩展现有的SPB IS-IS(Intermediate System-to-Intermediate System,中间系统到中间系统)协议报文,例如,Hello(握手)报文来携带BEB设备的主用MAC地址和备用MAC地址。BEB设备在与直连的邻居设备建立邻居关系时,可以通过该扩展的SPB IS-IS协议报文来向外通告本设备的主用MAC地址和备用MAC地址。
则,在步骤S202中,针对每一个其他BEB设备,计算一条本设备与该其他BEB设备之间的最短转发路径作为主用转发路径的方法包括以下步骤11-12:
步骤11:计算SPBM网络的网络拓扑,根据该网络拓扑,以本设备为根节点计算SPT树,确定到该其他BEB设备的出端口和作为主用转发路径的最短转发路径;
在现有技术中,SPBM网络中的BEB设备和BCB设备均会生成LSP信息并向外通告,BEB和BCB设备在接收到SPBM网络中其他设备(包括BEB设备和BCB设备)的LSP信息后,会根据全网的LSP信息(包括本设备的LSP信息和其他设备的LSP信息)计算出SPBM网络的网络拓扑,从而,能够根据该网络拓扑,计算SPT树。计算出SPT树,即可确定出本设备与该其他BEB设备之间的最短转发路径,将该最短转发路径作为主用转发路径,以及可以确定出本设备通过该主用转发路径到该其他BEB设备的出端口。
步骤12:将本设备与该其他BEB设备之间的主用转发路径对应的表项配置到B-MAC地址表中,其中,该表项可以如表1-1所示:
表1-1
在表1中,本设备与该其他BEB设备之间的主用转发路径对应的表项中包括:隧道ID(假设为1)、本设备的主用MAC地址、该其他BEB设备的主用MAC地址、对应的B-VLAN、在步骤11中确定的到该其他BEB设备的出端口、和转发属性,该转发属性为Ingress(入)及Egress(出)。其中,所述对应的B-VLAN是本设备的主用MAC地址和该其他BEB设备的主用MAC地址所属的VLAN;Ingress为入标志,即,对报文进行M-in-M封装,Egress为出标志,即,对报文进行M-in-M解封装;该表项中的转发属性为Ingress及Egress,则表示该表项对应的主用转发路径能够用于发送和接收;隧道ID是本设备与该其他BEB设备之间的SPBM隧道的ID。
在步骤S202中,针对每一个其他BEB设备,在假定所述主用转发路径中断的情况下,计算一条本设备与该其他BEB设备之间的最短转发路径作为备用转发路径的方法包括以下步骤21-22:
步骤21:在假定所述主用转发路径中断的情况下,重新计算SPBM网络的网络拓扑,根据重新计算的网络拓扑,以本设备为根节点计算SPT树,确定到该其他BEB设备的出端口和作为备用转发路径的最短转发路径;
此时确定出的到该其他BEB设备的出端口,即为本设备通过该备用转发路径到该其他BEB设备的出端口。
步骤22:将本设备与该其他BEB设备之间的备用转发路径对应的表项配置到B-MAC地址表中,此时,表1-1更新为表1-2或表1-3:
表1-2
在表1-2中,本设备与该其他BEB设备之间的备用转发路径对应的表项中包括:隧道ID:1、本设备的备用MAC地址、该其他BEB设备的备用MAC地址、对应的B-VLAN、在步骤21中确定的到该其他BEB设备的出端口、和转发属性,该转发属性是Ingress。其中,该备用转发路径对应的表项中的隧道ID与上述主用转发路径对应的表项中的隧道ID应该相同;所述对应的B-VLAN是本设备的备用MAC地址和该其他BEB设备的备用MAC地址所属的VLAN;该表项中的转发属性为Ingress,则表示该表项对应的备用转发路径仅能够用于发送,不能用于接收。
表1-3
在表1-3中,本设备与该其他BEB设备之间的备用转发路径对应的表项中包括:隧道ID:2、本设备的备用MAC地址、该其他BEB设备的备用MAC地址、对应的B-VLAN、在步骤21中确定的到该其他BEB设备的出端口、和转发属性,该转发属性是Ingress。其中,该备用转发路径对应的表项中的隧道ID与上述主用转发路径对应的表项中的隧道ID是不同的、且两者具有绑定关系,即隧道ID1与隧道ID2绑定;所述对应的B-VLAN是本设备的备用MAC地址和该其他BEB设备的备用MAC地址所属的VLAN;该表项中的转发属性为Ingress,则表示该表项对应的备用转发路径仅能够用于发送,不能用于接收。
通过上述步骤11-12和步骤21-22,能够确保主用转发路径和备用转发路径均用于发送,但是,仅主用转发路径用于接收,而备用转发路径不用于接收。
步骤S204,当要向某一个其他BEB设备,称为第一BEB设备发送数据流时,通过本设备与第一BEB设备之间的主用转发路径和备用转发路径发送所述数据流;
在步骤S204中,通过本设备与第一BEB设备之间的主用转发路径和备用转发路径发送所述数据流的方法包括以下步骤31-35:
步骤31:接收来自用户网络的以太网报文,确定与接收的以太网报文的C-VLAN(Customer Virtual Local Area Network,用户网络虚拟局域网)和入端口对应的服务实例;
由于BEB设备上保存有端口和C-VLAN与服务实例的对应关系,因此,在接收到以太网报文后,可以根据该以太网报文的入端口(即,接收到该以太网报文的端口)和该以太网报文中携带的C-VLAN,查找到对应的以I-SID标识的服务实例。
步骤32:根据该以太网报文的目的C-MAC地址和在步骤31中确定的服务实例,在如表2所示的C-MAC地址表中查找到对应的出接口;
表2
在表2中,对于学习到的本地用户网络中的MAC地址(即C-MAC地址),其对应的出接口是实际的物理端口。例如,在接收到一个以太网报文后,若该以太网报文中的源MAC地址是未知的,就将包含有该源MAC地址、该以太网报文的入端口和对应的I-SID的表项配置到如表2所示的C-MAC地址表中。
对于学习到的远端用户网络中的MAC地址,其对应的出接口就是本BEB设备与连接该远端用户网络的其他BEB设备之间的SPBM隧道的隧道ID。例如,在接收到一个M-in-M报文后,根据该M-in-M报文中携带的源B-MAC地址和B-VLAN,在如表1-2所示的B-MAC地址表中查找到转发属性中包含有Egress的对应表项,按照该Egress对该M-in-M报文进行解封装得到以太网报文,若该以太网报文中的源MAC地址(即源C-MAC地址)是未知的,则将包含有:该源MAC地址、查找到的表项中的隧道ID、以及该M-in-M报文中的I-SID的表项配置到如表2所示的C-MAC地址表中。
步骤33:若查找到的出接口是隧道ID所标识的隧道,则根据该隧道ID在如表1-2或表1-3所示的B-MAC地址表中查找到两个表项,按照这两个表项对该以太网报文进行复制;
在表1-2中,由于一个隧道ID对应于两个表项:一个是该隧道ID所标识的隧道两端的BEB设备之间的主用转发路径对应的表项,另一个是备用转发路径对应的表项,因此,通过一个隧道ID能够在如表1-2所示的B-MAC地址表中查找到与该隧道ID对应的两个表项。
在表1-3中,由于备用转发路径对应的表项中的隧道ID与主用转发路径对应的表项中的隧道ID是不同的、但是两者具有绑定关系,因此,在步骤32中查找到出接口是主用转发路径对应的表项中的隧道ID(例如为1)之后,可以查找到与该隧道ID1绑定的隧道ID2,即,查找到备用转发路径对应的表项中的隧道ID,从而,在如表1-3所示的B-MAC地址表中分别查找到与隧道ID1和隧道ID2对应的表项。
由于查找到两个表项,需要分别按照这两个表项对以太网报文进行封装转发,因此,需要将该以太网报文复制,从而得到两个相同的以太网报文。
在步骤33中,查找到的两个表项应该是:本设备与第一BEB设备之间的主用转发路径对应的表项和备用转发路径对应的表项,如表3-1或表3-2所示:
表3-1
表3-2
在表3-1中,假设主用转发路径对应的表项中的隧道ID和备用转发路径对应的表项中的隧道ID均为5;在表3-2中,假设主用转发路径对应的表项中的隧道ID为5,备用转发路径对应的表项中的隧道ID为6。
步骤34:按照如表3-1或表3-2所示的两个表项中的一个表项(即表3-1或表3-2中的第2行)的转发属性中的Ingress,根据该表项中的本设备的主用MAC地址、第一BEB设备的主用MAC地址、对应的B-VLAN、以及在步骤31中确定的服务实例的I-SID,对复制的以太网报文进行M-in-M封装,并通过该表项中的出端口将封装后的M-in-M报文发送出去;
这样,实现了通过本设备与第一BEB设备之间的主用转发路径发送数据流。
步骤35:按照另一个表项(即表3-1或表3-2中的第3行)的转发属性中的Ingress,根据该表项中的本设备的备用MAC地址、第一BEB设备的备用MAC地址、对应的B-VLAN、以及在步骤31中确定的服务实例的I-SID,对复制的以太网报文进行M-in-M封装,并通过该表项中的出端口将封装后的M-in-M报文发送出去。
这样,实现了通过本设备与第一BEB设备之间的备用转发路径发送数据流。
步骤S206,当检测到本设备与第一BEB设备之间的主用转发路径中断时,通过本设备与第一BEB设备之间的备用转发路径发送数据流。
由于同时使用主用转发路径和备用转发路径发送数据流,当主用转发路径中断时,主用转发路径上的数据流无法到达第一BEB设备,但是,备用转发路径上的数据流能够达到第一BEB设备。
上述步骤S204-S206描述了本设备向第一BEB设备发送数据流的具体操作流程,同样,第一BEB设备也会向本设备发送数据流,此时,本设备需要执行的报文转发方法还包括以下步骤:
步骤S302,当从本设备与第一BEB设备之间的主用转发路径上接收到第一BEB设备发来的M-in-M报文时,对该M-in-M报文进行M-in-M解封装后转发到本地的用户网络;
具体的,步骤S302具体包括以下步骤41-43:
步骤41:接收到M-in-M报文,其中,该M-in-M报文中的源B-MAC地址和B-VLAN分别为第一BEB设备的主用B-MAC地址及其对应的B-VLAN,目的B-MAC地址为本设备的主用B-MAC地址;
步骤42:根据该M-in-M报文中的目的B-MAC地址和B-VLAN,在如表3-1或表3-2所示的B-MAC地址表中查找到转发属性中包含有Egress的匹配表项,即表3-1或表3-2中的第2行,则按照该匹配表项中的转发属性中的Egress,对该M-in-M报文进行M-in-M解封装得到以太网报文;
步骤43:根据解封装后的以太网报文中的目的C-MAC地址和该M-in-M报文中的I-SID,在C-MAC地址表中查找到对应的出接口,假设,该出接口是本设备连接主机1的端口,通过查找到的出接口将该以太网报文发送到本地的用户网络中。
最终,该以太网报文能够到达主机1。
步骤S304,当从本设备与第一BEB设备之间的备用转发路径上接收到第一BEB设备发来的M-in-M报文时,丢弃该M-in-M报文。
具体的,步骤S304具体包括以下步骤51-53:
步骤51:接收到M-in-M报文,其中,该M-in-M报文中的源B-MAC地址和B-VLAN分别为第一BEB设备的备用B-MAC地址及其对应的B-VLAN,目的B-MAC地址为本设备的备用B-MAC地址;
步骤52:根据该M-in-M报文中的目的B-MAC地址和B-VLAN,在如表3-1或表3-2所示的B-MAC地址表中没有查找到转发属性中包含有Egress的匹配表项(因为表3-1或表3-2中的第3行的转发属性中不包含Egress),则丢弃该M-in-M报文。
通过上述的步骤S302-S304,实现了仅接收主用转发路径上的数据流,而不接收备用转发路径上的数据流。
由于在主用转发路径中断后,需要使用备用转发路径来发送和接收数据流,因此此时,在上述方法中还包括:当检测到本设备与第一BEB设备之间的主用转发路径中断时,将如表3-1或表3-2所示的B-MAC地址表中的本设备与第一BEB设备之间的主用转发路径对应的表项(即表3-1或表3-2中的第2行)中的转发属性修改为Ingress,将本设备与第一BEB设备之间的备用转发路径对应的表项(即表3-1或表3-2中的第3行)中的转发属性修改为Ingress及Egress;此时,如表3-1所示的B-MAC地址表更新为如表4-1所示,如表3-2所示的B-MAC地址表更新为如表4-2所示:
表4-1
表4-2
这样,在主用转发路径中断后,就可以使用备用转发路径来接收数据流了。
后续,当主用转发路径恢复正常时,需要重新使用主用转发路径接收数据流,因此,在上述的方法中还包括:当检测到本设备与第一BEB设备之间的主用转发路径恢复正常时,将如表4-1或表4-2所示的B-MAC地址表中的本设备与第一BEB设备之间的主用转发路径对应的表项中的转发属性修改为Ingress及Egress,将本设备与第一BEB设备之间的备用转发路径对应的表项中的转发属性修改为Ingress。此时,如表4-1所示的B-MAC地址表恢复为了如表3-1所示,如表4-2所示的B-MAC地址表恢复为了如表3-2所示。
这样,在主用转发路径恢复正常后,就可以重新使用主用转发路径来接收数据流了。
2、BCB设备
本方法可以由SPBM网络中的任意一个BCB设备执行。为了实现上述的方法,负责在BEB设备之间转发M-in-M报文的BCB设备需要执行以下方法:
步骤S402,接收SPBM网络中的BEB设备的主用MAC地址和备用MAC地址;
在实际实施过程中,在建立邻居关系时,BEB设备会向外通告本设备的主用MAC地址和备用MAC地址,因此,BCB设备能够接收到BEB设备的主用MAC地址和备用MAC地址。
步骤S404,计算SPBM网络的网络拓扑,根据该网络拓扑,以本设备为根节点计算SPT树,确定到每一个BEB设备的出端口;针对每一个BEB设备,将包含有该BEB设备的主用MAC地址及其对应的B-VLAN、确定的到该BEB设备的出端口的表项配置到B-MAC地址表中,如表5-1所示:
表5-1
在现有技术中,SPBM网络中的BEB设备和BCB设备均会生成LSP信息并向外通告,BEB和BCB设备在接收到SPBM网络中其他设备(包括BEB设备和BCB设备)的LSP信息后,会根据所有设备的LSP信息(包括本设备的LSP信息和其他设备的LSP信息)计算出SPBM网络的网络拓扑,从而,能够根据该网络拓扑,计算SPT树。计算出SPT树,即可确定出本设备到每一个BEB设备的出端口,还能确定出任意两个BEB设备之间的最短转发路径,即为这两个BEB设备之间的主用转发路径。
也就是说,按照现有技术计算SPT树并配置转发表项,但是,此时配置的转发表项中的B-MAC地址是BEB设备的主用MAC地址。从而,针对任意两个BEB设备之间的主用转发路径,配置了相应的转发表项。
步骤S406,针对在步骤S404中计算的网络拓扑中的任意两个BEB设备,在假定这两个BEB设备之间的最短转发路径(即主用转发路径)中断的情况下,重新计算SPBM网络的网络拓扑,根据重新计算的网络拓扑,以本设备为根节点计算SPT树,确定到每一个BEB设备的出端口;针对每一个BEB设备,将包含有该BEB设备的备用MAC地址及其对应的B-VLAN、确定的到该BEB设备的出端口的表项配置到B-MAC地址表中,此时,表5-1更新为表5-2;
表5-2
针对任意两个BEB设备,在假定这两个BEB设备之间的主用转发路径中断的情况下,重新计算网络拓扑,并在重新计算的网络拓扑中,按照现有技术计算SPT树和配置转发表项,但是,此时配置的转发表项中的B-MAC地址是BEB设备的备用MAC地址。在重新计算的网络拓扑中,这两个BEB设备之间的最短转发路径即为备用转发路径,从而,针对任意两个BEB设备之间的备用转发路径,配置了相应的转发表项。
步骤S408,接收到M-in-M报文之后,根据接收的M-in-M报文中的目的B-MAC地址和B-VLAN,在B-MAC地址表中查找到对应的出端口,将所述接收的M-in-M报文通过查找到的出端口转发出去。
这样,针对任意两个BEB设备之间的主用转发路径和备用转发路径,BCB设备均配置了相应的转发表项,从而,能够将主用转发路径和备用转发路径上接收到的M-in-M报文按照相应的表项直接转发出去。
实施例二
以图3所示的一种实际的SPBM网络为例,详细说明上述实施例一的方法。在图3中,BEB设备BEB1和BEB2连接用户网络,BCB设备BCB1连接BEB1和BEB2,BEB1连接BEB2。BEB1的主用MAC地址是VLAN10的1-1-1、备用MAC地址是VLAN20的2-2-2,BEB2的主用MAC地址是VLAN10的3-3-3、备用MAC地址是VLAN20的4-4-4。在图3中,各个设备之间连接的端口如表6所示:
表6
端口标识 |
说明 |
PORT1 |
BEB1上连接至BEB2的端口 |
PORT2 |
BEB1上连接至BCB1的端口 |
PORT1’ |
BEB1上连接至用户网络的端口 |
PORT3 |
BEB2上连接至BEB1的端口 |
PORT4 |
BEB2上连接至BCB1的端口 |
PORT5 |
BCB1上连接至BEB2的端口 |
PORT6 |
BCB1上连接至BEB1的端口 |
以BEB1为例,BEB1需要执行的操作包括以下步骤:
步骤S501,接收BEB2发来的携带有BEB2的主用MAC地址:VLAN10的1-1-1和备用MAC地址:VLAN20的2-2-2的SPB IS-IS协议报文,以及,接收BEB2、BCB1和BCB2发来的携带有各自的LSP信息的SPB IS-IS协议报文;
步骤S502,根据本设备的LSP信息和BEB2、BCB1和BCB2的LSP信息,即全网的LSP信息,计算出SPBM网络的网络拓扑,即,如图3所示的网络拓扑;
步骤S503,根据如图3所示的网络拓扑,以本设备为根节点计算SPT树,以确定到BEB2的最短转发路径(作为主用转发路径)和出端口;将本设备与BEB2之间的主用转发路径对应的表项配置到B-MAC地址表中,如表7-1所示:
表7-1
由于在步骤S503中,确定出的BEB1与BEB2的最短转发路径为:BEB1→BEB2,出端口为PORT1。因此,配置的本设备与BEB2之间的主用转发路径对应的表项如表7-1所示,其中,转发属性为Ingress及Egress。
步骤S504,在假定BEB1与BEB2主用转发路径BEB1→BEB2中断的情况下,例如,发生了故障,重新计算网络拓扑,此时的计算出的网络拓扑如图4所示;
步骤S505,根据如图4所示的网络拓扑,以本设备为根节点计算SPT树,以确定到BEB2的最短转发路径(作为备用转发路径)和出端口;将本设备与BEB2之间的备用转发路径对应的表项配置到如表7-1所示的B-MAC地址表中,此时表7-1更新为表7-2:
表7-2
由于在步骤S505中,确定出的BEB1与BEB2的最短转发路径为:BEB1→BCB1→BEB2,出端口为PORT2。因此,配置的本设备与BEB2之间的备用转发路径对应的表项如表7-2的第3行所示,其中,转发属性为Ingress,隧道ID与主用转发路径对应的表项中的隧道ID相同。
步骤S506,接收到来自用户网络的以太网报文,该以太网报文的VLAN ID(即C-VLAN ID)是10,目的MAC地址(即C-MAC)是1-2-3,根据C-VLAN10和该以太网报文的入端口确定出对应的服务实例,假设对应的服务实例的I-SID为100;
步骤S508,根据该以太网报文的目的C-MAC地址:1-2-3和I-SID100,在如表8所示的C-MAC地址表中查找到对应的出接口为隧道2;
表8
目的C-MAC地址 |
I-SID |
出接口 |
1-2-3 |
100 |
隧道2 |
2-3-4 |
100 |
PORT1’ |
在表8中,隧道2表示隧道ID为2的隧道。
步骤S507,在如表7-2所示的B-MAC地址表中查找到与该隧道ID:2对应的两个表项,即,表7-2中的第2行和第3行,按照这两个表项对该以太网报文进行复制;
步骤S508,按照这两个表项中的一个表项(即表7-2的第2行)的转发属性中的Ingress,根据该表项中的1-1-1、3-3-3、B-VLAN10、以及I-SID100,对复制的以太网报文进行M-in-M封装,并通过该表项中的PORT1将封装后的M-in-M报文发送出去;按照另一个表项的转发属性中的Ingress,根据该表项中的2-2-2、4-4-4、对应的B-VLAN、以及I-SID100,对复制的以太网报文进行M-in-M封装,并通过该表项中的PORT2将封装后的M-in-M报文发送出去。从而,BEB2会收到两份M-in-M报文。
步骤S509,当检测到本设备与BEB2之间的主用转发路径发生故障或恢复正常时,仍然按照上述的步骤S506-S508发送报文。
BEB2执行的操作与上述步骤S501-S508类似,这里不再赘述。同样,BEB1也会收到BEB2发来的两份M-in-M报文。
BEB1对于接收的M-in-M报文的处理流程如下:
步骤S601,接收到M-in-M报文;
步骤S602,当该M-in-M报文中的源B-MAC地址为:3-3-3、目的B-MAC地址为1-1-1、B-VLAN为10、I-SID为100时,根据该M-in-M报文中的目的B-MAC地址1-1-1和B-VLAN10,在如表7-2所示的B-MAC地址表中查找到转发属性中包含有Egress的匹配表项,即,表7-2的第2行,则按照该匹配表项中的转发属性中的Egress,对该M-in-M报文进行M-in-M解封装,得到以太网报文,其中,该以太网报文中的目的C-MAC地址是2-3-4;
步骤S603,根据解封装后的以太网报文中的目的C-MAC地址2-3-4和该M-in-M报文中的I-SID100,在如表8所示的C-MAC地址表中查找到对应的出接口PORT1’,通过PORT1’将该以太网报文发送到本地的用户网络中;
步骤S604,当该M-in-M报文中的源B-MAC地址为:4-4-4、目的B-MAC地址为2-2-2、B-VLAN为20、I-SID为100时,根据该M-in-M报文中的目的B-MAC地址2-2-2和B-VLAN20,在如表7-2所示的B-MAC地址表中没有查找到转发属性中包含有Egress的匹配表项(表7-2的第3行的转发属性中不包含Egress),则丢弃该M-in-M报文;
步骤S605,当检测到本设备与BEB2之间的主用转发路径发生故障时,将如表7-2所示的B-MAC地址表中主用转发路径对应的表项中的转发属性修改为Ingress,将备用转发路径对应的表项中的转发属性修改为Ingress&Egress,此时,表7-2更新为表7-3;之后,接收到的M-in-M报文后,当该M-in-M报文中的源B-MAC地址为:3-3-3、目的B-MAC地址为1-1-1、B-VLAN为10、I-SID为100时,根据该M-in-M报文中的目的B-MAC地址1-1-1和B-VLAN10,在如表7-3所示的B-MAC地址表中没有查找到转发属性中包含有Egress的匹配表项(表7-3的第2行的转发属性中不包含Egress),则丢弃该M-in-M报文;当该M-in-M报文中的源B-MAC地址为:4-4-4、目的B-MAC地址为2-2-2、B-VLAN为20、I-SID为100时,根据该M-in-M报文中的目的B-MAC地址2-2-2和B-VLAN20,在如表7-3所示的B-MAC地址表中查找到转发属性中包含有Egress的匹配表项,即,表7-3的第3行,则按照该匹配表项中的转发属性中的Egress,对该M-in-M报文进行M-in-M解封装,得到以太网报文,并按照步骤S603转发到本地用户网络。
表7-3
步骤S606,当检测到本设备与BEB2之间的主用转发路径故障恢复时,将表7-3重新更新为表7-2,之后,接收到M-in-M报文后,仍然按照步骤S602-S604处理。
以BCB1为例,BCB1需要执行的操作包括以下步骤:
步骤S701,接收BEB1发来的携带有BEB1的主用MAC地址VLAN10的1-1-1和备用MAC地址VLAN20的2-2-2的SPB IS-IS协议报文以及携带有BEB1的LSP信息的SPB IS-IS协议报文,接收BEB2发来的携带有BEB2的主用MAC地址VLAN10的3-3-3和备用MAC地址VLAN20的4-4-4的SPB IS-IS协议报文以及携带有BEB2的LSP信息的SPB IS-IS协议报文;
步骤S702,根据本设备的LSP信息和BEB1、BEB2的LSP信息,即全网的LSP信息,计算出SPBM网络的网络拓扑,即,如图3所示的网络拓扑;
步骤S703,根据如图3所示的网络拓扑,以本设备为根节点计算SPT树,确定到BEB1的出端口PORT6以及到BEB2的出端口PORT5;针对BEB1,将包含有BEB1的主用MAC地址及其对应的B-VLAN、确定的到BEB1的出端口的表项配置到B-MAC地址表中,以及,针对BEB2,将包含有BEB2的主用MAC地址及其对应的B-VLAN、确定的到BEB2的出端口的表项配置到B-MAC地址表中,如表9-1所示:
表9-1
目的B-MAC地址 |
B-VLAN |
出端口 |
1-1-1 |
10 |
PORT6 |
3-3-3 |
10 |
PORT5 |
步骤S704,针对如图3所示的网络拓扑中的BEB1和BEB2,在假定BEB1与BEB2之间的最短转发路径(即主用转发路径)中断的情况下,重新计算SPBM网络的网络拓扑,如图4所示;
由于在步骤S703中,BCB1以本设备为根节点计算SPT树时,还能够确定出BEB1与BEB2之间的最短转发路径,即主用转发路径,因此,能够在假定BEB1与BEB2之间的主用转发路径中断的情况下,计算出此时的网络拓扑。
步骤S705,根据如图4所示的网络拓扑,以本设备为根节点计算SPT树,确定到BEB1的出端口PORT6以及到BEB2的出端口PORT5;针对BEB1,将包含有BEB1的主用MAC地址及其对应的B-VLAN、确定的到BEB1的出端口的表项配置到如表9-1所示的B-MAC地址表中,以及,针对BEB2,将包含有BEB2的主用MAC地址及其对应的B-VLAN、确定的到BEB2的出端口的表项配置到如表9-1所示的B-MAC地址表中,此时,表9-1更新为9-2:
表9-2
目的B-MAC地址 |
B-VLAN |
出端口 |
1-1-1 |
10 |
PORT6 |
3-3-3 |
10 |
PORT5 |
2-2-2 |
20 |
PORT6 |
4-4-4 |
20 |
PORT5 |
在如图4所示的网络拓扑中,BEB1与BEB2之间的最短转发路径即为两者之间的备用转发路径。
步骤S706,接收到M-in-M报文;
步骤S707,当该M-in-M报文中的目的B-MAC地址是2-2-2、B-VLAN是20时,根据2-2-2和B-VLAN20,在如表9-2所示的B-MAC地址表中查找到对应的出端口PORT6,将该M-in-M报文通过PORT6转发出去,从而转发给了BEB1;当该M-in-M报文中的目的B-MAC地址是4-4-4、B-VLAN是10时,根据4-4-4和B-VLAN10,在如表9-2所示的B-MAC地址表中查找到对应的出端口PORT5,将该M-in-M报文通过PORT5转发出去,从而转发给了BEB2。
实施例三
针对上述实施例一中的方法,本申请的实施例中提供了一种可以应用该方法的报文转发装置
1、当该装置应用于BEB设备时
如图5所示,该装置中包括以下模块:路径计算模块10、检测模块20和收发处理模块30,其中:
路径计算模块101,用于针对每一个其他BEB设备,计算一条本设备与该其他BEB设备之间的最短转发路径作为主用转发路径,以及在假定该主用转发路径中断的情况下,计算一条本设备与该其他BEB设备之间的最短转发路径作为备用转发路径;
检测模块102,用于检测本设备与其他BEB设备之间的主用转发路径和备用转发路径的状态;
收发处理模块103,用于当要向第一BEB设备发送数据流时,通过本设备与第一BEB设备之间的主用转发路径和备用转发路径发送数据流;还用于当检测模块102检测到本设备与第一BEB设备之间的主用转发路径中断时,通过本设备与第一BEB设备之间的备用转发路径发送数据流。
其中,BEB设备具有主用MAC地址和备用MAC地址;则,
收发处理模块,还用于通告本设备的主用MAC地址和备用MAC地址,以及,接收其他BEB设备的主用MAC地址和备用MAC地址;
则,路径计算模块包括:第一确定单元、第一配置单元、第二确定单元和第二配置单元,其中:
第一确定单元,用于计算SPBM网络的网络拓扑,根据该网络拓扑,以本设备为根节点计算SPT树,确定到该其他BEB设备的出端口和作为主用转发路径的最短转发路径;
第一配置单元,用于将本设备与该其他BEB设备之间的主用转发路径对应的表项配置到B-MAC地址表中,其中,该表项中包括:隧道ID、本设备的主用MAC地址、该其他BEB设备的主用MAC地址、对应的B-VLAN、确定的到该其他BEB设备的出端口、和转发属性,该转发属性为Ingress及Egress;
第二确定单元,用于在假定主用转发路径中断的情况下,重新计算SPBM网络的网络拓扑,根据重新计算的网络拓扑,以本设备为根节点计算SPT树,确定到该其他BEB设备的出端口和作为备用转发路径的最短转发路径;
第二配置单元,用于将本设备与该其他BEB设备之间的备用转发路径对应的表项配置到B-MAC地址表中,其中,该表项中包括:隧道ID、本设备的备用MAC地址、该其他BEB设备的备用MAC地址、对应的B-VLAN、确定的到该其他BEB设备的出端口、和转发属性,该转发属性是Ingress,其中,备用转发路径对应的表项中的隧道ID与主用转发路径对应的表项中的隧道ID相同,或者,备用转发路径对应的表项中的隧道ID与主用转发路径对应的表项中的隧道ID不同且具有绑定关系。
另外,收发处理模块中包括:接收单元、第三确定单元、查找单元、复制单元、封装单元和发送单元,其中:
接收单元,用于接收来自用户网络的以太网报文;
第三确定单元,用于确定与接收单元接收的以太网报文的用户网络虚拟局域网C-VLAN和入端口对应的服务实例;
查找单元,用于根据接收的以太网报文的目的C-MAC地址和确定的服务实例,在C-MAC地址表中查找到对应的出接口,若查找到的出接口是隧道ID所标识的隧道,则根据该隧道ID在B-MAC地址表中查找到两个表项;
复制单元,用于按照查找单元查找到的两个表项对接收的以太网报文进行复制;
封装单元,用于按照两个表项中的一个表项的转发属性中的Ingress,根据该表项中的本设备的主用MAC地址、第一BEB设备的主用MAC地址、对应的B-VLAN、以及第三确定单元确定的服务实例的骨干网服务实例编号I-SID,对复制单元复制的以太网报文进行M-in-M封装;还用于按照两个表项中的另一个表项的转发属性中的Ingress,根据该表项中的本设备的备用MAC地址、第一BEB设备的备用MAC地址、对应的B-VLAN、以及第三确定单元确定的服务实例的I-SID,对复制单元复制的以太网报文进行M-in-M封装;
发送单元,用于通过表项中的出端口将封装后的M-in-M报文发送出去。
根据本申请的另一实施例,收发处理模块还用于接收M-in-M报文;还用于当从本设备与第一BEB设备之间的主用转发路径上接收到第一BEB设备发来的M-in-M报文时,对接收的M-in-M报文进行M-in-M解封装后转发到本地的用户网络;还用于当从本设备与第一BEB设备之间的备用转发路径上接收到第一BEB设备发来的M-in-M报文时,丢弃接收的M-in-M报文。其中,收发处理模块包括:查找单元、解封装单元、发送单元和丢弃单元,其中:
查找单元,用于当接收的M-in-M报文中的源B-MAC地址和B-VLAN分别为第一BEB设备的主用B-MAC地址及其对应的B-VLAN,目的B-MAC地址为本设备的主用B-MAC地址时,根据接收的M-in-M报文中的目的B-MAC地址和B-VLAN,在B-MAC地址表中查找到转发属性中包含有Egress的匹配表项;还用于根据解封装单元解封装后的以太网报文中的目的C-MAC地址和接收的M-in-M报文中的I-SID,在C-MAC地址表中查找到对应的出接口;还用于当接收的M-in-M报文中的源B-MAC地址和B-VLAN分别为第一BEB设备的备用B-MAC地址及其对应的B-VLAN,目的B-MAC地址为本设备的备用B-MAC地址时,根据接收的M-in-M报文中的目的B-MAC地址和B-VLAN,在B-MAC地址表中没有查找到转发属性中包含有Egress的匹配表项;
解封装单元,用于在查找单元查找到转发属性中包含有Egress的匹配表项之后,按照该匹配表项中的转发属性中的Egress,对接收的M-in-M报文进行M-in-M解封装得到以太网报文;
发送单元,用于通过查找单元在C-MAC地址表中查找到的出接口,将解封装后的以太网报文发送到本地的用户网络中;
丢弃单元,用于在查找单元没有查找到转发属性中包含有Egress的匹配表项之后,丢弃接收的M-in-M报文。
另外,在该装置中还包括:修改模块,用于当检测模块检测到本设备与第一BEB设备之间的主用转发路径中断时,将B-MAC地址表中的本设备与第一BEB设备之间的主用转发路径对应的表项中的转发属性修改为Ingress,将本设备与第一BEB设备之间的备用转发路径对应的表项中的转发属性修改为Ingress及Egress;还用于当检测模块检测到本设备与第一BEB设备之间的主用转发路径恢复正常时,将B-MAC地址表中的本设备与第一BEB设备之间的主用转发路径对应的表项中的转发属性修改为Ingress及Egress,将本设备与第一BEB设备之间的备用转发路径对应的表项中的转发属性修改为Ingress。
2、当该装置应用于BCB设备时
如图5所示,该装置中包括以下模块:接收模块201、配置模块202、查找模块203和发送模块204,其中:
接收模块201,用于接收SPBM网络中的BEB设备的主用MAC地址和备用MAC地址;还用于接收M-in-M报文;
配置模块202,用于计算SPBM网络的网络拓扑,根据该网络拓扑,以本设备为根节点计算SPT树,确定到每一个BEB设备的出端口,针对每一个BEB设备,将包含有该BEB设备的主用MAC地址及其对应的B-VLAN、确定的到该BEB设备的出端口的表项配置到B-MAC地址表中;还用于针对该网络拓扑中的任意两个BEB设备,在假定两个BEB设备之间的最短转发路径中断的情况下,重新计算SPBM网络的网络拓扑,根据重新计算的网络拓扑,以本设备为根节点计算SPT树,确定到每一个BEB设备的出端口,针对每一个BEB设备,将包含有该BEB设备的备用MAC地址及其对应的B-VLAN、确定的到该BEB设备的出端口的表项配置到B-MAC地址表中;
查找模块203,用于在接收模块201接收到M-in-M报文之后,根据接收的M-in-M报文中的目的B-MAC地址和B-VLAN,在B-MAC地址表中查找到对应的出端口;
发送模块204,用于将接收模块201接收的M-in-M报文通过查找模块203查找到的出端口转发出去。
综上,本申请以上实施例可以达到以下技术效果:
针对每一个其他BEB设备,本BEB设备在计算出一条从本设备到该其他BEB设备之间的最短转发路径之后,还会在假定该转发路径中断的情况下,再计算一条从本设备到该其他BEB设备之间的最短转发路径作为备用转发路径,而最先计算出的那一条作为主用转发路径,当要向某一个其他BEB设备,称为第一BEB设备发送数据流时,会使用本设备与第一BEB设备之间的主用转发路径和备用转发路径同时发送该数据流,这样,当检测到本设备与第一BEB设备之间的主用转发路径发生故障而中断后,由于主用转发路径中断了,因此通过主用转发路径发送的数据流无法到达第一BEB设备,但是,通过备用转发路径的数据流仍然可以达到第一BEB设备。由于预先计算出了两条转发路径:主用转发路径和备用转发路径,发送数据时,同时使用这两条转发路径发送数据流,这样,就可以在一条转发路径中断后,数据流可以不中断地通过另一条转发路径发送给目的端,从而,数据流不会因为一条转发路径的中断而被中断,解决了现有技术存在的数据流的恢复时间较长,丢包时间也比较长的问题。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。