专利名称:私网连接通信方法和系统
专利类型:发明专利
专利申请号:CN202210275731.1
专利申请(专利权)人:阿里云计算有限公司
权利人地址:浙江省杭州市西湖区转塘科技经济区块12号
专利发明(设计)人:王荻
专利摘要:本公开提出了一种私网连接通信方法和系统。该方法包括:经由第一路径向后端虚拟服务器发送请求,该请求包括超时阈值参数以及虚拟网关的IP地址,虚拟网关是位于私网连接所连接的前端和后端之间的网关;响应于来自前端的新请求,判定第一路径是否发送故障,其中,新请求由后端虚拟服务器在超时阈值内未接收到来自第一路径的数据时向虚拟网关发送返回数据所触发;以及响应于判定第一路径故障,启用第二路径向后端虚拟服务器发送请求。本发明通过在正向流量超时无响应时启用虚拟网关传输反向流量并进行当前路径探活,避免了私网连接中由于正向学源导致的当前传输路径宕机对反向流量的影响,提升了网络功能虚拟化(NFV)与物理网络的连通可靠性。
主权利要求:
1.一种私网连接通信方法,包括:
经由第一路径向后端虚拟服务器发送请求,所述请求包括超时阈值参数以及虚拟网关的IP地址,所述虚拟网关是位于所述私网连接所连接的前端和所述后端之间的网关;
响应于来自所述前端的新请求,判定所述第一路径是否发生故障,其中,所述新请求由所述后端虚拟服务器在所述超时阈值内未接收到来自所述第一路径的数据时向所述虚拟网关发送返回数据所触发;以及响应于判定所述第一路径故障,启用第二路径向所述后端虚拟服务器发送请求,其中,弹性网卡绑定到所述前端,并且,响应于来自所述前端的新请求数据,判定所述第一路径是否发生故障包括:所述弹性网卡接收来自所述前端的寻址所述弹性网卡的新请求数据并向所述第一路径发出探活消息;以及所述弹性网卡基于所述探活消息的反馈判定所述第一路径故障。
2.如权利要求1所述的方法,还包括:
慢速路径接收来自前端客户端的首包数据并额外携带所述超时阈值参数以及所述虚拟网关的IP地址;
作为快速路径的所述第一路径接收所述慢速路径卸载的额外携带所述超时阈值参数以及所述虚拟网关的IP地址的数据,并用于向所述后端虚拟服务器发送。
3.如权利要求2所述的方法,还包括:
弹性网卡接收来自前端客户端的寻址所述弹性网卡的数据;
所述弹性网卡将来自前端客户端的首包数据提供给所述慢速路径,并将后续数据包提供给所述第一路径。
4.如权利要求3所述的方法,还包括:
所述弹性网卡接收来自所述虚拟网关的返回数据并将所述返回数据发送给所述前端客户端,所述返回数据是所述后端虚拟服务器在所述超时阈值内未接收到来自所述第一路径的数据时发送给所述虚拟网关IP的,并且所述前端客户端响应于对所述返回数据的接收发送所述新请求数据。
5.如权利要求2所述的方法,其中,
慢速路径接收来自后端服务器的首包数据,并在首包数据校验合法后将所述首包数据卸载给所述第一路径。
6.如权利要求1所述的方法,其中,所述第一路径和所述第二路径还用于在可用时将来自后端服务器并经由所述后端虚拟服务器转发的反向数据提供给所述前端客户端。
7.一种私网连接通信系统,包括前端和后端,以及连接在所述前端和所述后端之间的私网连接装置和虚拟网关装置,其中所述私网连接装置执行如权利要求1‑6中任一项所述的方法,并且所述后端的虚拟服务器在接收来自所述第一路径或第二路径的首包时,学习所述第一路径的物理IP和虚拟IP地址,并且在返回数据时使用所述物理IP和虚拟IP地址向所述第一路径或第二路径发送返回数据。
8.如权利要求7所述的系统,其中,所述前端的客户端向所述私网连接发送寻址所述私网连接的弹性网卡的请求信息,并从所述弹性网卡接收由所述后端服务器经由所述虚拟服务器以及第一路径或第二路径传输的返回数据。
9.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1‑6中任一项所述的方法。
10.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1‑6中任一项所述的方法。 说明书 : 私网连接通信方法和系统技术领域[0001] 本公开涉及云服务,尤其涉及一种私网连接通信方法和系统。背景技术[0002] 在两个专用网络之间需要经由私网连接进行通信。前端将请求发送给私网连接,由私网连接将前端请求发送给后端,并将后端返回的数据提供给前端。[0003] 出于私密性的考虑,前端和后端并不知晓彼此的IP地址,私密链接也不会使用固定的传输路径用于两者之间的传输。这就使得后端需要在接收到私密链接转发的来自前端的请求时,才能学习到私密链接中的传输路径信息。而当该传输路径故障时,后端仍然会持续向故障路径发送返回数据,从而导致返回流量受损。[0004] 为此,需要一种能够保证前后端之间可靠私网连接通信的方案。发明内容[0005] 本公开要解决的一个技术问题是提供一种私网连接通信方案。该方案通过在正向流量超时无响应时启用虚拟网关传输反向流量并进行当前路径探活,避免了私网连接中由于正向学源导致的当前传输路径宕机对反向流量的影响,提升了网络功能虚拟化(NFV)与物理网络的连通可靠性。[0006] 根据本公开的第一个方面,提供了一种私网连接通信方法,包括:经由第一路径向后端虚拟服务器发送请求,所述请求包括超时阈值参数以及虚拟网关的IP地址,所述虚拟网关是位于所述私网连接所连接的前端和所述后端之间的网关;响应于来自所述前端的新请求,判定所述第一路径是否发送故障,其中,所述新请求由所述后端虚拟服务器在所述超时阈值内未接收到来自所述第一路径的数据时向所述虚拟网关发送返回数据所触发;以及响应于判定所述第一路径故障,启用所述第二路径向所述后端虚拟服务器发送请求。[0007] 可选地,所述方法还包括:慢速路径接收来自前端客户端的数据并额外携带所述超时阈值参数以及所述虚拟网关的IP地址;以及作为快速路径的所述第一路径接收所述慢速路径卸载的额外携带所述超时阈值参数以及所述虚拟网关的IP地址的数据,并用于向所述后端虚拟服务器发送。[0008] 可选地,所述方法还包括:弹性网卡接收来自前端客户端的寻址所述弹性网卡的数据;所述弹性网卡将来自前端客户端的首包数据提供给所述慢速路径,并将后续数据包提供给所述第一路径。[0009] 可选地,所述方法还包括:所述弹性网卡接收来自所述虚拟网卡的返回数据并将所述返回数据发送给所述前端客户端,所述返回数据是所述后端虚拟服务器在所述超时阈值内未接收到来自所述第一路径的数据时发送给所述虚拟网关IP的,并且所述前端客户端响应于对所述返回数据的接收发送所述新请求数据。[0010] 可选地,响应于来自所述前端的新请求数据,判定所述第一路径故障包括:所述弹性网卡接收来自所述前端的寻址所述弹性网卡的新请求数据并向所述第一路径发出探活消息;所述弹性网卡基于所述探活消息的反馈判定所述第一路径故障。[0011] 可选地,所述第一路径和所述第二路径还用于将来自后端服务器并经由所述后端虚拟服务器转发的反向数据提供给所述前端客户端。[0012] 根据本公开的第二个方面,提供了一种私网连接通信系统,包括前端和后端,以及连接在所述前端和所述后端之间的私网连接装置和虚拟网关装置,其中[0013] 所述私网连接装置执行如第一方面所述的方法,并且所述后端的虚拟服务器在接收来自所述第一路径或第二路径的首包时,学习所述第一路径的物理IP和虚拟IP地址,并且在返回数据时使用所述物理IP和虚拟IP地址向所述第一路径或第二路径发送返回数据。[0014] 可选地,所述前端的客户端向所述私网连接发送寻址所述私网连接的弹性网卡的请求信息,并从所述弹性网卡接收由所述后端服务器经由所述虚拟服务器以及第一路径或第二路径传输的返回数据。[0015] 根据本公开的第三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。[0016] 根据本公开的第四个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。[0017] 由此,本发明利用与实例绑定的弹性网卡能够与虚拟网卡通信且能够判定私网连接中路径可用性的能力,在持续无正向流量的情况下主动对当前路径进行探活,并在路径故障是进行路径更换。由此避免正向学源时传输路径故障对反向流量的不利影响。附图说明[0018] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。[0019] 图1示出了在两个VPC之间建立私网连接的一个例子。[0020] 图2示出了私网连接容易导致反向流量受损的示意图。[0021] 图3示出了根据本发明一个实施例的私网连接通信方法的示意性流程图。[0022] 图4A‑C则示出了图3示出的方法所涉及的各个状态的示意图。[0023] 图5示出了使用本发明的私网连接通信方案进行通信的示意图。[0024] 图6示出了根据本发明一实施例可用于实现上述私网连接通信方法的计算设备的结构示意图。具体实施方式[0025] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。[0026] 云服务器,是云服务商为用户在云上提供的虚拟服务器服务。例如ECS(ElasticComputeService,弹性计算服务)的云服务器可以实现弹性扩展的IaaS(InfrastructureasaService),免去用户采购IT硬件的需要并能实现计算资源的即开即用和弹性伸缩。[0027] 云服务商可以为同一个租户(即,用户)提供多个虚拟服务器实例,用来满足租户的各种服务应用需求。由于一个云服务商通常会为多个租户提供如上的虚拟服务器服务,因此在数据私密性变得日益重要的今天,更多租户选择在VPC(VirtualPrivateCloud,即,专有网络)内布置自己的虚拟服务器实例。[0028] VPC是在逻辑上彻底隔离的云上私有网络。租户可以为自己的VPC自行分配私网IP地址范围、配置路由表和网关等。[0029] 由于VPC是租户独有的云上私有网络,因此不同VPC之间需要完全隔离。在VPC需要访问云上其他资源时,就无法通过常规链接实现资源访问,此时,租户可以通过私网连接(PrivateLink)实现VPC与云上的服务建立安全稳定的私网连接,简化网络架构,避免通过公网访问服务带来的潜在安全风险。[0030] 通过私网连接实现私网访问,需要创建终端节点服务和终端节点。终端节点服务是可以被其他VPC通过创建终端节点建立私网连接的服务。终端节点服务由服务提供方创建和管理。[0031] 终端节点可以与终端节点服务相关联,以建立通过VPC私网访问外部服务的网络连接。终端节点由服务使用方创建和管理。[0032] 图1示出了在两个VPC之间建立私网连接的一个例子。例如,租户A在某地创建了两个VPC,VPC2中的虚拟服务器实例(例如,ECS实例)创建了应用服务。因各自原因,VPC2中的服务现在需要被VPC1通过私网访问,避免公网访问服务带来的潜在安全风险。[0033] 为此,可以将请求服务的VPC1(即,服务使用方)视为是前端,将提供服务的VPC2(服务提供方)视为后端。如图所示,为了向外部提供服务,可以在VPC2下创建支持私网连接的负载均衡实例,将ECS实例添加为负载均衡实例的后端服务器,然后创建终端节点服务,将负载均衡实例添加为服务资源。随后,可以在VPC1下创建终端节点。创建成功后,VPC1即可私网访问VPC2下的服务。[0034] 在此,负载均衡SLB(ServerLoadBalancer)可以指代一种对流量进行按需分发的服务,通过将流量分发到不同的后端服务器来扩展应用系统的吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性。[0035] 在图1中,VPC1中的实例ECS1可以看作是位于前端的客户端,VPC2中的实例ECS2和ECS3可以实现为位于后端的服务器,并且可由VPC1创建的终端节点和VPC2创建的终端节点服务共同用于私网连接的实现。[0036] 负载均衡基础架构可以采用集群部署,并例如提供四层(TCP协议和UDP协议)的负载均衡,实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。负载均衡作为流量转发服务,可以将来自客户端的请求通过负载均衡集群转发至后端服务器,后端服务器再将响应通过内部网络(在此例中为VPC2)返回给负载均衡。[0037] 在一个实现中,四层可以采用LVS(LinuxVirtualServer,Linux虚拟服务器)连同keepalived(保持存活)的方式实现负载均衡,并且能够根据云计算需求进行个性化定制。在一个优选实施例中,VPC2内部网络中的四层负载均衡实际上是可由多台LVS物理机器部署成一个LVS集群来运行的。采用集群部署模式能够保证了异常情况下负载均衡服务的可用性、稳定性与可扩展性。[0038] LVS集群内的每台LVS都会进行会话,通过组播报文同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。例如当客户端向服务端传输三个数据包后,在LVS1上建立的会话A开始同步到其它LVS机器上,当LVS1出现故障或进行维护时,这部分流量会走到一台可以正常运行的机器LVS2上。因而负载均衡集群支持热升级,并且在机器故障和集群维护时最大程度对用户透明,不影响用户服务。[0039] 对于入网流量,负载均衡会根据用户在控制台或API上配置的转发策略,对来自前端的访问请求进行转发和处理。LVS集群内每个节点可以根据负载均衡实例负载均衡策略,将其承载的服务请求按策略直接分发到后端ECS服务器。[0040] 负载均衡SLB和后端ECS之间是通过内网进行通信的。由于需要直接通过后端ECS对外提供服务(向VPC1中的客户端提供服务,也是向VPC2之外的对象提供服务),因此还需要额外配置虚拟网关。[0041] 如前所述,在两个专用网络之间需要经由私网连接进行通信。前端通常实现为客户端ECS实例,后端则可如上所述实现为基于LVS(虚拟服务器的)负载均衡SLB,以及多个作为服务端的ECS实例。前端将获取服务的请求发送给私网连接,由私网连接将前端请求发送给后端,并将后端返回的数据提供给前端。[0042] 出于私密性的考虑,前端和后端并不知晓彼此的IP地址,私密链接也不会使用固定的传输路径用于两者之间的传输。这就使得后端需要在接收到私密链接转发的来自前端的请求时,才能学习到私密链接中的传输路径信息。而当该传输路径故障时,后端仍然会持续向故障路径发送返回数据,从而导致返回流量受损。[0043] 图2示出了私网连接容易导致反向流量受损的示意图。在此,图中的客户端可以对应于图1例子中VPC1中的ECS实例1,服务器则可对应于VPC2中的ECS2或3,ECS2或3可以经由未在图2中示出的负载均衡服务来对客户端提供所需的服务。[0044] 如图2所示,可以将前端发往后端(即,从客户端到服务器)的方向称为正向流量或正向报文等。正向流量通常是客户端向服务器端提出的请求。相应地,可以将后端服务器经由LVS(SLB)返回给前端的方向称为反向流量或是反向报文等。反向流量通常是服务器端向客户端返回的数据,例如,服务器端响应于接收到的客户端请求而返回的数据。[0045] 客户端和服务器之间经由私网连接(PVL)连通。在当前的流量通信流程中,当应用场景为存在大规模反向流量的场景(反向流多于正向流)时,如PVL中提供传输路径的ECS实例发生故障(例如,实例所在物理设备宕机)或是反向链路故障,会导致反向流量受损。这是因为出于安全考虑,客户端和服务器之间并不知晓对方的通信地址。当客户端向服务器发送请求时,并不寻址到服务器的IP,而通常寻址PVL的入口(例如,寻址到如下所述的弹性网卡)。随后可有PVL确定要进行该请求传输的具体路径并向服务器进行请求数据的传输。此时,服务器侧的LVS(SLB)(其物理机形态)接收来自该具体传输路径的信息,上述信息除了来自客户端的原始请求之外,还附有该传输路径的路径信息(例如,该路径的ECS实例的IP以及物理机IP等)。服务器侧的LVS需要学习这些信息,才能知晓后续返回数据时应该寻址到哪里。换句话说,LVS会学习数据来源(在专有网络经由私网连接通信时,学习到的是具体传输路径的IP),并使得返回的数据寻址学习到的路径IP。而在缺乏新的正向流触发LVS重新进行学源时,LVS所学习到的路径IP就无法更新,反向流量会一直发给宕机传输路径的ECS实例或受损链路。换句话说,由于SLB学源机制,并且前端、后端和私网连接彼此不知道其他方的内部传输路径,因此现有技术中常规的、由PVL内部或前端主动探查路径存活的机制无法对反向流量受损进行修复。[0046] 为此,需要一种在前端、后端和私网连接彼此不知道其他方的内部传输路径的情况下仍然能够保证前后端之间可靠私网连接通信的方案。图3示出了根据本发明一个实施例的私网连接通信方法的示意性流程图。图4A‑C示出了图3示出的方法所涉及的各个状态的示意图。相比于图2,图4A‑C中进一步示出了服务器侧用于实现负载平衡的虚拟服务器(LVS),以及连接在前端和后端之间以提供相应网关服务的虚拟网关(VGW)。该方法可由在两个专有网络之间设置的私网连接(私网连接装置)实现。在具体实现中,PVL所包含的各个实例可以在相同或不同的物理设备上实现。[0047] 在步骤S310,经由第一路径向后端虚拟服务器发送请求,所述请求包括超时阈值参数以及虚拟网关的IP地址,所述虚拟网关是位于所述私网连接所连接的前端和所述后端之间的网关。在此,PVL内可以包括多个用于数据传输的路径,不同的路径例如可以在不同的服务器实例和客户端之间建立连接。每一个路径可以实现为一个ECS实例,这些实例可以被布置在不同的物理机当中,以便在其中的某一台物理机宕机的情况下。可以启用位于其他正常工作物理机中的路径。[0048] 如图4A所示,当前正使用第一路径(P1)在客户端和LVS(其实是服务器)之间进行数据传输。第一路径可以是PVL控制模块选定的当前正用于在客户端和服务器之间进行数据传输的路径。由于服务器是响应于客户端的请求来向客户端提供数据的,因此在P1发送当前会话下来自客户端的首包时,可以在提供客户端请求的同时,提供自己的IP信息(包括ECS实例IP和/或所在物理机IP),使得LVS在后续返回数据时知晓寻址到哪里。除此之外,第一路径发送给LVS的数据包(尤其是首包)中还可以额外包括虚拟网关VGW的IP地址,以及超时阈值参数(timeout或图5所示的LVS_Timeout)。[0049] 随后,如果后续的数据流量持续为反向流量,使得LVS一直没有接收到来自客户端的新的请求。此时,LVS可以利用在前从P1首包中获取的虚拟网关VGW的IP地址以及超时阈值参数来通过使得客户端能够接收到返回流量而触发新请求来实现P1探活。具体地,如图4B所示,在持续反向流量时,LVS使用学习到的P1的IP地址持续提供反向流量。当没有从客户端接收到任何新请求的时间达到超时阈值参数所规定的阈值时,LVS可以利用获取的虚拟网关VGW的IP地址主动向VGW发送数据,上述数据能够用于触发客户端发送新请求。由此,在步骤S320,响应于来自所述前端的新请求,可以判定所述第一路径故障,其中,所述新请求由所述后端虚拟服务器在所述超时阈值内未接收到来自所述第一路径的数据时向所述虚拟网关发送返回数据所触发的。[0050] 具体地,当前端客户端收到经由VGW转发而获取的来自后端服务端的数据时,前端客户端会发送新的请求。上述新的请求在经由PVL传输时,需要正向探活当前P1的状态,此时就能够通过探活结果来判断P1是否故障(例如,实例所在物理机宕机)。如果响应于来自所述前端的新请求,判定所述第一路径正常工作(即,探活结果为正常),则继续如图4B所示,由第一路径进行数据传输。[0051] 而如果响应于来自所述前端的新请求,判定所述第一路径当前故障(即,探活结果返回超时等),则可以如图4C所示,由第二路径进行数据传输。即,在步骤S330中,响应于判定所述第一路径故障,启用所述第二路径向所述后端虚拟服务器发送请求。此时,第二路径P2向LVS发送的首包可以包括该第二路径P2的IP,并且同样包括虚拟网关VGW的IP地址,以及超时阈值参数(timeout或图5所示的LVS_Timeout)。由于LVS已经经由P1传输的首包知晓了VGWIP和LVS_Timeout,因此在其他一些实施例中,后续路径的首包可以仅包括路径IP,而不必包括虚拟网关VGW的IP地址,以及超时阈值参数。由此,LVS能够继续在超时未接收到客户端发送的正向流量的情况下,对当前路径的运行状态进行主动探知。[0052] 针对私网连接中的正向学源设置中,本发明通过LVS在超时状态下经由VGW发送返回数据而使得客户端发送新请求来实现探询,能够及时获知当前路径发生故障并更换新的路径。[0053] 在一个优选实施例中,如上第一路径和第二路径是快速路径(FP,FastPath),而PVL中还额外包括慢速路径(SP,SlowPath)。换句话说,PVL中同时包括一个PVL‑SP实例和多个PVL‑FP实例。由于私网连接的首要任务是转发网络包,因此可以根据已知的信息来使用不同的路径进行包转发。在此,慢速路径(SP)上传输的是需要额外信息的包,比如查找路由,解析MAC地址等。快速路径(FP)上传输的包则是可以依据已有状态直接进行转发的数据包。[0054] 在本发明中,客户端请求进入PVL的第一条路径可以是慢速路径,即,慢速路径接收来自客户端的首包。慢速路径接收来自前端客户端的数据,进行相应的信息查找并额外携带所述超时阈值参数以及所述虚拟网关的IP地址。随后,作为快速路径的所述第一路径接收所述慢速路径卸载(offload)的额外携带所述超时阈值参数以及所述虚拟网关的IP地址的数据,并用于向所述后端虚拟服务器发送。[0055] 类似地,在后续启用第二路径进行传输时,仍然首先需要慢速路径接收来自前端客户端的数据,进行相应的信息查找并额外携带所述超时阈值参数以及所述虚拟网关的IP地址,随后再将这些信息都卸载至该第二路径。[0056] 进一步地,在PVL中传输的数据,需要根据头协议(例如,NSH头协议)中的约定,添加自己的方向。由此,使得传输路径能够根据数据包中与头协议约定向对应位置的取值来确定数据是来自客户端发送给服务器的数据,还是由服务器发送给客户端的数据。在接收来自后端服务器的首包数据时,仍然需要慢速路径进行相应的操作,例如,校验VNI合法性(即,服务器侧vxlanID合法性),并在首包数据校验合法后将所述首包数据卸载给用于传输的慢速路径。[0057] 另外,如前所述,由前端发出的新请求由后端虚拟服务器在超时阈值内未接收到来自所述第一路径的数据时经由寻址虚拟网关IP地址所触发的。但是由于出于私有网络安全的考虑,在实际操作中,并非由VGW直接将来自后端服务器的返回数据提供给前端并由此触发前端的新消息发送,而是要经过弹性网卡的中转。[0058] 弹性网卡ENI(ElasticNetworkInterface)是一种可以绑定到专有网络VPC类型ECS实例上的虚拟网卡。通过弹性网卡,实现高可用集群搭建、低成本故障转移和精细化的网络管理。具体地,弹性网卡是一种虚拟的网络接口,需绑定到专有网络VPC实例上使用。例如,图1所示的VPC1中的终端节点可以包括弹性网卡,该弹性网卡则可以绑定到客户端ECS1。在一个实施例中,弹性网卡还可以包括主网卡和辅助网卡。主网卡随实例一起创建,生命周期与实例保持一致,不支持从实例上解绑。辅助网卡可以单独创建,支持自由绑定到实例上或从实例上解绑。仅专有网络VPC实例支持弹性网卡。弹性网卡与待绑定的实例必须属于同一专有网络VPC。[0059] 弹性网卡可以用作客户端所在VPC与PVL的连接点。为此,弹性网卡接收来自前端客户端的寻址所述弹性网卡的数据;所述弹性网卡将来自前端客户端的首包数据提供给所述慢速路径,并将后续数据包提供给所述第一路径。[0060] 所述弹性网卡可以接收来自所述虚拟网卡的返回数据并将所述返回数据发送给所述前端客户端,所述返回数据是所述后端虚拟服务器在所述超时阈值内未接收到来自所述第一路径的数据时发送给所述虚拟网关IP的,并且所述前端客户端响应于对所述返回数据的接收发送所述新请求数据。[0061] 进一步地,响应于来自所述前端的新请求数据,判定所述第一路径故障包括:所述弹性网卡接收来自所述前端的寻址所述弹性网卡的新请求数据并向所述第一路径发出探活消息;所述弹性网卡基于所述探活消息的反馈判定所述第一路径故障。[0062] 本发明还可以实现为一种私网连接通信系统,包括前端和后端,以及连接在所述前端和所述后端之间的私网连接装置和虚拟网关装置。例如图4A‑C中,前端包括客户端,后端包括LVS和服务器,私网连接装置对应于PVL,虚拟网关装置则对应于VGW。[0063] 所述私网连接装置可以执行如结合图3和图4A‑C即其优选实施例描述的私网连接通信方法。所述后端的虚拟服务器在接收来自所述第一路径或第二路径的首包时,学习所述第一路径的物理IP和虚拟IP地址,并且在返回数据时使用所述物理IP和虚拟IP地址向所述第一路径或第二路径发送返回数据。[0064] 相应地,前端不知晓后端或是私网连接内部路径的IP。为此,前端的客户端向所述私网连接发送寻址所述私网连接的弹性网卡的请求信息,并从所述弹性网卡接收由所述后端服务器经由所述虚拟服务器以及第一路径或第二路径传输的返回数据。[0065] 由此,本发明通过LVS在超时未接到正向流量时主动切换虚拟网关进行返回流量传送来触发客户端的新请求发送。客户端并不知晓返回的流量是经由快速连接传输的还是经由VGW转发的,只是响应于接收到的返回流量发送新请求。新请求仍然交由弹性网卡,弹性网卡则可以在例行的探活机制中发现现有路径故障,并由此进行新路径切换(仍然需要慢速路径在两个方向上的首包校验和卸载)。[0066] 图5示出了使用本发明的私网连接通信方案进行通信的示意图。如下将结合图5描述本发明的一个优选实现。[0067] 由于实现SLB的LVS由物理机实现,本身处于物理网络,因此在回程时具备将报文经VGW送给前端的弹性网卡(BondingENI,即,与实例绑定的ENI)的能力,为此可以通过弹性网卡的能力达到本发明所需的反向流量持续时验证传输路径可靠性的目的。同时,并不希望所有的方向流都经由VGW,因此LVS存在正向流的到达时间戳,在一段时间内,如无正向流更新该时间戳的情况下,则启动该方案的经由VGW返回弹性网卡的流程。同时,由于弹性网卡为ECMP(Equal‑costmulti‑path,等效多路径,是一个逐跳的基于流的负载均衡策略,当路由器发现同一目的地址出现多个最优路径时,会更新路由表,为此目的地址添加多条规则,对应于多个下一跳,可同时利用这些路径转发数据,增加带宽),因此可以存在多个成员,天然具备容灾能力,会将流量发送到可用的PVL‑FP处理。[0068] 在图5中,由①所示的实线指代常规的基于PVL‑FP2的数据收发。由②所示的虚线指代超时后的处理流向。由③所示的点划线指代选择PVL‑FP1后的数据收发流向。[0069] 优选实施例的大致流程如下:[0070] 1.前端触发流量访问,目的IP为弹性网卡的IP;[0071] 2.PVL‑FP首包未命中(Miss),即,首包交由由PVL‑SP处理;[0072] 3.PVL‑SP在原有协议的基础上(原有协议包括校验CVNI(即,ClientVNI,客户端VxlanID)等值),额外携带根据PVL‑Control(PVL控制)配置的VGW‑IP、LVS‑relay‑Timeout(LVS中继超时,即,在前的超时阈值参数),并将数据卸载给FP(此时为选中的FP2);[0073] 4.PVL‑FP2在原有协议基础上,额外携带VGW‑IP、LVS‑relay‑Timeout给LVS;[0074] 5.LVS保持学习PVL‑FP2的携带字段;[0075] 6.流量可由①所示的实线返回客户端,并且在来自后端服务器的首包交由PVL传输时,仍然可以是PVL‑FP首包Miss,由PVL‑SP校验VNI(即,VxlanID)等值,确定合法并向进行PVL‑FP2卸载;[0076] 7.在某一时刻,PVL‑FP2宕机,流量在lvs‑relay‑timeout期间无返回,客户端挂住(即,处于没有接收返回数据的状态);[0077] 8.LVS的up方向Session的无报文时间(即,进入方向会话时间)大于lvs‑relay‑timeout,则反向流量改为发往VGW;[0078] 9.虚线②所示流量的返回弹性网卡,再由弹性网卡返回给客户端;[0079] 10.客户端收到报文,重新发送请求,并经由弹性网卡进行探活,探活结果发现PVL‑FP2故障(例如,宕机),则可选择另一个FP,例如PVL‑FP1进行数据发送(即,由于AVS的ARPRelay功能,去程流量进入PVL‑FP1),类似地,选定PVL‑FP(FP1)同样首包Miss,首包上送PVL‑SP,PVL‑SP校验CVNI等值,确定合法并向进行PVL‑FP1卸载,再由PVL‑FP1传送至LVS;[0080] 11.LVS更新源,将PVL‑FP1识别为寻址目的地;[0081] 12.流量返回路线③,类似地,PVL‑FP1根据NSH头协议识别,区分接收到的数据为LVS返回流量,因此首包MISS,并由PVL‑SP校验VNI等值,确定合法后再卸载至PVL‑FP1,并由PVL‑FP1传送至客户端;[0082] 13.后续流量可以继续按照现有路径转发,即,使用PVL‑FP1进行客户端到服务器之间的数据传输。[0083] 图6示出了根据本发明一实施例可用于实现上述私网连接通信方法的计算设备的结构示意图。[0084] 参见图6,计算设备600包括存储器610和处理器620。[0085] 处理器620可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器620可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器620可以使用定制的电路实现,例如特定用途集成电路(ASIC,ApplicationSpecificIntegratedCircuit)或者现场可编程逻辑门阵列(FPGA,FieldProgrammableGateArrays)。[0086] 存储器610可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器620或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器610可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器610可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD‑ROM,双层DVD‑ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、minSD卡、Micro‑SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。[0087] 存储器610上存储有可执行代码,当可执行代码被处理器620处理时,可以使处理器620执行上文述及的私网连接通信方法。[0088] 上文中已经参考附图详细描述了根据本发明的私网连接通信方法和系统。由此,本发明通过在正向流量超时无响应时启用虚拟网关传输反向流量并进行当前路径探活,避免了私网连接中由于正向学源导致的当前传输路径宕机对反向流量的影响,提升了网络功能虚拟化(NFV)与物理网络的连通可靠性。[0089] 此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。[0090] 或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。[0091] 本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。[0092] 附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0093] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
专利地区:浙江
专利申请日期:2022-03-21
专利公开日期:2024-06-18
专利公告号:CN114826887B