CN107547370B - 流量转发方法、装置及系统 - Google Patents

流量转发方法、装置及系统 Download PDF

Info

Publication number
CN107547370B
CN107547370B CN201710876007.3A CN201710876007A CN107547370B CN 107547370 B CN107547370 B CN 107547370B CN 201710876007 A CN201710876007 A CN 201710876007A CN 107547370 B CN107547370 B CN 107547370B
Authority
CN
China
Prior art keywords
traffic
equipment
group
route
vtep
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
CN201710876007.3A
Other languages
English (en)
Other versions
CN107547370A (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.)
Hangzhou H3C 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 CN201710876007.3A priority Critical patent/CN107547370B/zh
Publication of CN107547370A publication Critical patent/CN107547370A/zh
Application granted granted Critical
Publication of CN107547370B publication Critical patent/CN107547370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本公开涉及流量转发方法、装置及系统,所述方法包括:当检测到本成员设备与所述流量接收设备连接的链路发生故障时,向DR组中其他成员设备发送包括本成员设备DR口故障状态的第一同步消息,所述第一同步消息用于通知其他成员设备所述本成员设备的DR口状态;确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第一路由;向所述流量发送设备通告所述第一路由,所述第一路由用于将本成员设备DR口故障后,流量发送设备欲通过本成员设备转发的流量,通过所述流量发送设备和代理成员设备之间的隧道转发。根据本公开的流量转发方法及装置,减少了IPL链路因为带宽不足导致业务报文的丢失,提高了转发可靠性。

Description

流量转发方法、装置及系统
技术领域
本公开涉及网络通信技术领域,尤其涉及一种流量转发方法、装置及系统。
背景技术
为了提高网络的高可靠性,通常会采用分布式聚合方案,分布式聚合方案的基本思想是:让多台接入设备以同一个状态和被接入的设备进行链路聚合协商,在被接入的设备看来,就如同和一台设备建立了链路聚合关系。
分布式聚合有2个基本的概念,IPP口和DR口。
其中,IPP(Intra-Portal Port,内部控制链路端口)口是指:连接DR组邻居成员设备,用于内部控制的二层聚合接口。每台DR成员设备只有一个IPP口,DR成员设备的IPP口间通过IPL(Intra-Portal Link,内部控制链路)链路在DR成员设备间传输DRNI协议报文。IPL链路可以是物理链路,也可以是逻辑隧道。
DR(Distributed Relay interface,分布式聚合接口)口是指:DR组成员设备与外部设备相连的二层聚合接口。
目前,当分布式聚合DR组中用于转发流量的成员设备的DR口故障时,待转发的流量会通过中间的IPL链路转发到邻居成员设备上面,然后通过邻居成员设备进行转发,这对IPL链路带宽要求较高,增加IPL链路的业务负担。
发明内容
有鉴于此,本公开提出了一种流量转发方法、装置及系统,减轻DR组中成员设备之间的IPL链路负担,提高了转发可靠性。
根据本公开的第一方面,提供了一种流量转发方法,所述方法应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述方法包括:当检测到本成员设备与所述流量接收设备连接的链路发生故障时,向所述DR组中其他成员设备发送包括本成员设备DR口故障状态的第一同步消息,所述第一同步消息用于通知其他成员设备所述本成员设备的DR口状态;确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第一路由;向所述流量发送设备通告所述第一路由,所述第一路由用于将本成员设备DR口故障后流量发送设备欲通过本成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
根据本公开的第二方面,提供了一种流量转发方法,所述方法应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述方法包括:接收所述DR组中其他成员设备发送的包括故障成员设备DR口故障状态的第一同步消息;其中,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备;根据所述第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第三路由;向所述流量发送设备通告所述第三路由,所述第三路由用于将故障成员设备DR口故障后流量发送设备欲通过故障成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
根据本公开的第三方面,提供一种流量转发方法,应用于与分布式聚合DR组连接的流量发送设备,所述DR组由至少两台成员设备组成,并通过分布式聚合DR口与流量接收设备连接、通过虚拟IP地址与流量发送设备通信;所述流量转发方法包括:接收所述DR组中各成员设备发送的路由,其中,所述路由为DR组中具有故障成员设备时根据确定的代理成员设备的实际IP地址生成,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备;根据所述路由确定所述实际IP地址对应的代理成员设备为隧道端点;将欲通过故障成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
根据本公开的第四方面,提供了一种流量转发系统,所述系统包括由至少两台成员设备组成的分布式聚合DR组,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述成员设备用于执行如上第一方面、第二方面任一所述的方法。
根据本公开的第五方面,提供一种流量转发系统,包括流量发送设备和由至少两台成员设备组成的分布式聚合DR组,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;当所述DR组中任一成员设备检测到设备本身与所述流量接收设备连接的链路发生故障时,向DR组中其他成员设备发送包括故障成员设备DR口故障状态的第一同步消息;所述其他成员设备接收所述第一同步消息;所述DR组各成员设备从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成对应的路由;以及,向所述流量发送设备通告所述路由;所述流量发送设备接收所述路由,并根据所述路由将故障成员设备DR口故障后流量发送设备欲通过故障成员设备转发的流量在所述流量发送设备和代理成员设备之间的隧道转发。
根据本公开的第六方面,提供了一种流量转发装置,所述装置应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述装置包括:第一发送模块,用于检测到本成员设备与所述流量接收设备连接的链路发生故障时,向所述DR组中其他成员设备发送包括本成员设备DR口故障状态的第一同步消息,所述第一同步消息用于通知其他成员设备所述本成员设备的DR口状态;第一确定模块,用于确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第一路由;第一通告模块,用于向所述流量发送设备通告所述第一路由,所述第一路由用于将本成员设备DR口故障后流量发送设备欲通过本成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
根据本公开的第七方面,提供了一种流量转发装置,所述装置应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述装置包括:第一接收模块,用于接收所述DR组中其他成员设备发送的包括故障成员设备DR口故障状态的第一同步消息;其中,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备;第二确定模块,用于根据所述第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第三路由;第三通告模块,用于向所述流量发送设备通告所述第三路由,所述第三路由用于将故障成员设备DR口故障后流量发送设备欲通过故障成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
根据本公开的第八方面,提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器执行如上第一至第三方面任一所述的流量转发方法。
DR组中的成员设备在检测到与所述流量接收设备之间的链路发生故障时,将根据同一DR组中的代理成员设备的实际IP地址生成的路由通告给流量发送设备,以使流量发送设备在接收到更新路由之后,通过所述流量发送设备和所述实际IP地址对应的代理成员设备之间的隧道转发所述流量发送设备发送的流量。根据本公开的流量转发方法,DR组中的成员设备故障后,可以减轻DR组中成员设备之间的IPL链路负担,保证了数据业务尽可能的不在IPL链路上进行转发,减少了IPL链路因为带宽不足导致业务报文的丢失以及因为数据报文量太大导致分布式聚合协议报文被丢弃情况的发生,提高了转发可靠性。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出一示例的可能应用的分布式聚合方案示意图。
图2示出一示例的EVPN组网的示意图。
图3a示出一示例的分布式聚合应用于EVPN组网协议同步和流量转发示意图。
图3b示出一示例的分布式聚合应用于EVPN组网协议同步和流量转发示意图。
图3c示出一示例的分布式聚合应用于EVPN组网协议同步和流量转发示意图。
图4示出根据本公开一实施例的流量转发方法的流程图。
图5示出根据本公开一实施例的流量转发方法的流程图。
图6示出根据本公开一实施例的流量转发方法的流程图。
图7示出根据本公开一实施例的流量转发方法的流程图。
图8示出根据本公开一实施例的流量转发方法的流程图。
图9示出根据本公开一实施例的流量转发装置的框图。
图10示出根据本公开一实施例的流量转发装置的框图。
图11示出根据本公开一实施例的流量转发装置的框图。
图12示出根据本公开一实施例的流量转发装置的框图。
图13示出根据本公开一实施例的流量转发装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
分布式聚合方案可以应用到例如xSTP协议、SDN网络协议例如TRILL/VXLAN、IP网络协议等应用场景。图1示出了一可能应用的分布式聚合方案,如图1所示的VXLAN(VirtualeXtensible LAN,可扩展虚拟局域网络)组网中,VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)B和VTEP C组成一个DR(Distributed Relay,分布式聚合)组,VTEP B和VTEP C通过分布式聚合DR口与CE(Customer Edge,用户边缘)A连接,设备CE A通过2个物理端口与VTEPB和VTEP C连接,在设备CE A看来,VTEP B和VTEP C是1台设备,起了提高业务可靠性的功能。VTEP B和VTEP C之间通过IPL(Intra-Portal Link,内部控制链路)连接,并在DR组成员设备间传输协议报文和同步信息。CE E到CE A的流量转发可以经过分布式聚合组的任意一台设备VTEP B或者VTEP C,当一台成员设备挂掉,不会影响另外一台接替工作。
目前,当分布式聚合DR组中用于转发流量的成员设备的DR口故障时,待转发的流量会通过中间的IPL链路转发到邻居成员设备上面,然后通过邻居成员设备进行转发,这对IPL链路带宽要求较高,增加IPL链路的业务负担,容易因IPL链路带宽不足导致业务报文的丢失以及因数据报文量太大导致分布式聚合协议报文被丢弃。下面以一可能的分布式聚合应用场景例如MLAG(multi-chassis link aggregation group,多设备的链路聚合组)结合EVPN组网技术进行说明。
EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是一种二层VPN技术,控制平面采用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)通告EVPN路由信息,数据平面采用VXLAN封装方式转发报文。EVPN组网跟VXLAN组网的最大的区别在于EVPN数据面的VXLAN封装隧道是通过BGP自动发现自动建立的,从很大程度上利用了BGP协议的优势,减少了人工对VXLAN网络的配置的复杂程度。
目前,MLAG(multi-chassis link aggregation group,多设备的链路聚合组)场景也支持EVPN技术,图2示出一示例基于MLAG场景的EVPN组网的示意图,如图2所示,VTEP B和VTEP C组成分布式聚合DR组,EVPN使用分布式聚合对AC(Attachment Circuit,接入电路)接口侧进行保护。在正常情况下,如果设备CE E向设备CE A转发流量,转发路径可以为CE E-VTEP D-VTEP B-CE A。当分布式聚合系统的一台成员设备(例如VTEP B)发生了故障,流量通过中间的IPL链路转发到对端邻居成员设备的VTEP C上面,然后从VTEP C向CE A进行转发,这从一定意义上提高了EVPN的私网侧业务的可靠性,但是对IPL链路带宽要求较高,增加IPL链路的业务负担。
举例来说,如图3a所示,VTEP B和VTEP C组成一个分布式聚合DR组,VTEP B和VTEPC通过分布式聚合DR口连接用户边缘CE设备CE A,CE A通过两个物理端口与聚合DR口连接,以实现与VTEP B和VTEP C连接。其中,DR口为DR组与外部设备连接的二层聚合口,如图3a所示的VTEP B与CE A连接的二层聚合口AGG 1和VTEP C与CE A连接的二层聚合口AGG 1。VTEPB和VTEP C之间通过IPL连接,通过IPL进行协议报文交互和信息同步。需要说明的是,DR组可以聚合至少两个VTEP,图3a仅仅是本公开的一个示例,DR组还可以聚合3个以上的VTEP,本公开对此不作限定。
CE A可以为虚机VM(Virtual Machine),VTEP B和VTEP C上的实际IP地址为1.1.1.1和2.2.2.2,对外通告的虚拟IP地址为3.3.3.3(如图3a中所示的,该虚拟IP地址即为DR组的IP地址)。
DR组的另一端连接VTEP D,VTEP D不属于所述DR组。VTEP B和VTEP C可以采用MP-BGP(Multiprotocol Extensions for BGP-4,BGP-4的多协议扩展)分别向VTEP D通告EVPN路由信息,EVPN数据平面的VXLAN隧道可以通过BGP自动发现、自动建立。
CE A上线之后,VTEP B和VTEP C能够学习到CE A的ARP表项,同时向远端VTEP D通告CE A的下一跳为虚拟IP地址3.3.3.3的EVPN 2类路由,使用虚拟IP地址3.3.3.3与VTEP D建立VXLAN隧道,则CE A的IP地址在VTEP D上面产生的IP转发表项为:出接口为VXLAN隧道口,VXLAN隧道口的目的地址为虚拟IP地址3.3.3.3。其中,EVPN 2类路由可以是指MAC/IPadvertisement route,用于通告MAC/IP的可达性。
针对VTEP D来说,与VTEP B之间的链路和与VTEP C之间的链路是等价链路。例如,VTEP B在使用地址IP_B与VTEP D设备建立了BGP邻居关系之后,使用虚拟IP地址IP22与VTEP D建立VXLAN隧道tunnel0;VTEP C在使用地址IP_C与VTEP D建立了BGP邻居关系之后,同样使用虚拟IP地址IP22与VTEP D设备建立VXLAN隧道tunnel0。这样,在VTEP D上,tunnel0的目的IP地址为IP22,tunnel0对应2条等价链路,分别连接设备VTEP B和VTEP C。其中,IP_B可以为VTEP B的实际IP地址,例如1.1.1.1;IP_C可以为VTEP C的实际IP地址,例如2.2.2.2;IP22可以为DR组的虚拟IP地址,例如3.3.3.3。VTEP D在收到EVPN 2类路由之后,下发转发表项,VTEP D上面产生的IP转发表项可以为:出接口为VXLAN隧道tunnel0,对应的2个下一跳设备为VTEP B和VTEP C。
CE A上线后,向VTEP B或者VTEP C发送的报文,使VTEP B和VTEP C学习到CE A的MAC地址以及对应的转发表。如图3a所示,假设CE A的IP地址为100.1.1.2,CE A上线后,发出的源MAC地址为A-A-A的报文到VTEP B上面,VTEP B会动态学习到CE A的MAC地址的转发表项,下一跳出接口可设置为AGG 1,VTEP B的转发表可以如表1-1所示。
表1-1
MAC地址 下一跳 出接口
A-A-A 100.1.1.2 AGG 1
同时,VTEP B会通过EVPN协议将A-A-A的这个MAC地址同步给VTEP D,下一跳出接口为VTEP D到VTEP B/VTEP C的VXLAN隧道tunnel0,VTEP D的转发表可以如表2-1所示。
表2-1
MAC地址 下一跳 出接口
A-A-A 3.3.3.3 tunnel0
VTEP B还会通过IPL链路将A-A-A这个MAC地址同步给VTEP C设备,下一跳出接口为分布式聚合的另外一个AGG 1口,VTEP C的转发表可以如表3-1所示。
表3-1
MAC地址 下一跳 出接口
A-A-A 100.1.1.2 AGG 1
VTEP D向CE A发送报文时,该报文的目的MAC地址为A-A-A,根据表2-1查找到对应的出接口为tunnel0。VTEP D可以hash到VTEP B\VTEP C任意一台设备作为VXLAN隧道tunnel0的尾节点进行业务的转发,比如hash到的VTEP B。
当DR组的一台成员设备发生了故障,例如,VTEP B发生了故障,或者,VTEP B和CEA之间的DR口的物理成员口发生了故障,流量能通过中间的IPL链路转发到远端的VTEP C上面,然后VTEP C根据表3-1查找到对应的出接口为AGG 1,从VTEP C向CE A进行转发,这从一定意义上提高了EVPN的私网侧业务的可靠性,但是也对IPL链路带宽要求较高。
为了尽可能地避免上述问题,本公开提供了一种流量转发方法。图4示出根据本公开一实施例的流量转发方法的流程图,所述流量转发方法可以应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信。DR组中的成员设备与流量发送设备之间的链路在underlay网络形成等价,针对同一流量接收设备,流量发送设备可以根据流量的源IP地址或源MAC地址将待发送的流量分发到各链路上,例如,结合图3a,可以将针对源IP地址100.1.1.10的流量1分到VTEP B和VTEP D之间链路上发送,将针对源IP地址100.1.1.11的流量2分到VTEP C和VTEP D之间链路上发送。
如图3a和3b所示,所述DR组可以包括两个成员设备。所述DR组还可以包括三个及以上成员设备,如图3c所示,DR组可以包括VTEP B、VTEP C、VTEP E和VTEP F,本公开对此不作限定。所述方法可以应用于所述DR组中的任意一个VTEP(成员设备),流量接收设备可以是如图3a所示的设备CE A,流量发送设备可以是如图3a所示的VTEP D。
如图4所示,该方法包括:
步骤S11,当检测本成员设备到与所述流量接收设备连接的链路发生故障时,向所述DR组中其他成员设备发送包括本成员设备DR口故障状态的第一同步消息。所述第一同步消息用于通知其他成员设备所述本成员设备的DR口状态。
可以理解的是,当本成员设备检测到与所述流量接收设备连接的链路发生故障时,本成员设备为故障成员设备。所述DR组中其他成员设备是指DR组中除了本成员设备之外的所有成员设备。
其中,检测到与所述流量接收设备连接的链路发生故障可以是如上所述的本成员设备感知到与流量接收设备连接的DR口发生故障,例如,本成员设备感知到DR口的状态变为DOWN。
步骤S12,确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第一路由。其中,所述未故障成员设备可以为所述DR组中与所述流量接收设备连接的链路未发生故障的成员设备。
步骤S13,向所述流量发送设备通告所述第一路由,所述第一路由用于将本成员设备DR口故障后流量发送设备欲通过本成员设备转发的流量,通过所述流量发送设备和代理成员设备之间的隧道转发。
本成员设备检测到故障后,为了使本成员设备向流量接收设备转发的流量尽量减少通过IPL转发,以减轻IPL的业务负担,本公开通过DR组中的其他成员设备转发本成员设备所转发的流量,来解决上述问题。因此,本成员设备可以确定用于向流量接收设备转发流量的实际IP地址(也就是DR组中代理成员设备的实际IP地址),并根据所述实际IP地址生成第一路由,向流量发送设备通告所述第一路由。流量发送设备接收到所述第一路由后,通过所述流量发送设备和所述实际IP地址对应的代理成员设备之间的隧道转发流量发送设备之后发送的流量。
本公开能够减少IPL链路因为带宽不足导致业务报文的丢失以及因为数据报文量太大导致协议报文被丢弃情况的发生,能够使数据业务流量尽可能的不在IPL链路上进行转发。
可选的,针对本成员设备DR口故障后已经发送到本成员设备的流量,可以通过IPL转发。当通告第一路由后,流量发送设备发送的流量则通过流量发送设备和代理成员设备之间的隧道转发。
在某些可选的实施例中,DR组中其他成员设备可以是本成员设备的对端成员设备,例如本公开提供的流量转发方法可以应用于任意两两设备之间为连接关系的组网。示例性的,本公开提供的流量转发方法应用于EVPN组网中,基于BGP协议,EVPN组网中任意两个设备之间互为对等体,则DR组中各成员设备之间互为对端成员设备。以图3c中发生故障的成员设备为VTEP B为例,对端成员设备是指除了VTEP B以外的DR组中的其他成员设备,VTEP C、VTEP E和VTEP F。本成员设备向对端成员设备发送第一同步消息,以通知对端成员设备本成员设备发生故障。
在一可选的实施例中,所述欲通过本成员设备转发的流量可以是:本成员设备DR口故障后,流量发送设备打算通过本成员设备转发的流量,示例性的,所述流量可以是本成员设备DR口故障后,流量发送设备打算通过本成员设备发生故障的DR口转发的流量。
在另一可选的实施例中,第一路由还可以用于在本成员设备DR口故障后,将流量发送设备打算通过DR组中任何成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
在上述可选的实施例中,所述第一路由可以是EVPN 2类路由。可选的,所述EVPN 2类路由携带有扩展团体属性,所述扩展团体属性的序列号用于确定传输流量时选择的路由。在一可选的实施例中,较大的扩展团体属性的序列号对应的路由,为传输流量时选择的路由。
示例性的,扩展团体属性可以为MAC迁徙扩展团体属性(MAC Mobility ExtendedCommunity),所述MAC迁徙扩展团体属性的序列号初始值可以为0,DR的成员设备可以在每次向流量发送设备通告下一跳EVPN 2类路由时,更新上述序列号的值,例如,将MAC迁徙扩展团体属性的序列号加1。流量发送设备接收到上述第一EVPN 2类路由、获取更新后的MAC迁徙扩展团体属性的序列号后,可以根据所述更新后的MAC迁徙扩展团体属性的序列号判断下一跳出现的变化,若MAC迁徙扩展团体属性的序列号发生改变,BGP进行路由的优选,将MAC迁徙扩展团体属性序列号大的EVPN 2类路由下发更新,并且,流量发送设备根据第一EVPN 2类路由,可以通过BGP协议在流量发送设备和实际IP地址对应的代理成员设备之间建立隧道,以转发流量。例如,可以在流量发送设备和实际IP地址对应的成员设备之间建立VXLAN隧道tunnel1,tunnel1的目的地址为所述实际IP地址。
DR组中的成员设备在检测到与所述流量接收设备之间的链路发生故障时,将根据同一DR组中的代理成员设备的实际IP地址生成的路由通告给流量发送设备,以使流量发送设备在接收到更新路由之后,通过所述流量发送设备和所述实际IP地址对应的代理成员设备之间的隧道转发所述流量发送设备发送的流量。根据本公开的流量转发方法,DR组中的成员设备故障后,可以减轻DR组中成员设备之间的IPL链路负担,保证了数据业务尽可能的不在IPL链路上进行转发,减少了IPL链路因为带宽不足导致业务报文的丢失以及因为数据报文量太大导致分布式聚合协议报文被丢弃情况的发生,提高了转发可靠性。
在一种可能的实现方式中,所述第一路由用于将所述流量发送设备上、欲通过本成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳设置为所述实际IP地址。可选的,此种实现方式可以应用于流量发送设备和代理成员设备之间建有隧道的情况。例如,将流量发送设备上、欲通过本成员设备转发流量的转发表中、向所述流量接收设备的转发表项的3层路由转发表项的下一跳设置为上述实际IP地址,同样的,将欲通过本成员设备转发流量的ARP转发表项中、向所述流量接收设备的MAC地址对应的下一跳也设置为上述实际IP地址。
在一种可能的实现方式中,所述第一路由用于在所述流量发送设备和所述实际IP地址对应的成员设备之间建立第一VXLAN隧道,并将所述流量发送设备上、欲通过本成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳出接口设置为所述第一VXLAN隧道。可选的,此种实现方式可以应用于流量发送设备和代理成员设备之间未建立隧道的情况。例如,在流量发送设备和所述实际IP地址对应的代理成员设备之间建立VXLAN隧道tunnel1,可以将流量发送设备上、欲通过本成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳出接口设置为tunnel1,示例性的,将欲通过本成员设备转发流量的ARP转发表项中、向流量接收设备的下一跳IP地址的出接口设置为tunnel1。可选的,还可以将流量发送设备上欲通过本成员设备转发流量的转发表中向所述流量接收设备的转发表项的3层路由转发表项的下一跳设置为上述实际IP地址,同样的,将欲通过本成员设备转发流量的ARP转发表项中向所述流量接收设备的MAC地址对应的下一跳也设置为上述实际IP地址。
这样,在流量发送设备要向流量接收设备发送业务流量时,可以通过查找转发表确定下一跳以及下一跳出接口,并将业务流量转发到相应的设备上。
在上述某些实施例中,DR组中各成员设备可以存储有DR口状态表,用于记录DR中各成员设备的DR口状态或除设备自身之外所有其他成员设备的DR口状态。则步骤12中所述确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,可以通过以下方式实现:
更新本地存储的DR组中各成员设备的DR口状态表,依据更新后的DR口状态表确定所述DR组中未故障成员设备;示例性的,未故障成员设备在接收到故障成员设备发送的第一同步消息后,可以根据第一同步消息携带的故障成员设备的DR口状态,更新本地存储的DR口状态表。
将所述未故障成员设备中满足预设条件的成员设备确定为所述代理成员设备。其中,所述未故障成员设备为所述DR组中与所述流量接收设备连接的链路未发生故障的成员设备,所述预设条件可以是指未故障成员设备的实际IP地址中IP地址最小的,也可以根据情况通过其他条件选择代理成员设备,本公开对此不作限定。
在一可选的实施例中,所述DR口状态表可以用于记录DR组中各成员设备对应的设备标识、实际IP地址、DR口标识、DR口状态以及DR组标识,其中,DR口标识用于标识DR口,DR口状态用于表示对应DR口的状态(例如DOWN、UP),DR组标识用于表示对应DR口处于哪一DR组。DR口标识可以是指能够表示接口唯一性的标识,例如,DR口标识可以是由数字、字母和符号中的一种或多种组成的DR口的身份信息,同一DR组中属于相同聚合组的DR口的DR口标识相同,因此,故障成员设备的DR口链路故障时,可以向其他成员设备发送第一同步消息,以使其他成员设备可以确定相应的DR口,进而感知到故障成员设备的DR口链路发生故障,并根据第一同步消息携带的故障成员设备的DR口状态,更新本地存储的DR口状态表。
例如,结合图3c,成员设备VTEP B的DR口状态表可以如表4所示。结合表4可知,VTEP B的S0/0、VTEP C的S0/0、VTEP E的S0/0和VTEP F的S0/0属于同一DR口AGG1且处于同一DR组DR-1,其中,VTEP B的DR口状态为DOWN,VTEP C的DR口状态为UP。另外,VTEP B的S0/1属于另一DR口AGG2且处于另一DR组DR-2,DR口状态为UP;VTEP C的S0/1属于另一DR口AGG3且处于另一DR组DR-3,DR口状态为UP。
表4
设备标识 实际IP地址 接口标识 DR口标识 DR口状态 DR组标识
VTEP B 1.1.1.1 S0/0 AGG1 DOWN DR-1
VTEP B 1.1.1.1 S0/1 AGG2 UP DR-2
VTEP C 2.2.2.2 S0/0 AGG1 UP DR-1
VTEP C 2.2.2.2 S0/1 AGG3 UP DR-3
VTEP E 1.1.1.2 S0/0 AGG1 UP DR-1
VTEP F 2.1.1.1 S0/0 AGG1 UP DR-1
通过上述描述,可知,未故障成员设备为VTEP C、VTEP E、VTEP F。若假设预设条件是指未故障成员设备的实际IP地址中最小的IP地址1.1.1.2,则该IP地址对应的成员设备VTEP E可以被确定为代理成员设备。
在上述另外某些可选的实施例,DR组中各成员设备均会记录各成员设备的实际IP地址和DR口状态。在一种可能的实现方式中,步骤S12,从未故障成员设备中确定用于转发流量的代理成员设备,可以包括:
将未故障成员设备的实际IP地址中满足预设条件的IP地址对应的成员设备作为代理成员设备,所述未故障设备为所述DR组中与所述流量接收设备连接的链路未发生故障的成员设备,可以通过DR口状态获知对应的成员设备与所述流量接收设备连接的链路是否发生故障。其中,预设条件可以是指未故障成员设备的实际IP地址中最小的IP地址,也可以根据需要具体设定,本公开对此不作限定。
举例来说,如图3b所示,当所述DR组中只有两个成员设备VTEP B和VTEP C时,VTEPB、VTEP C会记录各自对端成员设备的实际IP地址和DR口状态,即VTEP B记录VTEP C的实际IP地址2.2.2.2和DR口状态,VTEP C记录VTEP B的实际IP地址1.1.1.1和DR口状态。若其中的一个成员设备(VTEP B)与所述流量接收设备CE A连接的链路发生故障,VTEP B可以向DR口状态UP的对端成员设备VTEP C发送第一同步消息,并将另一个成员设备(VTEP C)确定为代理成员设备,该成员设备的实际IP地址被确定为向所述流量接收设备转发流量的实际IP地址,根据VTEP C的实际IP地址生成EVPN 2类路由,并向流量发送设备VTEP D通告生成的EVPN 2类路由。流量发送设备在接收到通告路由后,在流量发送设备和上述实际IP地址对应的成员设备VTEP C之间建立VXLAN隧道tunnel1,并将流量发送设备上、下一跳为VTEP B的转发表中向CE A的转发表项下一跳设置为VTEP C的实际IP地址,转发表项下一跳出接口设置为隧道tunnel1。
此时,如图3b所示,VTEP D再向CE A发送业务流量时,通过查找转发表,确定下一跳IP地址以及出接口,将流量转发到成员设备VTEP C,VTEP C接收到VTEP D发送的流量后,将流量转发到设备CE A。
在另外一示例中,如图3c所示,所述DR组中可包括三个以上成员设备,例如,VTEPB、VTEP C、VTEP E和VTEP F,VTEP B上的实际IP地址为1.1.1.1、VTEP C上的实际IP地址为2.2.2.2、VTEP E上的实际IP地址为1.1.1.2、VTEP F上的实际IP地址为2.1.1.1。各成员设备的DR口状态初始时均为UP,DR组中各成员设备均记录各成员设备的实际IP地址和DR口状态,例如VTEP B记录VTEP B、VTEP C、VTEP E和VTEP F对应的实际IP地址和DR口状态。
在一可选的实施例中,若VTEP B检测到与流量接收设备CE A连接的链路发生故障,VTEP B可以向其他成员设备VTEP C、VTEP E和VTEP F发送第一同步消息,还可以将VTEPE确定为代理成员设备,并依据VTEP E的实际IP地址1.1.1.2生成EVPN 2类路由,并向流量发送设备VTEP D通告,流量发送设备在接收到通告路由后,可以在流量发送设备和VTEP E之间建立VXLAN隧道tunnel2,并将流量发送设备上欲通过VTEP B转发流量的转发表中向CEA的转发表项下一跳设置为VTEP E的实际IP地址1.1.1.2,转发表项下一跳出接口设置为隧道tunnel2。此时,VTEP D再向CE A发送业务流量时,通过查找转发表,确定下一跳IP地址以及出接口,将流量转发到成员设备VTEP E,VTEP E接收到VTEP D发送的流量后,将流量转发到设备CE A。
需要说明的是,以上确定实际IP地址的方式以及流量转发方法仅仅是本公开的一个示例,不以任何方式限制本公开。
图5示出根据本公开一实施例的流量转发方法的流程图,如图5所示,所述方法还包括:
步骤S14,当检测到发生故障的链路恢复时,向DR组中其他成员设备发送包括本成员设备DR口恢复状态的第二同步消息。可以理解的是,DR组中其他成员设备是指DR组中除了本成员设备之外的所有成员设备。
步骤S15,根据所述虚拟IP地址生成第二路由。
其中,所述虚拟IP地址可以为DR组用于与流量发送设备通信的虚拟IP地址。
步骤S16,向所述流量发送设备通告所述第二路由,所述第二路由用于将所述流量发送设备上、通过代理成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳设置为所述虚拟IP地址。
通过上述实施例,可以在故障成员设备(即本成员设备)的链路故障恢复后,将故障成员设备重新加入DR组进行流量负载分担。例如可以将图3b中VTEP B重新加入DR组中进行流量负载分担,以转发业务流量。
在一可选的实施例中,如果本成员设备与流量接收设备之间的DR口故障恢复,本成员设备可以检测到DR口状态为UP。本成员设备在检测到发生故障的链路恢复时,可以向DR组中其他成员设备发送第二同步消息,以通知其他成员设备本成员设备故障恢复,可以进行流量转发。
本成员设备还可以根据DR组的虚拟IP地址生成第二路由,并向流量发送设备通告所述第二路由。流量发送设备接收到所述第二路由后,将所述流量发送设备上、通过代理成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳设置为所述虚拟IP地址,以切换到所述流量发送设备和DR组之间的隧道转发流量。
需要说明的是,虽然在某一成员设备的DR口发生故障时,在流量发送设备和DR组中的其他成员设备的实际IP地址之间建立了转发流量的隧道,但是流量发送设备和DR组的虚拟IP地址之间的隧道(例如前文tunnel0)可以仍然承担流量发送设备到DR组之间的流量转发,没有被撤销。因此,故障成员设备的DR口故障恢复时,只需要将流量切换到流量发送设备和DR组的虚拟IP地址之间的隧道即可,这样可以重新通过DR组进行流量转发,利用DR组中的成员设备进行业务流量的业务分担。
同样的,所述第二路由可以是EVPN 2类路由,所述EVPN 2类路由携带有MAC迁徙扩展团体属性的序列号,DR的成员设备可以在每次向流量发送设备通告下一跳EVPN 2类路由时,更新上述序列号的值,例如,将MAC迁徙扩展团体属性的序列号加1。
流量发送设备在接收到上述EVPN 2类路由、获得更新后的MAC迁徙扩展团体属性的序列号后,可以根据所述更新后的MAC迁徙扩展团体属性的序列号判断下一跳出现的变化,若MAC迁徙扩展团体属性的序列号发生改变,BGP进行路由的优选,将MAC迁徙扩展团体属性序列号大的EVPN 2类路由下发更新,并且,流量发送设备根据上述EVPN 2类路由,将向所述流量接收设备的下一跳出接口由tunnel1切换到所述流量发送设备到所述DR组的VXLAN隧道出接口,也就是tunnel0,tunnel0的下一跳为上述虚拟IP地址,流量发送设备还可以将通过代理成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述虚拟IP地址。
根据本公开的流量转发方法,DR组中故障成员设备的DR口故障恢复后,DR组中的成员设备与流量发送设备之间的链路为等价链路,可以重新通过DR组进行流量转发,利用DR组中的成员设备进行业务流量的业务分担,保证业务流量转发的可靠性。
在上述可选的实施例中,本成员设备接收到包括DR组中其他故障成员设备DR口状态的同步消息时,根据再次确定的代理成员设备的实际IP地址生成路由例如EVPN路由,并向流量发送设备通告所述路由,以通过流量发送设备和再次确定的代理成员设备之间的隧道转发流量。
在上述可选的实施例中,针对流量接收设备通过本成员设备向流量发送设备发送流量的情况,若本成员设备检测到设备自身为故障成员设备时,流量接收设备可通过DR组中其他成员设备将流量发送给流量发送设备。
图6示出根据本公开一实施例的流量转发方法的流程图,所述方法应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信。
如上所述,在某个成员设备检测到自己与流量接收设备连接的链路发生故障时,会向所述DR组中其他成员设备发送包括本成员设备DR口故障状态的第一同步消息,以通知所述DR组中其他成员设备本成员设备发生故障。DR组中其他成员设备可能是已故障设备,也可能是正常设备。下面以DR组中其他成员设备中的一成员设备为执行主体作为实施例,介绍本公开实施例提供的流量转发的方法。应当理解的是,所述DR组中其他成员设备是指DR组中除了故障成员设备之外的所有成员设备。
如图6所示,该流量转发方法包括:
步骤S21,接收所述DR组中其他成员设备发送的包括所述故障成员设备DR口故障状态的第一同步消息。可选的,步骤S21接收的第一同步消息可以为故障成员设备发送,可以为接收到故障成员设备发送的成员设备转发。其中,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备。
步骤S22,根据所述第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第三路由。
步骤S23,向所述流量发送设备通告所述第三路由,所述第三路由用于将故障成员设备DR口故障后流量发送设备欲通过故障成员设备转发的流量,通过所述流量发送设备和代理成员设备之间的隧道转发。
流量发送设备接收到所述第三路由后,转发流量的方式与上文中描述的方式相同,不再赘述。
DR组中的成员设备在检测到与所述流量接收设备之间的链路发生故障时,将根据同一DR组中的代理成员设备的实际IP地址生成的路由通告给流量发送设备,以使流量发送设备在接收到更新路由之后,通过所述流量发送设备和代理成员设备之间的隧道转发所述流量发送设备发送的流量。根据本公开的流量转发方法,DR组中的成员设备故障后,可以减轻DR组中成员设备之间的IPL链路负担,保证了数据业务尽可能的不在IPL链路上进行转发,减少了IPL链路因为带宽不足导致业务报文的丢失以及因为数据报文量太大导致分布式聚合协议报文被丢弃情况的发生,提高了转发可靠性。
在上述可选的实施例中,步骤S22根据所述第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,可以包括:
根据所述第一同步消息更新本地存储的DR组中各成员设备的DR口状态表,依据更新后的DR口状态表确定所述DR组中未故障成员设备;示例性的,在接收到第一同步消息后,可以根据第一同步消息携带的故障成员设备的DR口状态,更新本地存储的DR口状态表。
将所述故障成员设备中满足预设条件的成员设备确定为所述代理成员设备。其中,所述未故障成员设备为所述DR组中与所述流量接收设备连接的链路未发生故障的成员设备,所述预设条件可以是指未故障成员设备的实际IP地址中最小的IP地址,也可以根据情况通过其他条件选择代理成员设备,本公开对此不作限定。
在上述某些实施例中,DR组中各成员设备存储有DR口状态表,用于记录DR中各成员设备的DR口状态或除设备自身之外所有其他成员设备的DR口状态。在一可选的实施例中,所述DR口状态表可以用于记录DR组中各成员设备对应的设备标识、实际IP地址、DR口标识、DR口状态以及DR组标识,其中,DR口标识用于标识DR口,DR口状态用于表示对应DR口的状态(例如DOWN、UP),DR组标识用于表示对应DR口处于哪一DR组。DR口标识可以是指能够表示接口唯一性的标识,例如,DR口标识可以是由数字、字母和符号中的一种或多种组成的DR口的身份信息,同一DR组中属于相同聚合组的DR口的DR口标识相同,因此,故障成员设备的DR口链路故障时,可以向其他成员设备发送第一同步消息,以使其他成员设备可以确定相应的DR口,进而感知到故障成员设备的DR口链路发生故障,并根据第一同步消息携带的故障成员设备的DR口状态,更新本地存储的DR口状态表。
例如,结合图3c,成员设备VTEP C的DR口状态表可以如表5所示。结合表5可知,VTEP B的S0/0、VTEP C的S0/0、VTEP E的S0/0和VTEP F的S0/0属于同一DR口AGG1且处于同一DR组DR-1,其中,VTEP B的DR口状态为DOWN,VTEP C的DR口状态为UP。另外,VTEP B的S0/1属于另一DR口AGG2且处于另一DR组DR-2,DR口状态为UP;VTEP C的S0/1属于另一DR口AGG3且处于另一DR组DR-3,DR口状态为UP。
表5
设备标识 实际IP地址 接口标识 DR口标识 DR口状态 DR组标识
VTEP B 1.1.1.1 S0/0 AGG1 DOWN DR-1
VTEP B 1.1.1.1 S0/1 AGG2 UP DR-2
VTEP C 2.2.2.2 S0/0 AGG1 UP DR-1
VTEP C 2.2.2.2 S0/1 AGG3 UP DR-3
VTEP E 1.1.1.2 S0/0 AGG1 UP DR-1
VTEP F 2.1.1.1 S0/0 AGG1 UP DR-1
通过上述描述,可知,未故障成员设备为VTEP C、VTEP E、VTEP F。若假设预设条件是指未故障成员设备的实际IP地址中最小的IP地址1.1.1.2,则该IP地址对应的成员设备VTEP E被确定为代理成员设备。
在上述另外某些可选的实施例,DR组中各成员设备均会记录各成员设备的实际IP地址和DR口状态。在一种可能的实现方式中,步骤S22,从未故障成员设备中确定用于转发流量的代理成员设备,可以包括:将未故障成员设备的实际IP地址中满足预设条件的IP地址对应的成员设备作为代理成员设备。
其中,所述未故障设备为所述DR组中与所述流量接收设备连接的链路未发生故障的成员设备,可以通过DR口状态获知对应的成员设备与所述流量接收设备连接的链路是否发生故障。其中,预设条件可以是指未故障成员设备的实际IP地址中最小的IP地址,也可以根据需要具体设定,本公开对此不作限定。
仍然以图3b所示为例,在DR组包括两个成员设备时,若VTEP B的DR口故障,VTEP C接收到VTEP B发送的第一同步消息后,感知到VTEP B的DR口链路发生故障,此时,可以确定VTEP C为代理成员设备,其IP地址为上述实际IP地址。
如图3c所示,在DR组中包括三个以上成员设备时,仍然以VTEP B的DR口故障为例,VTEP C接收VTEP B发送的第一同步消息,可以感知到VTEP B的DR口链路发生故障,此时,VTEP C需要确定用于向所述流量接收设备转发流量的代理成员设备。若VTEP C为故障设备,此时,VTEP C可以确定VTEP E和VTEP F为未故障成员设备,VTEP E和VTEP F的实际IP地址中最小的IP地址对应的成员设备为代理成员设备,例如可以确定最小实际IP地址1.1.1.2对应的成员设备VTEP E为代理成员设备。若VTEP C为正常设备,VTEP C可以确定VTEP C、VTEP E和VTEP F为未故障成员设备,VTEP C、VTEP E和VTEP F的实际IP地址中最小的IP地址对应的成员设备为代理成员设备,例如可以确定实际IP地址1.1.1.2对应的成员设备VTEP E为代理成员设备。VTEP E和VTEP F在接收到上述第一同步消息后,确定代理成员设备的方式可以与VTEP C相同。
确定了代理成员设备后,还可以根据代理成员设备的实际IP地址生成第三路由。同样的,所述第三路由可以是EVPN 2类路由,所述EVPN 2类路由可以携带有扩展团体属性,所述扩展团体属性的序列号用于确定传输流量时选择的路由。在一可选的实施例中,较大的扩展团体属性的序列号对应的路由,为传输流量时选择的路由。示例性的,扩展团体属性可以为MAC迁徙扩展团体属性,所述MAC迁徙扩展团体属性的序列号初始值可以为0,DR的成员设备可以在每次向流量发送设备通告下一跳EVPN 2类路由时,更新上述序列号的值,例如,将MAC迁徙扩展团体属性的序列号加1。
在一种可能的实现方式中,所述第三路由用于将所述流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述实际IP地址。可选的,此种实现方式可以应用于流量发送设备和代理成员设备之间建有隧道的情况。
例如,将流量发送设备上欲通过故障成员设备转发流量的转发表中、向所述流量接收设备的转发表项的3层路由转发表项的下一跳设置为上述实际IP地址,同样的,将欲通过故障成员设备转发流量的ARP转发表项中向所述流量接收设备的MAC地址对应的下一跳也设置为上述实际IP地址。
在一种可能的实现方式中,所述第三路由用于在所述流量发送设备和所述实际IP地址对应的成员设备之间建立第一VXLAN隧道,并将所述流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳出接口设置为所述第一VXLAN隧道。可选的,此种实现方式可以应用于流量发送设备和代理成员设备之间未建立隧道的情况。
例如,在流量发送设备和所述实际IP地址对应的代理成员设备之间建立VXLAN隧道tunnel1,可以将流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳出接口设置为tunnel1,示例性的,将欲通过故障成员设备转发流量的ARP转发表项中向流量接收设备的下一跳IP地址的出接口设置为tunnel1。可选的,还可以将流量发送设备上欲通过故障成员设备转发流量的转发表中,向所述流量接收设备的转发表项的3层路由转发表项的下一跳设置为上述实际IP地址,同样的,将欲通过故障成员设备转发流量的ARP转发表项中向所述流量接收设备的MAC地址对应的下一跳也设置为上述实际IP地址。
这样,在流量发送设备要向流量接收设备发送业务流量时,可以通过查找转发表确定下一跳以及下一跳出接口,并将业务流量转发到相应的设备上。
图7示出根据本公开一实施例的流量转发方法的流程图,如图7所示,所述方法还包括:
步骤S24,接收所述DR组中其他成员设备发送的包括故障成员设备DR口恢复状态的第二同步消息。
同样的,如果故障成员设备与流量接收设备之间的DR口故障恢复,故障成员设备可以检测到DR口链路UP。故障成员设备在检测到与流量接收设备之间的DR口链路恢复时,可以向其他成员设备发送第二同步消息,其他成员设备接收第二同步消息,可以感知故障成员设备下DR口链路故障恢复。
步骤S25,根据所述虚拟IP地址生成第四路由。
其中,所述虚拟IP地址可以为DR组用于与流量发送设备通信的虚拟IP地址。
步骤S26,向所述流量发送设备通告所述第四路由,所述第四路由用于将所述流量发送设备上、通过代理成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳设置为所述虚拟IP地址。
同样的,所述第四路由可以是EVPN 2类路由,所述EVPN 2类路由携带有MAC迁徙扩展团体属性的序列号,DR组的成员设备可以在每次向流量发送设备通告下一跳EVPN 2类路由时,更新上述序列号的值,例如,将MAC迁徙扩展团体属性的序列号加1。
流量发送设备接收到所述第四路由后,转发流量的方式可以与上文中描述的方式相同,不再赘述。
通过上述实施例,可以在故障成员设备(即本成员设备)的链路故障恢复后,将故障成员设备重新加入DR组进行流量负载分担。
根据本公开的流量转发方法,故障成员设备的DR口物理链路故障恢复后,DR组中的成员设备与流量发送设备之间的链路为等价链路,可以重新通过DR组进行流量转发,利用DR组中的成员设备进行业务流量的业务分担恢复DR系统继续ECMP,保证业务流量转发的可靠性。
在上述可选的实施例中,针对流量接收设备通过本成员设备向流量发送设备发送流量的情况,若本成员设备检测到设备自身为故障成员设备时,流量接收设备可通过DR组中其他成员设备将流量发送给流量发送设备。
在某些可能的实施例中,本公开还提供一种流量转发方法,该方法应用于与分布式聚合DR组连接的流量发送设备,所述DR组由至少两台成员设备组成,并通过分布式聚合DR口与流量接收设备连接、通过虚拟IP地址与流量发送设备通信。DR组中的成员设备与流量发送设备之间的链路在underlay网络形成等价,针对同一流量接收设备,流量发送设备可以根据流量的源IP地址或源MAC地址区别流量对应的业务,将待发送的不同业务流量分发到各链路上,例如,结合图3a,可以将针对源IP地址100.1.1.10的流量1分到VTEP B和VTEP D之间链路上发送,将针对源IP地址100.1.1.11的流量2分到VTEP C和VTEP D之间链路上发送。请参阅图8,当DR组中某一成员设备与所述流量接收设备连接的链路发生故障时,所述流量转发方法具体如下。
在步骤S301、接收所述DR组中各成员设备发送的路由,其中,所述路由为DR组中具有故障成员设备时根据确定的代理成员设备的实际IP地址生成,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备。所述代理成员设备从DR组中未故障成员设备中确定,其确定过程在前文已经描述,在此不再说明。
在步骤S302、根据所述路由确定所述实际IP地址对应的代理成员设备为隧道端点。
在步骤S303、将欲通过故障成员设备转发的流量,通过所述流量发送设备和代理成员设备之间的隧道转发。
在一可选的实施例中,所述欲通过故障成员设备转发的流量可以是:故障成员设备DR口故障后,流量发送设备打算通过故障成员设备转发的流量。示例性的,所述流量可以是故障成员设备DR口故障后流量发送设备打算通过故障成员设备发生故障的DR口转发的流量。
在另一可选的实施例中,还可以将故障成员设备DR口故障后流量发送设备打算通过DR组中任何成员设备转发的流量通过流量发送设备和代理成员设备之间的隧道转发。
在一可选的实施例中,在步骤S303中,当流量发送设备检测到所述流量发送设备和代理成员设备之间建有隧道时,根据所述路由将所述流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述实际IP地址。当流量发送设备检测到所述流量发送设备和代理成员设备之间未建立隧道时,根据所述路由在所述流量发送设备和所述实际IP地址对应的成员设备之间建立第一VXLAN隧道,并将所述流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳出接口设置为所述第一VXLAN隧道。
在一可选的实施例中,向所述流量发送设备通告的路由为EVPN 2类路由。可选的,所述EVPN 2类路由包括扩展团体属性,所述扩展团体属性的序列号用于确定传输流量时选择的路由。在一可选的实施例中,较大的扩展团体属性的序列号对应的路由,为传输流量时选择的路由。示例性的,扩展团体属性可以为MAC迁徙扩展团体属性(MAC MobilityExtended Community),所述MAC迁徙扩展团体属性的序列号初始值可以为0,在接收到DR的成员设备发送的下一跳EVPN 2类路由时,解析该EVPN 2类路由以获取更新后的上述序列号值,并依据较大序列号对应的路由发送流量。下面以图3b为例进行举例说明。
假设VTEP B开始时与CE A连接的链路并未出现故障,此时VTEP B和VTEP C分别向VTEP D通告依据虚拟IP地址3.3.3.3生成的EVPN 2类路由,此时VTEP B和VTEP C通告的EVPN 2类路由中MAC迁徙扩展团体属性的序列号初始值均为0。当VTEP B与CE A连接的链路出现故障后,VTEP B和VTEP C分别向VTEP D通告依据VTEP C实际IP地址2.2.2.2生成的EVPN 2类路由,此时VTEP B和VTEP C通告的EVPN 2类路由中MAC迁徙扩展团体属性的序列号值均更新为1,VTEP D选择序列号较大的路由发送流量即依据2.2.2.2生成的EVPN 2类路由发送流量。若VTEP B与CE A连接的链路故障恢复后,VTEP B重新加入DR组进行流量分担,此时VTEP B和VTEP C分别向VTEP D通告依据虚拟IP地址3.3.3.3生成的EVPN 2类路由,该EVPN 2类路由中MAC迁徙扩展团体属性的序列号值均更新为2,VTEP D选择序列号较大的路由发送流量即依据3.3.3.3生成的EVPN 2类路由发送流量。
由于故障成员设备会向其他成员设备发送同步消息,其他成员设备在接收到同步消息后,也会根据同步消息生成新的EVPN 2类路由,并向流量发送设备通告路由,因此,DR组内的成员设备发送的EVPN 2类路由的MAC迁徙扩展团体属性的序列号是一致的,DR组中所有成员设备能够保持更新路由时的全局一致。这样,流量发送设备在接收到与之前接收的相同的MAC迁徙扩展团体属性的序列号时,不会重复设置转发表项的下一跳,或者,重复建立隧道、设置下一跳出接口信息,能够保证流量接收设备的转发表项同步的一致性以及建立隧道的一致。
在可选的实施例中,流量发送设备在接收到包括MAC迁徙扩展团体属性的序列号的路由时,可记录该路由对应的MAC迁徙扩展团体属性的序列号。当流量发送设备再接收到相同MAC迁徙扩展团体属性的序列号对应的路由时,流量发送设备记录该路由及对应的MAC迁徙扩展团体属性的序列号,并不会重复设置转发表项。
在某些可能的实施例中,本公开还提供了一种流量转发系统,所述系统包括由至少两台成员设备组成的分布式聚合DR组,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述成员设备用于执行如上所述的方法。
在某些可能的实施例中,本公开还提供了一种流量转发系统,包括流量发送设备和由至少两台成员设备组成的分布式聚合DR组,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信。DR组中的成员设备与流量发送设备之间的链路在underlay网络形成等价,针对同一流量接收设备,流量发送设备可以根据流量的源IP地址或源MAC地址将待发送的流量分发到各链路上,例如,结合图3a,可以将针对源IP地址100.1.1.10的流量1分到VTEP B和VTEP D之间链路上发送,将针对源IP地址100.1.1.11的流量2分到VTEP C和VTEP D之间链路上发送。
当所述DR组中任一成员设备检测到设备本身与所述流量接收设备连接的链路发生故障时,向DR组中其他成员设备发送包括故障成员设备DR口故障状态的第一同步消息。所述其他成员设备接收所述第一同步消息。
所述DR组各成员设备从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成对应的路由;以及,向所述流量发送设备通告所述路由。
所述流量发送设备接收所述路由,并根据所述路由将故障成员设备DR口故障后流量发送设备欲通过故障成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。可选的,所述发送的流量可以为欲通过故障成员设备转发的流量,也可以为欲通过DR组任何成员设备转发的流量。
DR组中成员设备的工作原理流程、流量发送设备的工作原理流程可以如前文所述。下面结合可能的应用场景对流量转发系统及工作原理进行解释说明。
示例1
如图3a所示,所述DR组包括两个成员设备VTEP B和VTEP C,VTEP B和VTEP C通过分布式聚合DR口连接用户边缘CE设备CE A(流量接收设备),CE A通过两个物理端口与聚合DR口连接。VTEP B和VTEP C上的实际IP地址分别为1.1.1.1和2.2.2.2,且VTEP B和VTEP C分别记录各自对端成员设备的实际IP地址和DR口状态,即VTEP B记录地址为2.2.2.2和DR口状态UP,VTEP C记录地址为1.1.1.1和DR口状态DOWN。在VTEP B和VTEP C的DR口状态均为UP时,VTEP B和VTEP C对外通告虚拟IP地址3.3.3.3,所述DR组通过虚拟IP地址在DR组与VTEP D之间建立的VXLAN隧道tunnel0,与流量发送设备(VTEP D)通信。
当VTEP B检测到与CE A连接的链路发生故障时,向VTEP C发送包括VTEP B设备的DR口故障状态的第一同步消息。
VTEP B根据自身的DR口状态表确定未故障成员设备VTEP C,并确定用于向CE A转发流量的代理成员设备VTEP C,根据代理成员设备的实际IP地址2.2.2.2生成第一路由;其中,转发的流量为VTEP D欲通过VTEP B向CE A发送的流量。
VTEP B向VTEP D通告所述第一路由,VTEP D在接收到所述第一路由时,若VTEP C和VTEP D之间未建立隧道,在VTEP D和VTEP C之间建立转发流量的隧道tunnel1,并将VTEPD上转发表中向CE A的转发表项下一跳出接口设置为所述VXLAN隧道,将VTEP D上欲通过VTEP B转发流量的转发表中向CE A的转发表项下一跳设置为所述实际IP地址。若VTEP C和VTEP D之间建有隧道,则第一路由用于将所述流量发送设备上欲通过VTEP B转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述实际IP地址。
另外,VTEP C接收到VTEP B发送的第一同步消息,根据自身的DR口状态表确定未故障成员设备为设备自身,并确定用于向CE A转发流量的代理成员设备为设备自身,根据设备自身的实际IP地址2.2.2.2生成第三路由,然后向VTEP D通告所述第三路由。VTEP D在接收到所述第三路由时,若VTEP C和VTEP D之间未建立隧道,则可以在VTEP D和VTEP C之间建立转发流量的隧道;或者,若VTEP C和VTEP D之间建有隧道,则第三路由用于将所述流量发送设备上欲通过VTEP B转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述实际IP地址。
此时,如图3b所示,VTEP D再向CE A发送业务流量时,通过查找转发表,确定下一跳IP地址以及出接口,将流量转发到成员设备VTEP C,VTEP C接收到VTEP D发送的流量后,将流量转发到设备CE A。
VTEP B在检测到发生故障的链路恢复时,向VTEP C发送VTEP B设备DR口恢复状态的第二同步消息。
VTEP B根据所述虚拟IP地址3.3.3.3生成第二路由,向VTEP D通告所述第二路由,VTEP D在接收到所述第二路由时,将VTEP D上转发表中向CE A的转发表项下一跳设置为所述虚拟IP地址,将VTEP B重新加入到DR组进行流量负载分担,以可以通过VTEP D和DR组之间原来的隧道tunnel0转发流量。
VTEP C接收VTEP B发送第二同步消息,VTEP C根据所述虚拟IP地址3.3.3.3生成第四路由,向VTEP D通告所述第四路由,VTEP D在接收到所述第四路由时,将VTEP D上转发表中向CE A的转发表项下一跳设置为所述虚拟IP地址,将VTEP B重新加入到DR组进行流量负载分担,以可以通过VTEP D和DR组之间原来的隧道tunnel0转发流量。
此时,DR组中故障成员设备的DR口故障恢复后,DR组中的成员设备与流量发送设备之间的链路为等价链路,可以重新通过DR组进行流量转发,利用DR组中的成员设备进行业务流量的业务分担恢复DR组继续ECMP,保证业务流量转发的可靠性。
其中,所述第一路由、第二路由、第三路由和第四路由都可以是EVPN 2类路由,所述EVPN 2类路由可以携带有MAC迁徙扩展团体属性的序列号,DR的成员设备可以在每次向流量发送设备通告下一跳EVPN 2类路由时,更新上述序列号的值,例如,将MAC迁徙扩展团体属性的序列号加1。
由于故障成员设备会向其他成员设备发送同步消息,其他成员设备在接收到同步消息后,也会根据同步消息生成新的EVPN 2类路由,并向流量发送设备通告路由,因此,DR组内的成员设备发送的EVPN 2类路由的MAC迁徙扩展团体属性的序列号是一致的。,这样,流量发送设备在接收到与之前接收的相同的MAC迁徙扩展团体属性的序列号时,不会重复设置转发表项的下一跳,或者,重复建立隧道、设置下一跳出接口信息,能够保证流量接收设备的转发表项同步的一致性以及建立隧道的一致。
举例来说,以图3a所示场景为例,当VTEP B检测到与CE A连接的链路发生故障时,向VTEP C发送包括VTEP B设备的DR口故障状态的第一同步消息。VTEP B向VTEP D通告所述第一路由。VTEP C接收到VTEP B发送的第一同步消息,确定用于向CE A转发流量的代理成员设备,根据代理成员设备的实际IP地址生成第三路由,然后向VTEP D通告所述第三路由。如上所述,所述第一路由和所述第三路由的MAC迁徙扩展团体属性的序列号是一致的。
VTEP D接收所述第一路由和所述第三路由,如果先接收到所述第一路由,可以在VTEP D和VTEP C之间建立转发流量的隧道tunnel1。之后,在接收到所述第三路由时,获取所述第三路由的MAC迁徙扩展团体属性的序列号,确定与之前接收到的所述第一路由的MAC迁徙扩展团体属性的序列号一致,不再建立隧道。VTEP D先接收到第三路由的情况类似,不再赘述。
示例2
如图3c所示,在所述DR组包括四个成员设备VTEP B、VTEP C、VTEP E和VTEP F,VTEP B、VTEP C、VTEP E和VTEP F通过分布式聚合DR口连接用户边缘CE设备CE A(流量接收设备),CE A通过四个物理端口与聚合DR口连接。各成员设备的DR口状态初始时均为UP,DR组中各成员设备均记录各成员设备的实际IP地址和DR口状态,例如VTEP B记录VTEP B、VTEP C、VTEP E和VTEP F对应的实际IP地址和DR口状态。
VTEP B上的实际IP地址为1.1.1.1、VTEP C上的实际IP地址为2.2.2.2、VTEP E上的实际IP地址为1.1.1.2、VTEP F上的实际IP地址为2.1.1.1,VTEP B、VTEP C、VTEP E、VTEPF四个设备均对外通告的虚拟IP地址3.3.3.3,所述DR组通过虚拟IP地址在DR组与VTEP D之间建立的VXLAN隧道tunnel0,与流量发送设备(VTEP D)通信。
当VTEP B检测到与CE A连接的链路发生故障时,向VTEP C、VTEP E和VTEP F发送包括VTEP B设备的DR口故障状态的第一同步消息。
VTEP B根据自身的DR口状态表确定未故障成员设备为VTEP C、VTEP E和VTEP F,并确定用于向CE A转发流量的代理成员设备,根据代理成员设备的实际IP地址生成第一路由,向VTEP D通告所述第一路由;其中,转发的流量为VTEP D欲通过VTEP B向CE A发送的流量。
VTEP B可以将VTEP E确定为代理成员设备,依据其实际IP地址1.1.1.2生成EVPN2类路由,并向流量发送设备VTEP D通告;VTEP D在接收到所述第一路由时,可以在VTEP D和VTEP E之间建立转发流量的隧道tunnel2;并将VTEP D上欲通过VTEP B转发流量的转发表中向CE A的转发表项下一跳设置为VTEP E的实际IP地址1.1.1.2,转发表项下一跳出接口设置为隧道tunnel2。此时,VTEP D再向CE A发送业务流量时,通过查找转发表,确定下一跳IP地址以及出接口,将流量转发到成员设备VTEP E,VTEP E接收到VTEP D发送的流量后,将流量转发到设备CE A。
VTEP C、VTEP E和VTEP F接收到VTEP B发送的第一同步消息,确定用于向CE A转发流量的代理成员设备,根据代理成员设备的实际IP地址生成第三路由。
如图3c所示,针对DR组中的其他成员设备,以VTEP C为例,当VTEP C接收VTEP B发送的第一同步消息,可以感知到VTEP B的DR口链路发生故障,此时,VTEP C需要根据第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于向所述流量接收设备转发流量的代理成员设备。例如:若VTEP C为故障设备,VTEP C可以确定VTEP E和VTEPF为未故障成员设备,VTEP C可以确定VTEP E和VTEP F的实际IP地址中最小的IP地址对应的成员设备为代理成员设备,例如可以确定最小实际IP地址1.1.1.2对应的成员设备VTEPE为代理成员设备。若VTEP C为正常设备,VTEP C可以确定VTEP C、VTEP E和VTEP F为未故障成员设备,VTEP C可以确定VTEP C、VTEP E和VTEP F的实际IP地址中最小的IP地址对应的成员设备为代理成员设备,例如可以确定实际IP地址1.1.1.2对应的成员设备VTEP E为代理成员设备。
VTEP C、VTEP E和VTEP F根据代理成员设备的实际IP地址生成第三路由。然后向VTEP D通告所述第三路由,VTEP D在接收到所述第三路由时,可以与VTEP C、VTEP E、VTEPF中的某个设备之间建立转发流量的隧道。如图3c所示,VTEP D与VTEP E之间建立转发流量的隧道,此时,VTEP D再向CE A发送业务流量时,通过查找转发表,确定下一跳IP地址以及出接口,将流量转发到成员设备VTEP E,VTEP E接收到VTEP D发送的流量后,将流量转发到设备CE A。
需要说明的是,VTEP B、VTEP C、VTEP E和VTEP F确定代理成员设备的方式可以是相同的。
VTEP B在检测到发生故障的链路恢复时,向VTEP C、VTEP E和VTEP F发送VTEP B设备DR口恢复状态的第二同步消息。
VTEP B根据所述虚拟IP地址3.3.3.3生成第二路由,向VTEP D通告所述第二路由,VTEP D在接收到所述第二路由时,将VTEP D上转发表中向CE A的转发表项下一跳设置为所述虚拟IP地址,以切换到VTEP D和DR组之间的隧道tunnel0转发流量。
VTEP C、VTEP E和VTEP F接收VTEP B发送第二同步消息,根据所述虚拟IP地址3.3.3.3生成第四路由,向VTEP D通告所述第四路由,VTEP D在接收到所述第四路由时,将VTEP D上转发表中向CE A的转发表项下一跳设置为所述虚拟IP地址,以切换到VTEP D和DR组之间的隧道tunnel0转发流量。
此时,DR组中故障成员设备的DR口故障恢复后,DR组中的成员设备与流量发送设备之间的链路为等价链路,可以重新通过DR组进行流量转发,利用DR组中的成员设备进行业务流量的业务分担恢复DR系统继续ECMP,保证业务流量转发的可靠性。
图9示出根据本公开一实施例的流量转发装置的框图,所述装置应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述装置包括:
第一发送模块31,用于当检测到本成员设备与所述流量接收设备连接的链路发生故障时,向所述DR组中其他成员设备发送包括本成员设备DR口故障状态的第一同步消息,所述第一同步消息用于通知其他成员设备所述本成员设备的DR口状态;
第一确定模块32,用于确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第一路由;
第一通告模块33,用于向所述流量发送设备通告所述第一路由,所述第一路由用于将本成员设备DR口故障后流量发送设备欲通过本成员设备转发的流量,通过所述流量发送设备和代理成员设备之间的隧道转发。
DR组中的成员设备在检测到与所述流量接收设备之间的链路发生故障时,将根据同一DR组中的代理成员设备的实际IP地址生成的路由通告给流量发送设备,以使流量发送设备在接收到更新路由之后,通过所述流量发送设备和所述实际IP地址对应的代理成员设备之间的隧道转发所述流量发送设备发送的流量。根据本公开的流量转发方法,DR组中的成员设备故障后,可以减轻DR组中成员设备之间的IPL链路负担,保证了数据业务尽可能的不在IPL链路上进行转发,减少了IPL链路因为带宽不足导致业务报文的丢失以及因为数据报文量太大导致分布式聚合协议报文被丢弃情况的发生,提高了转发可靠性。
在一种可能的实现方式中,所述第一路由用于将所述流量发送设备上、欲通过本成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳设置为所述实际IP地址。
在一种可能的实现方式中,所述第一路由用于在所述流量发送设备和所述实际IP地址对应的成员设备之间建立第一VXLAN隧道,并将所述流量发送设备上、欲通过本成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳出接口设置为所述第一VXLAN隧道。
在一种可能的实现方式中,向所述流量发送设备通告的路由为EVPN路由。可选的,所述EVPN 2类路由携带有扩展团体属性,所述扩展团体属性的序列号用于确定传输流量时选择的路由。在一可选的实施例中,较大的扩展团体属性的序列号对应的路由,为传输流量时选择的路由。示例性的,扩展团体属性可以为MAC迁徙扩展团体属性(MAC MobilityExtended Community),所述MAC迁徙扩展团体属性的序列号初始值可以为0,DR的成员设备可以在每次向流量发送设备通告下一跳EVPN 2类路由时,更新上述序列号的值。
图10示出根据本公开一实施例的流量转发装置的框图,如图9所示,在一种可能的实现方式中,所述装置还包括:
第二发送模块34,用于当检测到发生故障的链路恢复时,向DR组中其他成员设备发送包括本成员设备DR口恢复状态的第二同步消息。可以理解的是,DR组中其他成员设备是指DR组中除了本成员设备之外的所有成员设备;
第一生成模块35,用于根据所述虚拟IP地址生成第二路由;
第二通告模块36,用于向所述流量发送设备通告所述第二路由,所述第二路由用于将所述流量发送设备上、通过代理成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳设置为所述虚拟IP地址。
在一种可能的实现方式中,所述第一确定模块包括:
确定单元321,用于更新本地存储的DR组中各成员设备的DR口状态表,依据更新后的DR口状态表确定所述DR组中未故障成员设备;将所述未故障成员设备中满足预设条件的成员设备确定为所述代理成员设备。
图11示出根据本公开一实施例的流量转发装置的框图,所述装置应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述装置包括:
第一接收模块41,用于接收所述DR组中其他成员设备发送的包括故障成员设备DR口故障状态的第一同步消息;其中,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备;
第二确定模块42,用于根据所述第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第三路由;
第三通告模块43,用于向所述流量发送设备通告所述第三路由,所述第三路由用于将故障成员设备DR口故障后、流量发送设备欲通过故障成员设备转发的流量、通过所述流量发送设备和代理成员设备之间的隧道转发。
图12示出根据本公开一实施例的流量转发装置的框图,如图11所示,在一种可能的实现方式中,所述装置还包括:
第二接收模块44,用于接收所述DR组中其他成员设备发送的包括故障成员设备DR口恢复状态的第二同步消息;
第二生成模块45,用于根据所述虚拟IP地址生成第四路由;
第四通告模块46,用于向所述流量发送设备通告所述第四路由,所述第四路由用于将所述流量发送设备上、通过代理成员设备转发流量的转发表中、向所述流量接收设备的转发表项下一跳设置为所述虚拟IP地址。
在一种可能的实现方式中,向所述流量发送设备通告的路由为EVPN路由。
图13是根据一示例性实施例示出的一种用于流量转发装置900的框图。参照图13,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与流量转发逻辑对应的机器可执行指令以执行上文所述的流量转发方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种流量转发方法,其特征在于,所述方法应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述方法包括:
当检测到本成员设备与所述流量接收设备连接的链路发生故障时,向所述DR组中其他成员设备发送包括本成员设备DR口故障状态的第一同步消息,所述第一同步消息用于通知其他成员设备所述本成员设备的DR口状态;
确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第一路由;
向所述流量发送设备通告所述第一路由,所述第一路由用于将本成员设备DR口故障后流量发送设备欲通过本成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
2.根据权利要求1所述的流量转发方法,其特征在于,
所述第一路由用于将所述流量发送设备上欲通过本成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述实际IP地址;或,
所述第一路由用于在所述流量发送设备和所述实际IP地址对应的成员设备之间建立第一VXLAN隧道,并将所述流量发送设备上欲通过本成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳出接口设置为所述第一VXLAN隧道。
3.根据权利要求1所述的流量转发方法,其特征在于,所述方法还包括:
当检测到发生故障的链路恢复时,向所述DR组中其他成员设备发送包括本成员设备DR口恢复状态的第二同步消息;
根据所述虚拟IP地址生成第二路由;
向所述流量发送设备通告所述第二路由,所述第二路由用于将所述流量发送设备上通过代理成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述虚拟IP地址。
4.根据权利要求1所述的流量转发方法,其特征在于,所述确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,包括:
更新本地存储的DR组中各成员设备的DR口状态表,依据更新后的DR口状态表确定所述DR组中未故障成员设备;
将所述未故障成员设备中满足预设条件的成员设备确定为所述代理成员设备。
5.一种流量转发方法,其特征在于,所述方法应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述方法包括:
接收所述DR组中其他成员设备发送的包括故障成员设备DR口故障状态的第一同步消息;其中,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备;
根据所述第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第三路由;
向所述流量发送设备通告所述第三路由,所述第三路由用于将故障成员设备DR口故障后流量发送设备欲通过故障成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
6.根据权利要求5所述的流量转发方法,其特征在于,
所述第三路由用于将所述流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述实际IP地址;或,
所述第三路由用于在所述流量发送设备和所述实际IP地址对应的成员设备之间建立第一VXLAN隧道,并将所述流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳出接口设置为所述第一VXLAN隧道。
7.根据权利要求5所述的流量转发方法,其特征在于,所述方法还包括:
接收所述DR组中其他成员设备发送的包括故障成员设备DR口恢复状态的第二同步消息;
根据所述虚拟IP地址生成第四路由;
向所述流量发送设备通告所述第四路由,所述第四路由用于将所述流量发送设备上通过代理成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述虚拟IP地址。
8.根据权利要求5所述的流量转发方法,其特征在于,所述根据所述第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备包括:
根据所述第一同步消息更新本地存储的DR组中各成员设备的DR口状态表,依据更新后的DR口状态表确定所述DR组中未故障成员设备;
将所述故障成员设备中满足预设条件的成员设备确定为所述代理成员设备。
9.一种流量转发方法,其特征在于,应用于与分布式聚合DR组连接的流量发送设备,所述DR组由至少两台成员设备组成,并通过分布式聚合DR口与流量接收设备连接、通过虚拟IP地址与流量发送设备通信;所述流量转发方法包括:
接收所述DR组中各成员设备发送的路由,其中,所述路由为DR组中具有故障成员设备时根据确定的代理成员设备的实际IP地址生成,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备;
根据所述路由确定所述实际IP地址对应的代理成员设备为隧道端点;
将欲通过故障成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
10.根据权利要求9所述流量转发方法,其特征在于,
当检测到所述流量发送设备和代理成员设备之间建有隧道时,根据所述路由将所述流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳设置为所述实际IP地址;
当检测到所述流量发送设备和代理成员设备之间未建立隧道时,根据所述路由在所述流量发送设备和所述实际IP地址对应的成员设备之间建立第一VXLAN隧道,并将所述流量发送设备上欲通过故障成员设备转发流量的转发表中向所述流量接收设备的转发表项下一跳出接口设置为所述第一VXLAN隧道。
11.根据权利要求1、5或9所述的流量转发方法,其特征在于,向所述流量发送设备通告的路由为EVPN 2类路由,所述EVPN 2类路由包括扩展团体属性,所述扩展团体属性的序列号用于确定传输流量时选择的路由。
12.一种流量转发系统,其特征在于,包括流量发送设备和由至少两台成员设备组成的分布式聚合DR组,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;
当所述DR组中任一成员设备检测到设备本身与所述流量接收设备连接的链路发生故障时,向DR组中其他成员设备发送包括故障成员设备DR口故障状态的第一同步消息;所述其他成员设备接收所述第一同步消息;
所述DR组各成员设备从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成对应的路由;以及,向所述流量发送设备通告所述路由;
所述流量发送设备接收所述路由,并根据所述路由将故障成员设备DR口故障后流量发送设备欲通过故障成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
13.一种流量转发装置,其特征在于,所述装置应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述装置包括:
第一发送模块,用于当检测到本成员设备与所述流量接收设备连接的链路发生故障时,向所述DR组中其他成员设备发送包括本成员设备DR口故障状态的第一同步消息,所述第一同步消息用于通知其他成员设备所述本成员设备的DR口状态;
第一确定模块,用于确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第一路由;
第一通告模块,用于向所述流量发送设备通告所述第一路由,所述第一路由用于将本成员设备DR口故障后流量发送设备欲通过本成员设备转发的流量通过所述流量发送设备和代理成员设备之间的隧道转发。
14.一种流量转发装置,其特征在于,所述装置应用于由多个成员设备组成的分布式聚合DR组中的任一成员设备,所述DR组通过分布式聚合DR口与流量接收设备连接,并通过虚拟IP地址与流量发送设备通信;所述装置包括:
第一接收模块,用于接收所述DR组中其他成员设备发送的包括故障成员设备DR口故障状态的第一同步消息;其中,所述故障成员设备为所述DR组中与所述流量接收设备连接的链路发生故障的成员设备;
第二确定模块,用于根据所述第一同步消息确定所述DR组中未故障成员设备,并从未故障成员设备中确定用于转发流量的代理成员设备,依据所述代理成员设备的实际IP地址生成第三路由;
第三通告模块,用于向所述流量发送设备通告所述第三路由,所述第三路由用于将故障成员设备DR口故障后,流量发送设备欲通过故障成员设备转发的流量,通过所述流量发送设备和代理成员设备之间的隧道转发。
CN201710876007.3A 2017-09-25 2017-09-25 流量转发方法、装置及系统 Active CN107547370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710876007.3A CN107547370B (zh) 2017-09-25 2017-09-25 流量转发方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710876007.3A CN107547370B (zh) 2017-09-25 2017-09-25 流量转发方法、装置及系统

Publications (2)

Publication Number Publication Date
CN107547370A CN107547370A (zh) 2018-01-05
CN107547370B true CN107547370B (zh) 2020-05-12

Family

ID=60964722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710876007.3A Active CN107547370B (zh) 2017-09-25 2017-09-25 流量转发方法、装置及系统

Country Status (1)

Country Link
CN (1) CN107547370B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108306806B (zh) * 2018-02-06 2021-10-29 新华三技术有限公司 一种报文转发方法及装置
CN109088752B (zh) * 2018-07-25 2022-02-11 新华三技术有限公司 内部控制链路端口动态配置方法及相关装置
CN109088819A (zh) * 2018-07-25 2018-12-25 新华三技术有限公司合肥分公司 一种报文转发方法、交换机及计算机可读存储介质
CN108965126B (zh) * 2018-07-27 2021-09-21 新华三技术有限公司 一种报文转发方法及装置
CN109194511B (zh) * 2018-09-03 2021-09-10 新华三技术有限公司 一种报文发送方法及装置
CN109495368B (zh) * 2018-12-19 2021-07-16 锐捷网络股份有限公司 Mac地址转发表的更新方法及网络设备
CN110311860B (zh) * 2019-07-24 2022-06-24 北京天融信网络安全技术有限公司 Vxlan下多链路负载均衡方法及装置
CN111277482B (zh) * 2020-01-13 2022-01-18 新华三大数据技术有限公司 一种报文处理方法及装置
CN111988213B (zh) * 2020-07-16 2022-06-03 浪潮思科网络科技有限公司 一种在evpn mlag环境下同步vxlan隧道的方法及设备、介质
CN111953591A (zh) * 2020-07-17 2020-11-17 新华三技术有限公司 故障处理方法及装置
CN113037565B (zh) * 2021-03-29 2022-04-01 新华三信息安全技术有限公司 报文处理方法及装置
CN113794635B (zh) * 2021-08-05 2023-04-07 新华三信息安全技术有限公司 一种报文转发方法及设备
CN113839836B (zh) * 2021-09-27 2023-04-25 新华三信息安全技术有限公司 聚合超时保护方法、框式设备、盒式设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014174444A1 (en) * 2013-04-23 2014-10-30 Telefonaktiebolaget L M Ericsson (Publ) A method and system for supporting distributed relay control protocol (drcp) operations upon communication failure
CN106878047A (zh) * 2016-12-13 2017-06-20 新华三技术有限公司 故障处理方法及装置
CN106878048A (zh) * 2016-12-13 2017-06-20 新华三技术有限公司 故障处理方法及装置
CN106899430A (zh) * 2016-12-09 2017-06-27 新华三技术有限公司 一种流量转发处理方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014174444A1 (en) * 2013-04-23 2014-10-30 Telefonaktiebolaget L M Ericsson (Publ) A method and system for supporting distributed relay control protocol (drcp) operations upon communication failure
CN106899430A (zh) * 2016-12-09 2017-06-27 新华三技术有限公司 一种流量转发处理方法和装置
CN106878047A (zh) * 2016-12-13 2017-06-20 新华三技术有限公司 故障处理方法及装置
CN106878048A (zh) * 2016-12-13 2017-06-20 新华三技术有限公司 故障处理方法及装置

