CN115277509B - 一种针对链路聚合组的故障快速检测方法和*** - Google Patents
一种针对链路聚合组的故障快速检测方法和*** Download PDFInfo
- Publication number
- CN115277509B CN115277509B CN202210672721.1A CN202210672721A CN115277509B CN 115277509 B CN115277509 B CN 115277509B CN 202210672721 A CN202210672721 A CN 202210672721A CN 115277509 B CN115277509 B CN 115277509B
- Authority
- CN
- China
- Prior art keywords
- link
- message
- aggregation group
- bfd echo
- echo message
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
-
- 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/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- 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/70—Routing based on monitoring results
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种针对链路聚合组的故障快速检测方法,包括:在发送设备中建立一条BFD Echo会话,并选取发送设备中一成员端口对应的链路作为主链路发送BFD Echo报文,在反射设备收到BFD Echo报文后,将BFD Echo报文复制到反射设备所在的链路聚合组的各个成员端口中,通过各个成员端口对应的物理链路将BFD Echo报文反射回发送设备,判断发送设备各成员端口是否收到BFDEcho报文,若成员端口在预设检测次数内均没有收到BFD Echo报文,则判定为该成员端口发生故障,若所有成员端口在预设检测次数内均没有收到BFD Echo报文,则重新选举主链路,以主链路再次发送BFD Echo报文,并重复步骤S2‑S4,若在预测检测次数内,所有成员端口均没有收到BFD Echo报文后,判定链路聚合组端口故障。
Description
技术领域
本发明涉及网络故障检测技术领域,尤其涉及一种针对链路聚合组的故障快速检测方法和***。
背景技术
对于链路聚合组的故障快速检测的常用方法是采用BFD(双向转发检测)对链路进行检测,并当BFD检测到链路有故障后,会在极短时间内对链路进行倒换,降低因故障导致业务中断时间,当前,基于BFD检测链路聚合组故障的方法主要有两种:
BFD for LAG是针对链路聚合组创建一条BFD会话,出口为链路聚合组的场景,该方法只创建一条BFD会话,BFD报文在链路聚合组内,根据负载均衡从某一个成员口转发BFD报文,但BFD for LAG只能对负载BFD报文的成员口检查故障,不能反应整个聚合组的故障状态,且只创建一条BFD会话,不能及时检测到聚合组内其他端口的故障状态,若其他物理链路出现故障,不能及时倒换。导致业务中断时间长。
BFD on LAG是针对链路聚合口创建一条BFD主会话,同时在每个成员口上创建各一条BFD子会话,BFD子会话与物理链路绑定。虽然弥补了BFD for LAG的缺陷,可以检测每个成员口的故障以及整个聚合组的故障,但需要大量的BFD表项和资源,且子会话较多,管理复杂。
目前,针对BFD for LAG及BFD on LAG的检测方法,存在效率低、占用资源多、检测结果准确度不足的问题。
发明内容
为了解决问题,本发明提出一种针对链路聚合组的故障快速检测方法和***,以更加确切地解决所述效率低、占用资源多、检测结果准确度不足的问题。
本发明通过以下技术方案实现的:
本发明提出一种针对链路聚合组的故障快速检测方法,包括
S1:在发送设备中建立一条BFD Echo会话,并选取所述发送设备中所述链路聚合组的某一成员端口对应的链路作为主链路发送BFD Echo报文;
S2:在反射设备收到所述BFD Echo报文后,将所述BFD Echo报文复制到所述反射设备所在的链路聚合组的各个成员端口中,通过各个成员端口对应的物理链路将所述BFDEcho报文反射回所述发送设备,每一物理链路对应一成员端口;
S3:判断所述发送设备各成员端口是否收到所述BFD Echo报文;
S4:若所述成员端口在预设检测次数内均没有收到所述BFD Echo报文,则判定与所述成员端口对应的所述成员端口故障,其中,所述预设检测次数设定为3次;
S5:若所有所述成员端口在所述预设检测次数内均没有收到所述BFD Echo报文,则重新选举主链路,以所述主链路再次发送所述BFD Echo报文,并重复步骤S2-S4;
S6:若在所述预测检测次数内,所有所述成员端口均没有收到所述BFD Echo报文后,判定所述链路聚合组端口故障。
进一步的,所述步骤S1之前,包括:
判断在定时器预设的周期内,接收时长是否超过某一成员端口n的定时器设定的时间;
若是,则判断所述成员端口n收包计数器是否为零,其中,所述数据包包括所述BFDEcho报文;
若所述收包计数器为零,则所述成员端口n的超时计数器加1,当所述超时计数器≥3,若所述成员端口n的会话状态为Up状态时,则对外通告所述成员端口n Timeout Down;
若所述收包计数器不为零,则将所述超时计数器清零。若成员端口n状态为Down,则对外通告所述成员端口n Up。
进一步的,所述将所述超时计数器清零的步骤后,包括:
判断所有所述成员端口收包计数器是否为均零;
若是,则将所述链路聚合组端口的超时计数器加1,当所述链路聚合组端口的超时计数器≥3,若所述链路聚合组端口的会话状态为Up状态,则对外通告所述链路聚合组Timeout Down,当所述链路聚合组端口的超时计数器<3,则进入选举所述主链路步骤;
若否,则将所述超时计数器清零,若所述链路聚合组状态为Down,则对外通告所述链路聚合组Up。
进一步的,所述在反射设备收到所述BFD Echo报文后,将所述BFD Echo报文复制到所述反射设备所在的链路聚合组的各个成员端口中,通过各个成员端口对应的物理链路将所述BFD Echo报文反射回所述发送设备的步骤前,包括:
判断发送设备及反射设备收到BFD Echo报文的目的IP(Destination IP)是否是本设备的IP(即本机IP);
若是,则在查询到所述BFD Echo报文为所述发送设备所配置后,将所述BFD Echo报文判定为状态报文,对所述BFD Echo报文进行终结,接收BFD Echo报文的物理链路的收报计数器加1;
若否,则将所述BFD Echo报文判定为反射报文,通过报文反射模块将所述BFDEcho报文发回所述发送设备。
进一步的,所述将所述BFD Echo报文判定为反射报文,通过报文反射模块将所述BFD Echo报文发回所述发送设备的步骤中,包括:
判断所述反射设备接收所述BFD Echo报文的物理端口是否属于所述链路聚合组;
若是,则将所述BFD Echo报文复制到各所述成员端口中,并通过对应的物理链路将所述BFD Echo报文弹回所述发送设备;
若否,则直接将所述BFD Echo报文从所述物理端口弹回所述发送设备。
进一步的,所述选取所述发送设备中所述链路聚合组的某一成员端口对应的链路作为主链路发送BFD Echo报文的步骤中,包括:
获取所述发送设备中所述链路聚合组的各个所述物理链路的总带宽及当前负载流量;
通过所述总带宽及所述当前负载流量计算出各所述物理链路的链路选举值;
根据所述链路选举值进行选举出所述主链路。
进一步的,所述根据所述链路选举值进行选举出所述主链路的步骤中,包括:
依据所述链路选举值从大到小对各所述物理链路进行排序;
将排序第一的所述物理链路选定为所述主链路。
进一步的,所述通过所述总带宽及所述当前负载流量计算出各所述物理链路的链路选举值的步骤中,包括:
利用以下公式计算出所述链路选举值:
R=K*d+(K-f)*(1-d);
其中,R为所述物理链路的链路选举值,K为所述物理链路的总带宽,f为所述物理链路的当前负载流量,d为预设的权重值,其中,所述权重值取值范围为0-1。
进一步的,所述获取所述发送设备所对应的所有所述物理链路的总带宽及当前负载流量的步骤后,还包括:
依据所述总带宽及所述当前负载流量得到所述物理链路的剩余可用带宽;
将所述剩余可用带宽从大到小排序,并以排序第一的所述剩余可用带宽对应的物理链路作为所述主链路。
本发明还提出一种针对链路聚合组的故障快速检测***,应用于权利要求1-9任一条的所述针对链路聚合组的故障快速检测方法,包括:
定时器模块,用于控制预设发送周期与预设检测周期,定时周期触发报文发送模块通过主链路发送BFD链路检测报文;
报文发送模块,用于根据链路选举模块选举的主链路进行BFD Echo报文封装及发送;
链路选举模块,用于按照规则进行主链路选举;
报文接收模块,用于根据收到报文的目的IP以及BFD标识符确认报文类型,状态报文送至状态检测模块,反射报文送至报文反射模块;
状态检测模块,用于根据报文源端口及会话标识符更新链路聚合组成员口的状态,以及链路聚合组的状态,同时若所有成员口未收到BFD Echo报文,则触发主备链路选举;
报文反射模块,用于将收到的反射报文,复制到聚合组的所有成员口并发出;
状态上报模块,用于对外通告聚合组或成员口的链路状态。
本发明的有益效果:
本发明提出的一种针对链路聚合组的故障快速检测方法和***,检测效率高、占用资源少、功能稳定完备、检测结果准确度高、占用CPU资源少,极大地提高了链路聚合组的检测效率与准确度,减少了检测过程需要占用的资源量。
附图说明
图1为本发明的一种针对链路聚合组的故障快速检测方法的流程图;
图2为本发明的一种针对链路聚合组的故障快速检测方法的***模型;
图3为本发明的一种针对链路聚合组的故障快速检测方法的报文接收流程图;
图4为本发明的一种针对链路聚合组的故障快速检测方法的实施流程图;
图5为本发明的一种针对链路聚合组的故障快速检测***的***框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了更加清楚完整的说明本发明的技术方案,下面结合附图对本发明作进一步说明。
请参考图1-4,本发明提出一种针对链路聚合组的故障快速检测方法,包括:
S1:在发送设备中建立一条BFD Echo会话,并选取所述发送设备中所述链路聚合组的某一成员端口对应的链路作为主链路发送BFD Echo报文;
S2:在反射设备收到所述BFD Echo报文后,将所述BFD Echo报文复制到所述反射设备所在的链路聚合组的各个成员端口中,通过各个成员端口对应的物理链路将所述BFDEcho报文反射回所述发送设备,每一物理链路对应一成员端口;
S3:判断所述发送设备各成员端口是否收到所述BFD Echo报文;
S4:若所述成员端口在预设检测次数内均没有收到所述BFD Echo报文,则判定与所述成员端口对应的所述成员端口故障,其中,所述预设检测次数设定为3次;
S5:若所有所述成员端口在所述预设检测次数内均没有收到所述BFD Echo报文,则重新选举主链路,以所述主链路再次发送所述BFD Echo报文,并重复步骤S2-S4;
S6:若在所述预测检测次数内,所有所述成员端口均没有收到所述BFD Echo报文后,判定所述链路聚合组端口故障。
在本实施例中,首先在发送设备中构建一个BFD Echo会话,并选取发送设备中一成员端口对应的链路作为主链路发送BFD Echo报文,发送BFD Echo报文后,在反射设备对BFD Echo报文进行接收,将BFD Echo报文复制到反射设备所在的链路聚合组的各个成员端口中,通过各个成员端口对应的物理链路将BFD Echo报文反射回发送设备,每一物理链路对应一成员端口,判断发送设备各成员端口是否收到BFD Echo报文,在预设检测周期内,即三次检测,若成员端口没有收到BFD Echo报文,则判定与成员端口对应的成员端口故障,若所有成员端口均没有收到BFD Echo报文,则重新选举主链路,以主链路再次发送BFD Echo报文,并重复步骤S2-S4,在预设检测周期内,即三次检测,再次检测到所有成员端口均没有收到BFD Echo报文后,判定链路聚合组端口故障。
在本实施例中,步骤S1之前,包括:
判断在定时器预设的周期内,接收时长是否超过某一成员端口n的定时器设定的时间;
若是,则判断所述成员端口n收包计数器是否为零,其中,所述数据包包括所述BFDEcho报文;
若所述收包计数器为零,则所述成员端口n的超时计数器加1,当所述超时计数器≥3,若所述成员端口n的会话状态为Up状态时,则对外通告所述成员端口n Timeout Down;
若所述收包计数器不为零,则将所述超时计数器清零。若成员端口n状态为Down,则对外通告所述成员端口n Up。
在一具体实施例中,在进行报文发送前,首先需要对时间进行检测,检测当前时间是否超过一成员端口n的定时器设定的时间,若是,则判断成员端口n收包计数器是否为零,数据包包括BFD Echo报文,若收包计数器为零,则成员端口n的超时计数器加1,当超时计数器≥3,若成员端口n的会话状态为Up状态,则对外通告成员端口n Timeout Down,若收包计数器不为零,则将超时计数器清零。此时若成员端口n状态为Down,则对外通告所述成员端口n Up。
在本实施例中,将所述超时计数器清零的步骤后,包括:
判断所有所述成员端口收包计数器是否为均零;
若是,则将所述链路聚合组端口的超时计数器加1,当所述链路聚合组端口的超时计数器≥3,若所述链路聚合组端口的会话状态为Up状态,则对外通告所述链路聚合组Timeout Down,当所述链路聚合组端口的超时计数器<3,则进入选举所述主链路步骤;
若否,则将所述超时计数器清零,若所述链路聚合组状态为Down,则对外通告所述链路聚合组Up。
在一具体实施例中,当判定为超时计数器清零后,判断所有的成员端口收包计数器是否为均零,若是,则将链路聚合组端口的超时计数器加1,当链路聚合组端口的超时计数器≥3,若链路聚合组端口的会话状态为Up状态,则对外通告链路聚合组Timeout Down,当链路聚合组端口的超时计数器<3,则进入选择主链路步骤,若否,则将所述超时计数器清零,若所述链路聚合组状态为Down,则对外通告所述链路聚合组Up。
在本实施例中,在反射设备收到所述BFD Echo报文后,将所述BFD Echo报文复制到所述反射设备所在的链路聚合组的各个成员端口中,通过各个成员端口对应的物理链路将所述BFD Echo报文反射回所述发送设备的步骤前,包括:
判断发送设备及反射设备收到BFD Echo报文的目的IP(Destination IP)是否是本设备的IP(即本机IP);
若是,则在查询到所述BFD Echo报文为所述发送设备所配置后,将所述BFD Echo报文判定为状态报文,对所述BFD Echo报文进行终结,接收BFD Echo报文的物理链路的收报计数器加1;
若否,则将所述BFD Echo报文判定为反射报文,通过报文反射模块将所述BFDEcho报文发回所述发送设备。
在一具体实施例中,当BFD Echo报文从物理链路发出传输至反射设备后,反射设备会对接收到的BFD Echo报文进行判断,判断是否为本机IP,其中IP是Internet Protocol(网际互连协议)的缩写,是TCP/IP体系中的网络层协议,每一台电脑都会有对应的一个IP地址,判断BFD Echo报文是否为本机的IP,若是,则判定BFD Echo报文为状态报文,并对接收BFD Echo报文的物理链路的收报计数器加1,若否,则判定BFD Echo报文为反射报文,需要通过物理链路反射将BFD Echo报文发射至发送设备。
在本实施例中,将所述BFD Echo报文判定为反射报文,通过报文反射模块将所述BFD Echo报文发回所述发送设备的步骤中,包括:
判断所述反射设备接收所述BFD Echo报文的物理端口是否属于所述链路聚合组;
若是,则将所述BFD Echo报文复制到各所述成员端口中,并通过对应的物理链路将所述BFD Echo报文弹回所述发送设备;
若否,则直接将所述BFD Echo报文从所述物理端口弹回所述发送设备。
在一具体实施例中,当BFD Echo报文需要进行反射回发送设备时,需要判断当前BFD Echo报文的反射设备是否为链路聚合组的成员端口中的一个,链路聚合组指若干物理链路形成聚合组,若是,则将BFD Echo报文复制到各成员口的物理链路中,通过每一条物理链路对BFD Echo报文进行反射,此过程能够高效的对每一条物理链路进行判断,通过一次反射即可知悉是否存在物理链路的成员口故障,若否,则通过传输该BFD Echo报文的物理链路进行反射,亦能判断该物理链路的成员口是否故障。
在本实施例中,选取所述发送设备中所述链路聚合组的某一成员端口对应的链路作为主链路发送BFD Echo报文的步骤中,包括:
获取所述发送设备中所述链路聚合组的各个所述物理链路的总带宽及当前负载流量;
通过所述总带宽及所述当前负载流量计算出各所述物理链路的链路选举值;
根据所述链路选举值进行选举出所述主链路。
在一具体实施例中,在对物理链路进行带宽计算时,假设,物理链路按照以下情况分布:
物理链路1:总带宽40Gbps,当前负载流量5Gbps,剩余可用带宽35Gbps;
物理链路2:总带宽10Gbps,当前负载流量7Gbps,剩余可用带宽3Gbps;
物理链路3:总带宽40Gbps,当前负载流量6Gbps,剩余可用带宽34Gbps;
物理链路4:总带宽10Gbps,当前负载流量4Gbps,剩余可用带宽6Gbps;
物理链路5:总带宽40Gbps,当前负载流量39Gbps,剩余可用带宽1Gbps;
总带宽权重为0.4,剩余带宽权重设置为0.6,按照该方法计算出各物理链路的链路选举值,如下:
物理链路1:40*0.4+35*0.6=37;
物理链路2:10*0.4+3*0.6=5.8;
物理链路3:40*0.4+34*0.6=36.4;
物理链路4:10*0.4+6*0.6=7.6;
物理链路5:40*0.4+1*0.6=16.6;
根据链路选举值进行选举出主链路。
在本实施例中,根据所述链路选举值进行选举出所述主链路的步骤中,包括:
依据所述链路选举值从大到小对各所述物理链路进行排序;
将排序第一的所述物理链路选定为所述主链路。
在一具体实施例中,当计算出物理链路1-5的选举值后,对物理链路的选举值进行排序,物理链路1>物理链路3>物理链路5>物理链路4>物理链路2,则选定物理链路1作为主链路。
在本实施例中,通过所述总带宽及所述当前负载流量计算出各所述物理链路的链路选举值的步骤中,包括:
利用以下公式计算出所述链路选举值:
R=K*d+(K-f)*(1-d);
其中,R为所述物理链路的链路选举值,K为所述物理链路的总带宽,f为所述物理链路的当前负载流量,d为权重值,其中,所述权重值取值范围为0-1。
在一具体实施例中,在进行计算过程时,采用通用的公式对链路选举值进行计算,R=K*d+(K-f)*(1-d),其中,R为物理链路的链路选举值,K为物理链路的总带宽,f为物理链路的当前负载流量,d为权重值,权重值取值范围为0-1。
在本实施例中,获取所述发送设备中所述链路聚合组的各个所述物理链路的总带宽及当前负载流量的步骤后,还包括:
依据所述总带宽及所述当前负载流量得到所述物理链路的剩余可用带宽;
将所述剩余可用带宽从大到小排序,并以排序第一的所述剩余可用带宽对应的物理链路作为所述主链路。
在一具体实施例中,进行物理链路选取中,另一选取方式为依据总带宽及当前负载流量得到物理链路的剩余可用带宽,将剩余可用带宽从大到小排序,并以排序第一的剩余可用带宽对应的物理链路作为主链路。
请参考图5,本发明提出一种针对链路聚合组的故障快速检测***,包括:
定时器模块,用于控制预设发送周期与预设检测周期,定时周期触发报文发送模块通过主链路发送BFD链路检测报文;
报文发送模块,用于根据链路选举模块选举的主链路进行BFD Echo报文封装及发送;
链路选举模块,用于按照规则进行主链路选举;
报文接收模块,用于根据收到报文的目的IP以及BFD标识符确认报文类型,状态报文送至状态检测模块,反射报文送至报文反射模块;
状态检测模块,用于根据报文源端口及会话标识符更新聚合组成员口的状态,以及聚合组的状态,同时若所有成员口未收到BFD Echo报文,则触发主备链路选举;
报文反射模块,用于将收到的反射报文,复制到聚合组的所有成员口并发出;
状态上报模块,用于对外通告聚合组或成员口的链路状态。
在一具体实施例,定时器模块通过设定发送周期及检测周期,对BFD链路检测报文的报文发送模块进行定时控制发送,通过链路选举模块按照设定的带宽计算的规则,对主链路进行选举,选举中主链路,主链路等等,通过选举出来的链路,报文发送模块进行BFDEcho报文封装及发送,通过发送BFD Echo报文,报文接收模块进行报文的接收,其中,会对接收到的BFD Echo报文进行IP判断,若不属于本机IP,仍需判断BFD Echo报文的端口是否加入到链路聚合组中,通过判断后,报文反射模块对BFD Echo报文进行反射,将BFD Echo报文复制到聚合组的所有成员口并发出,状态检测模块在接收至反射的BFD Echo报文后,进行聚合组状态的判断,若所有成员口未收到BFD报文,则触发主备链路选举,及触发链路选举模块再次工作,同时状态上报模块对外通告聚合组或成员口的链路状态。
综上,为本发明提出的一种针对链路聚合组的故障快速检测方法及***,在发送设备中建立一条BFD Echo会话,并选取所述发送设备中所述链路聚合组的某一成员端口对应的链路作为主链路发送BFD Echo报文,在反射设备收到所述BFD Echo报文后,将所述BFDEcho报文复制到所述反射设备所在的链路聚合组的各个成员端口中,通过各个成员端口对应的物理链路将所述BFD Echo报文反射回所述发送设备,每一物理链路对应一成员端口,判断所述发送设备各成员端口是否收到所述BFD Echo报文,若所述成员端口在预设检测次数内均没有收到所述BFD Echo报文,则判定与所述成员端口对应的所述成员端口故障,若所有所述成员端口在预设检测次数内均没有收到所述BFD Echo报文,则重新选举主链路,以所述主链路再次发送所述BFD Echo报文,并重复步骤S2-S4,若在所述预测检测次数内,所有所述成员端口均没有收到所述BFD Echo报文后,判定所述链路聚合组端口故障。本发明检测效率高、占用资源少、检测结果准确度高,极大地提高了链路聚合组的检测效率与准确度,减少了检测过程需要占用的资源量。
当然,本发明还可有其它多种实施方式,基于本实施方式,本领域的普通技术人员在没有做出任何创造性劳动的前提下所获得其他实施方式,都属于本发明所保护的范围。
Claims (10)
1.一种针对链路聚合组的故障快速检测方法,其特征在于,包括:
S1:在发送设备中建立一条BFD Echo会话,并选取所述发送设备中所述链路聚合组的某一发送设备成员端口对应的链路作为主链路发送BFD Echo报文;
S2:在反射设备收到所述BFD Echo报文后,将所述BFD Echo报文复制到所述反射设备所在的链路聚合组的各个反射设备成员端口中,通过各个反射设备成员端口对应的物理链路将所述BFD Echo报文反射回所述发送设备,每一物理链路对应一成员端口;
S3:判断各所述发送设备成员端口是否收到所述BFD Echo报文;
S4:若所述发送设备成员端口在预设检测次数内均没有收到所述BFD Echo报文,则判定与所述发送设备成员端口对应的所述反射设备成员端口故障,其中,所述预设检测次数设定为3次;
S5:若所有所述发送设备成员端口在所述预设检测次数内均没有收到所述BFD Echo报文,则重新选举主链路,以重新选举的主链路再次发送所述BFD Echo报文,并重复步骤S2-S4;
S6:若在所述预设检测次数内,所有所述反射设备成员端口均没有收到所述BFD Echo报文后,判定所述链路聚合组端口故障。
2.根据权利要求1所述的针对链路聚合组的故障快速检测方法,其特征在于,所述S1之前,包括:
判断在定时器预设的周期内,接收数据包时长是否超过某一成员端口n的定时器设定的时间;
若是,则判断所述成员端口n收包计数器是否为零,其中,所述数据包包括所述BFDEcho报文;
若所述收包计数器为零,则所述成员端口n的超时计数器加1,当所述超时计数器≥3,若所述成员端口n的会话状态为Up状态时,则对外通告所述成员端口n Timeout Down;
若所述收包计数器不为零,则将所述超时计数器清零,若成员端口n状态为Down,则对外通告所述成员端口n Up。
3.根据权利要求2所述的针对链路聚合组的故障快速检测方法,其特征在于,所述将所述超时计数器清零的步骤后,包括:
判断所有所述成员端口收包计数器是否为均为零;
若是,则将所述链路聚合组端口的超时计数器加1,当所述链路聚合组端口的超时计数器≥3,若所述链路聚合组端口的会话状态为Up状态,则对外通告所述链路聚合组TimeoutDown,当所述链路聚合组端口的超时计数器<3,则进入选举所述主链路步骤;
若否,则将所述超时计数器清零,若所述链路聚合组状态为Down,则对外通告所述链路聚合组Up。
4.根据权利要求1所述的针对链路聚合组的故障快速检测方法,其特征在于,所述在反射设备收到所述BFD Echo报文后,将所述BFD Echo报文复制到所述反射设备所在的链路聚合组的各个成员端口中,通过各个成员端口对应的物理链路将所述BFD Echo报文反射回所述发送设备的步骤前,包括:
判断发送设备及反射设备收到BFD Echo报文的目的IP是否是本设备的IP;
若是,则在查询到所述BFD Echo报文为所述发送设备所配置后,将所述BFD Echo报文判定为状态报文,对所述BFD Echo报文进行终结,接收BFD Echo报文的物理链路的收包计数器加1;
若否,则将所述BFD Echo报文判定为反射报文,通过报文反射模块将所述BFD Echo报文发回所述发送设备。
5.根据权利要求4所述的针对链路聚合组的故障快速检测方法,其特征在于,所述将所述BFD Echo报文判定为反射报文,通过报文反射模块将所述BFD Echo报文发回所述发送设备的步骤中,包括:
判断所述反射设备接收所述BFD Echo报文的物理端口是否属于所述链路聚合组;
若是,则将所述BFD Echo报文复制到各所述成员端口中,并通过对应的物理链路将所述BFD Echo报文弹回所述发送设备;
若否,则直接将所述BFD Echo报文从所述物理端口弹回所述发送设备。
6.根据权利要求1所述的针对链路聚合组的故障快速检测方法,其特征在于,所述选取所述发送设备中所述链路聚合组的某一成员端口对应的链路作为主链路发送BFD Echo报文的步骤中,包括:
获取所述发送设备中所述链路聚合组的各个所述物理链路的总带宽及当前负载流量;
通过所述总带宽及所述当前负载流量计算出各所述物理链路的链路选举值;
根据所述链路选举值进行选举出所述主链路。
7.根据权利要求6所述的针对链路聚合组的故障快速检测方法,其特征在于,所述根据所述链路选举值进行选举出所述主链路的步骤中,包括:
依据所述链路选举值从大到小对各所述物理链路进行排序;
将排序第一的所述物理链路选定为所述主链路。
8.根据权利要求7所述的针对链路聚合组的故障快速检测方法,其特征在于,所述通过所述总带宽及所述当前负载流量计算出各所述物理链路的链路选举值的步骤中,包括:
利用以下公式计算出所述链路选举值:
R=K*d+(K-f)*(1-d);
其中,R为所述物理链路的链路选举值,K为所述物理链路的总带宽,f为所述物理链路的当前负载流量,d为权重值,其中,所述权重值取值范围为0-1。
9.根据权利要求6所述的针对链路聚合组的故障快速检测方法,其特征在于,所述获取所述发送设备所对应的所有所述物理链路的总带宽及当前负载流量的步骤后,还包括:
依据所述总带宽及所述当前负载流量得到所述物理链路的剩余可用带宽;
将所述剩余可用带宽从大到小排序,并以排序第一的所述剩余可用带宽对应的物理链路作为所述主链路。
10.一种针对链路聚合组的故障快速检测***,应用于权利要求1-9任一条的所述针对链路聚合组的故障快速检测方法,其特征在于,包括:
定时器模块,用于控制预设发送周期与预设检测周期,并进行会话超时检测,定时周期触发报文发送模块通过主链路发送BFD链路检测报文;
报文发送模块,用于根据链路选举模块选举的主链路进行BFD Echo报文封装及发送;
链路选举模块,用于按照规则进行主链路选举;
报文接收模块,用于根据收到报文的目的IP以及BFD标识符确认报文类型,状态报文送至状态检测模块,反射报文送至报文反射模块;
状态检测模块,用于根据报文源端口及会话标识符更新链路聚合组成员口的状态,以及链路聚合组的状态,同时若所有成员口未收到BFD报文,则触发主链路选举;
报文反射模块,用于将收到的反射报文,复制到聚合组的所有成员口并发出;
状态上报模块,用于对外通告聚合组或成员口的链路状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210672721.1A CN115277509B (zh) | 2022-06-15 | 2022-06-15 | 一种针对链路聚合组的故障快速检测方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210672721.1A CN115277509B (zh) | 2022-06-15 | 2022-06-15 | 一种针对链路聚合组的故障快速检测方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115277509A CN115277509A (zh) | 2022-11-01 |
CN115277509B true CN115277509B (zh) | 2023-07-11 |
Family
ID=83762115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210672721.1A Active CN115277509B (zh) | 2022-06-15 | 2022-06-15 | 一种针对链路聚合组的故障快速检测方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115277509B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112737880A (zh) * | 2020-12-25 | 2021-04-30 | 北京华三通信技术有限公司 | 一种双向转发检测bfd报文的转发方法及网络设备 |
CN112737871A (zh) * | 2020-12-11 | 2021-04-30 | 北京东土军悦科技有限公司 | 链路故障检测方法、装置、计算机设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4840236B2 (ja) * | 2007-04-12 | 2011-12-21 | 株式会社日立製作所 | ネットワークシステム及びノード装置 |
CN107889132A (zh) * | 2016-09-30 | 2018-04-06 | 中兴通讯股份有限公司 | 一种链路质量测量的方法、装置以及*** |
CN108632099B (zh) * | 2018-05-18 | 2021-09-21 | 新华三技术有限公司 | 一种链路聚合的故障检测方法及装置 |
JP6436262B1 (ja) * | 2018-07-03 | 2018-12-12 | 日本電気株式会社 | ネットワーク管理装置、ネットワークシステム、方法、及びプログラム |
CN109194547B (zh) * | 2018-09-29 | 2020-06-16 | 新华三技术有限公司 | 报文传输方法、装置、本端设备及可读存储介质 |
CN111654406B (zh) * | 2020-02-29 | 2022-08-30 | 新华三信息安全技术有限公司 | 一种双向转发检测方法和装置 |
-
2022
- 2022-06-15 CN CN202210672721.1A patent/CN115277509B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112737871A (zh) * | 2020-12-11 | 2021-04-30 | 北京东土军悦科技有限公司 | 链路故障检测方法、装置、计算机设备及存储介质 |
CN112737880A (zh) * | 2020-12-25 | 2021-04-30 | 北京华三通信技术有限公司 | 一种双向转发检测bfd报文的转发方法及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115277509A (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230171148A1 (en) | Monitoring and detecting causes of failures of network paths | |
CN107347021B (zh) | 一种基于sdn网络可靠传输方法 | |
US6856593B2 (en) | Communication system, relay apparatus, end system, and communicating method | |
JP4072158B2 (ja) | 通信ネットワークにおけるメッセージパスのテスト方法並びにネットワーク要素 | |
CN111988191B (zh) | 一种分布式通信网络的故障检测方法及装置 | |
CN108123824A (zh) | 一种网络故障检测方法及装置 | |
EP1391079A1 (en) | Method and system for implementing a fast recovery process in a local area network | |
US7974188B2 (en) | Repeater and communication method | |
MXPA05013971A (es) | Sistema de red principal para retransmision de multiples puntos a multiples puntos. | |
WO2008148334A1 (fr) | Procédé, système et appareil pour détecter la réception anormale d'un message | |
US9001667B1 (en) | Monitoring and detecting causes of failures of network paths | |
GB2347832A (en) | Client/server monitoring | |
CN104283711A (zh) | 基于双向转发检测bfd的故障检测方法、节点及*** | |
CN101841424B (zh) | 基于socks代理连接的ems网管***和方法 | |
CN109245961A (zh) | 链路质量检测方法、装置、存储介质和设备 | |
JP5938995B2 (ja) | 通信装置 | |
CN115277509B (zh) | 一种针对链路聚合组的故障快速检测方法和*** | |
US20230269184A1 (en) | Notification-based load balancing in a network | |
JP2010287987A (ja) | メールサーバシステム及び輻輳制御方法 | |
Anand et al. | Netreplay: a new network primitive | |
CN102055673A (zh) | 多路由网络以及路由切换方法 | |
JP5637975B2 (ja) | ネットワークシステムおよび通信装置 | |
JP6378653B2 (ja) | サービス影響原因推定装置、サービス影響原因推定プログラム、及びサービス影響原因推定方法 | |
CN113037622B (zh) | 一种防止bfd震荡的***及方法 | |
JP2004134879A (ja) | ルータ装置 |
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 |