CN114301806A - 一种虚网连通性检测方法、装置、设备和存储介质 - Google Patents

一种虚网连通性检测方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN114301806A
CN114301806A CN202111650606.6A CN202111650606A CN114301806A CN 114301806 A CN114301806 A CN 114301806A CN 202111650606 A CN202111650606 A CN 202111650606A CN 114301806 A CN114301806 A CN 114301806A
Authority
CN
China
Prior art keywords
cpe
equipment
path
virtual network
termination
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.)
Granted
Application number
CN202111650606.6A
Other languages
English (en)
Other versions
CN114301806B (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.)
Network Communication and Security Zijinshan Laboratory
Original Assignee
Network Communication and Security Zijinshan Laboratory
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 Network Communication and Security Zijinshan Laboratory filed Critical Network Communication and Security Zijinshan Laboratory
Priority to CN202111650606.6A priority Critical patent/CN114301806B/zh
Publication of CN114301806A publication Critical patent/CN114301806A/zh
Application granted granted Critical
Publication of CN114301806B publication Critical patent/CN114301806B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种虚网连通性检测方法、装置、设备和存储介质,获取每个起始CPE和终止CPE之间的所有路径的数据包,所述路径的数据包包括:虚网名称,源设备名称和目的设备名称;按照所述数据包中的源设备名称对路径数据包进行分组,得到各个源设备对应的路径数据包;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,从而得到虚网的连通性检测结果。能够精准定位虚网下的所有路径包,提高了搜索的速度和效率,最大程度上的提高了请求的并发数量。

Description

一种虚网连通性检测方法、装置、设备和存储介质
技术领域
本发明属于网络设备连通性检测技术领域,尤其涉及一种虚网连通性检测方法、装置、设备和存储介质。
背景技术
虚拟私有网络(Virtual Private Network,VPN),以下简称虚网,是近年来网络通讯领域逐渐发展和被广泛利用的技术。为了保证网络的稳定服务和质量,使用传送多协议标签交换(Transport Multi-Protocol Label Switching,T-MPLS)的网络均有操作管理维护能力,它是保障网络业务正常、安全有效运行而采取的生产组织管理活动,反映网络运行状态的一种重要方式。
虚网在物理上主要由设备PE(Provider Edge,服务提供商网络的边缘设备),VPE(Virtual Provider Edge,服务提供商网络的虚拟边缘设备),CPE(Customer PremiseEquipment,客户终端设备)组成。连通性检测是检测两个不同端的CPE之间的所有路径是否可达,即检测各个CPE-VPE,VPE-PE,PE-PE之间的路径是否可达。检测路径是否可达,则是通过源设备向目的设备周期性发送因特网报文控制协议(Internet Control MessageProtocol,ICMP)Echo请求报文,然后通过目的设备是否返回应答来检测路径是否可达,如果不返回应答,则表示路径不连通。
连通性的检测的实现通常有两个步骤组成:步骤1、搜索该虚网需要检测的所有路径的数据包;步骤2、将所有路径的数据包按照包中的源设备进行分组,源设备根据包中的信息向目的设备发送ICMP请求报文,若源设备能够接收目的设备返回的正常应答,表明源、目的设备的路径可达,连通性正常,否则异常。现有的实现方法中,步骤1主要有两种方案:①所有设备节点都直接连接,即采用FULL MESH的方法。②以边缘设备CPE为树的根节点,采用广度遍历(Breadth First Searc,BFS)向下搜索。步骤2的实现受制于设备的并发数量(即一个源设备同时向不同的目的设备发送ICMP请求的数量),往往采取生产者-缓存队列-消费者的模式,串行加锁对虚网其进行检测。
现有的实现主要存在的问题:步骤1中,两种方案的搜索效率都不高,特别是当单一虚网中设备数量达到一定程度时,搜索包的时间会大大增加。步骤2中,设备的资源有限,串行的方式检测速度比较慢,当虚网的数量增加时,全局的检测时间也会随之线性增加。
发明内容
本发明目的是提供一种虚网连通性检测方法、装置、设备和存储介质,解决了搜索路径数据包时间长、串行方式检测速度慢的问题。
本发明技术方案为:一种虚网连通性检测方法,包括:
获取虚网中的所有网络设备,将任意一个CPE设备作为起始CPE,另一个CPE设备作为终止CPE,得到若干个起始CPE和终止CPE组合;
获取每个起始CPE和终止CPE之间的所有路径的数据包,所述路径的数据包包括:虚网名称,源设备名称和目的设备名称;
按照所述数据包中的源设备名称对路径数据包进行分组,得到各个源设备对应的路径数据包;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,从而得到虚网的连通性检测结果。
进一步的,获取每个起始CPE和终止CPE之间的所有路径的数据包,包括:
以起始CPE为根节点,搜索所有与此起始CPE直连的第一终止节点VPE设备,得到第一起始路径CPE-VPE数据包;
以终止CPE为根节点,搜索所有与此终止CPE直连的第二终止节点VPE设备,得到第一终止路径;将第一终止路径反转为第一反转终止路径,得到第一反转终止路径VPE-CPE数据包;
若没有PE设备,则将第一终止节点VPE设备与第二终止节点VPE设备之间建立连接,得到对应的VPE-VPE路径数据包;
若存在PE设备,则搜索所有与第一终止节点VPE设备直连的第三终止节点PE设备,得到第二起始路径VPE-PE数据包;搜索所有与第二终止节点VPE设备直连的第四终止节点PE设备,得到第二终止路径VPE-PE,将第二终止路径反转为第二反转终止路径PE-VPE,得到第二反转终止路径PE-VPE数据包,第三终止节点PE设备与第四终止节点PE设备之间建立链路连接,得到对应的PE-PE路径数据包。
进一步的,每个分组以n-m-k的方式进行编号,其中,n代表源设备名,m代表虚网名,k代表组内路径数据包的数量。
进一步的,所述采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,包括:
获取虚网中所有网络设备对应的最大并发数量,并为每个网络设备设置一个单独的队列分区;
向zookeeper集群中写入以所述虚网的虚网名为锁名称的虚网锁,获取该虚网锁,若写入失败,则结束本方法;否则,
对于各个源设备,向zookeeper集群写入该源设备对应的设备锁,获取该设备锁,读取该源设备在zookeeper集群中的所有临时节点,对各临时节点中的当前并发数量求和后,加上该源设备对应的组内路径数据包的数量,得到总并发数量,判断总并发数量是否小于或等于最大并发数量;
若是,则向zookeeper集群写入以源设备、虚网名为路径,以该源设备对应的组内路径数据包的数量为保存数据的临时节点;该源设备向对应组内路径数据包中各个目的设备发送ICMP请求报文,并释放该设备锁;
若否,则释放该设备锁,将该源设备对应的组内路径数据包存放到对应的队列分区中,等待设定时间后重新写入设备锁,并计算,直到满足总并发数量小于或等于最大并发数量,或者直到超过设定的重新计算次数,若超过设定的重新计算次数,结束检测方法。
进一步的,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,包括:
若目的设备在规定的时间内向源设备返回应答,则返回结果正常,否则异常,进而得到该起始和终止CPE之间连通性检测结果。
进一步的,在得到虚网的连通性检测结果后,释放zookeeper集群中该虚网的虚网锁。
一种虚网连通性检测装置,包括:
设备获取模块,用于获取虚网中的所有网络设备,将任意一个CPE设备作为起始CPE,另一个CPE设备作为终止CPE,得到若干个起始CPE和终止CPE组合;
数据包获取模块,用于获取每个起始CPE和终止CPE之间的所有路径的数据包,所述路径的数据包包括:虚网名称,源设备名称和目的设备名称;
检测模块,用于按照所述数据包中的源设备名称对路径数据包进行分组,得到各个源设备对应的路径数据包;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,从而得到虚网的连通性检测结果。
进一步的,获取每个起始CPE和终止CPE之间的所有路径的数据包,包括:
以起始CPE为根节点,搜索所有与此起始CPE直连的第一终止节点VPE设备,得到第一起始路径CPE-VPE数据包;
以终止CPE为根节点,搜索所有与此终止CPE直连的第二终止节点VPE设备,得到第一终止路径;将第一终止路径反转为第一反转终止路径,得到第一反转终止路径VPE-CPE数据包;
若没有PE设备,则将第一终止节点VPE设备与第二终止节点VPE设备之间建立连接,得到对应的VPE-VPE路径数据包;
若存在PE设备,则搜索所有与第一终止节点VPE设备直连的第三终止节点PE设备,得到第二起始路径VPE-PE数据包;搜索所有与第二终止节点VPE设备直连的第四终止节点PE设备,得到第二终止路径VPE-PE,将第二终止路径反转为第二反转终止路径PE-VPE,得到第二反转终止路径PE-VPE数据包,第三终止节点PE设备与第四终止节点PE设备之间建立链路连接,得到对应的PE-PE路径数据包。
进一步的,所述采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,包括:
获取虚网中所有网络设备对应的最大并发数量,并为每个网络设备设置一个单独的队列分区;
向zookeeper集群中写入以所述虚网的虚网名为锁名称的虚网锁,获取该虚网锁,若写入失败,则结束本方法;否则,
对于各个源设备,向zookeeper集群写入该源设备对应的设备锁,获取该设备锁,读取该源设备在zookeeper集群中的所有临时节点,对各临时节点中的当前并发数量求和后,加上该源设备对应的组内路径数据包的数量,得到总并发数量,判断总并发数量是否小于或等于最大并发数量;
若是,则向zookeeper集群写入以源设备、虚网名为路径,以该源设备对应的组内路径数据包的数量为保存数据的临时节点;该源设备向对应组内路径数据包中各个目的设备发送ICMP请求报文,并释放该设备锁;
若否,则释放该设备锁,将该源设备对应的组内路径数据包存放到对应的队列分区中,等待设定时间后重新写入设备锁,并计算,直到满足总并发数量小于或等于最大并发数量,或者直到超过设定的重新计算次数,若超过设定的重新计算次数,结束检测方法。
一种虚网连通性检测设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述的任意一项所述虚网连通性检测方法。
一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行前述的任意一项所述虚网连通性检测方法。
本发明采用上述技术方案,与现有技术相比具有如下优点:
本发明通过获取每个起始CPE和终止CPE之间的所有路径的数据包;在搜索路径时,遍历的点更少,效率更高;
采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,在不阻塞业务的前提下能够更加精准的发挥各个设备的并发性能。
附图说明
图1是本发明实施例中的一种虚网的拓扑结构示意图;
图2是基于overlay型网络时建立完整检索路径的流程图;
图3是基于underlay型网络时建立完整检索路径的流程图;
图4是本发明实施例中的一种队列分区和判断过程的示意图。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明:
虚网主要由骨干网络设备PE和接入网络设备VPE、CPE组成。其中,骨干网络设备PE处于整个网络的中央,由链路将它们逻辑上连接在一起。CPE设备处于网络的各个边缘,并通过中间设备VPE连接到相应的PE上,它们之间的拓扑关系一般为CPE-VPE-PE-PE-VPE-CPE。连通性检测,首先要获取虚网拓扑结构中的待检测的路径数据包,其中包括端到端的数据包CPE-CPE,中间路径的数据包CPE-VPE,VPE-PE。
如图1所示,一个虚网会有多个网络设备组成,获取其中的检测路径数据包就需要一定的路径搜索方法。本发明采用一种 “两端走中探址法”来搜索虚网中的路径,“两端”是指处于网络边缘的CPE设备,“中”是指处于网络中央核心的PE设备,在搜索路径时,先由两端分别向中间寻址,再由各自搜索到的“终止节点”进行连接,最后反向后半段的路径得到全局的顺序路径。该方法通用于overlay和underlay型虚网,并且在搜索效率上相较于普通的方法,也有较大程度上的提升。
获取虚网中所有待检测的路径数据包后,需要在各个数据包对应的源设备上发送ICMP报文。一个虚网会对应多个骨干或接入设备,一个骨干设备也会被多个虚网所使用。由于每个设备的请求资源的并发量有限,当多个虚网同时进行连通性的检测任务时,即要保证设备资源合理分配,也要考虑系统的稳定性,提高检测的效率。本发明结合了zookeeper分布式锁和分治的思想,提出了一种“双重锁法”来控制请求和资源的调度。该方法先对虚网加锁,然后将待检测的包分组,接着对设备加锁,利用zookeeper临时节点来对当前设备的资源使用量进行计数,当申请的并发量加设备的资源已使用量小于等于设备支持的最大并发量时,进行ICMP请求报文的下发,并将申请的并发量写入zookeeper临时节点,否则该组数据包进入等待队列。让设备在有限的资源下,虚网的连通性检测支持最大程度上的并发。
实施例1:
一种虚网连通性检测方法,包括:
获取虚网中的所有网络设备,将任意一个CPE设备作为起始CPE,另一个CPE设备作为终止CPE,得到若干个起始CPE和终止CPE组合;
获取每个起始CPE和终止CPE之间的所有路径的数据包,所述路径的数据包包括:虚网名称,源设备名称和目的设备名称;
按照所述数据包中的源设备名称对路径数据包进行分组,得到各个源设备对应的路径数据包;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,从而得到虚网的连通性检测结果。
本发明通过获取每个起始CPE和终止CPE之间的所有路径的数据包;在搜索路径时,遍历的点更少,效率更高;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,在不阻塞业务的前提下能够更加精准的发挥各个设备的并发性能。
进一步的,获取每个起始CPE和终止CPE之间的所有路径的数据包,包括:
以起始CPE为根节点,搜索所有与此起始CPE直连的第一终止节点VPE设备,得到第一起始路径CPE-VPE数据包;
以终止CPE为根节点,搜索所有与此终止CPE直连的第二终止节点VPE设备,得到第一终止路径;将第一终止路径反转为第一反转终止路径,得到第一反转终止路径VPE-CPE数据包;
若没有PE设备,则将第一终止节点VPE设备与第二终止节点VPE设备之间建立连接,得到对应的VPE-VPE路径数据包;
若存在PE设备,则搜索所有与第一终止节点VPE设备直连的第三终止节点PE设备,得到第二起始路径VPE-PE数据包;搜索所有与第二终止节点VPE设备直连的第四终止节点PE设备,得到第二终止路径VPE-PE,将第二终止路径反转为第二反转终止路径PE-VPE,得到第二反转终止路径PE-VPE数据包,第三终止节点PE设备与第四终止节点PE设备之间建立链路连接,得到对应的PE-PE路径数据包。
通过采用了两端以同样的方式分别向中间探址,搜索对应“终止节点VPE或终止节点PE”,再将两端各自的“终止节点”进行连接,最后反转部分路径的方式,得到端与端的全路径。相较与传统的方案,改进的方案在搜索路径时,遍历的点更少,效率更高,并且能够清晰的获得中间每一跳的路径信息。
进一步的,每个分组以n-m-k的方式进行编号,其中,n代表源设备名,m代表虚网名,k代表组内路径数据包的数量。
获取虚网中的所有网络设备,并查询CPE,查询的 CPE信息包括:CPE的ID、名称、CPE各个端口的名称,CPE各个端口对应的IP。
进一步的,所述采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,包括:
获取虚网中所有网络设备对应的最大并发数量,并为每个网络设备设置一个单独的队列分区;
向zookeeper集群中写入以所述虚网的虚网名为锁名称的虚网锁,获取该虚网锁,若写入失败,则结束本方法;否则,
对于各个源设备,向zookeeper集群写入该源设备对应的设备锁,获取该设备锁,读取该源设备在zookeeper集群中的所有临时节点,对各临时节点中的当前并发数量求和后,加上该源设备对应的组内路径数据包的数量,得到总并发数量,判断总并发数量是否小于或等于最大并发数量;
若是,则向zookeeper集群写入以源设备、虚网名为路径,以该源设备对应的组内路径数据包的数量为保存数据的临时节点;该源设备向对应组内路径数据包中各个目的设备发送ICMP请求报文,并释放该设备锁;
若否,则释放该设备锁,将该源设备对应的组内路径数据包存放到对应的队列分区中,等待设定时间后重新写入设备锁,并计算,直到满足总并发数量小于或等于最大并发数量,或者直到超过设定的重新计算次数,若超过设定的重新计算次数,结束检测方法。
进一步的,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,包括:
若目的设备在规定的时间内向源设备返回应答,则返回结果正常,否则异常,进而得到该起始和终止CPE之间连通性检测结果。
进一步的,在得到虚网的连通性检测结果后,释放zookeeper集群中该虚网的虚网锁。
实施例2:
一种虚网连通性检测装置,包括:
设备获取模块,用于获取虚网中的所有网络设备,将任意一个CPE设备作为起始CPE,另一个CPE设备作为终止CPE,得到若干个起始CPE和终止CPE组合;
数据包获取模块,用于获取每个起始CPE和终止CPE之间的所有路径的数据包,所述路径的数据包包括:虚网名称,源设备名称和目的设备名称;
检测模块,用于按照所述数据包中的源设备名称对路径数据包进行分组,得到各个源设备对应的路径数据包;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,从而得到虚网的连通性检测结果。
本发明通过获取每个起始CPE和终止CPE之间的所有路径的数据包;在搜索路径时,遍历的点更少,效率更高;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,在不阻塞业务的前提下能够更加精准的发挥各个设备的并发性能。
进一步的,获取每个起始CPE和终止CPE之间的所有路径的数据包,包括:
以起始CPE为根节点,搜索所有与此起始CPE直连的第一终止节点VPE设备,得到第一起始路径CPE-VPE数据包;
以终止CPE为根节点,搜索所有与此终止CPE直连的第二终止节点VPE设备,得到第一终止路径;将第一终止路径反转为第一反转终止路径,得到第一反转终止路径VPE-CPE数据包;
若没有PE设备,则将第一终止节点VPE设备与第二终止节点VPE设备之间建立连接,得到对应的VPE-VPE路径数据包;
若存在PE设备,则搜索所有与第一终止节点VPE设备直连的第三终止节点PE设备,得到第二起始路径VPE-PE数据包;搜索所有与第二终止节点VPE设备直连的第四终止节点PE设备,得到第二终止路径VPE-PE,将第二终止路径反转为第二反转终止路径PE-VPE,得到第二反转终止路径PE-VPE数据包,第三终止节点PE设备与第四终止节点PE设备之间建立链路连接,得到对应的PE-PE路径数据包。
通过采用了两端以同样的方式分别向中间探址,搜索对应“终止节点VPE或终止节点PE”,再将两端各自的“终止节点”进行连接,最后反转部分路径的方式,得到端与端的全路径。相较与传统的方案,改进的方案在搜索路径时,遍历的点更少,效率更高,并且能够清晰的获得中间每一跳的路径信息。
进一步的,每个分组以n-m-k的方式进行编号,其中,n代表源设备名,m代表虚网名,k代表组内路径数据包的数量。
获取虚网中的所有网络设备,并查询CPE,查询的 CPE信息包括:CPE的ID、名称、CPE各个端口的名称,CPE各个端口对应的IP。
进一步的,所述采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,包括:
获取虚网中所有网络设备对应的最大并发数量,并为每个网络设备设置一个单独的队列分区;
向zookeeper集群中写入以所述虚网的虚网名为锁名称的虚网锁,获取该虚网锁,若写入失败,则结束本方法;否则,
对于各个源设备,向zookeeper集群写入该源设备对应的设备锁,获取该设备锁,读取该源设备在zookeeper集群中的所有临时节点,对各临时节点中的当前并发数量求和后,加上该源设备对应的组内路径数据包的数量,得到总并发数量,判断总并发数量是否小于或等于最大并发数量;
若是,则向zookeeper集群写入以源设备、虚网名为路径,以该源设备对应的组内路径数据包的数量为保存数据的临时节点;该源设备向对应组内路径数据包中各个目的设备发送ICMP请求报文,并释放该设备锁;
若否,则释放该设备锁,将该源设备对应的组内路径数据包存放到对应的队列分区中,等待设定时间后重新写入设备锁,并计算,直到满足总并发数量小于或等于最大并发数量,或者直到超过设定的重新计算次数,若超过设定的重新计算次数,结束检测方法。
进一步的,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,包括:
若目的设备在规定的时间内向源设备返回应答,则返回结果正常,否则异常,进而得到该起始和终止CPE之间连通性检测结果。
进一步的,在得到虚网的连通性检测结果后,释放zookeeper集群中该虚网的虚网锁。
本发明在设备部分增加了额外的一层设备锁,该锁的粒度非常细致,从锁到解锁中间就经历了一个短暂的查询和计数过程,线程持有设备锁的时间非常短暂,在不阻塞业务的前提下能够更加精准的发挥各个设备的并发性能。二是计数方案不同于传统的数据库计数或是缓存计数,而是利用了zookeeper临时节点在断连接时能够自动释放的特性,将设备正在使用的资源写入特定的以设备名称开头的路径的临时节点中,这种方案的好处是在线程突遇异常或系统意外宕机时,能够主动释放临时节点,从而释放设备资源供后续任务调用,不用人工干预,也加强了系统的鲁棒性和准确性。
实施例3:
本实施例提供一种虚网连通性检测处理方法,包括步骤:
步骤1,获取虚网中每个起始CPE到终止CPE之间的所有路径的数据包;
采用“两端走中探址法”,以下给出两种情况下的获取方法,一种是没有骨干网设备PE,一种是有骨干网设备PE;
A.图2示出了基于overlay型网络,即没有骨干设备PE,具体过程为:
步骤1.1 根据虚网ID,获取与该虚网有关联的所有CPE信息,CPE信息主要内容包括:CPE的ID、名称、以及其各个端口的名称和对应IP;选择任意一个CPE作为起始CPE,另一个CPE作为终止CPE;
步骤1.2 以CPE为根节点,搜索所有与其直连的VPE设备,将搜索到的结果组成CPE-VPE的单向路径数据包,包信息包括:虚网名称、源CPE设备的名称、其关联的端口以及IP,目的VPE设备的名称、其关联的端口以及IP;
步骤1.3 将步骤1.2中搜索出的VPE作为“终止节点”;
步骤1.4分别对起始CPE和终止CPE执行步骤1.2-1.4,获取各自的“终止节点”。即得到起始CPE的向后路径CPE-VPE,终止CPE的向后路径CPE-VPE;
步骤1.5 overlay型网络获取到的“终止节点”为VPE;这种情况的中央骨干网络不可见,将这些VPE做FULL MESH 连接,得到起始VPE到终止VPE的路径包,即VPE-VPE,该路径包信息包括:虚网名称、起始和终止VPE 的名称、以及其关联的端口以及IP;
步骤1.6将以终止CPE得到的搜索路径进行反向,即将CPE-VPE调换为反向路径VPE-CPE;
步骤1.7根据起始CPE的搜索路径(CPE-VPE),以及反向路径(VPE-CPE),可得完整的路径信息CPE-VPE-VPE-CPE。
B.图3示出了基于underlay型网络,即设有骨干设备PE,建立完整检索路径的具体操作过程:
步骤2.1 根据虚网ID,查询与该虚网有关联的所有最外层接入端的CPE信息,主要内容包括:CPE的ID、名称、以及其各个端口的名称和对应IP;
步骤2.2 以CPE为根节点,搜索所有与其直连的VPE设备,将搜索到的结果组成CPE-VPE的单向路径包,包信息包括:虚网名称、源CPE设备的名称、其关联的端口以及IP,目的VPE设备的名称、其关联的端口以及IP;
步骤2.3 以步骤2.2中的VPE设备为根节点,搜索所有与其直连的PE设备,组成VPE-PE的单向路径包,单向路径包信息包括:虚网名称、源VPE设备的名称、关联的端口以及IP、目的PE设备的名称、其关联的端口以及IP;将搜索到的PE设备视为“终止节点”;
步骤2.4分别对起始CPE和终止CPE执行步骤2.2~2.4,获取各自的“终止节点”;即得到起始CPE的向后路径:CPE-VPE-PE,终止CPE的向后路径CPE-VPE-PE;
步骤2.5处于网络中心的骨干设备PE使用BGP-LS(BGP Link-state边界网关协议链路状态)负责收集IGP(Interior Gateway Protocol内部网关协议)内的拓扑,从而得到设备之间的链路,根据链路,获得起始PE到终止PE的路径包,即PE-PE;包信息包括:虚网名称、起始PE和终止PE 的名称、关联的端口以及端口IP;
步骤2.6将以终止CPE得到的搜索路径进行反向,即将CPE-VPE调换为VPE-CPE,VPE-PE调换为PE-VPE,得到反向路径PE-VPE-CPE;
步骤2.7根据起始CPE的搜索路径(CPE-VPE-PE),中间的互联路径(PE-PE),最后的反向路径(PE-VPE-CPE),可得完整的路径信息CPE-VPE-PE-PE-VPE-CPE。
在搜索路径的数据包时,传统方案一般采用的方法有:①以一端(CPE)为根节点,向下广度遍历,直到遍历出其它CPE; ②将所有设备节点进行全连接; ③忽略中间路径,只取CPE-CPE的直连路径数据包。这些方法通常耗时较长,有的甚至得不到中间的明细路径。
本发明采用了两端以同样的方式分别向中间探址,搜索对应“终止节点”,再将两端各自的“终止节点”进行连接,最后反转部分路径的方式,得到端与端的全路径。相较与传统的方案,改进的方案在搜索路径时,遍历的点更少,效率更高,并且能够清晰的获得中间每一跳的路径信息。
步骤2,将所有路径的数据包按照包中的源设备进行分组,采用双重锁法控制各个源设备并发地向目的设备发送连通性检测报文,从而得到虚网连通性检测结果。
获得每个起始CPE和终止CPE之间的所有路径的数据包后,需要分配数据包到各自对应的源设备并向目的设备下发ICMP报文进行检测。本发明采用了一种双重锁法来控制设备资源,有两种类型的锁,一种是虚网锁,一种是设备锁。设计借助了zookeeper集群的分布式锁和临时节点的特性,在检测虚网连通性时,具体步骤如下:
步骤3.1 获取虚网中所有的网络设备和各设备对应的最大并发数量max,存储在一个全局量中(如数据库),并为每个设备设置一个单独的队列分区。设备对应的最大并发数量为该设备能够向其他设备同时发送ICMP请求报文的数量。
步骤3.2向zookeeper集群写入以虚网名为锁名称的虚网锁,即获取该虚网锁,如果写入失败,则表示已经有其它线程(即实现本发明检测方法的线程)获取该虚网锁,并且还在检测中,直接结束本检测方法。
步骤3.3将所有步骤1获取的路径的数据包按包中的源设备名称进行分组。每组以n-m-k的方式进行编号,其中,n代表源设备名,m代表虚网名,k代表组内包的数量。
步骤3.4对于路径数据包中的每个源设备,向zookeeper集群写入该源设备对应的设备锁n,即获取该设备锁,读取该源设备在zookeeper集群中以“/n”开头的所有临时节点,并对各临时节点中的当前并发数量data求和sum(data),判断sum(data)+k小于等于max是否成立;
如果成立,则向zookeeper集群写入以“/n/m”为路径path的,以k为保存数据data的临时节点;该源设备向对应组内的路径数据包中各个目的设备发送ICMP请求报文,并释放该设备锁;
如果不成立,则释放该设备锁,将该源设备的路径数据包存放到对应的队列分区中,等待设定时间后重新写入设备锁,并计算,直到满足sum(data)+k小于等于max或者超过设定的次数;若重新计算的次数超过设定次数,则认为检测失败,记录失败原因到日志后,检测任务结束。
根据目的设备是否在设定的时间内返回应答得到源设备与各个目的设备之间是否连通,即源设备若能在设定的时间内得到返回的应答,则返回结果正常,否则异常;
通过虚网锁和设备锁的双重控制,每个源设备与目的设备之间并发地进行连通性检测,提高了检测效率;
如图4,虚网A有三个待检测的路径数据包组“1-A-5”,“3-A-10”,“5-A-12”,分别对应设备1、3、5。先获取zookeeper集群设备分区1对应的设备锁1,此时sum(data) = 0 (开始时没有临时节点),k=5, 计算0 + 5 < 20,满足条件,写入zookeeper集群的临时节点,路径为“/1/A”,数值data=5,设备1根据路径数据包中的信息,并发地向5个目的设备发送ICMP请求报文,释放设备锁1,得到连通性检测结果,将结果写入数据库,在设备分区3和5上也类似。虚网B有三个待检测的数据包组“2-B-7”,“3-B-5”,“5-A-10”,分别分配到了设备2、3、5。在分配“3-B-5”时,已有了临时节点“/3/A”,数值为10,即sum(data) = 10,k=5,max=20,计算10+5<20,满足条件。但在分配“5-A-10”时,已有了临时节点“/5/A”,数值为12,即sum(data)=12,k=10,计算12+10 > 20,不满足条件,则释放该设备锁,此时将数据包组“5-A-10”放入分区5对应的缓存队列稍后再试。
步骤3.5根据起始CPE和终止CPE之间所有源设备、目的设备之间的连通性检测结果,进而得到该起始CPE和终止CPE之间所有的路径的连通性检测结果,从而得到所有起始CPE和终止CPE之间路径的连通性检测结果,即虚网的连通性检测结果;释放zookeeper中该虚网的虚网锁,并更新虚网的连通性检测结果到数据库。若所有ICMP报文返回结果都是正常的,则虚网连通;若部分结果是不正常的,则虚网的连通性结果为部分异常,若所有结果都是不正常的,则虚网的连通性结果为全部异常。
传统的方案一般采用的方法是:所有虚网共享一把全局虚网锁,同一时刻只能有一个线程能够获得该锁并执行检测。生产者将待检测的虚网ID放入缓存队列,消费者从缓存队列中取出后,尝试获得该全局虚网锁,如果失败就稍后再试,如果成功就查询全部设备,并使用FULL MESH 或 CPE-CPE直连的方法获取路径数据包,根据路径包中的源设备发送ICMP请求报文,待最后一个请求返回后,再释放全局虚网锁。该种方法由于只有一把全局虚网锁,所以在同一时刻只会有一个虚网在进行连通性检测,导致虚网的连通性检测速度较慢,设备资源的并发利用率不够高。
本发明的改进主要有两点,一是增加了额外的一层设备锁,该锁的粒度非常细致,从锁到解锁中间就经历了一个短暂的查询和计数过程,线程持有设备锁的时间非常短暂,在不阻塞业务的前提下能够更加精准的发挥各个设备的并发性能。二是计数方案不同于传统的数据库计数或是缓存计数,而是利用了zookeeper临时节点在断连接时能够自动释放的特性,将设备正在使用的资源(即设备上正在检测中的ICMP请求报文并发数)写入特定的以设备名称开头的路径的临时节点中,这种方案的好处是在线程突遇异常或系统意外宕机时,能够主动释放临时节点,从而释放设备资源供后续任务调用,不用人工干预,也加强了系统的鲁棒性和准确性。
实施例4:
一种虚网连通性检测处理设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明的连通性检测处理方法。
一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本发明的连通性检测处理方法。

Claims (11)

1.一种虚网连通性检测方法,其特征在于,包括:
获取虚网中的所有网络设备,将任意一个CPE设备作为起始CPE,另一个CPE设备作为终止CPE,得到若干个起始CPE和终止CPE组合;
获取每个起始CPE和终止CPE之间的所有路径的数据包,所述路径的数据包包括:虚网名称,源设备名称和目的设备名称;
按照所述数据包中的源设备名称对路径数据包进行分组,得到各个源设备对应的路径数据包;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,从而得到虚网的连通性检测结果。
2.根据权利要求1所述的虚网连通性检测方法,其特征在于,获取每个起始CPE和终止CPE之间的所有路径的数据包,包括:
以起始CPE为根节点,搜索所有与此起始CPE直连的第一终止节点VPE设备,得到第一起始路径CPE-VPE数据包;
以终止CPE为根节点,搜索所有与此终止CPE直连的第二终止节点VPE设备,得到第一终止路径;将第一终止路径反转为第一反转终止路径,得到第一反转终止路径VPE-CPE数据包;
若没有PE设备,则将第一终止节点VPE设备与第二终止节点VPE设备之间建立连接,得到对应的VPE-VPE路径数据包;
若存在PE设备,则搜索所有与第一终止节点VPE设备直连的第三终止节点PE设备,得到第二起始路径VPE-PE数据包;搜索所有与第二终止节点VPE设备直连的第四终止节点PE设备,得到第二终止路径VPE-PE,将第二终止路径反转为第二反转终止路径PE-VPE,得到第二反转终止路径PE-VPE数据包,第三终止节点PE设备与第四终止节点PE设备之间建立链路连接,得到对应的PE-PE路径数据包。
3.根据权利要求1所述的虚网连通性检测方法,其特征在于,每个分组以n-m-k的方式进行编号,其中,n代表源设备名,m代表虚网名,k代表组内路径数据包的数量。
4.根据权利要求1所述的虚网连通性检测方法,其特征在于,所述采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,包括:
获取虚网中所有网络设备对应的最大并发数量,并为每个网络设备设置一个单独的队列分区;
向zookeeper集群中写入以所述虚网的虚网名为锁名称的虚网锁,获取该虚网锁,若写入失败,则结束本方法;否则,
对于各个源设备,向zookeeper集群写入该源设备对应的设备锁,获取该设备锁,读取该源设备在zookeeper集群中的所有临时节点,对各临时节点中的当前并发数量求和后,加上该源设备对应的组内路径数据包的数量,得到总并发数量,判断总并发数量是否小于或等于最大并发数量;
若是,则向zookeeper集群写入以源设备、虚网名为路径,以该源设备对应的组内路径数据包的数量为保存数据的临时节点;该源设备向对应组内路径数据包中各个目的设备发送ICMP请求报文,并释放该设备锁;
若否,则释放该设备锁,将该源设备对应的组内路径数据包存放到对应的队列分区中,等待设定时间后重新写入设备锁,并计算,直到满足总并发数量小于或等于最大并发数量,或者直到超过设定的重新计算次数,若超过设定的重新计算次数,结束检测方法。
5.根据权利要求4所述的虚网连通性检测方法,其特征在于,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,包括:
若目的设备在规定的时间内向源设备返回应答,则返回结果正常,否则异常,进而得到该起始和终止CPE之间连通性检测结果。
6.根据权利要求4所述的虚网连通性检测方法,其特征在于,在得到虚网的连通性检测结果后,释放zookeeper集群中该虚网的虚网锁。
7.一种虚网连通性检测装置,其特征在于,包括:
设备获取模块,用于获取虚网中的所有网络设备,将任意一个CPE设备作为起始CPE,另一个CPE设备作为终止CPE,得到若干个起始CPE和终止CPE组合;
数据包获取模块,用于获取每个起始CPE和终止CPE之间的所有路径的数据包,所述路径的数据包包括:虚网名称,源设备名称和目的设备名称;
检测模块,用于按照所述数据包中的源设备名称对路径数据包进行分组,得到各个源设备对应的路径数据包;采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,根据检测报文返回结果得到该起始CPE和终止CPE之间的连通性检测结果,从而得到虚网的连通性检测结果。
8.根据权利要求7所述的虚网连通性检测装置,其特征在于,
获取每个起始CPE和终止CPE之间的所有路径的数据包,包括:
以起始CPE为根节点,搜索所有与此起始CPE直连的第一终止节点VPE设备,得到第一起始路径CPE-VPE数据包;
以终止CPE为根节点,搜索所有与此终止CPE直连的第二终止节点VPE设备,得到第一终止路径;将第一终止路径反转为第一反转终止路径,得到第一反转终止路径VPE-CPE数据包;
若没有PE设备,则将第一终止节点VPE设备与第二终止节点VPE设备之间建立连接,得到对应的VPE-VPE路径数据包;
若存在PE设备,则搜索所有与第一终止节点VPE设备直连的第三终止节点PE设备,得到第二起始路径VPE-PE数据包;搜索所有与第二终止节点VPE设备直连的第四终止节点PE设备,得到第二终止路径VPE-PE,将第二终止路径反转为第二反转终止路径PE-VPE,得到第二反转终止路径PE-VPE数据包,第三终止节点PE设备与第四终止节点PE设备之间建立链路连接,得到对应的PE-PE路径数据包。
9.根据权利要求7所述的虚网连通性检测装置,其特征在于,所述采用双重锁法控制各个源设备向其对应的路径数据包中的目的设备发送连通性检测报文,包括:
获取虚网中所有网络设备对应的最大并发数量,并为每个网络设备设置一个单独的队列分区;
向zookeeper集群中写入以所述虚网的虚网名为锁名称的虚网锁,获取该虚网锁,若写入失败,则结束本方法;否则,
对于各个源设备,向zookeeper集群写入该源设备对应的设备锁,获取该设备锁,读取该源设备在zookeeper集群中的所有临时节点,对各临时节点中的当前并发数量求和后,加上该源设备对应的组内路径数据包的数量,得到总并发数量,判断总并发数量是否小于或等于最大并发数量;
若是,则向zookeeper集群写入以源设备、虚网名为路径,以该源设备对应的组内路径数据包的数量为保存数据的临时节点;该源设备向对应组内路径数据包中各个目的设备发送ICMP请求报文,并释放该设备锁;
若否,则释放该设备锁,将该源设备对应的组内路径数据包存放到对应的队列分区中,等待设定时间后重新写入设备锁,并计算,直到满足总并发数量小于或等于最大并发数量,或者直到超过设定的重新计算次数,若超过设定的重新计算次数,结束检测方法。
10.一种虚网连通性检测设备,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求 1~6中任意一项所述虚网连通性检测方法。
11.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求 1~6中任意一项所述虚网连通性检测方法。
CN202111650606.6A 2021-12-31 2021-12-31 一种虚网连通性检测方法、装置、设备和存储介质 Active CN114301806B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111650606.6A CN114301806B (zh) 2021-12-31 2021-12-31 一种虚网连通性检测方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111650606.6A CN114301806B (zh) 2021-12-31 2021-12-31 一种虚网连通性检测方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN114301806A true CN114301806A (zh) 2022-04-08
CN114301806B CN114301806B (zh) 2023-05-30

Family

ID=80973722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111650606.6A Active CN114301806B (zh) 2021-12-31 2021-12-31 一种虚网连通性检测方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN114301806B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174439A (zh) * 2022-07-08 2022-10-11 中国电信股份有限公司 多协议标签交换通道的验证方法、装置和存储介质
CN118368221A (zh) * 2024-06-19 2024-07-19 北京信研汇智信息技术有限公司 一种分布式连通性检测方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226630A1 (en) * 2006-03-23 2007-09-27 Alcatel Method and system for virtual private network connectivity verification
CN102271064A (zh) * 2011-07-26 2011-12-07 福建星网锐捷网络有限公司 一种伪线连通性故障检测方法、装置及系统
WO2015070614A1 (zh) * 2013-11-13 2015-05-21 中兴通讯股份有限公司 检测l2vpn网络用户侧接口连通性的方法及设备
CN105306284A (zh) * 2014-05-27 2016-02-03 中兴通讯股份有限公司 检测虚拟专用网络的用户网络侧接口连通性的方法及装置
CN110224886A (zh) * 2019-05-31 2019-09-10 新华三技术有限公司 隧道连通性检测方法、装置及网络边缘设备
CN113720598A (zh) * 2021-11-02 2021-11-30 中国矿业大学(北京) 一种锚索张拉检测系统及其检测方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226630A1 (en) * 2006-03-23 2007-09-27 Alcatel Method and system for virtual private network connectivity verification
CN102271064A (zh) * 2011-07-26 2011-12-07 福建星网锐捷网络有限公司 一种伪线连通性故障检测方法、装置及系统
WO2015070614A1 (zh) * 2013-11-13 2015-05-21 中兴通讯股份有限公司 检测l2vpn网络用户侧接口连通性的方法及设备
CN105306284A (zh) * 2014-05-27 2016-02-03 中兴通讯股份有限公司 检测虚拟专用网络的用户网络侧接口连通性的方法及装置
CN110224886A (zh) * 2019-05-31 2019-09-10 新华三技术有限公司 隧道连通性检测方法、装置及网络边缘设备
CN113720598A (zh) * 2021-11-02 2021-11-30 中国矿业大学(北京) 一种锚索张拉检测系统及其检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张波;周诚;李伟伟;李千目;: "网络攻击节点路径高效检测模型仿真研究", 计算机仿真 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174439A (zh) * 2022-07-08 2022-10-11 中国电信股份有限公司 多协议标签交换通道的验证方法、装置和存储介质
CN115174439B (zh) * 2022-07-08 2024-03-29 中国电信股份有限公司 多协议标签交换通道的验证方法、装置和存储介质
CN118368221A (zh) * 2024-06-19 2024-07-19 北京信研汇智信息技术有限公司 一种分布式连通性检测方法
CN118368221B (zh) * 2024-06-19 2024-08-16 北京信研汇智信息技术有限公司 一种分布式连通性检测方法

Also Published As

Publication number Publication date
CN114301806B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
CN114301806B (zh) 一种虚网连通性检测方法、装置、设备和存储介质
CN109905251B (zh) 网络管理方法、装置、电子设备和存储介质
US9014201B2 (en) System and method for providing deadlock free routing between switches in a fat-tree topology
CN100459534C (zh) 分层网络节点及通过该节点构成的网络、节点和分层网络
CN107547243B (zh) 一种报文转发方法及装置
CN105721315B (zh) 一种集中式mac地址学习的控制方法
US7869349B2 (en) Method and system for deducing network routes by querying routers
Li et al. AoI scheduling with maximum thresholds
US20090185571A1 (en) Translating mst instances between ports of a bridge in a computer network
CN103346967B (zh) 一种数据中心网络拓扑结构及其路由方法
JP2008533564A (ja) データ管理のための方法および装置
JPH07177143A (ja) リンクメトリック割当方法
US8615015B1 (en) Apparatus, systems and methods for aggregate routes within a communications network
CN103812780B (zh) 网络路由模式转换方法、中央控制器及数据中心网络系统
CN112491984B (zh) 基于虚拟网桥的容器编排引擎集群管理系统
CN105391635A (zh) 一种基于sdn的网络虚拟化方法
CN113923092A (zh) 一种指定转发者的处理方法和控制器以及提供者边缘设备
US11050655B2 (en) Route information distribution through cloud controller
CN110932906A (zh) 基于snmp技术的数据中心网络拓朴结构发现方法及其拓朴结构发现系统
Schiff et al. Reclaiming the brain: Useful openflow functions in the data plane
WO2017080440A1 (zh) 一种路由表更新方法、evpn控制设备及evpn系统
Qing et al. Hybrid virtual network embedding with K-core decomposition and time-oriented priority
US8619772B2 (en) Tracing support in a router
CN107040466B (zh) 基于物联网分层架构的多域协同数据传输的路径选择方法
Shi et al. Re-designing compact-structure based forwarding for programmable networks

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