Also Published As

Publication number Publication date
CN107547370A (zh) 2018-01-05

Similar Documents

Publication Publication Date Title
CN107547370B (zh) 流量转发方法、装置及系统
JP7387836B2 (ja) 送信経路障害処理方法および装置、ならびにシステム
US9559962B2 (en) Optimizing traffic flows via dynamic routing protocol modifications when using server virtualization with dynamic routing
US8576721B1 (en) Local forwarding bias in a multi-chassis router
US9781032B1 (en) MPLS label usage in ethernet virtual private networks
US9858163B2 (en) Dual adjacency between edge devices at a network site
US9942057B2 (en) Avoiding micro-loops in a ring topology of a network
US9197583B2 (en) Signaling of attachment circuit status and automatic discovery of inter-chassis communication peers
US8711863B2 (en) Virtual links in a routed ethernet mesh network
JP5416596B2 (ja) ネットワーク中継装置、ネットワークシステム、それらの制御方法
CN111698152B (zh) 一种故障保护方法、节点及存储介质
CN112929273A (zh) 一种处理路由的方法、设备及系统
US20150009863A1 (en) Automated Transitioning Between Different Communication Protocols in a Network
US10972377B2 (en) Coordinated offloaded recording of in-situ operations, administration, and maintenance (IOAM) data to packets traversing network nodes
CN107682261B (zh) 流量转发方法及装置
CN108173757B (zh) 端口状态设置方法及装置
EP2962411A1 (en) System and method for traffic polarization during failures
CN113615132A (zh) 快速泛洪拓扑保护
CN112039765B (zh) 路由信息发送的方法、路由选路的方法和装置
US11784919B2 (en) Method for sending BIERv6 packet and first network device
EP4135292A1 (en) Intelligent flow state synchronization to improve resiliency, availability, and/or performance of redundant network security devices
CN108259336B (zh) 数据中心互联方法和装置
US9372821B2 (en) Limited functionality link state protocol node
CN108737263B (zh) 数据中心系统及数据流处理方法
CN117749700A (zh) 对应关系的获取方法、参数通告方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant