CN112187584A - 路径故障探测方法、系统、服务器及存储介质 - Google Patents
路径故障探测方法、系统、服务器及存储介质 Download PDFInfo
- Publication number
- CN112187584A CN112187584A CN202011060627.8A CN202011060627A CN112187584A CN 112187584 A CN112187584 A CN 112187584A CN 202011060627 A CN202011060627 A CN 202011060627A CN 112187584 A CN112187584 A CN 112187584A
- Authority
- CN
- China
- Prior art keywords
- packet
- server
- tunnel
- detection
- virtual host
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 476
- 238000003860 storage Methods 0.000 title claims abstract description 19
- 238000000034 method Methods 0.000 claims abstract description 94
- 238000005538 encapsulation Methods 0.000 claims abstract description 62
- 239000000523 sample Substances 0.000 claims description 166
- 230000004044 response Effects 0.000 claims description 140
- 230000005540 biological transmission Effects 0.000 claims description 64
- 230000015654 memory Effects 0.000 claims description 8
- 230000005641 tunneling Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 abstract description 43
- 238000004891 communication Methods 0.000 abstract description 5
- 230000002159 abnormal effect Effects 0.000 description 40
- 238000004590 computer program Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 10
- 230000005856 abnormality Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- 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]
-
- 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/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0485—Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种路径故障探测方法、系统、服务器及存储介质,属于通信技术领域。该方法包括:第一服务器获取第一虚拟主机的探测包;对探测包进行隧道封装,向第二虚拟主机所在的第二服务器发送隧道探测包,第二服务器用于对隧道探测包进行解封装得到探测包;第二服务器还用于,若探测包中的TTL值不大于第一数值,向第一虚拟主机发送第一差错包;若探测包中的TTL值大于第一数值,将探测包中的TTL值减去第二数值,向第二虚拟主机发送减去第二数值后的探测包。由于仅需虚拟主机所在的服务器对TTL值进行处理,无需将探测包中的TTL值复制到隧道探测包中,服务器之间的节点也无需对TTL值进行处理,提高路径故障探测的效率。
Description
技术领域
本申请实施例涉及通信技术领域,特别涉及一种路径故障探测方法、系统、服务器及存储介质。
背景技术
VPC(Virtual Private Cloud,虚拟私有云)是公有云上的私有网络,是基于隧道协议实现多租户隔离的云网络。在VPC场景下,服务器中包括虚拟主机,不同虚拟主机之间通过多个节点进行通信。
为了探测虚拟主机之间的传输路径中的异常节点,将虚拟主机发送的探测包中的TTL(Time To Live,生存时间)值复制到隧道探测包中,在发送隧道探测包的过程中,各个节点接收到隧道探测包时,将隧道探测包中的TTL值减1,如果某一节点将TTL值减1后得到的新TTL值等于0,则需要向虚拟主机返回差错包,若虚拟主机没有接收到该节点返回的差错包,说明该节点存在异常。
但是上述方法中,需要将探测包中的TTL值复制到隧道探测包中,每个接收到隧道探测包的节点均需要对隧道探测包中的TTL值进行处理,增加了路径故障探测的复杂度,导致路径故障探测的效率低下。
发明内容
本申请实施例提供了一种路径故障探测方法、系统、服务器及存储介质,能够提高路径故障探测的效率,所述技术方案如下:
一方面,提供了一种路径故障探测方法,所述方法包括:
第一服务器获取所述第一服务器中的第一虚拟主机的探测包,所述探测包中包括生存时间TTL值,所述探测包的源地址指示所述第一虚拟主机;
所述第一服务器对所述探测包进行隧道封装,得到隧道探测包,向第二虚拟主机所在的第二服务器发送所述隧道探测包,所述探测包的目的地址指示所述第二虚拟主机,
其中,所述第二服务器用于对所述隧道探测包进行解封装,得到所述探测包,
所述第二服务器还用于,若所述探测包中的TTL值不大于第一数值,向所述第一虚拟主机发送第一差错包;或者,若所述探测包中的TTL值大于所述第一数值,将所述探测包中的TTL值减去第二数值,向所述第二虚拟主机发送减去所述第二数值之后的探测包,所述第一数值和所述第二数值为正整数。
可选地,所述方法还包括:
若所述探测包中的TTL值不大于所述第一数值,所述第一服务器向所述第一虚拟主机发送所述第一差错包。
可选地,所述方法还包括:
若所述第一服务器未查询到所述探测包对应的传输路径,向所述第一虚拟主机发送第二差错包。
可选地,所述第一服务器对所述探测包进行隧道封装,得到隧道探测包,向第二虚拟主机所在的第二服务器发送所述隧道探测包之后,所述方法还包括:
所述第一服务器接收第三隧道差错包,所述第三隧道差错包由所述第二服务器对第三差错包进行隧道封装后得到,所述第三差错包由所述第二虚拟主机在无法响应所述探测包的情况下发送给所述第二服务器;
所述第一服务器对所述第三隧道差错包进行解封装,得到所述第三差错包;
所述第一服务器向所述第一虚拟主机发送所述第三差错包。
另一方面,提供了一种路径故障探测方法,所述方法包括:
第二服务器接收第一服务器发送的隧道探测包,所述隧道探测包由所述第一服务器对探测包进行隧道封装后得到;
所述第二服务器对所述隧道探测包进行解封装,得到所述探测包,所述探测包中包括生存时间TTL值;
若所述探测包中的TTL值不大于第一数值,所述第二服务器向所述第一服务器中的第一虚拟主机发送第一差错包,所述探测包的源地址指示所述第一虚拟主机;或者,
若所述探测包中的TTL值大于所述第一数值,所述第二服务器将所述探测包中的TTL值减去第二数值,向所述第二服务器中的第二虚拟主机发送减去所述第二数值之后的探测包,所述探测包的目的地址指示所述第二虚拟主机,所述第一数值和所述第二数值为正整数。
可选地,所述第二服务器向所述第二虚拟主机发送所述探测包之后,所述方法还包括:
所述第二服务器获取第三差错包,所述第三差错包由所述第二虚拟主机在无法响应所述探测包的情况下发送给所述第二服务器;
所述第二服务器对所述第三差错包进行隧道封装,得到第三隧道差错包;
所述第二服务器向所述第一服务器发送所述第三隧道差错包,
其中,所述第一服务器用于对所述第三隧道差错包进行解封装,得到所述第三差错包,向所述第一虚拟主机发送所述第三差错包。
可选地,所述方法还包括:
若所述第二服务器未查询到所述探测包对应的传输路径,所述第二服务器对第二差错包进行隧道封装,得到第二隧道差错包;
所述第二服务器向所述第一服务器发送所述第二隧道差错包,
其中,所述第一服务器用于对所述第二隧道差错包进行解封装,得到所述第二差错包,向所述第一虚拟主机发送所述第二差错包。
可选地,所述第一差错包中携带所述源地址和所述目的地址。
另一方面,提供了一种网络系统,所述网络系统包括第一服务器和第二服务器,
所述第一服务器中包括第一虚拟主机,所述第二服务器中包括第二虚拟主机;
所述第一服务器,用于获取所述第一服务器中的第一虚拟主机的探测包,所述探测包中包括生存时间TTL值,所述探测包的源地址指示所述第一虚拟主机;
所述第一服务器,还用于对所述探测包进行隧道封装,得到隧道探测包,向所述第二虚拟主机所在的第二服务器发送所述隧道探测包,所述探测包的目的地址指示所述第二虚拟主机;
所述第二服务器,用于接收所述隧道探测包,对所述隧道探测包进行解封装,得到所述探测包;
所述第二服务器,还用于若所述探测包中的TTL值不大于第一数值,向所述第一虚拟主机发送第一差错包;或者,若所述探测包中的TTL值大于所述第一数值,将所述探测包中的TTL值减去第二数值,向所述第二虚拟主机发送减去所述第二数值之后的探测包,所述第一数值和所述第二数值为正整数。
可选地,所述第一服务器用于:
若所述探测包中的TTL值大于所述第一数值,将所述探测包中的所述TTL值减去所述第二数值;
对减去所述第二数值之后的探测包进行隧道封装,得到所述隧道探测包。
可选地,所述第一服务器还用于若所述探测包中的TTL值不大于所述第一数值,向所述第一虚拟主机发送第一差错包。
可选地,所述第一服务器还用于若未查询到所述探测包对应的传输路径,向所述第一虚拟主机发送第二差错包。
可选地,所述第二服务器,还用于对获取的响应包进行隧道封装,得到隧道响应包,向所述第一服务器发送所述隧道响应包,所述响应包由所述第二虚拟主机接收所述探测包后发送给所述第二服务器;
所述第一服务器,还用于对所述隧道响应包进行解封装,得到所述响应包,向所述第一虚拟主机发送所述响应包。
可选地,所述第二服务器,用于对所述第一差错包进行隧道封装,得到第一隧道差错包,向所述第一服务器发送所述第一隧道差错包;
所述第一服务器,还用于对所述第一隧道差错包进行解封装,得到所述第一差错包,向所述第一虚拟主机发送所述第一差错包。
可选地,所述第二服务器,还用于若未查询到所述探测包对应的传输路径,对第二差错包进行隧道封装,得到第二隧道差错包,向所述第一服务器发送所述第二隧道差错包;
所述第一服务器,还用于对所述第二隧道差错包进行解封装,得到所述第二差错包,向所述第一虚拟主机发送所述第二差错包。
可选地,所述第二服务器,还用于对获取的第三差错包进行隧道封装,得到第三隧道差错包,向所述第一服务器发送所述第三隧道差错包,所述第三差错包由所述第二虚拟主机在无法响应所述探测包的情况下发送给所述第二服务器;
所述第一服务器,还用于对所述第三隧道差错包进行解封装,得到所述第三差错包,向所述第一虚拟主机发送所述第三差错包。
可选地,所述第二虚拟主机为虚拟负载均衡主机;所述第二虚拟主机,用于接收所述探测包,将所述探测包中的目的地址转换为目标虚拟业务主机的地址,将转换后的探测包发送给所述第二服务器;
所述第二服务器,还用于对转换后的探测包进行隧道封装,得到更新后的隧道探测包,向所述目标虚拟业务主机所在的目标业务服务器发送所述更新后的隧道探测包。
可选地,所述第二服务器,还用于对所述目标业务服务器发送的第一隧道差错包进行解封装,得到第一差错包,将所述第一差错包中的所述目标虚拟业务主机的地址转换为所述目的地址;
所述第二服务器,还用于对转换后的第一差错包进行隧道封装,得到更新后的第一隧道差错包,向所述第一服务器发送所述更新后的第一隧道差错包。
可选地,所述第二服务器,还用于对所述目标业务服务器发送的隧道响应包进行解封装,得到响应包,将所述响应包中的所述目标虚拟业务主机的地址转换为所述目的地址;
所述第二服务器,还用于对转换后的响应包进行隧道封装,得到更新后的隧道响应包,向所述第一服务器发送所述更新后的隧道响应包。
可选地,所述第一差错包中携带所述源地址和所述目的地址。
另一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行以实现如上述方面所述的路径故障探测方法中所执行的操作。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行以实现如上述方面所述的路径故障探测方法中所执行的操作。
另一方面,提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机程序代码,所述计算机程序代码存储在计算机可读存储介质中,服务器的处理器从计算机可读存储介质读取所述计算机程序代码,处理器执行所述计算机程序代码,使得所述服务器实现如上述方面所述的路径故障探测方法中所执行的操作。
本申请实施例提供的方法、系统、服务器及存储介质,在传输探测包进行路径障碍探测的过程中,仅需虚拟主机所在的服务器对探测包中的TTL值进行处理,不考虑虚拟主机所在的服务器之间的物理节点,因此无需将探测包中的TTL值复制到隧道探测包中,服务器之间的物理节点也无需对隧道探测包的TTL值进行处理,因此能够降低路径故障探测的复杂度,从而快速定位传输路径中的异常节点,提高了路径故障探测的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络系统的架构图。
图2是本申请实施例提供的一种网络系统的架构图。
图3是本申请实施例提供的一种网络系统的架构图。
图4是本申请实施例提供的一种网络系统的架构图。
图5是本申请实施例提供的一种路径故障探测方法的流程图。
图6是本申请实施例提供的一种路径故障探测方法的流程图。
图7是相关技术提供的一种传输路径的示意图。
图8是本申请实施例提供的一种路径故障探测方法的流程图。
图9是本申请实施例提供的一种路径故障探测方法的流程图。
图10是本申请实施例提供的一种路径故障探测方法的流程图。
图11是本申请实施例提供的一种路径故障探测方法的流程图。
图12是本申请实施例提供的一种路径故障探测方法的流程图。
图13是本申请实施例提供的一种路径故障探测方法的流程图。
图14是本申请实施例提供的一种网络系统的结构示意图。
图15是本申请实施例提供的一种网络系统的结构示意图。
图16是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。举例来说,在不脱离本申请的范围的情况下,可以将第一服务器称为第二服务器,且类似地,可将第二服务器称为第一服务器。
云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术是基于云计算应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
私有云(Private Cloud)是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。创建私有云,除了硬件资源外,还有云设备(IaaS,Infrastructure as a Service,基础设施即服务)软件。私有云同样包含云硬件、云平台、云服务三个层次。不同的是,云硬件是用户自己的个人电脑或服务器,而非云计算厂商的数据中心。云计算厂商构建数据中心的目的是为千百万用户提供公共云服务,因此需要拥有几十上百万台服务器。
公有云(Public Cloud)通常指第三方提供商为用户提供的能够使用的云,公有云的核心属性是共享资源服务。这种云有许多实例,可在当今整个开放的公有网络中提供服务。
混合云(Hybrid Cloud)融合了公有云和私有云,是近年来云计算的主要模式和发展方向。私有云主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。
以下将基于云技术,对本申请实施例提供的路径故障探测方法进行说明。
在对本申请实施例进行说明之前,先对涉及到的概念进行如下解释说明:
1、TTL(Time To Live,生存时间)值:数据包被丢弃前允许通过的节点数量。
2、ICMP(Internet Control Message Protocol,互联网控制消息协议):TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/因特网互联协议)协议族的一个子协议,用于传递控制消息。
3、Traceroute(路由跟踪):用于定位从源主机到目的主机之间经过了哪些节点,以及到达各个节点的延时情况和丢包情况,该Traceroute可基于下述实施例所提供的路径故障检测方法来实现。
4、Overlay网络建立在Underlay网络之上,Overlay网络与Underlay网络是相对概念,在云网络中,Underlay网络是指隧道协议的外层网络,Overlay网络是指隧道协议的内层网络。
5、VPC(Virtual Private Cloud,虚拟私有云):公有云上的私有网络,是基于隧道协议实现的多租户隔离的云网络。
6、GRE(Generic Routing Encapsulation,通用路由封装):是对网络层协议的数据包进行封装,使封装后的数据包能够在另一个网络层协议中传输,能够扩展作为一种网络虚似化技术,改进在部署云计算系统时的扩展问题。
7、NVE(Network Virtualization Edge,网络虚拟边缘):负责将租户网络进行隧道封装发送到Underlay网络,NVE间基于Underlay网络建立Overlay网络。
8、vRouter(虚拟路由器):负责VPC网络中虚拟主机的路由查询和数据转发。
9、DCGW(Direct Connect Gateway,直通网关):混合云场景中负责连通公有云中的VPC和用户IDC(Internet Data Center,互联网数据中心)的网络直通的网关。
图1是本申请实施例提供的一种网络系统的架构图,参见图1,该网络系统包括:第一服务器101和第二服务器102,第一服务器101中包括虚拟主机11、虚拟主机12、虚拟主机13和虚拟主机14,第二服务器102中包括虚拟主机15、虚拟主机16、虚拟主机17和虚拟主机18。且第一服务器101和第二服务器102中均包括虚拟路由器。其中,虚拟主机11、虚拟主机12、虚拟主机17和虚拟主机18构成私有云110,虚拟主机13、虚拟主机14、虚拟主机15和虚拟主机16构成私有云120。虚拟主机之间构成的网络称为Overlay网络。第一服务器101与第二服务器102之间连接有多个网络设备,多个网络设备之间构成的网络称为Underlay网络。
虚拟路由器将Overlay网络中的数据包发送到Underlay网络,第一服务器101中的虚拟路由器与第二服务器102中的虚拟路由器通过该Underlay网络进行数据传输,从而实现第一服务器101中的虚拟主机与第二服务器102中的虚拟主机之间的数据传输。以虚拟主机11与虚拟主机17为例,采用本申请实施例提供的路径故障探测方法,能够探测虚拟主机11向虚拟主机17发送数据包的过程中存在异常的节点。
其中,该网络系统中的服务器均可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。服务器中的虚拟主机是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、大数据或者人工智能平台等基础云计算服务的云服务器。
图2是本申请实施例提供的另一种网络系统的架构图,参见图2,该网络系统包括:第一服务器201、第二服务器202和目标业务服务器203。第一服务器201中包括虚拟主机21、虚拟主机22、虚拟主机23和虚拟主机24。第二服务器102为云网关设备,该第二服务器102中包括虚拟负载均衡主机29,该虚拟负载均衡主机29与多个虚拟主机关联。目标业务服务器203中包括虚拟主机25、虚拟主机26、虚拟主机27和虚拟主机28。且第一服务器201、第二服务器202和目标业务服务器203中均包括虚拟路由器。其中,虚拟主机21、虚拟主机22、虚拟主机27和虚拟主机28之间构成私有云210,虚拟主机23、虚拟主机24、虚拟主机25、虚拟主机26和虚拟负载均衡主机29之间构成私有云220。虚拟主机之间构成的网络称为Overlay网络。而物理的网络设备与服务器之间构成的网络称为Underlay网络。
其中,以虚拟主机23为例,第一服务器201中的私有云220中的虚拟主机23将数据包发送给第二服务器202中的虚拟负载均衡主机29,该虚拟负载均衡主机29在关联的多个虚拟主机中,选取用于响应该数据包的虚拟主机,以选取的虚拟主机为虚拟主机25为例,则该虚拟负载均衡主机29将数据包发送给目标业务服务器203中的虚拟主机25。采用本申请实施例提供的路径故障探测方法,能够探测虚拟主机23向虚拟负载均衡主机29发送数据包的过程中,以及虚拟负载均衡主机29向虚拟主机25发送数据包的过程中存在异常的节点。
在一种可能实现方式中,如图3所示,第一服务器201、第二服务器202与目标业务服务器203中的虚拟路由器均与Underlay网络中的网络设备建立通信连接,虚拟路由器之间通过Underlay网络中的网络设备进行数据传输。
图4是本申请实施例提供的另一种网络系统的架构图,参见图4,该网络系统包括:第一服务器401和第二服务器402。第一服务器401中包括虚拟主机41、虚拟主机42、虚拟主机43和虚拟主机44。第二服务器402为云网关设备,该第二服务器402中包括虚拟负载均衡主机45,该虚拟负载均衡主机45与用户IDC(Internet Data Center,互联网数据中心)中的多个网络设备关联。用户IDC中包括网络设备46、网络设备47和网络设备48。第一服务器401和第二服务器402中均包括虚拟路由器。其中,虚拟主机41和虚拟主机42之间构成私有云410,虚拟主机43、虚拟主机44和虚拟负载均衡主机45之间构成私有云420。虚拟主机之间构成的网络称为Overlay网络。而物理的网络设备与服务器之间构成的网络称为Underlay网络。
其中,以虚拟主机43为例,第一服务器401中的私有云420中的虚拟主机43将数据包发送给第二服务器402中的虚拟负载均衡主机45,该虚拟负载均衡主机45在关联的多个网络设备中,选取用于响应该数据包的网络设备,以选取的网络设备为网络设备46为例,则该虚拟负载均衡主机45将数据包发送给用户IDC中的网络设备46。采用本申请实施例提供的路径故障探测方法,能够探测虚拟主机43向虚拟负载均衡主机45发送数据包的过程中存在异常的节点。
在上述图1至图4所示的网络系统的基础上,本申请实施例提供了一种路径故障探测方法,能够在虚拟主机之间发送数据包的过程中探测出存在异常的节点。图5是本申请实施例提供的一种路径故障探测方法的流程图。本申请实施例的交互主体为第一服务器和第二服务器,参见图5,该方法包括:
501、第一服务器获取探测包。
第一服务器中包括第一虚拟主机,第二服务器中包括第二虚拟主机,第一虚拟主机和第二虚拟主机之间通过多个节点进行数据传输,为了探测传输路径中是否存在异常节点以及异常节点的位置,第一虚拟主机向第一服务器发送探测包,第一服务器获取该探测包。该探测包的源地址指示第一服务器中的第一虚拟主机,探测包的目的地址指示第二服务器中的第二虚拟主机,该探测包用于探测第一虚拟主机和第二虚拟主机之间的传输路径中的异常节点。其中,该探测包中包括TTL值,TTL值表示探测包被丢弃前允许通过的节点数量。
为了探测传输路径中的节点是否为异常节点,在传输探测包的过程中,节点接收到探测包,若探测包中的TTL值不大于第一数值,说明已经达到被丢弃前该探测包允许通过的节点数量,则该节点返回第一差错包,若探测包中的TTL值大于第一数值,说明还没有达到被丢弃前该探测包允许通过的节点数量,则该节点将探测包中的TTL值减去第二数值,将减去第二数值的探测包发送给下一个节点,继续进行传输。
因此,若想探测传输路径中的某一节点是否为异常节点,则在确定该节点之前的节点不存在异常的情况下,第一虚拟主机根据到达该节点所需经过的节点的数量,设置探测包的TTL值,以使该节点对接收到的探测包中的TTL值不大于第一数值。例如,第一数值为1,第二数值为1,则探测包中的TTL值的初始值设置成第一虚拟主机与该节点之间传输路径中经过的节点数量,则探测包到达该节点时,该探测包中的TTL值等于1。
若该节点不存在异常,则该节点会返回第一差错包。因此,根据第一虚拟主机是否接收到该节点返回的第一差错包,即可确定该节点是否存在异常。若第一虚拟主机接收到了该节点返回的第一差错包,则说明该节点不存在异常;若第一虚拟主机没有接收到第一差错包,则说明该节点存在异常。
其中,每探测一个节点,第一虚拟主机均需发送一个探测包,第一虚拟主机可以按照距离传输路径中的节点由近到远的顺序,依次发送探测包,且发送的多个探测包中的TTL值按照所探测的节点由近到远的顺序依次递增,从而实现对虚拟主机之间的传输路径中的各个节点进行故障探测。本申请实施例仅以发送一次探测包的过程为例进行说明。
502、第一服务器对探测包进行隧道封装,得到隧道探测包。
由于该探测包为虚拟主机发送的探测包,是在虚拟网络(Overlay网络)中传输的数据包,无法直接在物理网络(Underlay网络)中传输。因此,为了将该探测包传输到第二虚拟主机所在的第二服务器,第一服务器对该探测包进行隧道封装,得到隧道探测包,该隧道探测包中包括该探测包,后续将该隧道探测包发送给第二服务器。
其中,为了降低路径故障探测的处理复杂度,本申请实施例中在封装隧道探测包时,无需将探测包中的TTL值复制到隧道探测包的包头中,因此,在Underlay网络中传输该隧道探测包时,Underlay网络中的物理节点也无需对隧道探测包的包头中的TTL值进行处理。
可选地,第一服务器根据GRE(Generic Routing Encapsulation,通用路由封装)隧道协议对探测包进行隧道封装。或者,第一服务器根据VxLAN(Virtual ExtensibleLocal Area Network,虚拟扩展局域网)隧道协议对探测包进行隧道封装。或者,第一服务器根据其他隧道协议对探测包进行隧道封装,本申请实施例对此不做限定。
可选地,第一服务器中包括虚拟路由器,虚拟路由器用于将虚拟主机发送的数据包进行路由查表和转发,该虚拟路由器属于连接Overlay网络与Underlay网络的NVE。则第一服务器中的虚拟路由器获取该探测包,对探测包进行隧道封装,得到隧道探测包。
503、第一服务器向第二服务器发送隧道探测包。
第一服务器通过Underlay网络将该隧道探测包发送给第二服务器。可选地,Underlay网络中包括多个物理的节点设备,第一服务器与第二服务器之间通过多个节点设备建立通信连接,则第一服务器将隧道探测包发送给Underlay网络中的节点设备,由节点设备对隧道探测包进行转发,从而将隧道探测包转发给第二服务器。
504、第二服务器接收第一服务器发送的隧道探测包,对隧道探测包进行解封装,得到探测包。
505、若探测包中的TTL值不大于第一数值,第二服务器向第一虚拟主机发送第一差错包。
第二服务器得到探测包,若探测包中的TTL值不大于第一数值,则说明该探测包通过的节点数量,已经达到被丢弃前允许通过的节点数量。则第二服务器无需再传输该探测包,而是将该探测包丢弃,并向第一虚拟主机发送第一差错包,该第一差错包用于表示探测包的TTL值不大于第一数值。其中,该第一数值为正整数。可选地,该第二数值由网络系统中的各个节点统一设置,例如该第一数值为1。
本申请实施例中,若要探测传输路径中的第二服务器是否存在异常,则在第二服务器之前的节点不存在异常的情况下,根据探测包到达该第二服务器所经过的节点数量,对探测包中的TTL值进行设置,以使该探测包到达第二服务器,该探测包中的TTL值不大于第一数值。
若第二服务器不存在异常,则该第二服务器会返回第一差错包,若第二服务器存在异常,则该第二服务器可能无法返回第一差错包。因此,在该步骤505中第一虚拟主机接收到第一差错包,则说明第二服务器不存在异常。而在另一实施例中,若第一虚拟主机没有接收到第一差错包,则说明第二服务器存在异常。
需要说明的是,上述步骤505中仅说明了探测包中的TTL值不大于第一数值的情况。而在另一实施例中,若探测包中的TTL值大于第一数值,则第二服务器将探测包中的TTL值减去第二数值,向第二虚拟主机发送减去第二数值之后的探测包。可选地,该第二数值由网络系统中的各个节点统一设置,例如该第二数值为1。第二虚拟主机接收到探测包,则向第一虚拟主机发送该探测包对应的响应包。该实施例中,要探测传输路径中的第二虚拟主机是否存在异常,因此在第二虚拟主机之前的节点不存在异常的情况下,根据探测包到达该第二虚拟主机所经过的节点数量,对探测包中的TTL值进行设置,以使该探测包到达第二服务器,该探测包中的TTL值大于第一数值,由第二服务器将减去第二数值之后的探测包发送给第二虚拟主机。若第二虚拟主机不存在异常,则第二虚拟主机会返回响应包。若第二虚拟主机存在异常,则第二虚拟主机可能无法返回响应包。因此,根据第一虚拟主机是否接收到第二虚拟主机返回的响应包,即可确定第二虚拟主机是否存在异常。若第一虚拟主机接收到了响应包,则说明第二虚拟主机不存在异常;若第一虚拟主机没有接收到响应包,则说明第二虚拟主机存在异常。
需要说明的是本申请实施例中说明了在探测包中的TTL值不大于第一数值的情况下,传输路径中的节点返回第一差错包,或者在探测包中的TTL值大于第一数值的情况下,将TTL值减去第二数值之后发送探测包。在另一实施例中,传输路径中的节点可以先将探测包中的TTL值减去第三数值,并且在减去第三数值的TTL值不大于第四数值的情况下,返回第一差错包,或者在减去第三数值的TTL值大于第四数值的情况下,发送减去第三数值之后的探测包,第三数值和第四数值为正整数。
本申请实施例提供的方法,在传输探测包进行路径障碍探测的过程中,仅需虚拟主机所在的服务器对探测包中的TTL值进行处理,不考虑服务器之间的物理节点,因此无需将探测包中的TTL值复制到隧道探测包中,服务器之间的物理节点也无需对隧道探测包的TTL值进行处理,因此能够降低路径故障探测的复杂度,从而快速定位传输路径中的异常节点,提高了路径故障探测的效率。
在上述图1所示的网络系统的基础上,本申请实施例还提供了下述图6的实施例中提供的路径故障探测方法。图6是本申请实施例提供的一种路径故障探测方法的流程图。本申请实施例的交互主体为第一服务器、第一虚拟主机、第二服务器,参见图6,该方法包括:
601、第一虚拟主机向第一服务器发送探测包。
第一服务器中包括第一虚拟主机,第二服务器中包括第二虚拟主机,第一虚拟主机和第二虚拟主机之间通过多个节点进行数据传输,为了探测传输路径中是否存在异常节点以及异常节点的位置,第一虚拟主机向第一服务器发送探测包。则该探测包的源地址指示第一服务器中的第一虚拟主机,探测包的目的地址指示第二服务器中的第二虚拟主机,其中,该探测包中包括TTL值,TTL值表示探测包被丢弃前允许通过的节点数量。
在一种可能实现方式中,探测包中的源地址和目的地址均为IP地址(InternetProtocol Address,互联网协议地址)。
602、第一服务器获取探测包,对探测包进行隧道封装,得到隧道探测包,向第二服务器发送隧道探测包。
由于该探测包为第一虚拟主机发送的探测包,是在Overlay网络中传输的数据包,无法直接Underlay网络中传输。因此,为了将该探测包传输到第二虚拟主机所在的第二服务器,第一服务器对该探测包进行隧道封装,得到隧道探测包,通过Underlay网络将该隧道探测包发送给第二服务器。
其中,为了降低路径故障探测的处理复杂度,本申请实施例中在封装隧道探测包时,无需将探测包中的TTL值复制到隧道探测包的包头中,因此,在Underlay网络中传输该隧道探测包时,Underlay网络中的物理节点也无需对隧道探测包的包头中的TTL值进行处理。
在一种可能实现方式中,若虚拟主机之间进行数据传输所经过的Underlay网络中,各个物理节点已默认开启对数据包中的TTL值进行处理的功能,则第一服务器在封装隧道探测包时,无需将探测包中的TTL值复制到隧道探测包的包头中,而是根据隧道探测包所经过的物理节点的数量,设置隧道探测包的TTL值,以使每个物理节点接收到隧道探测包,该隧道探测包中的TTL值均大于第一数值。
在另一种可能实现方式中,第一服务器查询该探测包对应的传输路径,确定第二虚拟主机所在的第二服务器的地址,根据第二服务器的地址,对探测包进行隧道封装,得到包括第二服务器的地址的隧道探测包。可选地,该隧道探测包中包括源地址和目的地址,隧道探测包中的源地址为第一服务器的地址,隧道探测包中的目的地址为第二服务器的地址。
在另一种可能实现方式中,第一服务器获取到探测包,若探测包中的TTL值大于第一数值,则说明还没有达到被丢弃前该探测包允许通过的节点数量,因此第一服务器将探测包中的TTL值减去第二数值,对减去第二数值之后的探测包进行隧道封装,得到隧道探测包。以便将探测包发送到下一个节点。
相应地,在另一实施例中,若探测包中的TTL值不大于第一数值,则说明已经达到被丢弃前该探测包允许通过的节点数量,则不再继续传输该探测包,由第一服务器直接向第一虚拟主机发送第一差错包,无需执行下述步骤603-605,该第一差错包用于表示探测包的TTL值不大于第一数值,可选地,该第一差错包为ICMP差错包。
可选地,探测包中携带源地址和目的地址,源地址为第一虚拟主机的地址,目的地址为第二虚拟主机的地址,则第一服务器生成的第一差错包中也携带源地址和目的地址,以便第一虚拟主机根据该源地址和目的地址,查询该第一差错包对应的探测包。
需要说明的是,在另一实施例中,若第一服务器未查询到探测包对应的传输路径,则无法继续传输该探测包,因此向第一虚拟主机发送第二差错包,无需执行下述步骤603-606,该第二差错包用于表示未查询到探测包对应的传输路径。
可选地,探测包中携带源地址和目的地址,源地址为第一虚拟主机的地址,目的地址为第二虚拟主机的地址,则第一服务器生成的第二差错包中也携带源地址和目的地址,以便第一虚拟主机根据该源地址和目的地址,查询该第二差错包对应的探测包。
603、第二服务器接收隧道探测包,对隧道探测包进行解封装,得到探测包。
第二服务器接收到隧道探测包,将隧道探测包的包头删除,获取隧道探测包的包体中的探测包,完成对隧道探测包的解封装。
604、若探测包中的TTL值不大于第一数值,第二服务器对第一差错包进行隧道封装,得到第一隧道差错包,向第一服务器发送第一隧道差错包。
第二服务器获取到探测包,若探测包中的TTL值不大于第一数值,说明探测包通过的节点数量,已经达到被丢弃前允许通过的节点数量,则不再继续传输该探测包,第二服务器根据探测包,生成该探测包对应的第一差错包,向第一虚拟主机发送该第一差错包。其中,将第一差错包发送给第一虚拟主机的过程中,需要经过Underlay网络先发送给第一虚拟主机所在的第一服务器。因此第二服务器对第一差错包进行隧道封装,得到第一隧道差错包,向第一服务器发送第一隧道差错包。
在一种可能实现方式中,探测包中携带源地址和目的地址,源地址为第一虚拟主机的地址,目的地址为第二虚拟主机的地址。则第二服务器生成的第一差错包中携带该源地址和该目的地址。可选地,第一差错包中包括包头和包体,第一差错包的包头中包括源地址和目的地址,第一差错包的源地址指示第二服务器,第一差错包的目的地址指示第一虚拟主机。第一差错包的包体中包括探测包携带的源地址和目的地址,第一差错包的包体中还包括第一差错消息,该第一差错消息用于表示探测包的TTL值达到第二数值。例如,第二数值为0,则该第一差错消息为“传输期间TTL值为0”。
在另一种可能实现方式中,第一服务器生成第一差错包,查询该第一差错包对应的传输路径,确定第一虚拟主机所在的第一服务器的地址,根据第一服务器的地址,对第一差错包进行隧道封装,得到包括第一服务器的地址的第一隧道差错包。可选地,该第一隧道差错包中包括源地址和目的地址,第一隧道差错包中的源地址为第二服务器的地址,第一隧道差错包中的目的地址为第二服务器的地址。
在另一种可能实现方式中,传输路径中的节点接收到第一差错包,也会对第一差错包中的TTL值进行处理,为了将第一差错包发送至第一虚拟主机,则第二服务器根据将第一差错包发送至第一虚拟主机所经过的节点数量,设置第一差错包中的TTL值,以使该第一差错包所经过的各个节点接收到第一差错包时,该第一差错包中的TTL值均大于第一数值。
605、第一服务器接收第一隧道差错包,对第一隧道差错包进行解封装,得到第一差错包,向第一虚拟主机发送第一差错包。
第一服务器接收到第一隧道差错包,将第一隧道差错包的包头删除,获取第一隧道差错包的包体中的第一差错包,完成对第一隧道差错包的解封装,向第一虚拟主机发送该第一差错包。
在一种可能实现方式中,第一差错包的包头中包括目的地址,该目的地址即为第一虚拟主机的地址,因此第一服务器根据第一虚拟主机的地址,向该第一虚拟主机发送该第一差错包。
606、第一虚拟主机接收第一差错包。
本申请实施例中,要探测传输路径中的第二服务器是否存在异常,则在第二服务器之前的节点不存在异常的情况下,根据探测包到达该第二服务器所经过的节点数量,对探测包中的TTL值进行设置,以使该探测包到达第二服务器,该探测包中的TTL值不大于第一数值。若第二服务器不存在异常,则该第二服务器返回第一差错包,若第二服务器存在异常,则该第二服务器可能无法返回第一差错包。因此,在该步骤606中第一虚拟主机接收到第一差错包,则说明第二服务器不存在异常。而在另一实施例中,若第一虚拟主机没有接收到第一差错包,则说明第二服务器存在异常。
需要说明的是,本申请实施例中,第二服务器获取到探测包,查询该探测包对应的传输路径,确定传输路径之后,执行发送第一差错包的步骤。而在另一实施例中,若第二服务器未查询到探测包对应的传输路径,则生成第二差错包,对第二差错包进行隧道封装,得到第二隧道差错包,向第一服务器发送该第二隧道差错包。第一服务器接收第二隧道差错包,对第二隧道差错包进行解封装,得到第二差错包,向第一虚拟主机发送该第二差错包。
在一种可能实现方式中,探测包中携带源地址和目的地址,源地址为第一虚拟主机的地址,目的地址为第二虚拟主机的地址。则第二服务器生成的第二差错包中携带该源地址和该目的地址。可选地,第二差错包中还包括第二差错消息,该第二差错消息用于表示未查询到探测包对应的传输路径。例如,第二差错消息为“主机不可达”。
相关技术中,如图7所示,第一虚拟主机701向第二虚拟主机704发送数据包,需要经过NVE节点702、NVE节点703以及NVE节点702和NVE节点703之间的多个物理节点。为了诊断第一虚拟主机701与第二虚拟主机705之间的传输路径中的异常节点,NVE节点702需要将探测包的包头中的TTL值复制到隧道探测包的包头中,后续NVE节点703再将隧道探测包的包头中的TTL值复制回探测包的包头中,且Underlay网络中的每个物理节点接收到隧道探测包,均需对隧道探测包的包头中的TTL值进行处理,以判断是否需要丢弃隧道探测包返回第一差错包。上述过程增加了路径故障探测的复杂度,导致路径故障探测的效率低下。
本申请实施例提供的方法,在传输探测包进行路径障碍探测的过程中,仅需虚拟主机所在的服务器对探测包中的TTL值进行处理,不考虑服务器之间的物理节点,因此无需将探测包中的TTL值复制到隧道探测包中,服务器之间的物理节点也无需对隧道探测包的TTL值进行处理,因此能够降低路径故障探测的复杂度,从而快速定位传输路径中的异常节点,提高了路径故障探测的效率。
并且,相关技术中,在私有云的场景下,不同租户的虚拟主机进行数据传输,均需要经过Underlay网络中的物理节点,因此只要有一个租户需要开启路径故障探测功能,则Underlay网络中的物理节点也都要开启路径故障探测功能。而对于无需实现路径故障探测功能的租户来说,传输的数据包经过Underlay网络中的物理节点时,仍要执行路径故障探测对应的操作,导致数据传输的效率低下,而且还浪费处理资源。
而本申请实施例提供的方法,由于无需考虑服务器之间的物理节点,因此某一租户需要开启路径故障探测功能时,仅需开启该租户所对应的Overlay网络中的节点的路径故障探测功能即可,实现了以租户为粒度的按需开启与关闭。
在上述图1所示的网络系统的基础上,本申请实施例还提供了下述图8的实施例中提供的路径故障探测方法。图8是本申请实施例提供的一种路径故障探测方法的流程图。本申请实施例的交互主体为第一服务器、第一虚拟主机、第二服务器和第二虚拟主机,参见图8,该方法包括:
801、第一虚拟主机向第一服务器发送探测包。
802、第一服务器获取探测包,对探测包进行隧道封装,得到隧道探测包,向第二服务器发送隧道探测包。
803、第二服务器接收隧道探测包,对隧道探测包进行解封装,得到探测包。
步骤801-803与上述步骤601-603类似,在此不再一一赘述。
804、若探测包中的TTL值大于第一数值,第二服务器将探测包中的TTL值减去第二数值,向第二虚拟主机发送减去第二数值之后的探测包。
第二服务器获取到探测包,若探测包中的TTL值大于第一数值,说明探测包通过的节点数量,还没有达到被丢弃前允许通过的节点数量,需要继续传输该探测包。因此第二服务器将探测包中的TTL值减去第二数值,向第二虚拟主机发送减去第二数值之后的探测包。
805、第二虚拟主机接收探测包,向第二服务器发送响应包。
第二虚拟主机接收到探测包,生成该探测包对应的响应包,向第一虚拟主机发送该响应包。其中,第二虚拟主机向第一虚拟主机发送响应包的过程中要经过第二服务器,因此第二虚拟主机将该响应包发送给第二服务器,由第二服务器向第一虚拟主机发送响应包。
在一种可能实现方式中,响应包中携带源地址和目的地址,响应包中的源地址为第二虚拟主机的地址,响应包中的目的地址为第一虚拟主机的地址。
在另一种可能实现方式中,传输路径中的节点接收到响应包,也会对响应包中的TTL值进行处理,为了将响应包发送至第一虚拟主机,则第二虚拟主机根据将响应包发送至第一虚拟主机所经过的节点数量,设置响应包中的TTL值,以使该响应包所经过的各个节点接收到响应包时,该响应包中的TTL值均大于第一数值。
806、第二服务器获取响应包,对响应包进行隧道封装,得到隧道响应包,向第一服务器发送隧道响应包。
由于该响应包为第二虚拟主机发送的响应包,是在Overlay网络中传输的数据包,无法直接Underlay网络中传输。因此,为了将该响应包传输到第一虚拟主机所在的第一服务器,第二服务器对该响应包进行隧道封装,得到隧道响应包,通过Underlay网络将该隧道响应包发送给第一服务器。
807、第一服务器接收隧道响应包,对隧道响应包进行解封装,得到响应包,向第一虚拟主机发送响应包。
第一服务器接收到隧道响应包,将隧道响应包的包头删除,获取隧道响应包的包体中的响应包,完成对隧道响应包的解封装,向第一虚拟主机发送该响应包。
在一种可能实现方式中,响应包的包头中包括目的地址,该目的地址即为第一虚拟主机的地址,因此第一服务器根据第一虚拟主机的地址,向该第一虚拟主机发送该响应包。
808、第一虚拟主机接收响应包。
本申请实施例中,要探测传输路径中的第二虚拟主机是否存在异常,则在第二虚拟主机之前的节点不存在异常的情况下,根据探测包到达该第二虚拟主机所经过的节点数量,对探测包中的TTL值进行设置,以使该探测包到达第二虚拟主机所在的第二服务器,该探测包中的TTL值大于第一数值,从而将探测包中的TTL值减去第二数值,将减去第二数值之后的探测包发送给第二虚拟主机。若第二虚拟主机不存在异常,则该第二虚拟主机返回响应包。若第二虚拟主机存在异常,则该第二服务器可能无法返回响应包。因此,在该步骤808中第一虚拟主机接收到响应包,则说明第二虚拟主机不存在异常。而在另一实施例中,若第一虚拟主机没有接收到响应包,则说明第二虚拟主机存在异常。
需要说明的是,在另一实施例中,若第二虚拟主机接收到探测包,无法响应该探测包,则向第二服务器发送第三差错包,该第三差错包用于表示无法响应探测包。第二服务器获取第三差错包,对第三差错包进行隧道封装,得到第三隧道差错包,向第一服务器发送第三隧道差错包。第一服务器接收第三隧道差错包,对第三隧道差错包进行解封装,得到第三差错包,向第一虚拟主机发送第三差错包。其中,发送该第三差错包的过程与上述发送响应包的过程类似,在此不再一一赘述。
例如,第一虚拟主机发送的探测包为TCP(Transmission Control Protocol,传输控制协议)数据包或者UDP(User Datagram Protocol,用户数据报协议)数据包,而第二虚拟主机中对应的端口未开启,则第二虚拟主机返回第三差错包。
在一种可能实现方式中,探测包携带源地址和目的地址,源地址为第一虚拟主机的地址,目的地址为第二虚拟主机的地址,则该第三差错包中携带该源地址和该目的地址。
本申请实施例提供的方法,在传输探测包进行路径障碍探测的过程中,仅需虚拟主机所在的服务器对探测包中的TTL值进行处理,不考虑服务器之间的物理节点,因此无需将探测包中的TTL值复制到隧道探测包中,服务器之间的物理节点也无需对隧道探测包的TTL值进行处理,因此能够降低路径故障探测的复杂度,从而快速定位传输路径中的异常节点,提高了路径故障探测的效率。
并且,由于无需考虑服务器之间的物理节点,因此某一租户需要开启路径故障探测功能时,仅需开启该租户所对应的Overlay网络中的节点的路径故障探测功能即可,实现了以租户为粒度的按需开启与关闭。
在上述图2或者图3所示的网络系统的基础上,本申请实施例还提供了下述图9的实施例中提供的路径故障探测方法。图9是本申请实施例提供的一种路径故障探测方法的流程图。本申请实施例的交互主体为第一服务器、第一虚拟主机、第二服务器、第二虚拟主机和目标业务服务器。参见图9,该方法包括:
901、第一虚拟主机向第一服务器发送探测包。
902、第一服务器获取探测包,对探测包进行隧道封装,得到隧道探测包,向第二服务器发送隧道探测包。
903、第二服务器接收隧道探测包,对隧道探测包进行解封装,得到探测包。
904、若探测包中的TTL值大于第一数值,第二服务器将探测包中的TTL值减去第二数值,向第二虚拟主机发送减去第二数值之后的探测包。
步骤901-904与上述步骤801-804类似,在此不再一一赘述。
905、第二虚拟主机接收探测包,将探测包中的目的地址转换为目标虚拟业务主机的地址,将转换后的探测包发送给第二服务器。
本申请实施例中的路径故障检测方法应用于云负载均衡(CLB,Cloud LoadBalance)的场景下,第二服务器为云网关服务器,或者称为云负载均衡服务器,第二虚拟主机为虚拟负载均衡主机,该虚拟负载均衡主机与多个虚拟业务主机关联,用于将负载分配到关联的多个虚拟业务主机上执行,虚拟业务主机用于响应接收到的数据包,从而为对应的业务提供服务。
因此第二虚拟主机接收到探测包后,在关联的多个虚拟业务主机中,选取目标虚拟业务主机,将该探测包中的目的地址转换为选取的目标虚拟业务主机的地址。为了将转换后的探测包发送至目标虚拟业务主机中,第二虚拟主机将该转换后的探测包发送给第二服务器,由第二服务器将转换后的探测包转发至目标虚拟业务主机中。
在一种可能实现方式中,第二虚拟主机根据负载均衡的匹配规则,在多个关联的虚拟业务主机中选取目标虚拟业务主机。可选地,该匹配规则包括基于哈希算法的匹配规则或者基于连接树的匹配规则等,本申请实施例对此不做限定。可选地,第二虚拟主机基于接收到的探测包中的字段,根据匹配规则来选取目标虚拟业务主机。
在另一种可能实现方式中,第二虚拟主机选取目标虚拟业务主机之后,创建匹配记录,该匹配记录中包括发送该探测包的第一虚拟主机,以及用于响应该探测包的目标虚拟业务主机。则后续第二虚拟主机再次接收到第一虚拟主机发送的探测包,则查询已创建的匹配记录,确定第一虚拟主机匹配的目标虚拟业务主机,直接向该目标虚拟业务主机发送该探测包,无需在多个关联的虚拟业务主机中选取目标虚拟业务主机。
在另一种可能实现方式中,探测包的目的地址为第二虚拟主机的地址,第二虚拟主机接收到探测包选取目标虚拟业务主机之后,确定目标虚拟业务主机的地址,将探测包中的第二虚拟主机的地址转换为该目标虚拟业务主机的地址。
906、第二服务器对转换后的探测包进行隧道封装,得到更新后的隧道探测包,向目标虚拟业务主机所在的目标业务服务器发送更新后的隧道探测包。
由于转换后的探测包为第一虚拟主机发送的探测包,是在Overlay网络中传输的数据包,无法直接Underlay网络中传输。因此,为了将该转换后的探测包传输到目标虚拟业务主机所在的目标业务服务器,第二服务器对该转换后的探测包进行隧道封装,得到更新后的隧道探测包,通过Underlay网络将该更新后的隧道探测包发送给目标业务服务器。
907、目标业务服务器对更新后的隧道探测包进行解封装,得到转换后的探测包。
908、若转换后的探测包中的TTL值不大于第一数值,目标业务服务器对第一差错包进行隧道封装,得到第一隧道差错包,向第二服务器发送第一隧道差错包。
其中,第一差错包的源地址指示目标业务服务器,第一差错包的目的地址指示第一虚拟主机。可选地,第一差错包中的源地址为目标业务服务器的地址,第一差错包中的目的地址为第一虚拟主机的地址。
其中,第一隧道差错包的源地址指示目标业务服务器,第一隧道差错包的目的地址指示第二服务器。可选地,第一隧道差错包中的源地址为目标业务服务器的地址,第一隧道差错包中的目的地址为第二服务器的地址。
其中,该第一差错包的包体中还包括第一差错消息以及第一虚拟主机的地址和目标虚拟业务主机的地址,后续接收到该第一差错包的第二虚拟主机,可根据第一差错包中的该第一虚拟主机的地址和目标虚拟业务主机的地址,确定该第一差错包对应的转换后的探测包。
该步骤907-908与上述步骤603-604类似,在此不再一一赘述。
909、第二服务器对第一隧道差错包进行解封装,得到第一差错包,将第一差错包中的目标虚拟业务主机的地址转换为探测包的目的地址。
第二服务器接收到第一隧道差错包,将第一隧道差错包的包头删除,获取第一隧道差错包的包体中的第一差错包,完成对第一隧道差错包的解封装。其中,第二服务器获取到第一差错包,将该第一差错包发送给第二虚拟主机,由第二虚拟主机将差错包中的目标虚拟业务主机的地址转换为上述步骤905中的探测包的目的地址,并将转换后的第一差错包发送给该第二服务器。
其中,该第一差错包的包体中包括第一虚拟主机的地址和目标虚拟业务主机的地址,该第一差错包与转换后的探测包对应。但是由于第一虚拟主机发送的是探测包,因此第二虚拟主机根据第一差错包的包体中包括第一虚拟主机的地址和目标虚拟业务主机的地址,将第一差错包中的目标虚拟业务主机的地址转换为探测包的目的地址,也即是第二虚拟主机的地址,得到转换后的第一差错包。转换后的第一差错包的包体中包括第一虚拟主机的地址和第二虚拟主机的地址,该转换后的第一差错包与第一虚拟主机发送的探测包对应。
910、第二服务器对转换后的第一差错包进行隧道封装,得到更新后的第一隧道差错包,向第一服务器发送更新后的第一隧道差错包。
911、第一服务器接收第一隧道差错包,对第一隧道差错包进行解封装,得到转换后的第一差错包,向第一虚拟主机发送转换后的第一差错包。
912、第一虚拟主机接收转换后的第一差错包。
步骤910-912中发送转换后的第一差错包的过程,与上述步骤604-606中发送第一差错包的过程类似,在此不再一一赘述。
本申请实施例中,要探测传输路径中的目标业务服务器是否存在异常,则在目标业务服务器之前的节点不存在异常的情况下,根据探测包到达该目标业务服务器所经过的节点数量,对探测包中的TTL值进行设置,以使探测包到达目标业务服务器时,该探测包中的TTL值不大于第一数值。若目标业务服务器不存在异常,则该目标业务服务器会返回第一差错包,若目标业务服务器存在异常,则该目标业务服务器可能无法返回第一差错包。因此,在该步骤912中第一虚拟主机接收到第一差错包,则说明目标业务服务器不存在异常。而在另一实施例中,若第一虚拟主机没有接收到第一差错包,则说明目标业务服务器存在异常。
本申请实施例提供的方法,在传输探测包进行路径障碍探测的过程中,仅需虚拟主机所在的服务器对探测包中的TTL值进行处理,不考虑虚拟主机所在的服务器之间的物理节点,因此无需将探测包中的TTL值复制到隧道探测包中,服务器之间的物理节点也无需对隧道探测包的TTL值进行处理,因此能够降低路径故障探测的复杂度,从而快速定位传输路径中的异常节点,提高了路径故障探测的效率。
并且,将探测包发送到虚拟负载均衡主机中,由虚拟负载均衡主机将探测包分配给目标虚拟业务主机,实现了在云负载均衡场景下,虚拟主机到负载均衡的业务虚拟主机之间的路径故障探测,扩展了路径故障探测的应用场景。
并且,由于无需考虑虚拟主机所在的服务器之间的物理节点,因此某一租户需要开启路径故障探测功能时,仅需开启该租户所对应的Overlay网络中的节点的路径故障探测功能即可,实现了以租户为粒度的按需开启与关闭。
在上述图2或者图3所示的网络系统的基础上,本申请实施例还提供了下述图10的实施例中提供的路径故障探测方法。图10是本申请实施例提供的一种路径故障探测方法的流程图。本申请实施例的交互主体为第一服务器、第一虚拟主机、第二服务器、第二虚拟主机、目标业务服务器和目标虚拟业务主机,其中第二虚拟主机为虚拟负载均衡主机,参见图10,该方法包括:
1001、第一虚拟主机向第一服务器发送探测包。
1002、第一服务器获取探测包,对探测包进行隧道封装,得到隧道探测包,向第二服务器发送隧道探测包。
1003、第二服务器接收隧道探测包,对隧道探测包进行解封装,得到探测包。
1004、若探测包中的TTL值大于第一数值,第二服务器将探测包中的TTL值减去第二数值,向第二虚拟主机发送减去第二数值之后的探测包。
1005、第二虚拟主机接收探测包,将探测包中的目的地址转换为目标虚拟业务主机的地址,将转换后的探测包发送给第二服务器。
1006、第二服务器对转换后的探测包进行隧道封装,得到更新后的隧道探测包,向目标虚拟业务主机所在的目标业务服务器发送更新后的隧道探测包。
1007、目标业务服务器对更新后的隧道探测包进行解封装,得到转换后的探测包。
上述步骤1001-1007与上述步骤901-907类似,在此不再一一赘述。
1008、若转换后的探测包中的TTL值大于第一数值,目标业务服务器将转换后的探测包中的TTL值减去第二数值,向目标虚拟业务主机发送减去第二数值之后的探测包。
1009、目标虚拟业务主机接收减去第二数值之后的探测包,向目标业务服务器发送响应包。
1010、目标业务服务器获取响应包,对响应包进行隧道封装,得到隧道响应包,向第二服务器发送隧道响应包。
上述步骤1008-1010与上述步骤804-806类似,在此不再一一赘述。
1011、第二服务器对隧道响应包进行解封装,得到响应包,将响应包中的目标虚拟业务主机的地址转换为探测包的目的地址。
1012、第二服务器对转换后的响应包进行隧道封装,得到更新后的隧道响应包,向第一服务器发送更新后的隧道响应包。
1013、第一服务器接收更新后的隧道响应包,对更新后的隧道响应包进行解封装,得到转换后的响应包,向第一虚拟主机发送转换后的响应包。
1014、第一虚拟主机接收转换后的响应包。
上述步骤1011-1014与上述步骤909-912类似,在此不再一一赘述。
本申请实施例中,要探测传输路径中的目标虚拟业务主机是否存在异常,则在目标虚拟业务主机之前的节点不存在异常的情况下,根据探测包到达该目标虚拟业务主机所经过的节点数量,对探测包中的TTL值进行设置,以使该探测包到达目标虚拟业务主机所在的目标业务服务器,该探测包中的TTL值大于第一数值,从而将探测包中的TTL值减去第二数值,将减去第二数值之后的探测包发送给目标虚拟业务主机。若目标虚拟业务主机不存在异常,则该目标虚拟业务主机返回响应包。若目标虚拟业务主机存在异常,则该目标虚拟业务主机可能无法返回响应包。因此,在该步骤1014中第一虚拟主机接收到响应包,则说明目标虚拟业务主机不存在异常。而在另一实施例中,若第一虚拟主机没有接收到响应包,则说明目标虚拟业务主机存在异常。
需要说明的是,本申请实施例中,第二虚拟主机所关联的业务主机为运行在服务器中的虚拟业务主机。在另一实施例中,如图4所示的网络系统的架构图,在混合云的场景中,该第二虚拟主机为DCGW,则该第二虚拟主机所关联的业务主机为用户IDC中的业务服务器,则目标业务服务器获取到转换后的探测包,无需执行上述步骤1008-1009,而是由目标业务服务器直接响应该探测包,得到响应包,并执行步骤1010-1014,且在步骤1011中,第二服务器将响应包中的目标业务服务器的地址转换为探测包的目的地址。
本申请实施例提供的方法,在传输探测包进行路径障碍探测的过程中,仅需虚拟主机所在的服务器对探测包中的TTL值进行处理,不考虑虚拟主机所在的服务器之间的物理节点,因此无需将探测包中的TTL值复制到隧道探测包中,服务器之间的物理节点也无需对隧道探测包的TTL值进行处理,因此能够降低路径故障探测的复杂度,从而快速定位传输路径中的异常节点,提高了路径故障探测的效率。
并且,将探测包发送到虚拟负载均衡主机中,由虚拟负载均衡主机将探测包分配给目标虚拟业务主机,实现了在云负载均衡场景下,虚拟主机到负载均衡的业务虚拟主机之间的路径故障探测,扩展了路径故障探测的应用场景。
并且,由于无需考虑虚拟主机所在的服务器之间的物理节点,因此某一租户需要开启路径故障探测功能时,仅需开启该租户所对应的Overlay网络中的节点的路径故障探测功能即可,实现了以租户为粒度的按需开启与关闭。
在私有云的场景下,如图11所示,第一虚拟主机为发送方虚拟主机,发送方虚拟主机的地址为cvm_a IP,第一服务器为发送方服务器,发送方服务器的地址为服务器A IP,第二服务器为接收方服务器的地址为服务器B IP,第二虚拟主机为接收方虚拟主机,接收方虚拟主机的地址为cvm_b IP,则对发送方虚拟主机与接收方虚拟主机之间的传输路径进行故障探测的过程为:
发送方虚拟主机向发送方服务器发送TTL值=1的探测包。
发送方服务器确定TTL值≤1,则向发送方虚拟主机发送第一差错包。
发送方虚拟主机向发送方服务器发送TTL值=2的探测包。
发送方服务器确定TTL值>1,则将探测包中的TTL值减1并进行隧道封装,将隧道探测包发送给接收方服务器。
接收方服务器将隧道探测包解封装后得到探测包,确定探测包的TTL值≤1,则向发送方服务器发送第一隧道差错包。
发送方服务器将第一隧道差错包解封装后得到第一差错包,则向发送方虚拟主机发送第一差错包。
发送方虚拟主机向发送方服务器发送TTL值=3的探测包。
发送方服务器确定TTL值>1,则将探测包中的TTL值减1并进行隧道封装,将隧道探测包发送给接收方服务器。
接收方服务器将隧道探测包解封装后得到探测包,确定探测包的TTL值>1,则将探测包中的TTL值减1,并发送给接收方虚拟主机。
接收方虚拟主机响应该探测包,向接收方服务器发送响应包。
接收方服务器将响应包进行隧道封装得到隧道响应包,向发送方服务器发送隧道响应包。
发送方服务器将隧道响应包解封装后得到响应包,则向发送方虚拟主机发送响应包。
在负载均衡的场景下,如图12所示,第一虚拟主机为发送方虚拟主机,发送方虚拟主机的地址为cvm_a IP,第一服务器为发送方服务器,发送方服务器的地址为服务器A IP,第二服务器为云负载均衡服务器,云负载均衡服务器的地址为CLB_IP,第二虚拟主机为云负载均衡服务器中的虚拟负载均衡主机,虚拟负载均衡主机的地址为CLB_VIP,目标业务服务器为接收方服务器,接收方服务器的地址为服务器B IP,目标虚拟业务主机为接收方虚拟主机,接收方虚拟主机的地址为cvm_b IP,则对发送方虚拟主机与接收方虚拟主机之间的传输路径进行故障探测的过程为:
发送方虚拟主机向发送方服务器发送TTL值=1的探测包。
发送方服务器确定TTL值≤1,则向发送方虚拟主机发送第一差错包。
发送方虚拟主机向发送方服务器发送TTL值=2的探测包。
发送方服务器确定TTL值>1,则将探测包中的TTL值减1并进行隧道封装,将隧道探测包发送给云负载均衡服务器。
云负载均衡服务器将隧道探测包解封装后得到探测包,确定探测包的TTL值≤1,则向发送方服务器发送第一隧道差错包。
发送方服务器将第一隧道差错包解封装后得到第一差错包,则向发送方虚拟主机发送第一差错包。
发送方虚拟主机向发送方服务器发送TTL值=3的探测包。
发送方服务器确定TTL值>1,则将探测包中的TTL值减1并进行隧道封装,将隧道探测包发送给云负载均衡服务器。
云负载均衡服务器将隧道探测包解封装后得到探测包,确定探测包的TTL值>1,则将探测包中的CLB_VIP转换为cvm_b IP,将探测包中的TTL值减1并进行隧道封装,得到更新后的隧道探测包,向接收方服务器发送更新后的隧道探测包。
接收方服务器将隧道探测包解封装后得到探测包,确定探测包的TTL值≤1,则向云负载均衡服务器发送第一隧道差错包。
云负载均衡服务器将第一隧道差错包解封装后得到第一差错包,将第一差错包中的cvm_b IP转换为CLB_VIP,并进行隧道封装,得到更新后的第一隧道差错包,向发送方服务器发送更新后的第一隧道差错包。
发送方服务器将第一隧道差错包解封装后得到第一差错包,则向发送方虚拟主机发送第一差错包。
发送方虚拟主机向发送方服务器发送TTL值=4的探测包。
发送方服务器确定TTL值>1,则将探测包中的TTL值减1并进行隧道封装,将隧道探测包发送给云负载均衡服务器。
云负载均衡服务器将隧道探测包解封装后得到探测包,确定探测包的TTL值>1,则将探测包中的CLB_VIP转换为cvm_b IP,将探测包中的TTL值减1并进行隧道封装,得到更新后的隧道探测包,向接收方服务器发送更新后的隧道探测包。
接收方服务器将隧道探测包解封装后得到探测包,确定探测包的TTL值>1,则向接收方虚拟主机发送探测包。
接收方虚拟主机响应该探测包,向接收方服务器发送响应包。
接收方服务器将响应包进行隧道封装得到隧道响应包,向云负载均衡服务器发送隧道响应包。
云负载均衡服务器将隧道响应包中的cvm_b IP转换为CLB_VIP,向发送方服务器发送隧道响应包。
发送方服务器将隧道响应包解封装后得到响应包,则向发送方虚拟主机发送响应包。
在私有云的场景下,如图13所示,第一虚拟主机的地址为cvm_a IP,第二虚拟主机的地址为cvm_b IP,第一虚拟主机和第二虚拟主机在同一台服务器上,服务器的地址为服务器A IP,则对第一虚拟主机与第二虚拟主机之间的传输路径进行故障探测的过程为:
第一虚拟主机向服务器发送TTL值=1的探测包。
服务器确定TTL值≤1,则向第一虚拟主机发送第一差错包。
第一虚拟主机向服务器发送TTL值=2的探测包。
服务器确定TTL值>1,则将探测包中的TTL值减1并发送给第二虚拟主机。
第二虚拟主机响应该探测包,向服务器发送响应包。
服务器将响应包向第一虚拟主机发送响应包。
图14是本申请实施例提供的一种网络系统的结构示意图。参见图14,该网络系统包括:
第一服务器1401和第二服务器1402,第一服务器1401包括第一虚拟主机1411,第二服务器1402包括第二虚拟主机1412;
第一服务器1401,用于获取第一服务器中的第一虚拟主机的探测包,探测包中包括生存时间TTL值,探测包的源地址指示第一虚拟主机1411;
第一服务器1401,还用于对探测包进行隧道封装,得到隧道探测包,向第二虚拟主机所在的第二服务器1402发送隧道探测包,探测包的目的地址指示第二虚拟主机;
第二服务器1402,用于接收隧道探测包,对隧道探测包进行解封装,得到探测包;
第二服务器1402,还用于若探测包中的TTL值不大于第一数值,向第一虚拟主机1411发送第一差错包;或者,若探测包中的TTL值大于第一数值,将探测包中的TTL值减去第二数值,向第二虚拟主机1412发送减去第二数值之后的探测包,第一数值和第二数值为正整数。
可选地,第一服务器1401用于:
若探测包中的TTL值大于第一数值,将探测包中的TTL值减去第二数值;
对减去第二数值之后的探测包进行隧道封装,得到隧道探测包。
可选地,第一服务器1401还用于若探测包中的TTL值不大于第一数值,向第一虚拟主机1411发送第一差错包。
可选地,第一服务器1401还用于若未查询到探测包对应的传输路径,向第一虚拟主机1411发送第二差错包。
可选地,第二服务器1402,还用于对获取的响应包进行隧道封装,得到隧道响应包,向第一服务器1401发送隧道响应包,响应包由第二虚拟主机1412接收探测包后发送给第二服务器1402;
第一服务器1401,还用于对隧道响应包进行解封装,得到响应包,向第一虚拟主机1411发送响应包。
可选地,第二服务器1402,用于对第一差错包进行隧道封装,得到第一隧道差错包,向第一服务器1401发送第一隧道差错包;
第一服务器1401,还用于对第一隧道差错包进行解封装,得到第一差错包,向第一虚拟主机1411发送第一差错包。
可选地,第二服务器1402,还用于若未查询到探测包对应的传输路径,对第二差错包进行隧道封装,得到第二隧道差错包,向第一服务器1401发送第二隧道差错包;
第一服务器1401,还用于对第二隧道差错包进行解封装,得到第二差错包,向第一虚拟主机1411发送第二差错包。
可选地,第二服务器1402,还用于对获取的第三差错包进行隧道封装,得到第三隧道差错包,向第一服务器1401发送第三隧道差错包,第三差错包由第二虚拟主机1412在无法响应探测包的情况下发送给第二服务器1402;
第一服务器1401,还用于对第三隧道差错包进行解封装,得到第三差错包,向第一虚拟主机1411发送第三差错包。
可选地,第二虚拟主机1412为虚拟负载均衡主机;参见图15,该网络系统中还包括目标业务服务器1403,目标业务服务器1403包括目标虚拟业务主机1413;第二虚拟主机1412,用于接收探测包,将探测包中的目的地址转换为目标虚拟业务主机1413的地址,将转换后的探测包发送给第二服务器1402;
第二服务器1402,还用于对转换后的探测包进行隧道封装,得到更新后的隧道探测包,向目标虚拟业务主机1413所在的目标业务服务器1403发送更新后的隧道探测包。
可选地,第二服务器1402,还用于对目标业务服务器1403发送的第一隧道差错包进行解封装,得到第一差错包,将第一差错包中的目标虚拟业务主机1413的地址转换为目的地址;
第二服务器1402,还用于对转换后的第一差错包进行隧道封装,得到更新后的第一隧道差错包,向第一服务器1401发送更新后的第一隧道差错包。
可选地,第二服务器1402,还用于对目标业务服务器1403发送的隧道响应包进行解封装,得到响应包,将响应包中的目标虚拟业务主机1413的地址转换为目的地址;
第二服务器1402,还用于对转换后的响应包进行隧道封装,得到更新后的隧道响应包,向第一服务器1401发送更新后的隧道响应包。
可选地,第一差错包中携带探测包中的源地址和目的地址。
本申请实施例提供的网络系统,在传输探测包进行路径障碍探测的过程中,仅需虚拟主机所在的服务器对探测包中的TTL值进行处理,不考虑服务器之间的物理节点,因此无需将探测包中的TTL值复制到隧道探测包中,服务器之间的物理节点也无需对隧道探测包的TTL值进行处理,因此能够降低路径故障探测的复杂度,从而快速定位传输路径中的异常节点,提高了路径故障探测的效率。
图16是本申请实施例提供的一种服务器的结构示意图,该服务器1600可因配置或性能不同而产生比较大的差异,包括一个或一个以上处理器(Central Processing Units,CPU)1601和一个或一个以上的存储器1602,其中,所述存储器1602中存储有至少一条程序代码,所述至少一条程序代码由所述处理器1601加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
服务器1600可以用于执行上述路径故障探测方法中第一服务器或者第二服务器所执行的步骤。
本申请实施例还提供了一种服务器,该服务器包括处理器和存储器,存储器中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例的路径故障探测方法中所执行的操作。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条程序代码,该至少一条程序代码由处理器加载并执行,以实现上述实施例的路径故障探测方法中所执行的操作。
本申请实施例还提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机程序代码,计算机程序代码存储在计算机可读存储介质中,服务器的处理器从计算机可读存储介质读取计算机程序代码,处理器执行计算机程序代码,使得服务器实现如上述实施例的路径故障探测方法中所执行的操作。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请实施例的可选实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种路径故障探测方法,其特征在于,所述方法包括:
第一服务器获取所述第一服务器中的第一虚拟主机的探测包,所述探测包中包括生存时间TTL值,所述探测包的源地址指示所述第一虚拟主机;
所述第一服务器对所述探测包进行隧道封装,得到隧道探测包,向第二虚拟主机所在的第二服务器发送所述隧道探测包,所述探测包的目的地址指示所述第二虚拟主机,
其中,所述第二服务器用于对所述隧道探测包进行解封装,得到所述探测包,
所述第二服务器还用于,若所述探测包中的TTL值不大于第一数值,向所述第一虚拟主机发送第一差错包;或者,若所述探测包中的TTL值大于所述第一数值,将所述探测包中的TTL值减去第二数值,向所述第二虚拟主机发送减去所述第二数值之后的探测包,所述第一数值和所述第二数值为正整数。
2.根据权利要求1所述的方法,其特征在于,所述第一服务器对所述探测包进行隧道封装,得到隧道探测包,包括:
若所述探测包中的TTL值大于所述第一数值,所述第一服务器将所述探测包中的所述TTL值减去所述第二数值;
对减去所述第二数值之后的探测包进行隧道封装,得到所述隧道探测包。
3.根据权利要求1所述的方法,其特征在于,所述第一服务器对所述探测包进行隧道封装,得到隧道探测包,向第二虚拟主机所在的第二服务器发送所述隧道探测包之后,所述方法还包括:
所述第一服务器接收所述第二服务器发送的隧道响应包,所述隧道响应包由所述第二服务器对响应包进行隧道封装后得到,所述响应包由所述第二虚拟主机接收所述探测包后发送给所述第二服务器;
所述第一服务器对所述隧道响应包进行解封装,得到所述响应包;
所述第一服务器向所述第一虚拟主机发送所述响应包。
4.根据权利要求1所述的方法,其特征在于,所述第一服务器对所述探测包进行隧道封装,得到隧道探测包,向第二虚拟主机所在的第二服务器发送所述隧道探测包之后,所述方法还包括:
所述第一服务器接收第一隧道差错包,所述第一隧道差错包由所述第二服务器对所述第一差错包进行隧道封装后得到;
所述第一服务器对所述第一隧道差错包进行解封装,得到所述第一差错包;
所述第一服务器向所述第一虚拟主机发送所述第一差错包。
5.根据权利要求1所述的方法,其特征在于,所述第一服务器对所述探测包进行隧道封装,得到隧道探测包,向第二虚拟主机所在的第二服务器发送所述隧道探测包之后,所述方法还包括:
所述第一服务器接收第二隧道差错包,所述第二隧道差错包由所述第二服务器在未查询到所述探测包对应的传输路径的情况下,对第二差错包进行隧道封装后得到;
所述第一服务器对所述第二隧道差错包进行解封装,得到所述第二差错包;
所述第一服务器向所述第一虚拟主机发送所述第二差错包。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述第一差错包中携带所述源地址和所述目的地址。
7.一种路径故障探测方法,其特征在于,所述方法包括:
第二服务器接收第一服务器发送的隧道探测包,所述隧道探测包由所述第一服务器对探测包进行隧道封装后得到;
所述第二服务器对所述隧道探测包进行解封装,得到所述探测包,所述探测包中包括生存时间TTL值;
若所述探测包中的TTL值不大于第一数值,所述第二服务器向所述第一服务器中的第一虚拟主机发送第一差错包,所述探测包的源地址指示所述第一虚拟主机;或者,
若所述探测包中的TTL值大于所述第一数值,所述第二服务器将所述探测包中的TTL值减去第二数值,向所述第二服务器中的第二虚拟主机发送减去所述第二数值之后的探测包,所述探测包的目的地址指示所述第二虚拟主机,所述第一数值和所述第二数值为正整数。
8.根据权利要求7所述的方法,其特征在于,所述第二服务器向所述第一服务器中的第一虚拟主机发送第一差错包,包括:
所述第二服务器对所述第一差错包进行隧道封装,得到第一隧道差错包;
所述第二服务器向所述第一服务器发送所述第一隧道差错包,
其中,所述第一服务器用于对所述第一隧道差错包进行解封装,得到所述第一差错包,向所述第一虚拟主机发送所述第一差错包。
9.根据权利要求7所述的方法,其特征在于,所述第二服务器向所述第一服务器中的第二虚拟主机发送所述探测包之后,所述方法还包括:
所述第二服务器获取响应包,所述响应包由所述第二虚拟主机接收所述探测包后发送给所述第二服务器;
所述第二服务器对所述响应包进行隧道封装,得到隧道响应包;
所述第二服务器向所述第一服务器发送所述隧道响应包,
其中,所述第一服务器用于对所述隧道响应包进行解封装,得到所述响应包,向所述第一虚拟主机发送所述响应包。
10.根据权利要求7所述的方法,其特征在于,所述第二虚拟主机为虚拟负载均衡主机;所述第二服务器向所述第一服务器中的第二虚拟主机发送所述探测包之后,所述方法还包括:
所述第二虚拟主机接收所述探测包,将所述探测包中的目的地址转换为目标虚拟业务主机的地址,将转换后的探测包发送给所述第二服务器;
所述第二服务器对转换后的探测包进行隧道封装,得到更新后的隧道探测包;
所述第二服务器向所述目标虚拟业务主机所在的目标业务服务器发送所述更新后的隧道探测包。
11.根据权利要求10所述的方法,其特征在于,所述第二服务器向所述目标虚拟业务主机所在的目标业务服务器发送所述更新后的隧道探测包之后,所述方法还包括:
所述第二服务器对所述目标业务服务器发送的第一隧道差错包进行解封装,得到第一差错包;
所述第二服务器将所述第一差错包中的所述目标虚拟业务主机的地址转换为所述目的地址;
所述第二服务器对转换后的第一差错包进行隧道封装,得到更新后的第一隧道差错包;
所述第二服务器向所述第一服务器发送所述更新后的第一隧道差错包。
12.根据权利要求10所述的方法,其特征在于,所述第二服务器向所述目标虚拟业务主机所在的目标业务服务器发送所述更新后的隧道探测包之后,所述方法还包括:
所述第二服务器对所述目标业务服务器发送的隧道响应包进行解封装,得到响应包;
所述第二服务器将所述响应包中的所述目标虚拟业务主机的地址转换为所述目的地址;
所述第二服务器对转换后的响应包进行隧道封装,得到更新后的隧道响应包;
所述第二服务器向所述第一服务器发送所述更新后的隧道响应包。
13.一种网络系统,其特征在于,所述网络系统包括第一服务器和第二服务器,所述第一服务器中包括第一虚拟主机,所述第二服务器中包括第二虚拟主机;
所述第一服务器,用于获取所述第一服务器中的第一虚拟主机的探测包,所述探测包中包括生存时间TTL值,所述探测包的源地址指示所述第一虚拟主机;
所述第一服务器,还用于对所述探测包进行隧道封装,得到隧道探测包,向所述第二虚拟主机所在的第二服务器发送所述隧道探测包,所述探测包的目的地址指示所述第二虚拟主机;
所述第二服务器,用于接收所述隧道探测包,对所述隧道探测包进行解封装,得到所述探测包;
所述第二服务器,还用于若所述探测包中的TTL值不大于第一数值,向所述第一虚拟主机发送第一差错包;或者,若所述探测包中的TTL值大于所述第一数值,将所述探测包中的TTL值减去第二数值,向所述第二虚拟主机发送减去所述第二数值之后的探测包,所述第一数值和所述第二数值为正整数。
14.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述至少一条程序代码由所述处理器加载并执行,以实现如权利要求1至6任一项所述的路径故障探测方法中所执行的操作,或者实现如权利要求7至12任一项所述的路径故障探测方法中所执行的操作。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条程序代码,所述至少一条程序代码由处理器加载并执行,以实现如权利要求1至6任一项所述的路径故障探测方法中所执行的操作,或者实现如权利要求7至12任一项所述的路径故障探测方法中所执行的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011060627.8A CN112187584B (zh) | 2020-09-30 | 2020-09-30 | 路径故障探测方法、系统、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011060627.8A CN112187584B (zh) | 2020-09-30 | 2020-09-30 | 路径故障探测方法、系统、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112187584A true CN112187584A (zh) | 2021-01-05 |
CN112187584B CN112187584B (zh) | 2023-07-21 |
Family
ID=73947106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011060627.8A Active CN112187584B (zh) | 2020-09-30 | 2020-09-30 | 路径故障探测方法、系统、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187584B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114866398A (zh) * | 2022-03-24 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 网络故障诊断方法及装置 |
US11431656B2 (en) * | 2020-05-19 | 2022-08-30 | Fujitsu Limited | Switch identification method and non-transitory computer-readable recording medium |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996013108A2 (en) * | 1994-10-25 | 1996-05-02 | Cabletron Systems, Inc. | Method and apparatus for determining ip communications path |
US20030110276A1 (en) * | 2001-12-10 | 2003-06-12 | Guy Riddle | Dynamic tunnel probing in a communications network |
US20050018647A1 (en) * | 2003-07-23 | 2005-01-27 | International Business Machines Corporation | Method and system for determining a path between two points of an IP network over which datagrams are transmitted |
CN1791053A (zh) * | 2004-12-13 | 2006-06-21 | 杭州华为三康技术有限公司 | 一种对多服务器进行最优选择的方法 |
US7200673B1 (en) * | 2000-06-09 | 2007-04-03 | Steven Augart | Determining the geographic location of a network device |
WO2010033059A1 (en) * | 2008-09-22 | 2010-03-25 | Telefonaktiebolaget L M Ericsson (Publ) | Method, arrangement and system for monitoring a data path in a communication network |
CN101895417A (zh) * | 2010-07-06 | 2010-11-24 | 同济大学 | 基于子路径可用带宽测量的紧链路定位方法 |
US20110299406A1 (en) * | 2010-06-02 | 2011-12-08 | Brocade Communications Systems, Inc. | Path detection in trill networks |
US20130058235A1 (en) * | 2010-03-10 | 2013-03-07 | Telefonaktiebolaget L M Ericsson (Publ) | Sub-path e2e probing |
CN103516615A (zh) * | 2013-07-15 | 2014-01-15 | 中国人民解放军国防科学技术大学 | 网络拓扑确定方法和装置 |
CN106059856A (zh) * | 2016-06-20 | 2016-10-26 | 乐视控股(北京)有限公司 | 文件回源的方法、文件回源装置和cdn系统 |
CN106452930A (zh) * | 2016-12-16 | 2017-02-22 | 北京邮电大学 | 一种基于探测的服务功能链的故障诊断方法及系统 |
CN106685742A (zh) * | 2017-03-02 | 2017-05-17 | 北京邮电大学 | 一种网络故障诊断方法及装置 |
US20180212798A1 (en) * | 2015-09-25 | 2018-07-26 | Huawei Technologies Co., Ltd. | Path Detection Method and Apparatus |
CN108650337A (zh) * | 2018-04-17 | 2018-10-12 | 腾讯科技(深圳)有限公司 | 一种服务器探测方法、系统及存储介质 |
CN109314701A (zh) * | 2016-06-21 | 2019-02-05 | 高通股份有限公司 | 使用可用网络连接的网络路径探测 |
CN110336716A (zh) * | 2019-07-15 | 2019-10-15 | 哈尔滨工业大学 | 一种高效的目标主机末跳路由器探测方法 |
US20200007425A1 (en) * | 2018-06-29 | 2020-01-02 | Itron Global Sarl | Traceroute method to identify devices in tunneled segment of routing path |
CN111193653A (zh) * | 2019-12-31 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及存储介质 |
CN111641545A (zh) * | 2020-05-15 | 2020-09-08 | 深信服科技股份有限公司 | 一种隧道探测方法及装置、设备、存储介质 |
-
2020
- 2020-09-30 CN CN202011060627.8A patent/CN112187584B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996013108A2 (en) * | 1994-10-25 | 1996-05-02 | Cabletron Systems, Inc. | Method and apparatus for determining ip communications path |
US7200673B1 (en) * | 2000-06-09 | 2007-04-03 | Steven Augart | Determining the geographic location of a network device |
US20030110276A1 (en) * | 2001-12-10 | 2003-06-12 | Guy Riddle | Dynamic tunnel probing in a communications network |
US20050018647A1 (en) * | 2003-07-23 | 2005-01-27 | International Business Machines Corporation | Method and system for determining a path between two points of an IP network over which datagrams are transmitted |
CN1791053A (zh) * | 2004-12-13 | 2006-06-21 | 杭州华为三康技术有限公司 | 一种对多服务器进行最优选择的方法 |
WO2010033059A1 (en) * | 2008-09-22 | 2010-03-25 | Telefonaktiebolaget L M Ericsson (Publ) | Method, arrangement and system for monitoring a data path in a communication network |
US20130058235A1 (en) * | 2010-03-10 | 2013-03-07 | Telefonaktiebolaget L M Ericsson (Publ) | Sub-path e2e probing |
US20110299406A1 (en) * | 2010-06-02 | 2011-12-08 | Brocade Communications Systems, Inc. | Path detection in trill networks |
CN101895417A (zh) * | 2010-07-06 | 2010-11-24 | 同济大学 | 基于子路径可用带宽测量的紧链路定位方法 |
CN103516615A (zh) * | 2013-07-15 | 2014-01-15 | 中国人民解放军国防科学技术大学 | 网络拓扑确定方法和装置 |
US20180212798A1 (en) * | 2015-09-25 | 2018-07-26 | Huawei Technologies Co., Ltd. | Path Detection Method and Apparatus |
CN106059856A (zh) * | 2016-06-20 | 2016-10-26 | 乐视控股(北京)有限公司 | 文件回源的方法、文件回源装置和cdn系统 |
CN109314701A (zh) * | 2016-06-21 | 2019-02-05 | 高通股份有限公司 | 使用可用网络连接的网络路径探测 |
CN106452930A (zh) * | 2016-12-16 | 2017-02-22 | 北京邮电大学 | 一种基于探测的服务功能链的故障诊断方法及系统 |
CN106685742A (zh) * | 2017-03-02 | 2017-05-17 | 北京邮电大学 | 一种网络故障诊断方法及装置 |
CN108650337A (zh) * | 2018-04-17 | 2018-10-12 | 腾讯科技(深圳)有限公司 | 一种服务器探测方法、系统及存储介质 |
US20200007425A1 (en) * | 2018-06-29 | 2020-01-02 | Itron Global Sarl | Traceroute method to identify devices in tunneled segment of routing path |
CN110336716A (zh) * | 2019-07-15 | 2019-10-15 | 哈尔滨工业大学 | 一种高效的目标主机末跳路由器探测方法 |
CN111193653A (zh) * | 2019-12-31 | 2020-05-22 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备及存储介质 |
CN111641545A (zh) * | 2020-05-15 | 2020-09-08 | 深信服科技股份有限公司 | 一种隧道探测方法及装置、设备、存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11431656B2 (en) * | 2020-05-19 | 2022-08-30 | Fujitsu Limited | Switch identification method and non-transitory computer-readable recording medium |
CN114866398A (zh) * | 2022-03-24 | 2022-08-05 | 阿里巴巴(中国)有限公司 | 网络故障诊断方法及装置 |
CN114866398B (zh) * | 2022-03-24 | 2024-01-09 | 阿里巴巴(中国)有限公司 | 网络故障诊断方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112187584B (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10541836B2 (en) | Virtual gateways and implicit routing in distributed overlay virtual environments | |
US11362986B2 (en) | Resolution of domain name requests in heterogeneous network environments | |
US10158502B2 (en) | Network device that relays communication | |
CN112470436B (zh) | 用于提供多云连通性的系统、方法、以及计算机可读介质 | |
US11546288B2 (en) | Techniques for managing software defined networking controller in-band communications in a data center network | |
CN107465590B (zh) | 网络基础设施系统、路由网络业务的方法及计算机可读介质 | |
JP6663020B2 (ja) | パケット処理方法、関連装置、およびnvo3ネットワークシステム | |
US10237230B2 (en) | Method and system for inspecting network traffic between end points of a zone | |
TWI744359B (zh) | 一種資料傳輸的方法及網路設備 | |
CN110999265B (zh) | 管理云计算服务端点和虚拟机之间的网络连接性 | |
CN112671628B (zh) | 业务服务提供方法及系统 | |
WO2017197885A1 (zh) | 用于虚拟可扩展局域网的通信方法和装置 | |
WO2017071547A1 (zh) | 应用于vxlan的报文转发 | |
CN112491701B (zh) | 转发报文方法和装置 | |
US10848457B2 (en) | Method and system for cross-zone network traffic between different zones using virtual network identifiers and virtual layer-2 broadcast domains | |
CN109547354B (zh) | 负载均衡方法、装置、系统、核心层交换机及存储介质 | |
CN107547399B (zh) | 一种组播转发表项的处理方法和pe设备 | |
CN112671938B (zh) | 业务服务提供方法及系统、远端加速网关 | |
US10855733B2 (en) | Method and system for inspecting unicast network traffic between end points residing within a same zone | |
CN112187584B (zh) | 路径故障探测方法、系统、服务器及存储介质 | |
CN114389967A (zh) | 链路检测方法、装置、设备和存储介质 | |
WO2024001701A1 (zh) | 数据处理方法、装置及系统 | |
CN113709016B (zh) | 通信系统以及通信方法、装置、设备和存储介质 | |
US9819594B2 (en) | Information processing system and controlling method and controlling device for the same | |
US10749789B2 (en) | Method and system for inspecting broadcast network traffic between end points residing within a same zone |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40037361 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |