CN103731288B - 报文转发方法及设备 - Google Patents
报文转发方法及设备 Download PDFInfo
- Publication number
- CN103731288B CN103731288B CN201210392333.4A CN201210392333A CN103731288B CN 103731288 B CN103731288 B CN 103731288B CN 201210392333 A CN201210392333 A CN 201210392333A CN 103731288 B CN103731288 B CN 103731288B
- Authority
- CN
- China
- Prior art keywords
- unicast
- multicast
- vlan
- mac
- service instance
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/465—Details on frame tagging wherein a single frame includes a plurality of VLAN tags
- H04L12/4658—Details on frame tagging wherein a single frame includes a plurality of VLAN tags wherein a VLAN tag represents a service provider backbone VLAN, e.g. B-Tag, S-Tag
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/465—Details on frame tagging wherein a single frame includes a plurality of VLAN tags
- H04L12/4662—Details on frame tagging wherein a single frame includes a plurality of VLAN tags wherein a VLAN tag represents a service instance, e.g. I-SID in PBB
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/66—Layer 2 routing, e.g. in Ethernet based MAN's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/68—Pseudowire emulation, e.g. IETF WG PWE3
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请公开了一种报文转发方法及设备,其中,该方法包括:BEB设备接收针对本地配置的服务实例的配置信息,该配置信息包括:为该服务实例分配的至少两个B‑VLAN以及各个B‑VLAN映射到的ECT算法;针对设置有同一服务实例的对端BEB设备,BEB设备为该服务实例的每一个B‑VLAN计算一条本BEB设备与该对端BEB设备之间的转发路径,获得该服务实例的不同B‑VLAN所对应的不同的转发路径;BEB设备通过一服务实例的第一转发路径传输数据流;BEB设备检测到该服务实例的第一转发路径中有链路发生中断后,将第一转发路径上传输的数据流,切换到该服务实例的转发路径中的第二转发路径进行传输。本申请大大减少了数据流的中断恢复时间,提高链路中断时数据流的切换速度。
Description
技术领域
本申请涉及网络通信技术领域,特别涉及一种报文转发方法及设备。
背景技术
SPB(Shortest Path Bridging,最短路径桥)是IEEE802.1aq定义的一种以太网标准,是MSTP(Multiple Spanning Tree Protocol,多生成树协议)的进一步延伸,旨在构建大型扁平的无阻塞二层网络。SPB使用SPB-IS-IS(Intermediate System toIntermediateSystem,中间系统到中间系统)来共享网络中的链路状态,且网络中的各个节点并行计算各节点之间的最短路径,避免了使用STP(Spanning Tree Protocol,生成树协议)协议带来的不稳定性和部分链路利用效率低下的不足。
IEEE802.1aq定义了两种SPB模式:VLAN模式(SPBV(Shortest Path BridgingVLANMode,VLAN模式的最短路径桥))和M-in-M(Mac-in-Mac)模式(SPBM(ShortestPathBridging MAC Mode,M-in-M模式的最短路径桥))。SPBM模式继承了IEEE802.1ah规定的报文封装格式及多实例的思想,但重新定义了数据平面的转发方式和控制平面,由SPB-IS-IS来学习链路状态信息,并进行全网同步,计算转发路径。SPBM是一种二层VPN(VirtualPrivateNetwork,虚拟专用网络)技术,其网络模型与IEEE802.1ah定义的M-in-M网络模型基本一致。如图1所示,在SPBM网络中,骨干网络主要包括BEB和BCB等类型的设备以及这些设备之间的骨干链路。
下面对图1中涉及的各种技术术语进行解释如下:
BEB(Backbone Edge Bridge,骨干网边缘网桥):BEB设备是骨干网络的边缘设备,相当于MPLS(Multiprotocol Label Switching,多协议标签交换)网络中的PE(ProviderEdge,服务提供商网络边缘)设备。它负责将来自用户网络的报文进行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 LocalArea 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继承了IEEE 802.1ah定义的M-in-M报文的封装格式,如图2所示,在封装过程中,在用户原始的以太网报文的外层增加了服务实例、B-VLAN标签、BMAC地址信息,骨干网络通过这些信息对封装得到的M-in-M报文进行转发。
图2中涉及的相关示意的解释如下:
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 ProtocolIdentifier,标签协议标识)值固定为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,最短路径树),并给数据平面下发转发表项。
在IS-IS中,每一个节点都会生成LSP(Link State PDU,链路状态协议数据单元),此LSP中包含了本节点的所有链路状态信息(链路状态信息包括:本节点有哪些链路、每一条链路的ID和开销、以及ECT(Equal Cost Tree,等价树)算法等)、B-MAC/B-VLAN以及I-SID的对应关系。当网络中的所有节点都收到其它节点的LSP信息时,将开始SPT计算,并最终生成转发表项下发到数据平面。数据平面根据这些转发表项进行报文的处理。
现有技术的SPBM中存在以下两个问题:
(1)链路故障时,数据流的恢复时间较长。
在SPBM中,目前只为一个服务实例定义了一条转发路径,当该条转发路径中出现链路故障时就需要重新计算出一条新的转发路径。具体的,当某一条链路故障时, 该链路两端的节点将重新发布链路状态信息(LSP),并经由它们的邻居泛洪到网络中的所有节点,等到所有节点的拓扑信息达到一致时,再进行SPT计算,并经过AP(Agreement Protocol,一致性协议)协商(通过AP协商避免产生环路)后,才能最终使得被中断的数据流通过新的转发路径继续传送。
在上述过程中,LSP的泛洪是逐跳进行的,在网络直径较大时,泛洪到全网所需的时间可能会比较长;在进行SPT计算时,节点需要计算一棵单播SPT以及多棵组播SPT,并对计算出的组播SPT根据I-SID进行剪枝,计算量比较大,因此,计算所需的时间也较长;另外,为了防止产生环路,SPT计算完毕之后,节点之间还需要进行AP协商,然后才能下发新的转发表项到数据平面。以上三点都会导致在某一条链路故障时,数据流的恢复时间较长,可能达到秒级。
(2)一个服务实例只能有一条转发路径,只能基于多个服务实例进行负载分担。因此,当服务实例较少,或者服务实例间的流量不均衡时,可能导致某一条转发路径出现拥塞,而其它的转发路径的负载较少,从而无法发挥整个网络的能力。
发明内容
有鉴于此,本申请提供了一种报文转发方法及设备,以至少解决现有技术中存在的链路故障时,数据流的恢复时间较长的问题。
本申请的技术方案如下:
一方面,提供了一种报文转发方法,应用于SPBM网络中的BEB设备,所述方法包括:BEB设备接收针对本地配置的服务实例的配置信息,所述配置信息包括:为该服务实例分配的至少两个B-VLAN以及各个B-VLAN映射到的ECT算法,其中,每一个B-VLAN映射到一种ECT算法,不同的B-VLAN映射到的ECT算法不同;针对设置有同一服务实例的对端BEB设备,BEB设备根据LSP信息以及该服务实例的每一个B-VLAN映射到的ECT算法,为该服务实例的每一个B-VLAN计算一条本BEB设备与该对端BEB设备之间的转发路径,获得该服务实例的不同B-VLAN所对应的不同的转发路径;BEB设备通过一服务实例的第一转发路径传输数据流;BEB设备检测到该服务实例的第一转发路径中有链路发生中断;BEB设备将所述第一转发路径上传输的数据流,切换到该服务实例的转发路径中的第二转发路径进行传输。
另一方面,还提供了一种BEB设备,应用于SPBM网络中,该BEB设备包括:配置信息接收模块,用于接收针对本BEB设备上配置的服务实例的配置信息,所述配置信息包括:为该服务实例分配的至少两个B-VLAN以及各个B-VLAN映射到的ECT算法,其中,每一个B-VLAN映射到一种ECT算法,不同的B-VLAN映射到的ECT 算法不同;获取模块,用于针对与本BEB设备设置有同一服务实例的对端BEB设备,根据LSP信息以及该服务实例的每一个B-VLAN映射到的ECT算法,为该服务实例的每一个B-VLAN计算一条本BEB设备与该对端BEB设备之间的转发路径,获得该服务实例的不同B-VLAN所对应的不同的转发路径;发送模块,用于通过一服务实例的第一转发路径传输数据流;检测模块,用于检测该服务实例的转发路径中是否有链路发生中断;切换模块,用于在所述检测模块检测到该服务实例的第一转发路径中有链路发生中断时,将所述第一转发路径上传输的数据流切换到该服务实例的转发路径中的第二转发路径进行传输。
本申请的技术方案中,为BEB设备上的一个服务实例分配了多个B-VLAN,针对设置有该服务实例的一个对端BEB设备,每一个B-VLAN对应于该服务实例的一条从本BEB设备到该对端BEB设备的转发路径,各个B-VLAN对应的转发路径所经过的路径不同,这样,为一个服务实例建立了多条转发路径,当其中一条转发路径中有链路中断后,可以将该服务实例的数据流快速地切换到该服务实例的另一条转发路径上,大大减少了数据流的中断恢复时间,提高链路中断时数据流的切换速度。
附图说明
图1是现有技术的SPBM网络的基本组网模型的示意图;
图2是现有技术的SPBM中M-in-M报文的封装格式示意图;
图3是本申请的实施例的IS-IS LSP报文中的一个ISID-ADDR sub-TLV的格式示意图;
图4是本申请的实施例的SPBM的骨干网络的示意图;
图5是本申请的实施例的BEB设备执行的基于SPBM的报文转发流程图;
图6是本申请的实施例的BEB设备的一种结构示意图;
图7是本申请的实施例的BEB设备的另一种结构示意图;
图8是本申请的实施例的BCB设备的一种结构示意图;
图9是本申请的实施例的BEB设备的具体硬件架构示意图。
具体实施方式
为了解决现有技术中由于一个服务实例只能有一条转发路径,因此,当链路发生故障时,数据流的恢复时间较长,以及,只能基于多个服务实例进行负载分担,当服务实例较少、或者服务实例间的流量不均衡时,可能导致某一条转发路 径出现拥塞,而其它的转发路径的负载较少,从而无法发挥整个网络的能力的问题,本申请以下实施例提供了一种报文转发方法以及可以应用该方法的BEB设备和BCB设备,本申请实施例的目的包括以下两个方面:
(1)预先为一个服务实例建立多条转发路径,这样,当网络拓扑发生变化时(如链路中断),该服务实例的数据流可以快速地切换到另一条转发路径,从而能够减少数据流的中断时间,提高链路中断时数据流的切换速度。
(2)预先为一个服务实例建立多条转发路径,并在该服务实例的多条转发路径之间进行负载分担,从而可以提升网络的负载分担效果,使得每条转发路径的负载更加均衡。
为了解决现有技术的上述技术问题以及实现上述目的,本申请的实施例的报文转发方法主要包括以下内容:
一、为一个服务实例创建多条转发路径
步骤1:在BEB设备上为每一个服务实例(用I-SID标识)分配多个(即至少两个)B-VLAN,这些B-VLAN可以都是主用B-VLAN,即,这些B-VLAN彼此不分主备;也可以是主备的关系,例如,可以为一主一备、多主一备、一主多备和多主多备等。分配的方式可以是显式配置(例如手动地配置),也可以是隐式包含(即默认采用所有的B-VLAN),例如:给I-SID为100的服务实例指定一个B-VLAN时,其它的B-VLAN就会都作为该服务实例的备份B-VLAN。
显式配置的示例可以如下:
vsi aaa minm i-sid 100
sbpm bvlan 20,22,23 #I-SID 100的主用B-VLAN使用B-VLAN 20、22和23
spbm bvlan 21 backup #I-SID 100的备用B-VLAN使用B-VLAN21
由于只有BEB设备上具有服务实例,即I-SID,而BCB设备上没有,因此,只在BEB设备上为其上的每一个服务实例分配多个B-VLAN即可。
另外,为保证一个服务实例的不同B-VLAN走不同的转发路径,需要在骨干网中的所有网络节点(包括BEB设备和BCB设备)上把多个B-VLAN映射到不同的ECT算法上。例如:
ect 1bvlan 20 #将B-VLAN 20映射到ECT算法:ect 1
ect 2bvlan 21 #将B-VLAN 21映射到ECT算法:ect 2
ect 3bvlan 22 #将B-VLAN 22映射到ECT算法:ect 3
ect 4bvlan 23 #将B–VLAN 23映射到ECT算法:ect 4
因此,BEB设备需要接收针对本地配置的服务实例的配置信息,所述配置信息包括:为该服务实例分配的至少两个骨干网虚拟局域网B-VLAN以及各个B-VLAN映射到的等价树ECT算法,其中,每一个B-VLAN映射到一种ECT算法,不同的B-VLAN映射到的ECT算法不同。在网络中包括BEB设备和BCB设备的所有网络节点上,同一B-VLAN均被映射到相同的ECT算法。
步骤2:骨干网中的所有网络节点生成自己的LSP信息,并通过IS-IS LSP报文发布出去,以洪泛到整个骨干网中。
具体的,对于每一个BEB设备,其LSP信息的发布包括以下步骤:
步骤211,BEB设备生成自己的LSP信息,其中,该LSP信息中包括:该BEB设备上的每一个服务实例和为其分配的B-VLAN,以及每一个服务实例的每一个B-VLAN映射到的ECT算法,即,I-SID和为其分配的多个B-VLAN、每一个B-VLAN映射到的ECT算法,以及三者之间的映射关系;
步骤212,BEB设备将生成的LSP信息通过IS-IS LSP报文发布出去,以便泛洪到骨干网中的所有BCB设备和其他BEB设备。
BEB设备还会接收骨干网中的BCB设备和其他BEB设备发来的携带有各自的LSP信息的IS-IS LSP报文,并保存下来。
在实际实施时,I-SID和为其分配的多个B-VLAN之间的映射关系可以携带在IS-ISLSP报文中的ISID-ADDR sub-TLV中。图3是一个ISID-ADDR sub-TLV的格式示意图,当一个I-SID映射到多个B-VLAN时,在一个IS-IS LSP报文中可能出现多个ISID-ADDR sub-TLV。例如,I-SID 100映射到B-VLAN 20、21、22和23时,在一个IS-IS LSP报文中会有一个Base VID为20的ISID-ADDR sub-TLV,其中包含了I-SID 100的子项,同时,还分别会有一个Base VID为21、22和23的ISID-ADDR sub-TLV,各自中也包含了I-SID 100的子项。在这4个ISID-ADDRsub-TLV中,包含有I-SID 100的子项的I-SID Tuple中包含的R标志均为1,用于表示能够接收该I-SID中的报文,而T标志取决于对应的Base VID所指示的B-VLAN是否为主用B-VLAN以及I-SID 100的服务实例的组播复制方式,如果组播复制方式为头端复制,则T为0,如果组播复制方式为核心复制、且对应的BaseVID所指示的B-VLAN为主用B-VLAN,则T为1,如果组播复制方式为核心复制、且对应的Base VID所指示的B-VLAN为备用B-VLAN,则T为0。
同样,对于每一个BCB设备,其LSP信息的发布包括以下步骤:
步骤221,BCB设备生成自己的LSP信息,其中,该LSP信息中包括:BCB 设备上的每一个B-VLAN及其映射到的ECT算法;
步骤222,BCB设备将生成的LSP信息通过IS-IS LSP报文发布出去,以便泛洪到骨干网中的所有BEB设备和其他BCB设备。
BCB设备还会接收骨干网中的BEB设备和其他BCB设备发来的携带有各自的LSP信息的IS-IS LSP报文,并保存下来。
显然,BCB设备和BEB设备生成的LSP信息中还包括:本设备的链路状态信息和B-MAC。
步骤3:各网络节点根据整个骨干网的LSP信息,即根据包括自己的LSP信息以及接收到的LSP信息在内的整个骨干网的LSP信息,针对每一个B-VLAN,按照该B-VLAN映射到的ECT算法,以自己为根节点计算单播SPT树,从而,让一个服务实例的不同B-VLAN走不同的转发路径,最终生成各自的FDB(Forwarding Database,转发数据库)表项下发到数据平面的FDB表中。
具体的,对于每一个BEB设备,其针对每一个服务实例均会执行如下单播SPT树的计算过程:针对该服务实例的每一个B-VLAN,BEB设备根据包括自己的LSP信息以及接收到的LSP信息在内的整个骨干网的LSP信息,使用该B-VLAN映射到的ECT算法,以自己为根节点计算单播SPT树,从而确定到包括BEB设备和BCB设备的各个网络节点的出接口。在实际实施时,也可以是针对每一个B-VLAN进行单播SPT树的计算,由于一个B-VLAN可以同时属于多个服务实例,则该B-VLAN所属的各个服务实例均使用该单播SPT树。
在计算完单播SPT树之后,在实际实施时,BEB设备可以根据计算得到的单播SPT树,生成与该B-VLAN对应的单播FDB表项,并下发到本地的单播FDB表中;由于BEB设备在后续的步骤5中需要生成并下发单播PW表项,而单播PW表项中会包含有单播FDB表项中的内容,因此,BEB设备也可以不生成并下发单播FDB表项。本申请对此不做限定。
另外,对于每一个BCB设备,其针对每一个B-VLAN均会执行以下操作:
步骤321,BCB设备根据自己的LSP信息以及接收到的LSP信息,使用该B-VLAN映射到的ECT算法,以自己为根节点计算单播SPT树,从而确定到包括BEB设备和BCB设备的各个网络节点的出接口;
步骤322,BCB设备根据计算得到的单播SPT树,生成与该B-VLAN对应的单播FDB表项,并下发到本地的单播FDB表中,其中,每一个FDB表项中可以包括:B-DMAC(是一个网络节点的B-MAC地址)、B-VLAN和出接口(是针对该B-VLAN的到该网络节点的出接口)。
例如,一种可能的骨干网的网络结构如图4所示,图4中每个圆圈代表一个节点,圆圈中的数字表示该节点的编号。可以看出图4所示的网络包括:节点1~6,其中,节点1和4为BEB设备,节点2、3、5和6为BCB设备,每一个节点与邻居节点连接的链路上靠近自己的数字为自己连接至该邻居节点的接口编号。为一个服务实例分配了4个B-VLAN:B-VLAN 20、21、22和23,各个网络节点按照上述步骤3计算得到B-VLAN 20对应的节点1与节点4之间的转发路径为1-2-3-4,B-VLAN 21对应的节点1与节点4之间的转发路径为1-6-5-4,B-VLAN 22对应的节点1与节点4之间的转发路径为1-2-5-4,B-VLAN 23对应的节点1与节点4之间的转发路径为1-6-3-4。
那么,假设节点1的B-MAC为0-0-1,节点4的B-MAC为0-0-4,则节点2、3、5和6的一种可能的单播FDB表如表1-4所示。
表1节点2的单播FDB表
B-DA(即B-DMAC) | B-VLAN | 出接口 |
0-0-1 | 20 | if-1 |
0-0-4 | 20 | if-2 |
0-0-1 | 22 | if-1 |
0-0-4 | 22 | if-3 |
表2节点3的单播FDB表
B-DA | B-VLAN | 出接口 |
0-0-1 | 20 | if-1 |
0-0-4 | 20 | if-2 |
0-0-1 | 23 | if-4 |
0-0-4 | 23 | if-2 |
表3节点5的单播FDB表
B-DA | B-VLAN | 出接口 |
0-0-1 | 22 | if-2 |
0-0-4 | 22 | if-4 |
0-0-1 | 21 | if-1 |
0-0-4 | 21 | if-4 |
表4节点6的单播FDB表
B-DA | B-VLAN | 出接口 |
0-0-1 | 23 | if-1 |
0-0-4 | 23 | if-3 |
0-0-1 | 21 | if-1 |
0-0-4 | 21 | if-4 |
在表1-4中省略了B-DA为节点2、3、5和6时的FDB表项。
这样,在BCB设备上,当接收到Mac-in-Mac报文之后,BCB设备会按照本地的FDB表,对该Mac-in-Mac报文进行转发,具体包括以下步骤:
步骤331,若接收到的Mac-in-Mac报文为单播报文,则BCB设备在本地的单播FDB表中,查找与Mac-in-Mac报文中携带的目的B-MAC(即B-DA)和B-VLAN相匹配的目的B-MAC和B-VLAN对应的出接口;即,查找包含有该Mac-in-Mac报文中携带的目的B-MAC和B-VLAN的FDB表项,并进而查找到该FDB表项中的出接口。
步骤332,BCB设备将该Mac-in-Mac报文通过步骤331中查找到的出接口转发出去。
步骤4:各网络节点根据整个骨干网的LSP信息,针对每一个主用B-VLAN,使用该主用B-VLAN映射到的ECT算法,分别以那些本地设置有同一服务实例的对端BEB设备为根节点,计算该B-VLAN的组播SPT树,让该服务实例的不同B-VLAN走不同的转发路径,最终生成各自的组播FDB表项下发到数据平面的组播FDB表中。对于备用B-VLAN可以不执行组播SPT树的计算以及相应的FDB表项的下发。在一个服务实例的多个B-VLAN之间不存在主备关系时,可以认为这多个B-VLAN均为主用B-VLAN。
确定根节点的方式可以为:本节点接收到的来自BEB设备(例如为图4中的节点1)的IS-IS LSP报文的ISID-ADDR sub-TLV中,如果一个I-SID Tuple中包含的T=1,那么,该ISID-ADDR sub-TLV中的Base VID所指示的B-VLAN(例如为B-VLAN 20)即为该I-SID Tuple中包含的I-SID(例如为100)的主用B-VLAN,也就是说,该BEB设备:节点1即为I-SID 100在计算组播SPT树时的根节点。
当一个服务实例的B-VLAN中包括:主用B-VLAN和备用B-VLAN时,即,为该服务实例分配的B-VLAN存在主备关系,例如,为一主一备、多主一备、多主多备或一主多备时,对于每一个BEB设备,其针对包括本地的服务实例和其他BEB设备 上的服务实例在内的每一个服务实例,均会执行如下的组播SPT树的计算操作:针对该服务实例的每一个主用B-VLAN,BEB设备根据自己的LSP信息以及接收到的LSP信息,使用该主用B-VLAN映射到的ECT算法,分别以每一个本地设置有该服务实例的对端BEB设备为根节点计算组播SPT树,从而确定到每一个对端BEB设备的出接口,该出接口可以有一个或多个。在计算完组播SPT树之后,BEB设备可以根据计算得到的组播SPT树,生成与该主用B-VLAN对应的FDB表项,下发到本地的组播FDB表中;同样由于BEB设备在后续的步骤6中需要生成并下发组播PW表项,而组播PW表项中会包含有组播FDB表项中的内容,因此,BEB设备也可以不生成并下发组播FDB表项。本申请对此不做限定。
同样,当一个服务实例的B-VLAN中包括:主用B-VLAN和备用B-VLAN时,即,为该服务实例分配的B-VLAN存在主备关系,例如,为一主一备、多主一备、多主多备或一主多备时,对于每一个BCB设备,其针对每一个主用B-VLAN,均会执行以下操作:
步骤411,BCB设备根据自己的LSP信息以及接收到的LSP信息,使用该主用B-VLAN映射到的ECT算法,分别以每一个本地设置有该服务实例的BEB设备为根节点计算组播SPT树,从而确定到各个网络节点(包括BEB设备和BCB设备)的出接口;
步骤412,BCB设备根据计算得到的组播SPT树,生成与该主用B-VLAN对应的FDB表项,下发到本地的组播FDB表中,其中,每一个FDB表项中包括:B-DMAC(是一个网络节点的组播地址)、B-VLAN和出接口(针对该B-VLAN的到该网络节点的出接口)。
显然,在一个服务实例的多个B-VLAN不存在主备关系时,BEB设备和BCB设备会针对每一个B-VLAN计算组播SPT树。
仍以图4所示的网络结构为例,骨干网中的各个网络节点按照上述步骤4计算出来的结果与单播路径一致。
例如,当节点1的SPSOURCEID(源节点ID)为1,节点4的SPSOURCEID为4时,节点2、3、5和6的组播FDB表可以如表5-8所示。
表5节点2的组播FDB表
B-DA(即B-DMAC) | B-VLAN | 出接口 |
0300-0004-0064 | 20 | if-1 |
0300-0001-0064 | 20 | if-2 |
0300-0004-0064 | 22 | if-1 |
0300-0001-0064 | 22 | if-3 |
表6节点3的组播FDB表
B-DA | B-VLAN | 出接口 |
0300-0004-0064 | 20 | if-1 |
0300-0001-0064 | 20 | if-2 |
0300-0004-0064 | 23 | if-4 |
0300-0001-0064 | 23 | if-2 |
表7节点5的组播FDB表
B-DA | B-VLAN | 出接口 |
0300-0004-0064 | 22 | if-2 |
0300-0001-0064 | 22 | if-4 |
表8节点6的组播FDB表
B-DA | B-VLAN | 出接口 |
0300-0004-0064 | 23 | if-1 |
0300-0001-0064 | 23 | if-3 |
注:头端复制模式中没有计算组播SPT树并下发FDB表项的过程,当一个I-SID采用头端复制模式时,其发布的ISID-ADDR sub-TLV中的T标志为0。
在表5-8中,0300-0001-0064中“03”为组播标识,表示该地址为组播地址;“000001”为源节点ID,“0064”为I-SID。例如,节点1在发送一个组播报文时,会将该报文的源B-MAC置为自己的B-MAC:0-0-1,目的B-MAC置为0300-0001-0064。
在BCB设备上,当接收到一个Mac-in-Mac报文之后,BCB设备按照本地的 FDB表,对该Mac-in-Mac报文进行转发,具体包括以下步骤:
步骤421,若接收到的Mac-in-Mac报文为组播报文,则BCB设备在本地的组播FDB表中,查找与该Mac-in-Mac报文中携带的目的B-MAC和B-VLAN相匹配的目的B-MAC和B-VLAN对应的出接口,即,查找包含有该Mac-in-Mac报文中携带的目的B-MAC和B-VLAN的FDB表项中的出接口;
步骤422,BCB设备将该Mac-in-Mac报文通过查找到的出接口转发出去。
查找到的出接口可能有多个,此时,需要对Mac-in-Mac报文进行复制后,分别通过这多个出接口转发出去。
步骤5:BEB设备针对设置有同一服务实例的对端BEB设备,根据整个骨干网的LSP信息以及该服务实例的每一个B-VLAN映射到的ECT算法,为该服务实例的每一个B-VLAN计算一条本BEB设备与该对端BEB设备之间的转发路径,获得该服务实例的不同B-VLAN所对应的不同的转发路径。
本申请的实施例中,针对一个服务实例,BEB设备为本地同样设置有该服务实例的每一个对端BEB设备分配一个单播PW(Pseudo Wire,伪线)组,因此一个单播PW组对应于一个服务实例的一个对端BEB设备,当一个服务实例有多个对端BEB设备时,则该服务实例有将产生多个单播PW组。每个单播PW组中可以包括至少一个单播PW。也就是说,对于P2P的服务实例,每一个服务实例对应于一个单播PW组;对于P2MP的服务实例,每一个服务实例对应于多个单播PW组,即对于一个P2MP的服务实例,其有多少个对端BEB设备,就有多少个单播PW组。当一个单播PW组中包括多个单播PW时,这些单播PW中的主用PW形成负载分担关系,备用PW是主用PW的备份路径,主用PW用于发送和接收,备份PW仅用于接收。一个单播PW组对应于一个点到点的多条转发路径。
另外,每一个服务实例自动产生一个组播PW组,一个服务实例有且仅有一个组播PW组,一个组播PW组中包括至少一个组播PW(即一个或多个组播PW)。组播PW Group ID可以是固定的,如用0来表示PW Group ID。当组播PW组中包括多个组播PW时,这些组播PW中的主用PW形成负载分担关系,数据平面没有备用组播PW。每一个组播PW对应于一个点到多点的转发路径。
因此,对于单播的情况,针对设置有相同的服务实例的每一个对端BEB设备,本步骤5的具体实现过程可以包括以下四个步骤:
步骤501,BEB设备为该对端BEB设备分配一个单播PW组;
在实际实施时,一个对端BEB设备可以用B-MAC来表示,一个PW组可以用一个唯一的PW Group ID来标识。
步骤502,针对该对端BEB设备的每一个B-VLAN,生成一个PW表项,此时的PW表项是不完整的,缺少到该对端BEB设备的出接口;
步骤503,针对该服务实例的每一个B-VLAN,BEB设备根据自己的LSP信息以及接收到的LSP信息,使用该B-VLAN映射到的ECT算法,以自己为根节点计算单播最短路径树SPT树,以确定到该对端BEB设备的出接口,即,利用步骤3中BEB设备计算出的单播SPT树,针对该服务实例的每一个B-VLAN,确定出到该对端BEB设备的出接口;
步骤504,BEB设备为该对端BEB设备的每一个B-VLAN生成一个单播PW,并将生成的单播PW的PW表项下发到单播PW表,其中,针对该对端BEB设备生成的所有PW均属于为该对端BEB设备分配的单播PW组,每一个单播PW的PW表项中包括:单播PW组ID、PW ID、B-VLAN和出接口,还可以包括:VSI INDEX、I-SID、B-SMAC、B-DMAC、FLAG等。
其中,为该对端BEB设备的每一个B-VLAN生成的一个单播PW即为:为该服务实例的每一个B-VLAN计算出的一条本BEB设备与该对端BEB设备之间的转发路径。
当一个服务实例的B-VLAN中包括:主用B-VLAN和备用B-VLAN时,如果该服务实例的一个B-VLAN为备用B-VLAN,则BEB设备将生成的与该备用B-VLAN对应的备用单播PW的PW表项下发到单播PW表的同时,还将该备用单播PW设置为仅用于接收;如果该B-VLAN为主用B-VLAN,则BEB设备将生成的与该主用B-VLAN对应的主用单播PW的PW表项下发到单播PW表的同时,还将该主用单播PW设置为用于发送和接收。即,主用B-VLAN对应的单播PW为主用单播PW,备用B-VLAN对应的单播PW为备用单播PW,主用单播PW用于数据流的收发,而备用单播PW仅用于接收。
在实际实施过程中,为了执行步骤5,BEB设备在该步骤之前还需要针对一个服务实例,根据自己的LSP信息以及接收到的LSP信息确定出本地同样配置有该服务实例的对端BEB设备是哪些。
仍以图4所示的网络结构为例,B-VLAN 20、22和23为主用B-VLAN,B-VLAN21为备用B-VLAN。节点1和节点4的单播PW表可以如表9-10所示。
表9节点1的单播PW表
表10节点4的单播PW表
注:Ingress表示入隧道标志(加隧道封装),Egress表示出隧道标志(去隧道封装)。
同MPLS类似,SPBM中,在BEB设备上,通过VSI来为特定的服务实例分配资源。那么,一个VSI对应于一个服务实例,PW即为本地设置有属于同一个服务实例的VSI的BEB设备之间的一条双向虚拟连接。
在实际实施时,BEB设备上的单播PW表可以在形式上只有一个,各个服务实例的单播PW表,通过服务实例对应的VSI INDEX(索引)来区分。
从表9和10可以看出,将主用单播PW设置为用于发送和接收的具体方式可以为:将该主用单播PW对应的FLAG设置为“Ingress & Egress”,将备用单播PW设置为仅用于接收的具体方式可以为:将该备用单播PW对应的FLAG设置为“Egress”。
这样,BEB设备接收到来自用户网络的用户报文之后,对用户报文进行Mac-in-Mac封装并转发的过程包括以下步骤:
步骤511,BEB设备查找与接收到该用户报文的入接口对应的服务实例;
BEB设备上还保存有接口与服务实例之间的对应关系,根据报文的入接口就可以查找到对应的服务实例。
步骤512,BEB设备在与查找到的服务实例对应的C-MAC地址表中,查找与该用户报文中携带的目的C-MAC地址相匹配的C-MAC地址对应的出接口;
即,查找包含有该用户报文中携带的目的C-MAC地址的表项中的出接口。
步骤513,当查找到的出接口为以PW Group ID标识的PW组时,若该PW组中仅有一个PW用于发送和接收,即,单播PW表中仅有一个满足如下条件的PW表项:该PW表项中包含有该查找到的PW组(具体为PW Group ID)、且其中的PW用于发送和接收(具体为FLAG为“Ingress & Egress”),则BEB设备使用该单播PW表中与该PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与该PW对应的出接口发送出去。其中,查找该PW对应的出接口可以是在该单播PW表中查找,也可以是在本地的FDB表中查找与该PW对应的出接口。
在实际实施时,由于PW仅用于接收时,该PW的PW表项中的FLAG会设置为“Egress”,因此,在确定一个PW表项中的PW是否用于发送和接收,可以根据其中的FLAG中是否有“Ingress”。这样,在单播PW表中查找属于查找到的PW组、且对应的FLAG中带有Ingress标识的PW。
步骤514,若该PW组中有至少两个PW用于发送和接收(该至少两个PWGroup ID相同),即,单播PW表中有至少两个满足如下条件的PW表项:该PW表项中包含有该查找到的PW组、且其中的PW用于发送和接收(例如,其中的FLAG中带有Ingress标识),则BEB设备根据预定的负载分担规则从这至少两个PW中选择一个PW(即从这至少两个PW表项中选择一个PW表项),使用该单播PW表中与所选择的PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装(即使用所选择的PW表项中包含的I-SID、B-MAC和B-VLAN),并将封装得到的Mac-in-Mac报文通过与所选择的PW对应的出接 口发送出去。
在实际实施时,当一个服务实例中存在多个主用B-VLAN(此时在该服务实例的单播PW表中会存在属于同一个PW组(即PW Group ID相同)、且均用于发送和接收的多个PW)时,可以通过多种方式来选择使用哪一个主用B-VLAN(即选择哪一个主用单播PW的PW表项)来发送该服务实例的数据流。
预定的负载分担规则可以根据实际需要来预先设置,例如,该负载分担规则可以为:以用户报文的二层信息(例如,源C-MAC+目的C-MAC)作为HASH Key(哈希关键字)、三层信息或四层信息作为Hash Key进行哈希运算,再将得到的哈希值对N求模(N为该服务实例的主用B-VLAN的数量),选择与求模结果对应的PW(或PW表项),例如,为单播PW表中一个服务实例下的每一个对端BEB设备的每一个PW表项从0编号,若求模的结果为1,则选择编号为1的PW表项,即,选择编号为1的PW表项中的PW。这样,每个单播PW组中只能有一个单播PW用于发送该用户报文。或者,直接使用PW ID作为上述编号。
从而,在为一个服务实例建立了多条主用转发路径时,实现了该服务实例的多条主用转发路径的负载分担。如图4所示,在网络拓扑稳定时,为一个服务实例建立4条转发路径,其中3条是主用转发路径,BEB两端的服务实例的数据流可以在这3条转发路径间实现负载分担。
另外,对于组播的情况,BEB设备为每一个服务实例的每一个主用B-VLAN生成一条组播PW(即为一个服务实例生成多条组播PW),当一个服务实例的多个B-VLAN存在主备关系时,针对该服务实例的每一个主用B-VLAN,BEB设备根据在步骤3中计算得到的组播SPT树,生成与该主用B-VLAN对应的组播PW的PW表项,下发到组播PW表中,并将该组播PW设置为仅用于发送,其中,该服务实例的每一个主用B-VLAN对应于一个组播PW,该服务实例的各个主用B-VLAN对应的组播PW属于同一个PW组(即该服务实例对应的组播PW组),具体为PW GroupID相同。即,不会为备用B-VLAN生成对应的组播PW,仅为主用B-VLAN生成对应的组播PW,为主用B-VLAN生成的组播PW用于目的C-MAC未知的单播报文、组播报文和广播报文等用户数据流的发送。
具体的,对于组播的情况,在一个服务实例的组播复制模式为核心复制模式,且该服务实例的多个B-VLAN存在主备关系时,针对设置有相同的服务实例的每一个对端BEB设备,本步骤5的具体实现过程包括以下步骤:
步骤601,BEB设备为该服务实例分配一个组播PW组,可以用一个唯一的PW ID标识;
步骤602,针对该服务实例的每一个主用B-VLAN,BEB设备根据自己的LSP信息以及接收到的LSP信息,使用该主用B-VLAN映射到的ECT算法,以该对端BEB设备为根节点计算组播SPT树,以确定到该对端BEB设备的出接口,即,BEB设备利用步骤4中计算的组播SPT树,针对该服务实例的每一个主用B-VLAN,确定出到该对端BEB设备的出接口,其中,到该对端BEB设备的出接口可以有一个或多个;
步骤603,BEB设备为该服务实例的每一个主用B-VLAN生成一个组播PW,将为主用B-VLAN生成的组播PW的PW表项下发到组播PW表中,并将该组播PW设置为仅用于发送,其中,该服务实例的各个主用B-VLAN对应的组播PW均属于为该服务实例分配的组播PW组,每一个组播PW的PW表项中包括:组播PW组ID、PW ID、B-VLAN和出接口,显然还可以包括:VSIINDEX、I-SID、B-SMAC、B-DMAC和FLAG。
同样,在一个服务实例的组播复制模式为核心复制模式,且该服务实例的多个B-VLAN不存在主备关系时,在上述的步骤602中,针对该服务实例的每一个B-VLAN,BEB设备根据自己的LSP信息以及接收到的LSP信息,使用该B-VLAN映射到的ECT算法,以该对端BEB设备为根节点计算组播SPT树,以确定到该对端BEB设备的出接口;在步骤603中,BEB设备为该服务实例的每一个B-VLAN生成一个组播PW,将为B-VLAN生成的组播PW的PW表项下发到组播PW表中,并将该组播PW设置为仅用于发送,其中,该服务实例的各个B-VLAN对应的组播PW均属于为该服务实例分配的组播PW组。即,该服务实例的每个B-VLAN均可以看成是主用B-VLAN。
仍然以图4所示的网络结构为例,B-VLAN 20、22和23为主用B-VLAN,B-VLAN 21为备用B-VLAN。节点1和节点4的组播PW表可以如表11-12所示。
表11节点1的组播PW表
表12节点4的组播PW表
注1:Ingress表示入隧道标志,Egress表示出隧道标志。
注2:头端复制模式没有组播PW表项生成下发的过程,当一个I-SID采用头端复制模式时,其发布的ISID-ADDR sub-TLV中的T标志为0。
同MPLS类似,SPBM中,在BEB设备上,通过VSI来为特定的服务实例分配资源。那么,一个VSI对应于一个服务实例,PW即为两个BEB设备之间的一条双向虚拟连接,该两个BEB设备上均设置有属于同一个服务实例的VSI。
在实际实施时,BEB设备上的组播PW表可以在形式上只有一个,各个服务实例的组播PW表,通过服务实例对应的VSI INDEX(索引)来区分。
从表11和12可以看出,将主用组播PW设置为用于发送的具体方式可以为:将该主用组播PW对应的FLAG设置为“Ingress”。组播PW表中没有备用组播PW的PW表项。
这样,BEB设备接收到来自用户网络的用户报文之后,对用户报文进行Mac-in-Mac封装并转发的过程包括以下步骤:
步骤611,BEB设备查找与接收到该用户报文的入接口对应的服务实例,其中,该用户报文是以下报文之一:广播报文、组播报文、目的C-MAC地址未知的单播报文;
目的C-MAC地址未知即在查找到的服务实例对应的C-MAC表中找不到相匹配的C-MAC地址。
步骤612,当该用户报文对应的服务实例是核心复制模式时,若与该服务实例相对应的组播PW组中仅有一个用于发送的组播PW(可以是组播PW表中仅有一个PW表项中包含有该服务实例对应的组播PW组的PW Group ID),则BEB设备使用组播PW表中与该组播PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与该组播PW对应的出接口发送出去;
步骤613,当该用户报文对应的服务实例是核心复制模式时,若与该服务实例相对应的组播PW组中有至少两个用于发送的组播PW(可以是组播PW表中有至少两个PW表项中包含有该服务实例对应的组播PW组的PW Group ID),则BEB设备根据预定的负载分担规则从这至少两个组播PW中选择一个组播PW,然后使用组播PW表中所选择的组播PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与该所选择的组播PW对应的出接口发送出去。
其中,一个组播PW表项中的出接口可能会有多个,这种情况下,需要对Mac-in-Mac报文进行复制,然后每个出接口发送一份。
在实际实施时,当该服务实例存在多个主用B-VLAN(此时在组播PW表中会存在具有该服务实例对应的PW Grpup ID的多个PW表项)时,可以通过多种方式来选择使用哪一个主用B-VLAN(即选择哪一个主用组播PW的PW表项)来发送数据。
预定的负载分担规则可以根据实际需要来预先设置,预先设置的规则可以是将用户报文的二层信息、三层信息、或者四层信息作为HASH Key(哈希关键字)进行哈希运算,再将得到的哈希值对N求模(N为该服务实例的主用B-VLAN的数量),选择与求模结果对应的PW(或PW表项)。例如,该负载分担规则可以为:以用户报文的二层信息(例如,源C-MAC+目的C-MAC)作为HASH Key进行哈希运算,再将得到的哈希值对N求模(N为该服务实例的主用B-VLAN的数量),选择与求模结果对应的PW(或PW表项),例如,为组播PW表中与一个服务实例对应的每一个PW表项从0编号,若求模的结果为1,则选择编号为1的PW表项,即,选择编号为1的PW表项中的PW。这样,每个组播PW组中只能有一个组播PW用于发送该用户报文。或者,也可以直接将PW ID作为上述编号。其中,二层信息例如可以是源C-MAC、目的C-MAC和VLAN等,三层信息例如可以是源IP地址、目的IP地址和协议类型等,四层信息例如可以是TCP/UDP的源端口号、目的端口号等。
对于头端复制的情况,会找不到组播PW表项,此时需要遍历该服务实例下的单播PW组,从每个PW组中选择一个带有Ingress标识的PW(即用于发送和接收的PW)来发送。具体的,包括以下步骤:
步骤621,BEB设备查找与接收到该用户报文的入接口对应的服务实例,其中,该用户报文是以下报文之一:广播报文、组播报文、目的C-MAC地址未知的单播报文;
步骤622,当该用户报文对应的服务实例是头端复制模式时,BEB设备针对该服务实例的每一个单播PW组,对该用户报文进行复制,使用单播PW表中与该单播PW组中的一个用于发送和接收的单播PW相对应的I-SID、B-SMAC、B-DMAC和B-VLAN,对复制得到的用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与该单播PW对应的出接口发送出去;
其中,当该服务实例的一个单播PW组中有至少两个单播PW用于发送和接收时,BEB设备根据预定的负载分担规则,从该至少两个单播PW中选择一个单播PW。
综上,一个服务实例的数据流可以承载在多个B-VLAN上,在BEB设备上可以通过一个服务实例的任何一个主用B-VLAN发送数据报文。但是,由上述的步骤511-514可知,BEB设备在接收到一个用户报文之后,只能通过一个B-VLAN转发该用户报文。而在接收数据时,一个服务实例的所有B-VLAN均可以接收数据报文,即网络中存在单发多收的情况。
二、C-MAC地址的学习过程
BEB设备对从骨干网络侧过来的Mac-in-Mac报文进行解封装,然后进行源C-MAC地址的学习,一般情况下,从某个PW接收的报文需要学习到该PW所属的PW组上,具体包括以下步骤:
步骤S102,BEB设备接收到Mac-in-Mac报文之后,在单播PW表中,查找与该Mac-in-Mac报文中携带的I-SID、B-VLAN和B-SMAC相匹配的单播PW;即,查找包含有该Mac-in-Mac报文中携带的I-SID、B-VLAN和B-MAC的PW表项,得到该PW表项中的PW ID。
其中,BEB设备接收到的Mac-in-Mac报文,可以是对端BEB设备通过组播PW或单播PW发送过来的,无论是通过组播PW还是单播PW发送过来的,BEB设备都通过该Mac-in-Mac报文中携带的I-SID、B-VLAN和B-SMAC进行查表。
步骤S104,若该Mac-in-Mac报文中携带的源C-MAC地址是未知C-MAC地址,则BEB设备将该源C-MAC地址下发到该Mac-in-Mac报文中携带的I-SID所指示的服务实例对应的C-MAC地址表中,并将该源C-MAC地址对应的出接口设置为在步骤S 102中查找到的单播PW所属的单播PW组(具体为该单播PW组ID)。
其中,C-MAC地址表中的出接口若为PW组,则该PW组只会是单播PW组。
但是,在BEB设备上主备路径的切换可能会存在时间差,例如,在如图4所示的骨干网络中,在某一时刻,节点1以B-VLAN 20对应的转发路径为主用路径,而节点4以B-VLAN 21对应的转发路径为主用路径。此时,节点1需要从备用转 发路径上接收报文,并把报文中的源C-MAC地址学习到对应的PW Group上。学习过程如下:
当节点4发送I-SID 100的Mac-in-Mac报文时,将从B-VLAN 21的单播PW或者组播PW上给节点1发送报文,节点1接收到报文后,在单播PW表中查找到匹配的备用单播PW表项(以I-SID、B-SMAC、B-VLAN为匹配项),该表项中的PW Group ID为1,然后,对报文进行解封装,如果报文中携带的C-SA(即源C-MAC)地址为未知C-MAC,则把该源C-MAC学习到对应的PWGroup ID:PW Group1上。
此外,一个BEB设备可能会接收到对端BEB设备通过组播PW发过来的组播Mac-in-Mac报文,例如,节点4从用户网络接收到目的C-MAC未知的单播用户报文后,按照上述的步骤611-613对该用户报文进行Mac-in-Mac封装后,通过B-VLAN 20的组播PW发送给节点1。节点1收到该报文后,根据该报文中携带的B-SMAC、B-VLAN、I-SID在单播PW表中查找与之对应的带有接收标志的PW,将找到PW 1的单播PW,该PW表项中的PW Group ID为1,然后,对报文进行解封装,如果报文中携带的C-SA(即源C-MAC)地址为未知C-MAC,则把该源C-MAC学习到对应的PW Group ID:PW Group1上。
当节点1要发送I-SID 100的报文时,节点1将在I-SID 100对应的C-MAC地址表中查找C-DA(即目的C-MAC)为节点4的C-MAC地址的MAC表项,找到该表项中的PW Group ID,并在I-SID 100对应的单播PW表项中查找包含有该PWGroup ID的主用PW的表项,并用这个PW表项中的信息对报文进行Mac-in-Mac封装,最后发送给节点4。
节点1上的一个服务实例对应的C-MAC地址表可以如表13所示。
表13
同样,在实际实施过程中,BEB设备上的C-MAC地址表可以是每一个服务实例对应于一个C-MAC地址表。
三、主用路径的检测,以及路径中断后的路径切换过程
在BEB设备上对每一个服务实例启用CCM(Continuity Check Message,连续 性检测报文)双向检测,检测信息由IS-IS下发给CFM(Connectivity FaultManagement,连通错误管理),检测信息包括:B-SA、B-DA、B-VLAN和I-SID等信息,CFM根据这些信息封装CCM报文,两端的BEB设备会定时地发送CCM报文,当一端没有收到对端发送的CCM报文时(例如节点2与节点3之间的链路中断),则认为链路出现中断,此时,CFM会通知IS-IS链路故障的信息,IS-IS将进行转发路径的切换。
由上述的第一项中的内容可知,由于为每一个服务实例建立了多条转发路径,因此,在链路发生了中断时,BEB设备的报文转发方法包括以下步骤:
步骤S502,BEB设备检测到一个服务实例的第一转发路径中有链路发生中断;
路径的检测可以使用基于服务实例的检测机制,当CFM检测到一个服务实例的某个B-VLAN不通时,将把这个结果通知给IS-IS,IS-IS将根据这个结果进行该服务实例的该B-VLAN的转发路径的切换。
步骤S504,BEB设备将第一转发路径上传输的数据流切换到该服务实例的转发路径中的第二转发路径进行传输。
例如,该数据流所属的服务实例分配了2个B-VLAN:一主一备,那么,当CFM检查到主用转发路径:第一转发路径中断后,将通知IS-IS,IS-IS重新下发单播PW的PW表项,把原来的备用PW设置为主用PW,把原来的主用PW设置为备用PW,即,将备用PW对应的第二转发路径切换为主用。这样,该服务实例的后续报文就可以通过第二转发路径传输了。然后,IS-IS通知CFM删除原来主用转发路径的检测任务,并开始检查新的主用转发路径(即,第二转发路径)。
在实际实施过程中,为了实现步骤S504中将第一转发路径上传输的数据流切换到该服务实例的转发路径中的第二转发路径进行传输,具体的处理步骤包括:
步骤S602,BEB设备在单播PW表中,将与第一转发路径相对应的单播PW设置为仅用于接收;即,将第一转发路径对应的B-VLAN切换为备用B-VLAN,也即,将第一转发路径对应的B-VLAN相对应的单播PW切换为备用单播PW。
例如,将该单播PW对应的FLAG修改为只有Egress标识。
步骤S604,若在该单播PW表中与第一转发路径对应的单播PW属于同一个单播PW组的单播PW(即与第一转发路径对应的单播PW的PW Group ID相同的单播PW)仅有一个、且该单播PW仅用于接收(说明该单播PW是备用单播PW),即,该单播PW表中除了第一转发路径对应的PW表项以外,只有一个与第一转发路径的PWGroup ID相同的PW表项、且该PW表项中的PW仅用于接收(即该PW表项中的FLAG仅有Egress标识),此种情况为该服务实例只有一主和一备两个B-VLAN,则BEB设 备将该单播PW修改为用于发送和接收(即将该PW对应的FLAG修改为“Ingress &Egress”),该单播PW对应于第二转发路径;
步骤S606,若在该单播PW表中与第一转发路径对应的单播PW属于同一个单播PW组的单播PW有至少两个、且该至少两个单播PW均仅用于接收,此种情况为该服务实例有一个主用B-VLAN和多个备用B-VLAN,则BEB设备将该至少两个单播PW中的一个单播PW(从中选择一个)修改为用于发送和接收,该单播PW对应于第二转发路径;
如果该单播PW表中除了第一转发路径对应的PW表项以外,还有至少一个与第一转发路径的PW Group ID相同的PW表项、且这些PW表项中有至少一个PW表项中的PW用于发送和接收(即该PW表项中的FLAG为Ingress & Egress),此种情况为该服务实例的B-VLAN为多主一备、或者多主多备。此时,因为该服务实例除了第一转发路径以外,还有其他的主用转发路径,因此,在单播PW表中,仅需要执行步骤S602即可。
步骤S608,若在组播PW表中没有与第一转发路径对应的组播PW属于同一个组播PW组的其他组播PW,即,第一转发路径对应的组播PW所属的组播PW组中仅有第一转发路径对应的组播PW这一个组播PW,此种情况属于该服务实例只有一个B-VLAN或只有一个主用B-VLAN(一主一备或一主多备)的情况,则BEB设备将所述数据流所属的服务实例的组播复制模式修改为头端复制模式;这样做的目的是,对于组播数据流可以实现快速地切换。该服务实例的后续的广播报文、组播报文和目的C-MAC未知的单播报文就可以按照上述的步骤621-622进行封装转发,这里不再赘述。后续,等到第一转发路径中的链路中断后的网络拓扑收敛之后,BEB设备再将该服务实例的组播复制模式恢复为核心复制模式。
步骤S610,BEB设备在组播PW表中,将包含有第一转发路径对应的组播PW的PW表项删除;即,将第一转发路径对应的B-VLAN切换为备用B-VLAN。
如果除了第一转发路径对应的主用B-VLAN以外,该服务实例还有其他的主用B-VLAN,此时,在组播PW表中,第一转发路径对应的组播PW所属的组播PW组中还有其他组播PW,因此BSB设备在删除了包含有第一转发路径对应的组播PW的PW表项后,还有其他组播PW表项可用,则BEB设备就不需要执行步骤S608了。
通过执行上述步骤S602-S610,后续,BEB设备就可以按照本地的单播PW表和组播PW表进行报文的封装和转发,从而,实现了在一个主用转发路径中断后,快速地切换到另一条主用转发路径上,或者快速地切换到一条备用转发路径上。
如图4所示,当网络正常时,节点1到节点4的网络数据流走路径1-2-3-4,当该路径中出现链路中断(如节点2与节点3之间的链路中断)时,该网络数据流能够快速切换到路径1-6-5-4。
另外,路径的检测并不仅局限于点到点的检测,对于点到多点的检测同样也可以,在点到多点的情况下,当检测到某一个节点的路径不通时,CFM同样会通知IS-IS进行路径的切换。此时的切换有两种方法,一种是到所有节点的单播、组播路径一起切换到备用路径上。另外一种是只对不通的点的单播路径进行切换,到不通的点的组播路径不切换,到其它点的单播、组播路径也不切换。方法2的优点是影响面比较小,缺点是到组播路径不通。
链路故障时,可能不仅影响到主用路径,还可能会同时影响到其它的备用路径,这种情况下可以让CFM检测所有的路径,并把所有路径的检测结果通知IS-IS,由IS-IS根据检测结果进行最优路径的选择。
注:路径的切换只在BEB设备上进行,BCB设备同时存在着所有路径的转发表项。
四、链路中断后的网络拓扑收敛后的路径切换过程
虽然,在检测到一条转发路径中断后,可以将数据流切换到该数据流所属的服务实例的另一条路径上进行传输,但是,由于网络拓扑发生了变化,在新的网络拓扑收敛后,网络中的所有节点还需要执行上述步骤2-6的LSP信息发布、SPT树计算,PW和FDB表项的生成和下发的过程,待完成之后,再根据不同的情况切换到新的主用路径。
在BEB设备检测到第一转发路径中有链路发生中断后的网络拓扑收敛之后,还需要执行以下步骤:
步骤S702,BEB设备接收该链路两端的网络节点发来的携带有各自生成的新LSP信息的IS-IS LSP报文,其中,网络节点可以为BEB设备或BCB设备;
发生中断的链路的两端的网络节点会生成新的LSP信息,并通过IS-IS LSP报文发送出去,通过各自的邻居泛洪到整个骨干网络中。具体生成和发布的过程可以参见步骤2,这里不再赘述。
步骤S704,若BEB设备自己就是该链路一端的网络节点,则BEB设备生成自己的新LSP信息,并通过IS-IS LSP报文发布出去;
步骤S706,针对第一转发路径传输的数据流所属的服务实例的每一个B-VLAN、或者针对每一个服务实例的每一个B-VLAN,BEB设备根据自己的LSP信息以及接收到的新LSP信息,以自己为根节点重新计算单播SPT树,以确定到每一个对端BEB 设备的出接口;将生成的单播PW的新PW表项下发到单播PW表,同时,针对该服务实例的每一个主用B-VLAN,重新计算组播SPT树,并生成该主用B-VLAN对应的组播PW的新PW表项。
该步骤的具体实现可以参见上述的步骤3-6,这里不再赘述。
在生成了新PW表项(包括单播PW的新PW表项和组播PW的新PW表项)之后,BEB设备可以执行以下步骤之一:
步骤S802,BEB设备立即以重新生成的该服务实例的每一个B-VLAN对应的单播PW的新PW表项更新单播PW表,同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表,然后将该服务实例的模式恢复为核心复制模式;即,将单播PW表中与该服务实例对应的PW表项全部更新为重新生成的单播PW的新PW表项,以及将组播PW表中与该服务实例对应的PW表项全部更新为重新生成的组播PW的新PW表项。从而,将该服务实例的数据流切换到新的主用转发路径上来。
步骤S804,若重新生成的该服务实例的每一个B-VLAN对应的单播PW的新PW表项中存在与第二转发路径对应的单播PW表项相同的表项,则BEB设备将新PW表项中除了与第二转发路径对应的单播PW表项相同的表项以外的其他新PW表项下发到单播PW表中,并将所述其他新PW表项中包含的单播PW设置为仅用于接收。同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表,然后将该服务实例的组播复制模式恢复为核心复制模式。为避免网络路径的频繁切换,在新的SPT树对于当前的主用PW表项没有发生变化的情况下,可以把新生成的PW作为备用PW下发到数据平面的PW表中,让网络数据流还走原来的路径(即第二转发路径)。
步骤S806,若重新生成的该服务实例的每一个B-VLAN对应的单播PW的新PW表项中存在与第二转发路径对应的单播PW表项相同的表项,则BEB设备延迟一定时间后,以该服务实例的单播PW的新PW表项更新单播PW表。同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表,然后将该服务实例的模式恢复为核心复制模式。为避免网络路径的频繁切换,在新的SPT树对于当前的主用PW表项没有发生变化的情况下,可以延迟一定时间再把数据流切换到新的路径上来。
其中,由于在第一转发路径中有链路发生中断后,BEB设备将第一转发路径传输的数据流所属的服务实例的模式修改为了头端复制模式,等到网络拓扑收敛之后,BEB设备将重新生成的组播PW的新PW表项下发到组播PW表中之后, 会再将其组播复制模式恢复为核心复制模式。
那么,对于每一个BCB设备,在第一转发路径发生中断后的网络拓扑收敛之后,还需要执行以下步骤:
BCB设备接收该链路两端的网络节点发来的携带有各自生成的新LSP信息的IS-ISLSP报文,其中,网络节点为BEB设备或BCB设备;
步骤S902,若BCB设备为该链路一端的网络节点,则BCB设备生成自己的新LSP信息,并通过IS-IS LSP报文发布出去;
步骤S904,针对每一个B-VLAN,BCB设备根据自己的LSP信息以及接收到的新LSP信息,重新计算单播SPT树,并生成该B-VLAN对应的新单播FDB表项,同时,针对每一个主用B-VLAN,重新计算组播SPT树,并生成该主用B-VLAN对应的新组播FDB表项;
步骤S906,BCB设备以重新生成的新单播FDB表项更新单播FDB表,并以重新生成的新组播FDB表项更新组播FDB表。
仍然以图4所示的网络结构为例,当节点2与节点3之间的链路故障时,节点2和节点3将发布新的LSP信息通告给所有的节点,所有的节点重新计算SPT树,并最终生成新的FDB表项和新的PW表项,此时,BEB设备再根据这个计算结果再重新下发主用PW及备用PW,让网络流量切换到新的主用路径上来,如图4中的路径1-2-5-4。
五、链路故障恢复后的路径切换过程
当发生了中断的链路恢复连通了之后,BEB设备还需要执行以下步骤:
步骤S1002,BEB设备接收该链路两端的网络节点发来的携带有各自生成的新LSP信息的IS-IS LSP报文,其中,网络节点可以为BEB设备或BCB设备;
恢复的链路的两端的网络节点会生成新的LSP信息,并通过IS-IS LSP报文发送出去,通过各自的邻居泛洪到整个骨干网络中。具体生成和发布的过程可以参见步骤2,这里不再赘述。
步骤S1004,若BEB设备自己就是该链路一端的网络节点,则BEB设备生成自己的新LSP信息,并通过IS-IS LSP报文发布出去;
步骤S1006,针对第一转发路径传输的数据流所属的服务实例的每一个B-VLAN,BEB设备根据自己的LSP信息以及接收到的新LSP信息,重新计算单播SPT树,并生成该B-VLAN对应的单播PW的新PW表项,同时,针对该服务实例的每一个主用B-VLAN,重新计算组播SPT树,并生成该主用B-VLAN对应的组播PW的新PW表项。
该步骤的具体实现可以参见上述的步骤3-6,这里不再赘述。
在生成了新PW表项(包括单播PW的新PW表项和组播PW的新PW表项)之后,BEB设备可以执行以下步骤之一:
步骤S1102,BEB设备以重新生成的该服务实例的每一个B-VLAN对应的单播PW的新PW表项更新单播PW表,并以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表;即,将单播PW表中与该服务实例对应的PW表项全部更新为重新生成的单播PW的新PW表项,以及将组播PW表中与该服务实例对应的PW表项全部更新为重新生成的组播PW的新PW表项。从而,将该服务实例的数据流切换到新的主用转发路径上来。
步骤S1104,若重新生成的单播PW的新PW表项中存在与当前转发路径对应的单播PW表项相同的表项,则BEB设备将新PW表项中除了与该当前转发路径对应的单播PW表项相同的表项以外的其他新PW表项下发到单播PW表中,并将所述其他新PW表项中包含的单播PW设置为仅用于接收。为避免网络路径的频繁切换,在新的SPT树对于当前的主用PW表项没有发生变化的情况下,可以把新生成的PW作为备用PW下发到数据平面的PW表中,让网络数据流还走原来的路径。
步骤S1106,若重新生成的单播PW的新PW表项中存在与当前转发路径对应的单播PW表项相同的表项,则BEB设备延迟一定时间后,以该服务实例的新PW表项更新单播PW表。为避免网络路径的频繁切换,在新的SPT树对于当前的主用PW表项没有发生变化的情况下,可以延迟一定时间再把数据流切换到新的路径上来。
步骤S1108,若重新生成的组播PW的新PW表项中存在与当前转发路径对应的组播PW表项相同的表项,则BEB设备不将该服务实例的组播PW的新PW表项下发到组播PW表中,或者,延迟一定时间后以该服务实例的组播PW的新PW表项更新组播PW表。为避免网络路径的频繁切换,在新的SPT树对于当前的主用PW表项没有发生变化的情况下,可以让网络数据流还走原来的路径,或者延迟一定时间再把数据流切换到新的路径上来。
那么,对于每一个BCB设备,在发生了中断的链路恢复连通了之后,还需要执行以下步骤:
步骤S1200,BCB设备接收该链路两端的网络节点发来的携带有各自生成的新LSP信息的IS-IS LSP报文,其中,网络节点为BEB设备或BCB设备;
步骤S1202,若BCB设备为该链路一端的网络节点,则BCB设备生成自己的新LSP信息,并通过IS-IS LSP报文发布出去;
步骤S1204,针对第一转发路径传输的数据流所属的服务实例的每一个B-VLAN,BCB设备根据自己的LSP信息以及接收到的新LSP信息,重新计算单播SPT树,并生成该B-VLAN对应的新单播FDB表项,同时,针对该服务实例的每一个主用B-VLAN,重新计算组播SPT树,并生成该主用B-VLAN对应的新组播FDB表项;
步骤S1206,BCB设备以重新生成的新单播FDB表项更新单播FDB表,并以生成的新组播FDB表项更新组播FDB表。
如图4所示,当节点2与节点3的故障链路恢复时,节点2和节点3将发布新的LSP信息通告给所有的节点,所有的节点重新计算SPT树,并最终生成新的FDB表项和PW表项,此时,BEB设备再根据这个计算结果再重新下发主用PW及备用PW,让网络流量切换到新的主用路径上来,如图4中的路径1-2-3-4。
为避免网络路径的频繁切换,在新的SPT树对于当前的主用PW表项没有发生变化的情况下,可以把新生成的PW作为备用PW下发到数据平面的PW表中,让网络数据流还走原来的路径。或者,延迟一定时间再把数据流切换到新的路径上来。
针对上述实施例中的方法,本申请以下实施例提供了一种可以应用上述方法的BEB设备和BCB设备。
如图6所示,本申请的实施例的BEB设备包括以下模块:配置信息接收模块101、获取模块102、发送模块103、检测模块104和切换模块105,其中:
配置信息接收模块101,用于接收针对本BEB设备上配置的服务实例的配置信息,所述配置信息包括:为该服务实例分配的至少两个B-VLAN以及各个B-VLAN映射到的ECT算法,其中,每一个B-VLAN映射到一种ECT算法,不同的B-VLAN映射到的ECT算法不同;
获取模块102,用于针对与本BEB设备设置有同一服务实例的对端BEB设备,根据LSP信息以及该服务实例的每一个B-VLAN映射到的ECT算法,为该服务实例的每一个B-VLAN计算一条本BEB设备与该对端BEB设备之间的转发路径,获得该服务实例的不同B-VLAN所对应的不同的转发路径;
发送模块103,用于通过一服务实例的第一转发路径传输数据流;
检测模块104,用于检测该服务实例的转发路径中是否有链路发生中断;
切换模块105,用于在检测模块104检测到该服务实例的第一转发路径中有链路发生中断时,将第一转发路径上传输的数据流切换到该服务实例的转发路径中的第二转发路径进行传输。
根据本申请的一个实施例,获取模块可以进一步包括:分配单元,用于为该对端BEB设备分配一个单播PW组;SPT树计算单元,用于针对该服务实例的每一个 B-VLAN,根据本BEB设备的LSP信息以及接收到的LSP信息,使用该B-VLAN映射到的ECT算法,以本BEB设备为根节点计算单播SPT树,以确定到该对端BEB设备的出接口;生成下发单元,用于为该对端BEB设备的每一个B-VLAN生成一个单播PW,将生成的单播PW的PW表项下发到单播PW表,并设置单播PW的发送及接收属性,其中,针对该对端BEB设备生成的所有PW均属于为该对端BEB设备分配的单播PW组,每一个单播PW的PW表项中包括:单播PW组标识ID、PW ID、B-VLAN和出接口。其中,若该服务实例的B-VLAN中包括:主用B-VLAN和备用B-VLAN,则,当该服务实例的一个B-VLAN为备用B-VLAN时,所述生成下发单元将生成的与该备用B-VLAN对应的备用单播PW的PW表项下发到单播PW表的同时,还将该备用单播PW设置为仅用于接收;当该服务实例的一个B-VLAN为主用B-VLAN时,所述生成下发单元将生成的与该主用B-VLAN对应的主用单播PW的PW表项下发到单播PW表的同时,还将该主用单播PW设置为用于发送和接收。
如图7所示,BEB设备还可以包括以下模块:接收模块106、查找模块107、学习模块108、封装模块109和选择模块100,其中,
接收模块106,用于接收来自用户网络的用户报文;还用于接收来自骨干网的Mac-in-Mac报文;
查找模块107,用于在接收模块106接收到该Mac-in-Mac报文之后,通过查找单播PW表,确定与该Mac-in-Mac报文中携带的I-SID、B-VLAN、和B-SMAC相对应的单播PW;还用于在接收模块106接收到来自用户网络的用户报文之后,查找与接收到该用户报文的入接口对应的服务实例,在与查找到的服务实例对应的C-MAC地址表中,查找与该用户报文中携带的目的C-MAC地址相匹配的C-MAC地址对应的出接口;还用于在单播PW表中查找与接收模块106接收到的Mac-in-Mac报文中携带的I-SID、B-VLAN、和B-SMAC相对应的单播PW;
学习模块108,用于在该Mac-in-Mac报文中携带的源C-MAC地址是未知C-MAC地址时,将该源C-MAC地址学习到该I-SID所指示的服务实例对应的C-MAC地址表中,并将该源C-MAC地址对应的出接口设置为查找模块107查找到的该单播PW所属的单播PW组;
封装模块109,用于在查找模块107查找到的出接口为单播PW组时,若该单播PW组中仅有一个PW用于发送和接收,则使用单播PW表中与该PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,以及使用单播PW表中与选择模块100所选择的PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装;
选择模块100,用于在查找模块107查找到的出接口为单播PW组时,若该单播PW组中有至少两个PW用于发送和接收,则根据预定的负载分担规则从该至少两个PW中选择一个PW;
发送模块103,用于在查找模块106查找到的出接口为PW组时,若该PW组中仅有一个PW用于发送和接收,则将封装模块107封装得到的Mac-in-Mac报文通过与该PW对应的出接口发送出去;在查找模块106查找到的出接口为单播PW组时,若该单播PW组中有至少两个PW用于发送和接收,则将封装模块107封装得到的Mac-in-Mac报文通过与选择模块108所选择的PW对应的出接口发送出去。
此时,为了实现单播数据流的快速切换,切换模块包括:设置修改单元,用于在单播PW表中将与第一转发路径相对应的单播PW设置为仅用于接收;若在该单播PW表中与第一转发路径对应的单播PW属于同一个单播PW组的单播PW仅有一个、且该单播PW仅用于接收,则将该单播PW修改为用于发送和接收,该单播PW对应于第二转发路径;若在该单播PW表中与第一转发路径对应的单播PW属于同一个单播PW组的单播PW有至少两个、且该至少两个单播PW均仅用于接收,则将该至少两个单播PW中的一个单播PW修改为用于发送和接收,该单播PW对应于第二转发路径。
为了实现组播PW表项的生成和下发,当该服务实例的组播复制模式为核心复制模式时,获取模块中的分配单元还用于为该服务实例分配一个组播PW组;SPT树计算单元还用于针对该服务实例的每一个主用B-VLAN,根据本BEB设备的LSP信息以及接收到的LSP信息,使用该主用B-VLAN映射到的ECT算法,以该对端BEB设备为根节点计算组播SPT树,以确定到该对端BEB设备的出接口,该出接口有至少一个;生成下发单元还用于为该服务实例的每一个主用B-VLAN生成一个组播PW,将为主用B-VLAN生成的组播PW的PW表项下发到组播PW表中,并将该组播PW设置为仅用于发送,其中,该服务实例的各个主用B-VLAN对应的组播PW均属于为该服务实例分配的组播PW组,每一个组播PW的PW表项中包括:组播PW组ID、PW ID、B-VLAN和出接口。
当在核心复制模式时,为了实现对广播报文、组播报文和目的C-MAC地址未知的单播报文的转发,此时:接收模块还用于接收来自用户网络的用户报文,其中,该用户报文是以下报文之一:广播报文、组播报文、目的C-MAC地址未知的单播报文;封装模块还用于在该用户报文对应的服务实例是核心复制模式时,若与该服务实例相对应的组播PW组中仅有一个用于发送的组播PW,则使用组播PW表中与该组播PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装, 以及,若与该服务实例相对应的组播PW组中有至少两个用于发送的组播PW,则使用组播PW表中与选择模块所选择的组播PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装;发送模块还用于在该用户报文对应的服务实例是核心复制模式时,若与该服务实例相对应的组播PW组中仅有一个用于发送的组播PW,则将封装模块封装得到的Mac-in-Mac报文通过与该组播PW对应的出接口发送出去,若与该服务实例相对应的组播PW组中有至少两个用于发送的组播PW,则将封装模块封装得到的Mac-in-Mac报文通过与选择模块所选择的组播PW对应的出接口发送出去;选择模块还用于在该用户报文对应的服务实例是核心复制模式时,若与该服务实例相对应的组播PW组中有至少两个用于发送的组播PW,则根据预定的负载分担规则从该至少两个组播PW中选择一个组播PW。
当在头端复制模式时,为了实现对广播报文、组播报文和目的C-MAC地址未知的单播报文的转发,此时:封装模块还用于在该用户报文对应的服务实例是头端复制模式时,针对该服务实例的每一个单播PW组,对该用户报文进行复制,使用单播PW表中与该单播PW组中的一个用于发送和接收的单播PW相对应的I-SID、B-SMAC、B-DMAC和B-VLAN,对复制得到的用户报文进行Mac-in-Mac封装;其中,当该服务实例的一个单播PW组中有至少两个单播PW用于发送和接收时,通知选择模块根据预定的负载分担规则,从该至少两个单播PW中选择一个单播PW;发送模块还用于在该用户报文对应的服务实例是头端复制模式时,将封装模块封装得到的Mac-in-Mac报文通过与该单播PW对应的出接口发送出去。
为了实现组播、广播、目的C-MAC未知的单播数据流的快速切换,切换模块包括:删除单元,用于在组播PW表中将包含有第一转发路径对应的组播PW的PW表项删除;修改单元,用于若在组播PW表中没有与第一转发路径对应的组播PW属于同一个组播PW组的其他组播PW,则在所述删除单元执行该删除操作之前,先将该服务实例的组播复制模式修改为头端复制模式。后续,在第一转发路径中有链路发生中断后的网络拓扑收敛之后,修改单元再将该服务实例的组播复制模式恢复为核心复制模式。
此外,生成下发单元还用于在第一转发路径中有链路发生中断后的网络拓扑收敛之后,或者在发生了中断的链路恢复后的网络拓扑收敛之后,执行以下操作之一:
(1)立即以重新生成的该服务实例的每一个B-VLAN对应的单播PW的新PW表项更新单播PW表,同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表;
(2)若重新生成的该服务实例的每一个B-VLAN对应的单播PW的新PW表项 中存在与第二转发路径对应的单播PW表项相同的表项,则将新PW表项中除了与第二转发路径对应的单播PW表项相同的表项以外的其他新PW表项下发到单播PW表中,并将所述其他新PW表项中包含的单播PW设置为仅用于接收;同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表;
(3)若重新生成的该服务实例的每一个B-VLAN对应的单播PW的新PW表项中存在与第二转发路径对应的单播PW表项相同的表项,则延迟一定时间后,以该服务实例的单播PW的新PW表项更新单播PW表;同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表。
以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表之后,再将该服务实例的组播复制模式恢复为核心复制模式。
针对上述实施例的方法,本申请的实施例还提供了一种可以应用上述的方法中BCB设备执行的方法的BCB设备,BCB设备上的每一个B-VLAN映射到一种ECT算法,不同的B-VLAN映射到的ECT算法不同,如图8所示,BCB设备包括以下模块:接收模块201、发送模块202和FDB模块203,其中:
接收模块201,用于接收Mac-in-Mac报文;
发送模块202,用于按照FDB表,对接收模块201接收到的Mac-in-Mac报文进行转发;
FDB模块203,用于当一个服务实例的B-VLAN中包括:主用B-VLAN和备用B-VLAN时,针对每一个主用B-VLAN,均执行以下操作:根据本BCB设备的LSP信息以及接收到的LSP信息,使用该主用B-VLAN映射到的ECT算法,分别以每一个设置有该服务实例的BEB设备为根节点计算组播SPT树;根据计算得到的组播SPT树,生成与该主用B-VLAN对应的FDB表项,下发到组播FDB表中。
本申请实施例中BEB或BCB设备中的模块或单元可以集成于一体,也可以分离部署;可以合并为一个模块或单元,也可以进一步拆分成多个子模块或子单元。本申请各实施例中的模块或单元可以以机械方式或电子方式实现。例如,一个硬件模块可以包括专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件模块也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。至于具体采用机械方式,或是采用专用的永久性电路,或是采用临时配置的电路(如由软件进行配置)来实现硬件模块,可以根据成本和时间上的考虑来决定。
以上对本申请具体实施例中的BEB设备进行了说明,下面给出本申请具体实施例中BEB设备的硬件架构组成,该BEB设备是可以软硬件结合的可编程设备,具体参 见图9,图9是本申请具体实施例中BEB设备的硬件架构组成示意图,该BEB设备包括:存储器310,处理器320,报文处理芯片330,以及耦合存储器310、处理器320、报文处理芯片330的互联机构340;其中,
存储器310,用于存储指令代码和各种列表,例如,FDB表、单播PW表、组播PW表和MAC地址表等,当所述指令代码被执行时完成的操作主要为BEB设备中的配置信息接收模块、获取模块、检测模块、切换模块、接收模块、查找模块、封装模块、选择模块、发送模块和学习模块等模块完成的功能,这里不再详述。
处理器320,用于与报文处理芯片330通信,进行协议报文以及包括用户报文和Mac-in-Mac报文在内的数据报文的收发;用于与存储器310通信,读取和执行存储器310中存储的所述指令代码,完成上述BEB设备中的配置信息接收模块、获取模块、检测模块、切换模块、接收模块、查找模块、封装模块、选择模块、发送模块和学习模块等模块完成的功能,以及对从报文处理芯片330上送的报文的处理。
报文处理芯片330,用于通过该芯片上的端口连接到骨干网络中的BCB设备和用户网络内的设备,负责上述的数据报文和协议报文的收发处理,将处理器320发来的Mac-in-Mac报文发送到BCB设备,将处理器320发来的用户报文发送到用户网络,并将接收到的上述协议报文和数据报文上送给处理器320。
互联机构340则提供各模块间的信息交互通道,可以是一根连接各模块的总线,也可以由上述各个模块间的多条线路组成。
需要说明的是,图9所示的BEB设备只是一个具体的例子,也可以通过其他的与本实施例描述不同结构实现,例如,执行上述指令代码时所完成的操作,也可以由特定应用专用集成电路(ASIC)实现。另外,上述的处理器320可以是一个或多个,如果是多个,则由多个处理器共同负责读取和执行所述指令代码。因此,本申请对BEB设备的具体结构不作具体限定。
同样,本申请的上述实施例的BCB设备的硬件架构组成也可以采用如图9所示的结构,这里不再赘述。
本申请以上实施例可以应用在P2P(Point to Point,点到点)、P2MP(Point-to-MultiPoint,点到多点)和MP2MP(MultiPoint-to-MultiPoint,多点到多点)网络中,而且,不仅可以应用于核心复制模式,也可以应用于头端复制模式中。
综上,本申请以上实施例可以达到以下技术效果:
1、降低了数据流的恢复时间,恢复时间将小于50ms;
现有技术中,为一个服务实例仅建立了一条转发路径,因此,在一个服务实 例的转发路径中有链路发生了中断之后,受网络规模以及各节点的计算能力的影响,故障恢复时间较长,可能达到秒级。而本申请实施例中,为一个服务实例分配了多个B-VLAN,每一个B-VLAN对应于该服务实例的一条转发路径,各个B-VLAN对应的转发路径的源端BEB设备和目的端BEB设备相同、但所经过的路径不同,这样,为一个服务实例建立了多条转发路径,当其中一条转发路径中有链路中断后,可以将该服务实例的数据流快速地切换到该服务实例的另一条转发路径上,大大减少了数据流的中断恢复时间,提高链路中断时数据流的切换速度。
本申请可以仅依赖于Ethernet OAM的性能来检测路径,由于目前大部分的设备已经采用了专用的CPU来处理Ethernet OAM,其性能可以达到10ms的级别。检测路径的手段可以是基于服务实例(I-SID)进行检测,可以只检测一个服务实例的主用B-VLAN对应的转发路径,也可以探测一个服务实例的所有B-VLAN对应的转发路径。
2、提升了网络的负载分担效果,使每条转发路径的负载更均衡;
现有技术中,由于一个服务实例只建立了一条转发路径,因此,只能做到基于服务实例的负载分担,即一个服务实例的流量只能在一条转发路径上传输,而本申请通过为一个服务实例建立多条转发路径,可以实现一个服务实例的数据流在多条转发路径上进行负载分担。
3、为避免网络数据流的频繁切换,在网络故障拓扑收敛后及故障恢复拓扑收敛后,可以把新的转发路径作为备用路径,也可以延迟一定时间后再进行切换。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (13)
1.一种报文转发方法,应用于Mac-in-Mac模式的最短路径桥SPBM网络中的骨干网边缘网桥BEB设备,其特征在于,所述方法包括:
BEB设备接收针对本地配置的服务实例的配置信息,所述配置信息包括:为该服务实例分配的至少两个骨干网虚拟局域网B-VLAN以及各个B-VLAN映射到的等价树ECT算法,其中,每一个B-VLAN映射到一种ECT算法,不同的B-VLAN映射到的ECT算法不同;
针对设置有同一服务实例的对端BEB设备,BEB设备根据链路状态协议数据单元LSP信息以及该服务实例的每一个B-VLAN映射到的ECT算法,为该服务实例的每一个B-VLAN计算一条本BEB设备与该对端BEB设备之间的转发路径,获得该服务实例的不同B-VLAN所对应的不同的转发路径;
BEB设备通过一服务实例的第一转发路径传输数据流;
BEB设备检测到该服务实例的第一转发路径中有链路发生中断;
BEB设备将所述第一转发路径上传输的数据流,切换到该服务实例的转发路径中的第二转发路径进行传输;
其中,所述获得该服务实例的不同B-VLAN所对应的不同的转发路径包括:
BEB设备为该对端BEB设备分配一个单播伪线PW组;
针对该服务实例的每一个B-VLAN,BEB设备根据自己的LSP信息以及接收到的LSP信息,使用该B-VLAN映射到的ECT算法,以自己为根节点计算单播最短路径树SPT树,以确定到该对端BEB设备的出接口;
BEB设备为该对端BEB设备的每一个B-VLAN生成一个单播PW,将生成的单播PW的PW表项下发到单播PW表,并设置单播PW的发送及接收属性,其中,针对该对端BEB设备生成的所有PW均属于为该对端BEB设备分配的单播PW组,每一个单播PW的PW表项中包括:单播PW组标识ID、PW ID、B-VLAN和出接口。
2.根据权利要求1所述的方法,其特征在于,还包括:
BEB设备接收到来自骨干网的Mac-in-Mac报文之后,通过查找单播PW表,确定与该Mac-in-Mac报文中携带的骨干网服务实例标识I-SID、B-VLAN、和骨干网源MAC B-SMAC相对应的单播PW,并在该Mac-in-Mac报文中携带的源用户网络媒体访问控制C-MAC地址是未知C-MAC地址时,将该源C-MAC地址学习到该I-SID所指示的服务实例对应的C-MAC地址表中,并将该源C-MAC地址对应的出接口设置为该单播PW所属的单播PW组;
其中,所述BEB设备通过一服务实例的第一转发路径传输数据流,包括:
BEB设备接收到来自用户网络的用户报文之后,查找与接收到该用户报文的入接口对应的服务实例;
BEB设备在与查找到的服务实例对应的C-MAC地址表中,查找与该用户报文中携带的目的C-MAC地址相匹配的C-MAC地址对应的出接口;当查找到的出接口为单播PW组时,若该单播PW组中仅有一个PW用于发送和接收,则BEB设备使用单播PW表中与该PW对应的I-SID、B-SMAC、骨干网目的MAC B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与该PW对应的出接口发送出去;
若该单播PW组中有至少两个PW用于发送和接收,则BEB设备根据预定的负载分担规则从该至少两个PW中选择一个PW,使用单播PW表中与所选择的PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与所述所选择的PW对应的出接口发送出去。
3.根据权利要求2所述的方法,其特征在于,BEB设备将所述第一转发路径上传输的数据流,切换到该服务实例的转发路径中的第二转发路径进行传输包括:
BEB设备在本地的单播PW表中将与所述第一转发路径相对应的单播PW设置为仅用于接收;
若在该单播PW表中与所述第一转发路径对应的单播PW属于同一个单播PW组的单播PW仅有一个、且该单播PW仅用于接收,则BEB设备将该单播PW修改为用于发送和接收,该单播PW对应于所述第二转发路径;
若在该单播PW表中与所述第一转发路径对应的单播PW属于同一个单播PW组的单播PW有至少两个、且该至少两个单播PW均仅用于接收,则BEB设备将该至少两个单播PW中的一个单播PW修改为用于发送和接收,该单播PW对应于所述第二转发路径。
4.根据权利要求1所述的方法,其特征在于,所述获得该服务实例的不同B-VLAN所对应的不同的转发路径还包括:
当该服务实例的组播复制模式为核心复制模式时,BEB设备为该服务实例分配一个组播PW组;
针对该服务实例的每一个主用B-VLAN,BEB设备根据自己的LSP信息以及接收到的LSP信息,使用该主用B-VLAN映射到的ECT算法,以该对端BEB设备为根节点计算组播SPT树,以确定到该对端BEB设备的出接口,该出接口有至少一个;
BEB设备为该服务实例的每一个主用B-VLAN生成一个组播PW,将为主用B-VLAN生成的组播PW的PW表项下发到组播PW表中,并将该组播PW设置为仅用于发送,其中,该服务实例的各个主用B-VLAN对应的组播PW均属于为该服务实例分配的组播PW组,每一个组播PW的PW表项中包括:组播PW组ID、PW ID、B-VLAN和出接口。
5.根据权利要求4所述的方法,其特征在于,所述BEB设备通过一服务实例的第一转发路径传输数据流,包括:
BEB设备接收来自用户网络的用户报文,其中,该用户报文是以下报文之一:广播报文、组播报文、目的C-MAC地址未知的单播报文;
当该用户报文对应的服务实例的组播复制模式是核心复制模式时,若与该服务实例相对应的组播PW组中仅有一个用于发送的组播PW,则BEB设备使用组播PW表中与该组播PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与该组播PW对应的出接口发送出去;若与该服务实例相对应的组播PW组中有至少两个用于发送的组播PW,则BEB设备根据预定的负载分担规则从该至少两个组播PW中选择一个组播PW,然后使用组播PW表中与所选择的组播PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与该所选择的组播PW对应的出接口发送出去;
当该用户报文对应的服务实例的组播复制模式是头端复制模式时,BEB设备针对该服务实例的每一个单播PW组,对该用户报文进行复制,使用单播PW表中与该单播PW组中的一个用于发送和接收的单播PW相对应的I-SID、B-SMAC、B-DMAC和B-VLAN,对复制得到的用户报文进行Mac-in-Mac封装,并将封装得到的Mac-in-Mac报文通过与该单播PW对应的出接口发送出去;其中,当该服务实例的一个单播PW组中有至少两个单播PW用于发送和接收时,BEB设备根据预定的负载分担规则,从该至少两个单播PW中选择一个单播PW。
6.根据权利要求5所述的方法,其特征在于,
BEB设备将所述第一转发路径上传输的数据流,切换到该服务实例的转发路径中的第二转发路径进行传输包括:BEB设备在组播PW表中将包含有所述第一转发路径对应的组播PW的PW表项删除,其中,若在组播PW表中没有与所述第一转发路径对应的组播PW属于同一个组播PW组的其他组播PW,则BEB设备在执行该删除操作之前,先将该服务实例的组播复制模式修改为头端复制模式。
7.根据权利要求6所述的方法,其特征在于,在所述第一转发路径中有链路发生中断后的网络拓扑收敛之后,还包括:
BEB设备立即以重新生成的该服务实例的每一个B-VLAN对应的单播PW的新PW表项更新单播PW表,同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表;
或者,若重新生成的单播PW的新PW表项中存在与所述第二转发路径对应的单播PW表项相同的表项,则BEB设备将该服务实例的单播PW的新PW表项下发到单播PW表中,并将新PW表项中包含的单播PW设置为仅用于接收;同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表;
或者,若重新生成的单播PW的新PW表项中存在与所述第二转发路径对应的单播PW表项相同的表项,则BEB设备延迟一定时间后,以该服务实例的单播PW的新PW表项更新单播PW表;同时以重新生成的该服务实例的每一个主用B-VLAN对应的组播PW的新PW表项更新组播PW表。
8.一种骨干网边缘网桥BEB设备,应用于Mac-in-Mac模式的最短路径桥SPBM网络中,其特征在于,该BEB设备包括:
配置信息接收模块,用于接收针对本BEB设备上配置的服务实例的配置信息,所述配置信息包括:为该服务实例分配的至少两个骨干网虚拟局域网B-VLAN以及各个B-VLAN映射到的等价树ECT算法,其中,每一个B-VLAN映射到一种ECT算法,不同的B-VLAN映射到的ECT算法不同;
获取模块,用于针对与本BEB设备设置有同一服务实例的对端BEB设备,根据链路状态协议数据单元LSP信息以及该服务实例的每一个B-VLAN映射到的ECT算法,为该服务实例的每一个B-VLAN计算一条本BEB设备与该对端BEB设备之间的转发路径,获得该服务实例的不同B-VLAN所对应的不同的转发路径;
发送模块,用于通过一服务实例的第一转发路径传输数据流;
检测模块,用于检测该服务实例的转发路径中是否有链路发生中断;
切换模块,用于在所述检测模块检测到该服务实例的第一转发路径中有链路发生中断时,将所述第一转发路径上传输的数据流切换到该服务实例的转发路径中的第二转发路径进行传输;
其中,所述获取模块包括:
分配单元,用于为该对端BEB设备分配一个单播伪线PW组;
最短路径树SPT树计算单元,用于针对该服务实例的每一个B-VLAN,根据本BEB设备的LSP信息以及接收到的LSP信息,使用该B-VLAN映射到的ECT算法,以本BEB设备为根节点计算单播SPT树,以确定到该对端BEB设备的出接口;
生成下发单元,用于为该对端BEB设备的每一个B-VLAN生成一个单播PW,将生成的单播PW的PW表项下发到单播PW表,并设置单播PW的发送及接收属性,其中,针对该对端BEB设备生成的所有PW均属于为该对端BEB设备分配的单播PW组,每一个单播PW的PW表项中包括:单播PW组标识ID、PW ID、B-VLAN和出接口。
9.根据权利要求8所述的BEB设备,其特征在于,还包括:接收模块、查找模块、学习模块、封装模块和选择模块,其中,
所述接收模块,用于接收来自骨干网的Mac-in-Mac报文以及来自用户网络的用户报文;
所述查找模块,用于在所述接收模块接收到该Mac-in-Mac报文之后,通过查找单播PW表,确定与该Mac-in-Mac报文中携带的骨干网服务实例标识I-SID、B-VLAN、和骨干网源MACB-SMAC相对应的单播PW;还用于在所述接收模块接收到来自用户网络的用户报文之后,查找与接收到该用户报文的入接口对应的服务实例,在与查找到的服务实例对应的C-MAC地址表中,查找与该用户报文中携带的目的C-MAC地址相匹配的C-MAC地址对应的出接口;
所述学习模块,用于在该Mac-in-Mac报文中携带的源用户网络媒体访问控制C-MAC地址是未知C-MAC地址时,将该源C-MAC地址学习到该I-SID所指示的服务实例对应的C-MAC地址表中,并将该源C-MAC地址对应的出接口设置为该单播PW所属的单播PW组;
所述封装模块,用于在所述查找模块查找到的出接口为单播PW组时,若该单播PW组中仅有一个PW用于发送和接收,则使用单播PW表中与该PW对应的I-SID、B-SMAC、骨干网目的MAC B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,以及使用单播PW表中与选择模块所选择的PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装;
所述选择模块,用于在所述查找模块查找到的出接口为单播PW组时,若该单播PW组中有至少两个PW用于发送和接收,则根据预定的负载分担规则从该至少两个PW中选择一个PW;
所述发送模块,还用于在所述查找模块查找到的出接口为单播PW组时,若该单播PW组中仅有一个PW用于发送和接收,则将所述封装模块封装得到的Mac-in-Mac报文通过与该PW对应的出接口发送出去;在所述查找模块查找到的出接口为单播PW组时,若该单播PW组中有至少两个PW用于发送和接收,则将所述封装模块封装得到的Mac-in-Mac报文通过与所述选择模块所选择的PW对应的出接口发送出去。
10.根据权利要求9所述的BEB设备,其特征在于,所述切换模块包括:
设置修改单元,用于在单播PW表中将与所述第一转发路径相对应的单播PW设置为仅用于接收;若在该单播PW表中与所述第一转发路径对应的单播PW属于同一个单播PW组的单播PW仅有一个、且该单播PW仅用于接收,则将该单播PW修改为用于发送和接收,该单播PW对应于所述第二转发路径;若在该单播PW表中与所述第一转发路径对应的单播PW属于同一个单播PW组的单播PW有至少两个、且该至少两个单播PW均仅用于接收,则将该至少两个单播PW中的一个单播PW修改为用于发送和接收,该单播PW对应于所述第二转发路径。
11.根据权利要求9所述的BEB设备,其特征在于,当该服务实例的组播复制模式为核心复制模式时,
所述分配单元还用于为该服务实例分配一个组播PW组;
所述SPT树计算单元还用于针对该服务实例的每一个主用B-VLAN,根据本BEB设备的LSP信息以及接收到的LSP信息,使用该主用B-VLAN映射到的ECT算法,以该对端BEB设备为根节点计算组播SPT树,以确定到该对端BEB设备的出接口,该出接口有至少一个;
所述生成下发单元还用于为该服务实例的每一个主用B-VLAN生成一个组播PW,将为主用B-VLAN生成的组播PW的PW表项下发到组播PW表中,并将该组播PW设置为仅用于发送,其中,该服务实例的各个主用B-VLAN对应的组播PW均属于为该服务实例分配的组播PW组,每一个组播PW的PW表项中包括:组播PW组ID、PW ID、B-VLAN和出接口。
12.根据权利要求11所述的BEB设备,其特征在于,
所述接收模块还用于接收来自用户网络的用户报文,其中,该用户报文是以下报文之一:广播报文、组播报文、目的C-MAC地址未知的单播报文;
所述封装模块还用于在该用户报文对应的服务实例是核心复制模式时,若与该服务实例相对应的组播PW组中仅有一个用于发送的组播PW,则使用组播PW表中与该组播PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装,以及,若与该服务实例相对应的组播PW组中有至少两个用于发送的组播PW,则使用组播PW表中与所述选择模块所选择的组播PW对应的I-SID、B-SMAC、B-DMAC和B-VLAN对该用户报文进行Mac-in-Mac封装;在该用户报文对应的服务实例是头端复制模式时,针对该服务实例的每一个单播PW组,对该用户报文进行复制,使用单播PW表中与该单播PW组中的一个用于发送和接收的单播PW相对应的I-SID、B-SMAC、B-DMAC和B-VLAN,对复制得到的用户报文进行Mac-in-Mac封装,其中,当该服务实例的一个单播PW组中有至少两个单播PW用于发送和接收时,通知所述选择模块根据预定的负载分担规则,从该至少两个单播PW中选择一个单播PW;
所述发送模块还用于在该用户报文对应的服务实例是核心复制模式时,若与该服务实例相对应的组播PW组中仅有一个用于发送的组播PW,则将所述封装模块封装得到的Mac-in-Mac报文通过与该组播PW对应的出接口发送出去,若与该服务实例相对应的组播PW组中有至少两个用于发送的组播PW,则将所述封装模块封装得到的Mac-in-Mac报文通过与所述选择模块所选择的组播PW对应的出接口发送出去;在该用户报文对应的服务实例是头端复制模式时,将所述封装模块封装得到的Mac-in-Mac报文通过与该单播PW对应的出接口发送出去;
所述选择模块还用于在该用户报文对应的服务实例是核心复制模式时,若与该服务实例相对应的组播PW组中有至少两个用于发送的组播PW,则根据预定的负载分担规则从该至少两个组播PW中选择一个组播PW。
13.根据权利要求12所述的BEB设备,其特征在于,所述切换模块包括:
删除单元,用于在组播PW表中将包含有所述第一转发路径对应的组播PW的PW表项删除;
修改单元,用于若在组播PW表中没有与所述第一转发路径对应的组播PW属于同一个组播PW组的其他组播PW,则在所述删除单元执行该删除操作之前,先将该服务实例的组播复制模式修改为头端复制模式。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210392333.4A CN103731288B (zh) | 2012-10-16 | 2012-10-16 | 报文转发方法及设备 |
PCT/CN2013/085320 WO2014059931A1 (en) | 2012-10-16 | 2013-10-16 | Forwarding packets |
EP13846839.2A EP2909980A4 (en) | 2012-10-16 | 2013-10-16 | ROUTING OF PACKAGES |
US14/402,685 US9521068B2 (en) | 2012-10-16 | 2013-10-16 | Forwarding packets |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210392333.4A CN103731288B (zh) | 2012-10-16 | 2012-10-16 | 报文转发方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103731288A CN103731288A (zh) | 2014-04-16 |
CN103731288B true CN103731288B (zh) | 2017-04-12 |
Family
ID=50455223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210392333.4A Active CN103731288B (zh) | 2012-10-16 | 2012-10-16 | 报文转发方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9521068B2 (zh) |
EP (1) | EP2909980A4 (zh) |
CN (1) | CN103731288B (zh) |
WO (1) | WO2014059931A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104009926B (zh) * | 2013-02-26 | 2017-04-12 | 杭州华三通信技术有限公司 | Evi网络中的组播方法及边缘设备ed |
US10177967B2 (en) * | 2013-03-15 | 2019-01-08 | Jesse Lakes | Redirection service resource locator mechanism |
US9584333B2 (en) * | 2013-12-20 | 2017-02-28 | Avaya Inc. | Optimization of rules used for prevention of duplication and looping of multicast traffic within a multi-homed cluster of backbone edge bridges in a shortest path bridging multicast network |
US9391884B2 (en) * | 2014-01-31 | 2016-07-12 | Google Inc. | Consistent hashing using exact matching with application to hardware load balancing |
US9887939B2 (en) * | 2015-03-11 | 2018-02-06 | International Business Machines Corporation | Transmitting multi-destination packets in overlay networks |
CN104092622B (zh) * | 2014-07-04 | 2018-01-09 | 新华三技术有限公司 | 一种报文处理方法和设备 |
CN104158755B (zh) | 2014-07-30 | 2017-12-05 | 华为技术有限公司 | 传输报文的方法、装置和系统 |
CN104168207A (zh) * | 2014-08-21 | 2014-11-26 | 北京奇艺世纪科技有限公司 | 负载调节方法及系统 |
US9674045B2 (en) | 2014-12-12 | 2017-06-06 | Oracle International Corporation | Methods, systems, and computer readable media for modeling packet technology services using a packet virtual network (PVN) |
US9866408B2 (en) * | 2014-12-12 | 2018-01-09 | Oracle International Corporation | Methods, systems, and computer readable media for configuring a flow interface on a network routing element |
US10230589B2 (en) | 2014-12-12 | 2019-03-12 | Oracle International Corporation | Methods, systems, and computer readable media for configuring service networks |
WO2016116939A1 (en) | 2015-01-19 | 2016-07-28 | Hewlett-Packard Development Company, L.P. | Engines to prune overlay network traffic |
CN104836735B (zh) * | 2015-05-25 | 2018-11-09 | 新华三技术有限公司 | 跨bvlan的数据报文转发方法和装置 |
US9954762B2 (en) * | 2015-06-23 | 2018-04-24 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Populating forwarding database tables in a fabric environment |
CN105187307B (zh) * | 2015-08-19 | 2018-07-31 | 上海斐讯数据通信技术有限公司 | 基于SDN的MAC-in-MAC报文传输方法及系统 |
US10320952B2 (en) * | 2016-05-16 | 2019-06-11 | Mellanox Technologies Tlv Ltd. | System-wide synchronized switch-over of multicast flows |
US10433272B2 (en) | 2016-05-17 | 2019-10-01 | Googel LLC | Distributed coordination of mesh network configuration updates |
CN107547291B (zh) * | 2016-06-28 | 2021-02-12 | 华为技术有限公司 | 性能监控方法、装置及路由器 |
EP3512164B1 (en) * | 2016-09-30 | 2020-12-02 | Huawei Technologies Co., Ltd. | Pseudo wire load sharing method and apparatus |
US9992114B1 (en) * | 2016-12-02 | 2018-06-05 | Adtran, Inc. | Selective MAC address learning |
CN108206759B (zh) | 2016-12-20 | 2021-02-09 | 华为技术有限公司 | 一种转发报文的方法、设备及系统 |
US10333729B1 (en) * | 2017-12-07 | 2019-06-25 | International Business Machines Corporation | Protecting a network from a unicast flood |
US10880215B2 (en) * | 2017-12-13 | 2020-12-29 | Extreme Networks, Inc. | Systems and methods for providing I-SID translation in SPB networks |
CN112567715B (zh) | 2018-04-07 | 2023-03-24 | 中兴通讯股份有限公司 | 用于边缘计算的应用迁移机制 |
CN109525451B (zh) * | 2018-09-13 | 2021-06-01 | 中兴通讯股份有限公司 | 一种mpls网络检测的实现方法、装置、网络设备和控制器 |
CN109617725B (zh) * | 2018-12-13 | 2021-12-14 | 北京知道创宇信息技术股份有限公司 | 一种VMess协议配置方法、装置及其存储介质 |
US10862814B2 (en) * | 2019-03-26 | 2020-12-08 | Nxp Usa, Inc. | Exception handling in a multi-user wireless communication device based on user tag values |
CN111131532B (zh) * | 2019-11-27 | 2022-08-16 | 深圳震有科技股份有限公司 | 自动更改mac地址方法及系统、计算机设备、介质 |
CN111654406B (zh) * | 2020-02-29 | 2022-08-30 | 新华三信息安全技术有限公司 | 一种双向转发检测方法和装置 |
US11418436B2 (en) * | 2020-05-08 | 2022-08-16 | Ciena Corporation | NG-VPLS E-tree signaling using segment routing |
CN112235175B (zh) * | 2020-09-01 | 2022-03-18 | 深圳市共进电子股份有限公司 | 一种网桥设备的访问方法、访问装置及网桥设备 |
CN112202674B (zh) * | 2020-09-27 | 2022-10-28 | 北京物芯科技有限责任公司 | 一种组播报文的转发处理方法、装置、设备及存储介质 |
CN112751714B (zh) * | 2020-12-31 | 2023-03-24 | 杭州海康威视系统技术有限公司 | 确定网络拓扑的方法、装置及计算机存储介质 |
CN113079041B (zh) * | 2021-03-24 | 2023-12-05 | 国网上海市电力公司 | 一种业务流传输方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102204223A (zh) * | 2008-10-28 | 2011-09-28 | 北方电讯网络有限公司 | 具有路由备份的供应的提供商链路状态桥接(plsb) |
CN102549982A (zh) * | 2009-10-02 | 2012-07-04 | 瑞典爱立信有限公司 | 在计算机网络中控制数据转发的技术 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060187950A1 (en) * | 2005-02-18 | 2006-08-24 | Alcatel | Architecture and provisioning tools for managed multicast virtual private LAN trees |
CN100583825C (zh) | 2006-08-30 | 2010-01-20 | 华为技术有限公司 | 最短路径桥中对称树的生成方法 |
JP4469866B2 (ja) * | 2007-03-20 | 2010-06-02 | 富士通株式会社 | パケット伝送装置および半導体装置 |
US8144715B2 (en) * | 2007-08-10 | 2012-03-27 | Rockstar Bideo LP | Method and apparatus for interworking VPLS and ethernet networks |
CN101159696A (zh) * | 2007-11-21 | 2008-04-09 | 杭州华三通信技术有限公司 | Pbt网络流量控制方法及装置 |
US7903676B2 (en) * | 2008-02-05 | 2011-03-08 | Cisco Technology, Inc. | Transportation of IEEE 802.1ah frames over multiprotocol label switching pseudowires for virtual private LAN services |
ES2437070T3 (es) | 2009-04-23 | 2014-01-08 | Futurewei Technologies, Inc. | Puenteo del control de acceso a medios en una red mallada |
CN101997713A (zh) * | 2009-08-31 | 2011-03-30 | 中兴通讯股份有限公司 | 一种以太网路径保护的切换方法及系统 |
US8553533B2 (en) * | 2010-12-10 | 2013-10-08 | Cisco Technology, Inc. | System and method for providing improved failover performance for pseudowires |
CN102413059B (zh) | 2011-12-27 | 2014-05-14 | 杭州华三通信技术有限公司 | 一种基于spb网络的组播转发方法和spbm桥 |
WO2013139406A1 (en) * | 2012-03-23 | 2013-09-26 | Telefonaktiebolaget L M Ericsson (Publ) | Pseudowire selection in a pseudowire redundancy network |
US8982689B2 (en) * | 2012-04-20 | 2015-03-17 | Telefonaktiebolaget L M Ericsson (Publ) | Split tiebreakers for 802.1AQ |
-
2012
- 2012-10-16 CN CN201210392333.4A patent/CN103731288B/zh active Active
-
2013
- 2013-10-16 US US14/402,685 patent/US9521068B2/en active Active
- 2013-10-16 EP EP13846839.2A patent/EP2909980A4/en not_active Withdrawn
- 2013-10-16 WO PCT/CN2013/085320 patent/WO2014059931A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102204223A (zh) * | 2008-10-28 | 2011-09-28 | 北方电讯网络有限公司 | 具有路由备份的供应的提供商链路状态桥接(plsb) |
CN102549982A (zh) * | 2009-10-02 | 2012-07-04 | 瑞典爱立信有限公司 | 在计算机网络中控制数据转发的技术 |
Also Published As
Publication number | Publication date |
---|---|
EP2909980A4 (en) | 2016-06-01 |
WO2014059931A1 (en) | 2014-04-24 |
EP2909980A1 (en) | 2015-08-26 |
CN103731288A (zh) | 2014-04-16 |
US20150156108A1 (en) | 2015-06-04 |
US9521068B2 (en) | 2016-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103731288B (zh) | 报文转发方法及设备 | |
US9036637B2 (en) | Message transmission in virtual private networks | |
CN103685022B (zh) | 报文转发方法及服务提供商网络边缘设备 | |
CN104660508B (zh) | 一种报文转发方法及装置 | |
US8270319B2 (en) | Method and apparatus for exchanging routing information and establishing connectivity across multiple network areas | |
US8223668B2 (en) | Method and apparatus for exchanging routing information and the establishment of connectivity across multiple network areas | |
CN102882784B (zh) | Spbm中的lsp信息泛洪方法及设备 | |
CN104380672B (zh) | 用于802.1aq的三级折叠Clos优化 | |
US8630167B2 (en) | Distributed failure recovery in a routed ethernet network | |
CN101848129B (zh) | 网络系统、核心交换器、边缘交换器、数据中继方法 | |
CN103259721B (zh) | Spbm网络中的报文转发方法及装置 | |
CN103944826B (zh) | Spbm网络中的表项聚合方法及设备 | |
CN107135133A (zh) | 多家庭pbb‑evpn网络中的水平分割数据包转发 | |
CN103269299B (zh) | Spbm网络中的报文转发方法及装置 | |
KR20150008449A (ko) | Ietf evpn을 통한 802.1aq 지원 | |
CN102150148A (zh) | 层2拓扑中针对单播帧和多播帧的差别化服务 | |
TW201225579A (en) | Load balancing in shortest-path-bridging networks | |
CN103227745B (zh) | 最短路径桥网和三层虚拟专网互通方法及公共边缘设备 | |
CN102316014B (zh) | 分层虚拟专用局域网服务环境下的负载分担方法及路由器 | |
CN104219073B (zh) | Spbm网络中的报文转发方法及装置 | |
CN104009919B (zh) | 报文转发方法及装置 | |
CN103152283B (zh) | 一种聚合链路负载分担的方法和设备 | |
CN104378302B (zh) | 地址对应关系发送方法和路由桥设备 | |
CN103685029B (zh) | 一种快速环网保护协议组网中报文转发方法和设备 | |
CN104022954B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology 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: Huasan Communication Technology Co., Ltd. |