CN113924761B - 云网络可达性分析的方法和系统 - Google Patents

云网络可达性分析的方法和系统 Download PDF

Info

Publication number
CN113924761B
CN113924761B CN202080040858.4A CN202080040858A CN113924761B CN 113924761 B CN113924761 B CN 113924761B CN 202080040858 A CN202080040858 A CN 202080040858A CN 113924761 B CN113924761 B CN 113924761B
Authority
CN
China
Prior art keywords
network
data packet
reachability
vpc
analog
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202080040858.4A
Other languages
English (en)
Other versions
CN113924761A (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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Priority to CN202310413700.2A priority Critical patent/CN116346635A/zh
Publication of CN113924761A publication Critical patent/CN113924761A/zh
Application granted granted Critical
Publication of CN113924761B publication Critical patent/CN113924761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/20Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/26Route discovery packet

Abstract

一种用于提供云网络可达性分析的方法(1200),包括接收可达性查询(20),该可达性查询(20)请求目标(70、250、1110)的可达性状态(172),该可达性查询(20)包括与数据包(24)相关联的包头(22)。该包头包括源IP地址(25a)和目的地IP地址(25b)。该方法还包括使用数据平面模型(164)基于该包头来生成该数据包的一个或多个模拟转发路径(80)。每个模拟转发路径包含相应的网络配置信息(162)。该方法包括基于一个或多个模拟转发路径来确定目标的可达性状态,并将所确定的可达性状态和一个或多个模拟转发路径提供给与可达性查询相关联的用户设备(10),这致使用户设备呈现每个模拟转发路径的网络配置信息。

Description

云网络可达性分析的方法和系统
技术领域
本公开涉及云网络的可达性分析。
背景技术
虚拟私有云(VPC)是在公共云环境中分配的按需可配置共享计算资源池。VPC为用户提供了与其他云用户的隔离。VPC可以执行一个或多个虚拟机(VM),这些虚拟机可以通过虚拟私有网络(VPN)与用户的本地部署网络或其他远程资源进行通信。由于VPC的潜在规模和复杂性,其中可能包括任意数量的VM、网络网关、负载均衡器等,因此通常需要大量的网络配置来操作和维护VPC。
发明内容
本公开的一个方面提供了一种提供云网络可达性分析的方法。该方法包括在数据处理硬件处接收请求目标的可达性状态的可达性查询。该可达性查询包括与数据包相关联的包头。包头包括与该数据包的源相关联的源互联网协议(IP)地址和与该数据包的目的地相关联的目的地IP地址。该分析还包括由数据处理硬件使用数据平面模型基于该包头来生成该数据包的一个或多个模拟转发路径。每个模拟转发路径包含相应的网络配置信息。该方法还包括由该数据处理硬件基于该一个或多个模拟转发路径来确定该目标的可达性状态。该方法还包括由数据处理硬件,向与该可达性查询相关联的用户设备提供确定的该可达性状态和该一个或多个模拟转发路径。该一个或多个模拟转发路径在被该用户设备接收时致使该用户设备呈现每个该模拟转发路径的该网络配置信息。
本公开的实现可以包括以下可选特征中的一个或多个。在一些实施例中,该确定该一个或多个模拟转发路径的可达性状态包括使用网络抽象状态机。该用户设备可以被配置为使用本地通告的路由从远程网络发送该数据包。在一些示例中,该网络配置信息包括以下中的至少一项:用于在虚拟私有云(VPC)网络内引导该数据包的端口/接口;用于在VPC网络之间引导该数据包的端口/接口;用于在VPC网络和非VPC网络之间引导该数据包的端口/接口;在沿相应的该模拟转发路径的每一步应用到该数据包的防火墙规则;或者与沿相应的该模拟转发路径的每一步相关联的网络配置。
可选地,方法包括由该数据处理硬件基于相应的该网络配置信息对该一个或多个模拟转发路径中的每一个执行网络可达性分析。该网络可达性分析可以被配置为以下中的至少一项:确定该数据包沿相应的该模拟转发路径的可达性的最终状态,沿相应的该模拟转发路径找出一个或多个错误配置,或者沿相应的该模拟转发路径找出不一致或过时的配置。
在一些实施例中,该可达性的最终状态包括以下中的任何一项:指示该数据包将被传送到该目的地的传送状态,指示该数据包将被转发到具有未知配置的另一个网络的转发状态,指示该数据包将由于配置检查点故障或丢失配置而被丢弃的丢弃状态,指示由于缺少关键配置而无法进行该网络可达性分析的中止状态。执行该网络可达性分析可以包括以按需模式、连续模式、预提交模式或后提交模式中的至少一个执行网络可达性分析。
在一些示例中,该包头还包括:与该数据包相关联的协议;与该数据包相关联的源端口;和与该数据包相关联的目的地端口。该数据包的源可以包括在第一网络中执行的第一实例,并且该数据包的目的地可以包括在不同于该第一网络的第二网络中执行的第二实例。在一些实施例中,该第一网络包括虚拟私有云(VPC)网络并且该第二网络包括本地部署网络。该第一网络和该第二网络包括各自的虚拟私有云(VPC)网络。
该数据包的源可以包括第一实例,并且该数据包的目的地可以包括第二实例。该第一实例和该第二实例均在同一虚拟私有云(VPC)网络中执行。该数据包的源位于外部网络中,并且该数据包的目的地可以包括在虚拟私有云(VPC)网络中执行的全局HTTPS负载均衡器。该全局HTTPS负载均衡器被配置为将该数据包路由到多个不同的后端虚拟机(VM)中的一个。为该数据包生成一个或多个模拟转发路径可以包括生成从该全局HTTPS负载均衡器到该多个不同的后端中的每一个的相应的模拟转发路径。
本公开的另一个方面提供了一种提供云可达性分析的系统。该系统包括数据处理硬件和与该数据处理硬件通信的存储器硬件。该存储器硬件存储指令,该指令在数据处理硬件上执行时使数据处理硬件执行操作。该操作包括接收请求目标的可达性状态的可达性查询。该可达性查询包括与数据包相关联的包头。包头包括与该数据包的源相关联的源互联网协议(IP)地址和与该数据包的目的地相关联的目的地IP地址。该分析还包括使用数据平面模型基于该包头来生成该数据包的一个或多个模拟转发路径。每个该模拟转发路径包含相应的网络配置信息。该操作还包括基于该一个或多个模拟转发来路径确定目标的可达性状态。该操作还包括,向与该可达性查询相关联的用户设备提供确定的该可达性状态和该一个或多个模拟转发路径。该一个或多个模拟转发路径在被该用户设备接收时致使该用户设备呈现每个该模拟转发路径的该网络配置信息
该方面可以包括以下可选特征中的一个或多个。在一些实施例中,该确定该一个或多个模拟转发路径的可达性状态包括使用网络抽象状态机。该用户设备可以被配置为使用本地通告的路由从远程网络发送该数据包。在一些示例中,该网络配置信息包括以下中的至少一项:用于在虚拟私有云(VPC)网络内引导该数据包的端口/接口;用于在VPC网络之间引导该数据包的端口/接口;用于在VPC网络和非VPC网络之间引导该数据包的端口/接口;在沿相应的该模拟转发路径的每一步应用到该数据包的防火墙规则;或者与沿相应的该模拟转发路径的每一步相关联的网络配置。
可选地,操作包括基于相应的该网络配置信息对该一个或多个模拟转发路径中的每一个执行网络可达性分析。该网络可达性分析可以被配置为以下中的至少一项:确定该数据包沿相应的该模拟转发路径的可达性的最终状态,沿相应的该模拟转发路径找出一个或多个错误配置,或者沿相应的该模拟转发路径找出不一致或过时的配置。
在一些实施例中,该可达性的最终状态包括以下中的任何一项:指示该数据包将被传送到该目的地的传送状态,指示该数据包将被转发到具有未知配置的另一个网络的转发状态,指示该数据包将由于配置检查点故障或丢失配置而被丢弃的丢弃状态,指示由于缺少关键配置而无法进行该网络可达性分析的中止状态。执行该网络可达性分析可以包括以按需模式、连续模式、预提交模式或后提交模式中的至少一个执行网络可达性分析。
在一些示例中,该包头还包括:与该数据包相关联的协议;与该数据包相关联的源端口;和与该数据包相关联的目的地端口。该数据包的源可以包括在第一网络中执行的第一实例,并且该数据包的目的地可以包括在不同于该第一网络的第二网络中执行的第二实例。在一些实施例中,该第一网络包括虚拟私有云(VPC)网络并且该第二网络包括本地部署网络。该第一网络和该第二网络包括各自的虚拟私有云(VPC)网络。
该数据包的源可以包括第一实例,并且该数据包的目的地可以包括第二实例。该第一实例和该第二实例均在同一虚拟私有云(VPC)网络中执行。该数据包的源位于外部网络中,并且该数据包的目的地可以包括在虚拟私有云(VPC)网络中执行的全局HTTPS负载均衡器。该全局HTTPS负载均衡器被配置为将该数据包路由到多个不同的后端虚拟机(VM)中的一个。为该数据包生成一个或多个模拟转发路径可以包括生成从该全局HTTPS负载平衡器到该多个不同的后端中的每一个的相应的模拟转发路径。
本公开的一个或多个实施方式的细节在附图和以下说明书中阐述。通过说明书、和附图、以及权利要求书,其他方面、特征和优点将变得显而易见。
附图说明
图1是用于执行云网络可达性分析的示例系统的示意图。
图2是图1的系统的虚拟机的示例性组件的示意图。
图3A是包括图1的系统的网络抽象状态机的示例性组件的示意图。
图3B是指示所确定的模拟转发路径的可达性状态的示例性报告的示意图。
图4是图3的网络抽象状态机的示意图。
图5是用于模拟一个虚拟机和另一个虚拟机之间的转发路径的网络抽象状态机的状态图的示意图。
图6是用于模拟虚拟机和负载均衡器之间的转发路径的网络抽象状态机的状态图的示意图。
图7是用于模拟虚拟机和本地部署网络之间的转发路径的网络抽象状态机的状态图的示意图。
图8是用于模拟互联网和虚拟机之间的转发路径的网络抽象状态机的状态图的示意图。
图9是用于模拟本地部署网络虚拟机和虚拟私有云虚拟机之间的转发路径的网络抽象状态机的状态图的示意图。
图10A和10B是模拟数据包的最终可达性状态的原因表。
图11是外部主机和虚拟私有云虚拟机之间通过负载均衡器的模拟转发路径的示意图。
图12是执行云网络可达性分析的方法的示例操作安排的流程图。
图13是可用于实施本文描述的系统和方法的示例计算设备的示意图。
在各个附图中,相同的附图符号表示相同的元件。
具体实施方式
虚拟私有云(VPC)是在公共云环境中分配的按需可配置共享计算资源池,以向用户提供与其他云用户的隔离。这种隔离可以通过私有互联网协议(IP)子网的分配和/或虚拟通信结构来实现。VPC可以执行一个或多个虚拟机(VM),这些虚拟机可以通过虚拟私有网络(VPN)与用户的本地部署网络或其他远程资源进行通信,以确保对VPC环境的安全访问。由于一些VPC环境很复杂以及规模很大(即,包括数个VM、网络网关、负载均衡器等),因此通常需要大量的网络配置来操作和维护VPC网络。
此处的实施方式针对云可达性分析器,该云可达性分析器允许用户指定具有多个字段(例如,源和目的地址、协议、源和目的端口等)的包头并模拟数据包(使用包头)通过VPC网络、对等VPC网络、VPN隧道和/或到用户的本地部署网络的至少一个预期转发路径。云可达性分析器为每个模拟路径提供配置信息,包括例如路由和防火墙规则等。与实际验证转发路径的状态(即,通过实际传输数据包)相反,云可达性分析器改为基于VPC网络的活动配置进行分析。这可以称为“基于意图的”包跟踪。
即,云可达性分析器提供对VPC内或VPC与非VPC网络(例如,本地部署网络)之间的网络可达性的基于配置的静态分析。用户可以指定包头的一个或多个参数,并且云可达性分析器生成并模拟包转发路径。云可达性分析器为每个模拟路径的每一步提供匹配配置(例如,防火墙规则、路由等)。因此,云可达性分析器允许用户通过他们的网络配置验证预期可达性,并有助于发现不一致、过时或配置错误的配置。此外,云可达性分析器验证和检测新配置更改中的错误,并分析提议的配置更改对网络连接的影响。
参考图1,在一些实施方式中,示例系统100包括与相应用户12相关联并且经由网络60(例如,互联网)和本地部署网络70(即,用户设备10用于连接到网络60的本地网络)与远程系统140通信的用户设备10。本地部署网络70包括用作该本地部署网络70的转发主机的网络网关72(例如,路由器)。用户设备10可以对应于任何计算设备,例如台式工作站、膝上型工作站或移动设备(即,智能电话)。用户设备10包括计算资源18(例如,数据处理硬件)和/或存储资源16(例如,存储器硬件)。
远程系统140可以是具有可扩展/弹性资源142,包括计算资源144(例如,数据处理硬件)和/或存储资源146(例如,存储器硬件),的单个计算机、多个计算机或分布式系统(例如,云环境)。数据存储(即,远程存储设备)可以覆盖在存储资源146上,以允许客户端或计算资源144中的一个或多个可扩展地使用存储资源146。远程系统140被配置为实施和执行一个或多个虚拟机(VM)250、250a-n。一个或多个VM在与用户12相关联或被用户12操作的虚拟私有云(VPC)环境或VPC网络148中安全地执行。VPC网络148可以包括各种其他网络元件,例如负载均衡器、网关、前端和后端。
在图2所示的示例中,分布式系统140包括资源110(例如,硬件资源110h)的集合210、虚拟机监视器(VMM)220、执行VM 250中的一个或多个的VM层240、以及应用层260。每个硬件资源110h可以包括一个或多个物理中央处理单元(pCPU)144(“物理处理器144”)和存储器硬件146。虽然每个硬件资源110h被示为具有单个物理处理器144,但任何硬件资源110h都可以包括多个物理处理器144。操作系统212可以在资源110的集合210上执行。
在一些示例中,VMM 220对应于虚拟管理器(hypervisor)220(例如,计算引擎),该虚拟管理器包括被配置为创建和执行VM 250的软件、固件或硬件中的至少一个。与执行一个或多个VM 250的VMM 220相关联的计算机(即,数据处理硬件144)可以被称为主机(hostmachine),而每个VM 250可以被称为客机(guest machine)。这里,VMM 220或虚拟管理器被配置为向每个VM 250提供具有虚拟操作平台的相应客体操作系统(OS)212g,并管理相应客体OS 212g在VM 250上的执行。如这里所使用的,每个VM 250可以被称为“实例”或“VM实例”。在一些示例中,各种操作系统的多个实例可以共享虚拟化资源。例如,
Figure GDA0003924757310000061
操作系统的第一VM 250、
Figure GDA0003924757310000062
操作系统的第二VM 250和OS
Figure GDA0003924757310000063
操作系统的第三VM 250都可以在单个物理x86机器上运行。
VM层240包括一个或多个虚拟机250。分布式系统140使用户12能够按需启动VM250。VM 250模拟真实的计算机系统并基于真实的计算机系统或假设的计算机系统的计算机体系结构和功能进行操作,这可能涉及专门的硬件、软件或其组合。在一些示例中,分布式系统140在启动一个或多个VM 250之前授权和验证用户12。软件实例,或简称为实例,指代托管在(执行在)分布式系统140的数据处理硬件144上的VM 250。
每个VM 250可以包括一个或多个虚拟中央处理单元(vCPU)252(“虚拟处理器”)。在所示示例中,第一虚拟机250a包括一个或多个虚拟处理器252的第一组252a并且第二虚拟机250b包括一个或多个虚拟处理器252的第二组252b。虽然第二组252b被示为仅包括一个虚拟处理器252,但是任何数量的虚拟处理器252都是可能的。每个虚拟处理器252模拟一个或多个物理处理器144。例如,一个或多个虚拟处理器252的第一组252a模拟一个或多个物理处理器144的第一组113a,一个或多个虚拟处理器252的第二组252b模拟一个或多个物理处理器144的第二组113b。应用层260包括可以在虚拟机250上执行的软件资源110s、110sa、110sb(软件应用)。
通常,软件的每个实例(例如,虚拟机250)包括至少一个虚拟存储设备262,该至少一个虚拟存储设备262为物理存储器硬件146上的服务提供易失性和非易失性存储容量。例如,物理存储器硬件146上的存储容量可以包括永久磁盘(PD),该永久磁盘(PD)跨多个物理磁盘(例如,存储器硬件146的存储器区域116)为用户12存储数据,或者可以包括随机存取存储器(RAM)以提供易失性存储器。更具体地,对应VM 250的每个虚拟存储设备262以字节或位(块)的序列将数据移动到存储器硬件146上关联的物理块存储卷V以提供非易失性存储。因此,对应VM实例250的虚拟存储设备262提供映射到存储器硬件146上相应的物理块存储卷V的存储容量。在一些示例中,虚拟存储设备262支持对存储器硬件146上的数据的随机访问并且通常使用缓冲的I/O。示例包括硬盘、CD-ROM驱动器和闪存驱动器。类似地,物理存储器硬件146的易失性存储器(例如,RAM)的部分可以跨虚拟存储设备262划分。
在客体操作系统212g内驻存有客体内核214g。内核是一种计算机程序,它是操作系统的核心,可以完全访问和控制操作系统(OS)。也就是说,内核是应用110s和主体机的硬件资源110h之间的中介。大多数现代计算系统将虚拟内存隔离为受保护的内核空间和用户空间216g。内核通常保留在受保护内核空间内的易失性存储器中并且与用户空间216g隔离。为了增加安全性和可靠性,应用110s和其他软件服务通常在客体用户空间216g中执行并且缺乏与受保护内核空间交互所需的权限。
返回参考图1,远程系统140执行云可达性分析器150,用于分析VPC网络148和/或本地部署网络70之间或之内的一个或多个网络转发路径80、80a-n以确定可达性状态172和/或关于每个网络转发路径80的网络配置信息162。
云可达性分析器150从用户设备10接收请求目标的可达性状态172的可达性查询20。目标可以包括本地网络网关72、一个或多个VM 250、防火墙规则和/或VCP网络148的其他组件,例如负载均衡器(图11)。当目标是防火墙规则时,可达性状态172取决于是否存在可以传送到VPC网络148并且命中配置中的特定规则的包。可达性查询20包括与数据包24相关联的包头22(例如,互联网协议(IP)版本4(IPv4)或IP版本6(IPv6)包头)。在一些示例中,可达性查询20包括数据包24和相关联的包头22,而在其他示例中,云可达性分析器150接收包头22并生成相应的数据包24。包头22包括多个数据包参数25、25a-n。例如,包头22包括源互联网协议(IP)地址25a和目的地IP地址25b。可选地,包头22包括其他参数25,例如协议类型25c、源端口25d和/或目的地端口25e。
云可达性分析器150包括路径生成器160,该路径生成器160接收或获得具有关联的包头22的数据包24。路径生成器160使用数据平面模型164基于包头22为数据包24生成一个或多个模拟转发路径80(在此也称为踪迹)。每个模拟转发路径80包含相应的网络配置信息162。数据平面模型164从VPC网络148的网络组件获得网络配置信息162,并且包括,例如,用于在VPC网络148内引导数据包24的端口/接口、用于在不同VPC网络148之间引导数据包24的端口/接口、用于在VPC网络148和非VPC网络(例如,本地部署网络70)之间引导数据包24的端口/接口、在沿着相应的模拟转发路径80的每一步应用到数据包24的防火墙规则、和/或与沿着相应的模拟转发路径80的每一步相关联的网络配置。如这里所使用的,沿着模拟转发路径80的每一步指的是源实例和目的地实例之间的中间设备(例如,网关、负载均衡器等)。
在一些实施方式中,数据平面模型164是理想化的数据平面模型,其通过从网络配置信息162派生出实例来对网络148数据平面建模。在一些示例中,网络配置信息162存储在与VPC网络148相关联的项目配置中。数据平面模型164分析派生出的实例以确定和验证可达性属性。即,数据平面模型164抽象出相关网络配置以用于可达性分析。网络配置信息162可以包括VPC网络配置信息、网络服务信息(例如,负载均衡)、混合云配置、VM配置和/或平台配置(例如,用于容器化应用的平台)。
模拟转发路径80代表VPC网络148内和/或VPC网络148与本地部署网络70之间的数据包24转发路径。例如,一个模拟转发路径80表示从第一实例(例如,VM 250a)到第二实例(例如,VM 250b)的转发路径,其中,该第一实例和第二实例都在相同的VPC网络148中执行。可选地,一个模拟转发路径80的数据包的源是在作为VPC网络148的第一网络中执行的实例(例如,VM 250),以及目的地是在作为与第一网络不同的VPC网络148的第二网络中执行的第二实例(例如,不同的VM 250)。
在另一示例中,一个模拟转发路径80表示从一个VM 250到外部网络(例如,互联网60)的转发路径80。即,数据包24的源(即,源IP地址25a)包括在第一网络中执行的第一实例(例如,VPC网络148中的VM 250),以及数据包24的目的地(即,目的地IP地址25b)包括在不同于第一网络的第二网络(例如,本地部署网络70)中执行的第二实例。在其他示例中,模拟转发路径80表示到负载均衡器1110(图11)的VM 250和/或到本地部署网络70的网络网关72(例如,经由虚拟私有网络(VPN)隧道)的VM 250。这些示例中的每一个示例也可以在方向上相反。即,模拟转发路径80中的一个可以包括到VM 250或负载均衡器1110的互联网60和/或到VM 250的本地部署网络网关72。用户设备10可以被配置为使用本地通告的路由从远程网络(例如,本地部署网络70)发送数据包24。即,因为云可达性分析器150可能无法访问本地部署网络70的网络配置信息162,云可达性分析器150可能无法验证是否为源自本地部署网络70的数据包24配置了正确的路由和防火墙规则。然而,云可达性分析器150可以验证来自VPC网络148的配置是否将允许将数据包24递送到预期目的地。云可达性分析器150验证的最关键的配置包括通告的路由和入口防火墙规则。
作为另一示例,数据包24的源位于外部网络(例如,本地部署网络70)中并且数据包24的目的地包括在VPC网络148中执行的全局HTTPS负载均衡器1110。全局HTTPS负载均衡器1110可以被配置为将数据包24路由到多个不同后端VM 250中的一个(图11)。路径生成器160可以生成从全局HTTPS负载均衡器到多个不同后端VM 250中的每一个的相应的模拟转发路径80。
此处讨论的示例性路径80仅是说明性的而不是限制性的。即,云可达性分析器150也可以分析或模拟其他转发路径80。例如,云可达性分析器150可以接收或获得其他网络(例如,本地部署网络70或对等VPC网络)的网络配置信息162(例如,来自用户12)并且包括通过这些网络的模拟路径80。换言之,云可达性分析器150可以分析通过该云可达性分析器150获取网络配置信息162的任何网络和相关联的网络组件(例如,网关、负载均衡器、前端、后端等)的转发路径80。在一些示例中,云可达性分析器150在网络配置信息162不再可得时(例如,在本地部署网关72处)停止分析。
路径生成器160将路径80和相应的网络配置信息162传递给路径分析器170,该路径分析器170基于一个或多个模拟转发路径80确定可达性查询20的目标的可达性状态172。在一些示例中,路径分析器170基于相应的网络配置信息162对一个或多个模拟转发路径80中的每一个执行网络可达性分析。路径分析器170可以以按需模式、连续模式、预提交模式或后提交模式中的至少一个执行网络可达性分析。例如,可达性查询20可以指示对单个模拟的请求,或对连续模拟的请求直到用户设备10指示云可达性分析器150停止(或满足某个其他阈值,例如,已经超过了一个时间量)。在一些实施方式中,路径分析器170通过发现沿着相应的模拟转发路径80的一个或多个错误配置或发现沿着相应的模拟转发路径80的不一致或过时的配置,来确定沿着相应的模拟转发路径80的数据包24的可达性的最终状态172(本文也称为可达性状态172)。
云可达性分析器150向与可达性查询20相关联的用户设备10提供确定的可达性状态172和一个或多个模拟转发路径80。如下文更详细的讨论,一个或多个模拟转发路径80在被用户设备10接收时致使用户设备10向用户12呈现每个模拟转发路径的网络配置信息162。
现在参考图3A,在一些实施方式中,路径分析器170包括用于生成一个或多个模拟转发路径80的网络抽象状态机(NAM)400。NAM 400可以是VPC网络148如何处理数据包的理想模型。在一些示例中,NAM 400是一种抽象,因此独立于VPC网络148的实际实施。可选地,NAM 400确定数据包24的可达性的最终状态172,该可达性的最终状态172包括以下中的任何一项:指示数据包24将被传送到目的地的传送状态174a,指示数据包24将被转发到具有未知配置的另一个网络的转发状态174b,指示数据包24将由于配置检查点故障或丢失配置而被丢弃的丢弃状态174c,或者指示由于缺少关键配置而无法进行网络可达性分析的中止状态174d。NAM 400可以是非确定性的,因为一个状态可以具有多个后继状态。例如,当多个具有相同IP掩码和优先级的路由应用于一个数据包时,根据未指定的哈希函数在从中选择一个路由。尽管原则上这是一个确定性过程,但通过非确定性地选择其中一个路由来建模更好,因为哈希函数是一个可能会发生变化的内部实现。
现在参考图3B,云可达性分析器150向用户设备10提供每个模拟转发路径80的确定的可达性状态172。这致使用户设备向用户12呈现每个模拟转发路径80的网络配置信息162。例如,报告300可以向用户12指示关于生成的数据包24的细节(例如,包头22)。报告300可以指示与沿踪迹或模拟转发路径80的每一步310、310a-n或跳有关的信息。在所示示例中,数据包24在步310a(即,步0)离开源实例,在步310b(即,步1)应用到出口防火墙规则,在步310c(即,步2)路由该数据包,在步310d(即,步3)到达目的地实例,在步310e(即,步4)应用到入口防火墙规则,并在步310f(即,步5)传送到目的地实例。这些步骤310中的每一个都包括相关的网络配置信息162。
报告300可以指示每个模拟转发路径80的确定的可达性状态172的原因或基本原理(例如,由于防火墙规则拒绝而丢弃数据包),以帮助排除和/或检测由不一致的配置和无效配置引起的网络连通性,或验证新的或更改的配置。在一些示例中,云可达性分析器150提供配置改变影响分析。每个模拟转发路径80可以作为应用(例如,网络浏览器)的一部分呈现为用户设备上的图形用户界面(GUI)的一部分。虽然所示示例仅提供关于单个转发路径80(即,踪迹1)的细节,但可以提供模拟的每个转发路径80(即,多个踪迹)。在一些示例中,报告300包括指示数据包24的确定的可达性状态172的概要部分320。
现在参考图4,在一些实施方式中,NAM 400包括出口检查410、入口检查420和路径特定检查430。在一些示例中,出口检查410包括出口防火墙检查412和匹配路由414。出口防火墙检查找出(例如,在网络配置信息162内)匹配的出口防火墙规则。出口防火墙规则是应用于源实例(例如,VM 250)的防火墙规则。匹配路由414可以为模拟转发路径80找到并应用适当的路由。当源实例是VM 250时,匹配路由414还可以确定是否存在用于目的地IP地址25b的匹配路由。当没有匹配的路由时,NAM 400可以将路由与下一跳作为互联网网关的默认路由匹配。入口防火墙检查422,与出口防火墙检查412一样,查找并应用匹配的入口防火墙规则(即,应用于目的地实例的防火墙规则)。
路径特定检查430是基于NAM 400正在评估的模拟转发路径80的类型。即,路径特定检查430取决于模拟转发路径80的源实例和目的地实例。例如,当目的地实例是通过VPN隧道434的VPN网关432时,特定状态(图7)包括在NAM 400的评估中。同样,当目标实例是具有转发规则436的负载均衡器时,会评估不同的状态(图6和图8)。当目的地实例是对等网络网关438时,在NAM 400的状态机中评估其他状态。
图5-9示出了在分析数据包24的不同模拟转发路径80时代表NAM 400的示例性状态机500、600、700、800、900。例如,图5示出了当分析第一VM 250和第二VM 250或第一VM250到互联网60之间的模拟转发路径80时NAM 400的状态机500。状态机500开始于对应于源VM 250的实例状态510。从那里,当VM 250被允许发送/接收具有外来IP的数据包时,状态机500转换到中止状态512(当分析由于,例如,丢失网络配置信息162而无法继续时)、应用出口防火墙规则514或欺骗检查518状态。由于网络配置检查失败或丢失网络配置信息162,数据包24可能在丢弃状态516被丢弃。在状态520找到并应用适当的路由,并且数据包24可以在状态522到达VM实例,在状态528被转发到配置未知的另一个网络(因此分析停止),在状态526由于网络地址转换(NAT)而修改包头22,或在状态524应用入口防火墙规则。在状态530,数据包24被传送到包头22中指定的目的地。
现在参考图6,当分析VM 250和负载均衡器1110(图11)之间的模拟转发路径80时,状态机600代表NAM 400。状态机600开始于对应于源VM 250的实例状态610。从那里,当VM250被允许发送/接收具有外来IP的数据包时,状态机600转换到中止状态612(当分析由于,例如,丢失网络配置信息162而无法继续时)、应用出口防火墙规则614或欺骗检查618状态。由于网络配置检查失败或丢失网络配置信息162,数据包24可能在丢弃状态616被丢弃。在状态620找到并应用适当的路由,并在状态622将其转发到配置未知(因此分析停止)的另一个网络。在状态624,NAM 400应用适当的转发规则,并且在状态626到达内部或外部负载均衡器1110。从那里,数据包24可以被转发到一个或多个后端628、628a-n,并且数据包要么在状态630被丢弃,要么在状态632被传送。
现在参考图7,当通过VPN分析VM 250和本地部署网络70之间的模拟转发路径80时,状态机700代表NAM 400。状态机700开始于对应于源VM 250的实例状态710。从那里,当VM 250被允许发送/接收具有外来IP的数据包时,状态机600转换到中止状态712(当分析由于,例如,丢失网络配置信息162而无法继续时)、应用出口防火墙规则714或欺骗检查718状态。由于网络配置检查失败或丢失网络配置信息162,数据包24可能在丢弃状态716被丢弃。在状态720找到并应用适当的路由,并在状态722将其转发到配置未知(因此分析停止)的另一网络,并随后转发到一个或多个本地部署后端728、728a-n。在状态724,数据包24到达VPN隧道的本地侧,并且在状态726,数据包24到达VPN网关并且可以被转发到一个或多个VCP后端628。
现在参考图8,当分析互联网60与VM 250或互联网60与负载均衡器1110之间的模拟转发路径80时,状态机800代表NAM 400。状态机800从互联网状态810开始,用于源自互联网60的数据包24。从那里,当数据包24由于网络配置检查失败或丢失网络配置信息162而被丢弃时,状态机800可以进行到状态816。状态机800还可以进行到状态812并且由于NAT而修改包头22。从NAT状态812,数据包24在818到达VM实例,并且要么在状态820被丢弃,要么在状态822被传送。当目的地是负载均衡器1110时,状态机800也可以进行到状态814,并应用适当的转发规则。从那里,状态机800进行到状态824,其中数据包24到达外部负载均衡器。接下来,当先前连接被代理到新连接时,状态机800转换到代理连接状态826,并且NAM 400生成新数据包24用于后续踪迹或模拟。否则,状态机800模拟将数据包24转发到一个或多个后端628,其中数据包在状态828被丢弃或在状态830被传送。
现在参考图9,当分析本地部署网络70(例如,位于本地部署网络70内的VM)到VCPVM 250之间的模拟转发路径80时,状态机900代表NAM 400。这里,状态机900开始于状态910,其中数据包24源自私有网络(例如,本地部署网络70)。从那里,状态机900转换到状态912并应用适当的路由。状态机900接下来或者由于网络配置检查失败或丢失网络配置信息162而在状态914丢弃包,或者在状态916被处理以到达实例。从那里,NAM 400在状态918应用入口防火墙规则并在状态920传送数据包。
在一些示例中,云可达性分析器150通过反向追踪由VPC网络148通告到本地部署网络70的路由来模拟转发路径80。虽然云可达性分析器150通常无权访问本地部署网络配置,但云可达性分析器150确实有权访问(例如,通过到本地部署网络70的VPN)静态和动态路由的配置。因此,云可达性分析器可以模拟VPC网络148路由,该VPC网络148路由是本地部署网络70应该为动态路由配置或接收的。当数据包24来自本地部署网络范围(从VPN相关路由派生)时,云可达性分析器150可以对该包应用“推断”路由。
现在参考图10A和10B,表1000a、1000b图示了NAM 400中数据包的潜在最终可达性状态172(即,丢弃174a、转发174b、传送174c或中止174d),相对最终状态NAM的先前状态400(图5-9),以及最终状态的相关原因。也就是说,表1000a、1000b提供了转换到状态机500、600、700、800、900中的最终状态174a-d的示例性原因。
现在参考图11,示例性转发路径80c开始于外部主机(例如,用户设备10),经由互联网60传递到VPC网络148内的负载均衡器1110。负载均衡器1110将数据包转发到前端服务器1020,前端服务器1020将数据包分发到一个或多个后端或VM 250。此场景中的转发路径80c比典型的网络级负载均衡器更复杂。在该示例中,云可达性分析器150追踪从外部主机(例如,用户设备10)到负载均衡器1110(例如,全局HTTPS负载均衡器)的数据包24。在一些示例中,负载均衡器是代理负载均衡器并且因此TCP连接在前端服务器1020处终止,并且前端服务器1020发起与一个或多个后端VM 250的新TCP连接。云可达性分析器使用NAM 400模拟这种行为。而在实际的数据平面中,负载均衡算法可以为每个连接选择VM,云可达性分析器150可以是一个静态配置分析工具,它不预测数据平面路径,而是识别任何配置问题以给用户提供有关预期行为的额外可见性。因此,在这种情况下,云可达性分析器150为每个可能的路径提供追踪(例如,到VM 250a的第一跟踪、到VM 250b的第二跟踪和到VM 250b的第三跟踪)。
图12是执行云网络可达性分析的方法的示例性操作安排的流程图。方法1200包括,在操作1202,在数据处理硬件144处接收请求目标70、250、1110的可达性状态172的可达性查询20。可达性查询20包括与数据包24相关联的包头22,包头22包括与数据包24的源相关联的源IP地址25a和与数据包24的目的地相关联的目的地IP地址25b。
在操作1204,方法1200包括由数据处理硬件144使用数据平面模型164基于该包头22为数据包24生成一个或多个模拟转发路径80。每个模拟转发路径80包括对应的网络配置信息162。在操作1206,方法1200包括由数据处理硬件144基于一个或多个模拟转发路径80确定目标70、250、1110的可达性状态172。在操作1208,方法1200包括由数据处理硬件144向与可达性查询20相关联的用户设备10提供确定的可达性状态172和一个或多个模拟转发路径80。一个或多个模拟转发路径80在被用户设备10接收时致使用户设备10呈现每个模拟转发路径80的网络配置信息162。
图13是可用于实现本文档描述的系统和方法的示例计算设备1300的示意图。计算设备1300旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片式服务器、大型计算机、和其它合适的计算机。本文所示的部件、它们的连接和关系、以及它们的功能仅仅旨在作为示例,并且不旨在限制本文档中描述的和/或者要求保护的本发明的实施。
计算设备1300包括:处理器1310(例如,数据处理硬件)、存储器1320、存储设备1330、连接至存储器1320和高速扩展端口1350的高速接口/控制器1340、和连接至低速总线1370和存储设备1330的低速接口/控制器1360。通过使用不同的总线将每个部件1310、1320、1330、1340、1350、和1360互相连接,并且可以将上述每个部件安装在公共主板上、或者根据需要以其它的方式安装上述每个部件。处理器1310可以对在计算设备1300内执行的指令进行处理,指令包括存储在存储器1320中或者存储设备1330上以在外部输入/输出设备上显示图形用户界面(GUI)的图形信息的指令,外部输入/输出设备诸如为耦合至高速接口1340的显示器1380。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多种存储器一起使用。同样,可以连接多个计算设备1300,每个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。
存储器1320将信息非暂时性地存储在计算设备1300内。存储器1320可以是计算机可读介质、(多个)易失性存储器单元、或者(多个)非易失性存储器单元。非易失性存储器1320可以是用于在暂时或者持久基础上存储供计算设备1300使用的程序(例如,指令序列)或者数据(程序状态信息)的物理设备。非易失性存储器的示例包括,但不限于:闪存和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除编程只读存储器(EPROM)/电可擦除编程只读存储器(EEPROM)(例如,通常用于诸如为引导程序的固件)。易失性存储器的示例包括:但不限于,随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)、以及光盘或者磁带。
存储设备1330能够为计算设备1300提供海量存储。在一些实施方式中,存储设备1330是计算机可读介质。在各种不同的实施方式中,存储设备1330可以是软盘设备、硬盘设备、光盘设备、或者磁带设备、闪存或者其它相似的固态存储器设备、或者设备阵列,包括:在存储区域网络或者其它配置中的设备。在附加实施方式中,计算机程序产品有形地体现为信息载体。计算机程序产品包含指令,该指令在被执行时执行一种或者多种方法,诸如,上文描述的方法。信息载体是计算机可读介质或者机器可读介质,诸如,存储器1320、存储设备1330、或者在处理器1310上的存储器。
高速控制器1340管理计算设备1300的带宽密集型操作,而低速控制器1360管理较低带宽的密集型操作。这种功能分配仅仅是示例性的。在一些实施方式中,高速控制器1340耦合至存储器1320、显示器1380(例如,通过图形处理器或者加速器)耦合至高速扩展端口1350,该高速扩展端口1150可以接受各种扩展卡(未示出)。在一些实施方式中,低速控制器1360耦合至存储设备1330和低速扩展端口1390。低速扩展端口1390可以包括各种通信端口(例如,USB、蓝牙、以太网,和无线以太网),可以,例如通过网络适配器,耦合至一个或者多个输入/输出设备,例如,键盘、指向设备、扫描器、或者诸如交换机或者路由器的网络设备。
如图所示,可以利用多种形式来实施计算设备1300。例如,可以将计算设备1300实施为标准服务器1300a、或者多次实施在一组这种服务器1300a中、或者实施为膝上型计算机1300b、或者实施为机架式服务器系统1300c的一部分。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统和/或光学电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用的,可以从存储系统、至少一个输入设备、和至少一个输出设备接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入设备、和该至少一个输出设备。
软件应用(即,软件资源)可以指使计算设备执行任务的计算机软件。在一些示例中,可以将软件应用称为“应用”、“应用程序”、或者“程序”。示例应用包括:但不限于,系统诊断应用、系统管理应用、系统维护应用、文字处理应用、电子表格应用、消息应用、媒体流应用、社交网络应用、和游戏应用。
这些计算机程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、非暂时性计算机可读介质、设备、和/或设备(例如,磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
可以通过一个或者多个可编程处理器来执行本说明书中所描述的过程和逻辑流程,该一个或者多个可编程处理器执行一个或者多个计算机程序以通过操作输入数据并且生成输出来执行功能。也可以通过诸如FPGA(现场可编程门阵列)或者ASIC(专用集成电路)的专用逻辑电路来执行过程和逻辑流程。适合执行计算机程序的处理器包括:例如,通用微处理器、专用微处理器、以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的必要元件是:用于执行指令的处理器、和用于存储指令和数据的一个或者多个存储器设备。一般而言,计算机还将包括用于存储数据的一个或者多个海量存储设备,或者计算机可以操作地耦合以接收来自该一个或者多个海量存储设备的数据或者将数据传输至该一个或者多个海量存储设备或者进行两者,该海量存储设备例如为磁盘、磁光盘、或者光盘。然而,计算机不必具有这种设备。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括,例如,半导体存储设备(例如EPROM,EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动磁盘)、磁光盘、以及CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。
为了提供与用户的交互,可以在计算机上实施本公开的一个或者多个方面,该计算机具有:用于向用户显示信息的显示设备,例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器、或者触摸屏、以及可选地包括键盘和指向设备(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向设备来将输入提供给计算机。其它种类的设备可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或者触觉反馈;并且可以用包括声输入、语音输入或者触觉输入的任何形式来接收来自用户的输入。另外,计算机可以通过将文档发送到用户所使用的设备并且接收来自该设备的文档,来与用于交互,例如,通过响应于从网络浏览器接收的请求来将网页发送至在用户的客户端设备上的网络浏览器。
已经描述了多个实施方式。然而,可理解的是,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在所附权利要求的范围内。

Claims (28)

1.一种云网络可达性分析的方法(1200),其特征在于,所述方法(1200)包括:
在数据处理硬件(144)处接收请求目标(70、250、1110)的可达性状态(172)的可达性查询(20),所述可达性查询(20)包括与数据包(24)相关联的包头(22),所述包头(22)包括:
与所述数据包(24)的源相关联的源互联网协议IP地址(25a);和
与所述数据包(24)的目的地相关联的目的地IP地址(25b);
由所述数据处理硬件(144)使用数据平面模型(164)基于所述包头(22)来生成所述数据包(24)的一个或多个模拟转发路径(80),每个模拟转发路径(80)包括相应的网络配置信息(162);
由所述数据处理硬件(144),使用网络抽象状态机(400),基于所述一个或多个模拟转发路径(80)来确定所述目标(70、250、1110)的所述可达性状态(172),其中所述网络抽象状态机(400)包括基于正在评估的所述模拟转发路径(80)的类型的路径特定检查,所述模拟转发路径(80)基于第一软件实例和第二软件实例,其中所述第一软件实例和所述第二软件实例应用于所述相应模拟转发路径(80);以及
由所述数据处理硬件(144)向与所述可达性查询(20)相关联的用户设备(10)提供每个确定的所述可达性状态(172)和所述一个或多个模拟转发路径(80),所述一个或多个模拟转发路径(80)在被所述用户设备(10)接收时致使所述用户设备(10)呈现每个模拟转发路径(80)的所述网络配置信息(162)。
2.根据权利要求1所述的方法(1200),其特征在于,所述用户设备(10)被配置为使用本地通告的路由从远程网络发送所述数据包(24)。
3.根据权利要求1所述的方法(1200),其特征在于,所述网络配置信息(162)包括以下中的至少一项:
用于在虚拟私有云VPC网络(148)内引导所述数据包(24)的端口/接口;
用于在VPC网络(148)之间引导所述数据包(24)的端口/接口;
用于在VPC网络(148)和非VPC网络(70)之间引导所述数据包(24)的端口/接口;在沿相应的所述模拟转发路径(80)的每一步应用到所述数据包(24)的防火墙规则;或者
与沿相应的所述模拟转发路径(80)的每一步相关联的网络配置。
4.根据权利要求1所述的方法(1200),其特征在于,还包括由所述数据处理硬件(144)基于相应的所述网络配置信息(162)对所述一个或多个模拟转发路径(80)中的每一个执行网络可达性分析。
5.根据权利要求4所述的方法(1200),其特征在于,所述网络可达性分析被配置为以下中的至少一项:
确定所述数据包(24)沿相应的所述模拟转发路径(80)的可达性的最终状态;
沿相应的所述模拟转发路径(80)找出一个或多个错误配置;或者
沿相应的所述模拟转发路径(80)找出不一致或过时的配置。
6.根据权利要求5所述的方法(1200),其特征在于,所述可达性的最终状态包括以下中的任何一项:
指示所述数据包(24)将被传送到所述目的地的传送状态(174a);
指示所述数据包(24)将被转发到具有未知配置的另一个网络的转发状态(174b);
指示所述数据包(24)将由于配置检查点故障或丢失配置而被丢弃的丢弃状态(174c);或者
指示由于缺少关键配置而无法进行所述网络可达性分析的中止状态(174d)。
7.根据权利要求4所述的方法(1200),其特征在于,执行所述网络可达性分析包括以按需模式、连续模式、预提交模式或后提交模式中的至少一个执行所述网络可达性分析。
8.根据权利要求1所述的方法(1200),其特征在于,所述包头(22)还包括:
与所述数据包(24)相关联的协议(25c);
与所述数据包(24)相关联的源端口(25d);和
与所述数据包(24)相关联的目的地端口(25e)。
9.根据权利要求1所述的方法(1200),其特征在于,所述数据包(24)的所述源包括在第一网络中执行的所述第一软件实例,并且所述数据包(24)的所述目的地包括在不同于所述第一网络的第二网络中执行的所述第二软件实例。
10.根据权利要求9所述的方法(1200),其特征在于,所述第一网络包括虚拟私有云VPC网络(148)并且所述第二网络包括本地部署网络(70)。
11.根据权利要求9所述的方法(1200),其特征在于,所述第一网络和所述第二网络包括各自的虚拟私有云VPC网络(148)。
12.根据权利要求1所述的方法(1200),其特征在于,所述数据包(24)的所述源包括所述第一软件实例并且所述数据包(24)的所述目的地包括所述第二软件实例,所述第一软件实例和所述第二软件实例均在同一虚拟私有云VPC网络(148)中执行。
13.根据权利要求1所述的方法(1200),其特征在于,所述数据包(24)的所述源位于外部网络中,并且所述数据包(24)的所述目的地包括在虚拟私有云VPC网络(148)中执行的全局HTTPS负载均衡器(1110),所述全局HTTPS负载均衡器(1110)被配置为将所述数据包(24)路由到多个不同的后端虚拟机VM(250)中的一个。
14.根据权利要求13所述的方法(1200),其特征在于,生成所述数据包(24)的一个或多个模拟转发路径(80)包括生成从所述全局HTTPS负载均衡器(1110)到所述多个不同的后端虚拟机VM(250)中的每一个的相应的模拟转发路径(80)。
15.一种云网络可达性分析的系统(100),其特征在于,所述系统(100)包括:
数据处理硬件;和
与所述数据处理硬件通信的存储器硬件,所述存储器硬件存储指令,所述指令在所述数据处理硬件上执行时使所述数据处理硬件执行以下操作:
接收请求目标(70、250、1110)的可达性状态(172)的可达性查询(20),所述可达性查询(20)包括与数据包(24)相关联的包头(22),所述包头(22)包括:
与所述数据包(24)的源相关联的源互联网协议IP地址(25a);和
与所述数据包(24)的目的地相关联的目的地IP地址(25b);
使用数据平面模型(164)基于所述包头(22)来生成所述数据包(24)的一个或多个模拟转发路径(80),每个模拟转发路径(80)包括相应的网络配置信息(162);
使用网络抽象状态机(400),基于所述一个或多个模拟转发路径(80)来确定所述目标(70、250、1110)的所述可达性状态(172),其中所述网络抽象状态机(400)包括基于正在评估的所述模拟转发路径(80)的类型的路径特定检查,所述模拟转发路径(80)基于第一软件实例和第二软件实例,其中所述第一软件实例和所述第二软件实例应用于所述相应模拟转发路径(80);以及
向与所述可达性查询(20)相关联的用户设备(10)提供每个确定的所述可达性状态(172)和所述一个或多个模拟转发路径(80),所述一个或多个模拟转发路径(80)在被所述用户设备(10)接收时致使所述用户设备(10)呈现每个模拟转发路径(80)的所述网络配置信息(162)。
16.根据权利要求15所述的系统(100),其特征在于,所述用户设备(10)被配置为使用本地通告的路由从远程网络发送所述数据包(24)。
17.根据权利要求15所述的系统(100),其特征在于,所述网络配置信息(162)包括以下中的至少一项:
用于在虚拟私有云VPC网络(148)内引导所述数据包(24)的端口/接口;
用于在VPC网络(148)之间引导所述数据包(24)的端口/接口;
用于在VPC网络(148)和非VPC网络(70)之间引导所述数据包(24)的端口/接口;在沿相应的所述模拟转发路径(80)的每一步应用到所述数据包(24)的防火墙规则;或者
与沿相应的所述模拟转发路径(80)的每一步相关联的网络配置。
18.根据权利要求15所述的系统(100),其特征在于,所述操作还包括基于相应的所述网络配置信息(162)对所述一个或多个模拟转发路径(80)中的每一个执行网络可达性分析。
19.根据权利要求18所述的系统(100),其特征在于,所述网络可达性分析被配置为以下中的至少一项:
确定所述数据包(24)沿相应的所述模拟转发路径(80)的可达性的最终状态;
沿相应的所述模拟转发路径(80)找出一个或多个错误配置;或者
沿相应的所述模拟转发路径(80)找出不一致或过时的配置。
20.根据权利要求19所述的系统(100),其特征在于,所述可达性的最终状态包括以下中的任何一项:
指示所述数据包(24)将被传送到所述目的地的传送状态(174a);
指示所述数据包(24)将被转发到具有未知配置的另一个网络的转发状态(174b);
指示所述数据包(24)将由于配置检查点故障或丢失配置而被丢弃的丢弃状态(174c);或者
指示由于缺少关键配置而无法进行所述网络可达性分析的中止状态(174d)。
21.根据权利要求18所述的系统(100),其特征在于,执行所述网络可达性分析包括以按需模式、连续模式、预提交模式或后提交模式中的至少一个执行所述网络可达性分析。
22.根据权利要求15所述的系统(100),其特征在于,所述包头(22)还包括:
与所述数据包(24)相关联的协议(25c);
与所述数据包(24)相关联的源端口(25d);和
与所述数据包(24)相关联的目的地端口(25e)。
23.根据权利要求15所述的系统(100),其特征在于,所述数据包(24)的所述源包括在第一网络中执行的所述第一软件实例,并且所述数据包(24)的所述目的地包括在不同于所述第一网络的第二网络中执行的所述第二软件实例。
24.根据权利要求23所述的系统(100),其特征在于,所述第一网络包括虚拟私有云VPC网络(148)并且所述第二网络包括本地部署网络(70)。
25.根据权利要求23所述的系统(100),其特征在于,所述第一网络和所述第二网络包括各自的虚拟私有云VPC网络(148)。
26.根据权利要求15所述的系统(100),其特征在于,所述数据包(24)的所述源包括所述第一软件实例并且所述数据包(24)的所述目的地包括所述第二软件实例,所述第一软件实例和所述第二软件实例均在同一虚拟私有云VPC网络(148)中执行。
27.根据权利要求15所述的系统(100),其特征在于,所述数据包(24)的所述源位于外部网络中,并且所述数据包(24)的所述目的地包括在虚拟私有云VPC网络(148)中执行的全局HTTPS负载均衡器(1110),所述全局HTTPS负载均衡器(1110)被配置为将所述数据包(24)路由到多个不同的后端虚拟机VM(250)中的一个。
28.根据权利要求27所述的系统(100),其特征在于,生成所述数据包(24)的一个或多个模拟转发路径(80)包括生成从所述全局HTTPS负载均衡器(1110)到所述多个不同的后端虚拟机VM(250)中的每一个的相应的模拟转发路径(80)。
CN202080040858.4A 2019-04-05 2020-04-03 云网络可达性分析的方法和系统 Active CN113924761B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310413700.2A CN116346635A (zh) 2019-04-05 2020-04-03 虚拟私有云的云网络可达性分析

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962830159P 2019-04-05 2019-04-05
US62/830,159 2019-04-05
PCT/US2020/026729 WO2020206361A1 (en) 2019-04-05 2020-04-03 Cloud network reachability analysis

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310413700.2A Division CN116346635A (zh) 2019-04-05 2020-04-03 虚拟私有云的云网络可达性分析

Publications (2)

Publication Number Publication Date
CN113924761A CN113924761A (zh) 2022-01-11
CN113924761B true CN113924761B (zh) 2023-05-05

Family

ID=70465493

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310413700.2A Pending CN116346635A (zh) 2019-04-05 2020-04-03 虚拟私有云的云网络可达性分析
CN202080040858.4A Active CN113924761B (zh) 2019-04-05 2020-04-03 云网络可达性分析的方法和系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310413700.2A Pending CN116346635A (zh) 2019-04-05 2020-04-03 虚拟私有云的云网络可达性分析

Country Status (6)

Country Link
US (2) US11477110B2 (zh)
EP (1) EP3949295A1 (zh)
JP (2) JP7323636B2 (zh)
KR (1) KR20210128003A (zh)
CN (2) CN116346635A (zh)
WO (1) WO2020206361A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020206361A1 (en) 2019-04-05 2020-10-08 Google Llc Cloud network reachability analysis
CN111817907B (zh) * 2019-04-11 2022-12-30 华为技术有限公司 一种可达性的验证方法和装置
US11533231B2 (en) * 2019-11-29 2022-12-20 Amazon Technologies, Inc. Configuration and management of scalable global private networks
US11729077B2 (en) * 2019-11-29 2023-08-15 Amazon Technologies, Inc. Configuration and management of scalable global private networks
US10999169B1 (en) * 2019-11-29 2021-05-04 Amazon Technologies, Inc. Configuration and management of scalable global private networks
US11336528B2 (en) 2019-11-29 2022-05-17 Amazon Technologies, Inc. Configuration and management of scalable global private networks
CN113162779B (zh) * 2020-01-07 2024-03-05 华为云计算技术有限公司 一种多云互联的方法及设备
US11283699B2 (en) 2020-01-17 2022-03-22 Vmware, Inc. Practical overlay network latency measurement in datacenter
US11736436B2 (en) * 2020-12-31 2023-08-22 Vmware, Inc. Identifying routes with indirect addressing in a datacenter
US11336533B1 (en) 2021-01-08 2022-05-17 Vmware, Inc. Network visualization of correlations between logical elements and associated physical elements
CN112994987B (zh) * 2021-05-07 2021-09-14 阿里云计算有限公司 云网络、用于云网络的测量系统、方法、设备及存储介质
US11711278B2 (en) 2021-07-24 2023-07-25 Vmware, Inc. Visualization of flow trace operation across multiple sites
US20230031462A1 (en) * 2021-07-30 2023-02-02 Oracle International Corporation Selective handling of traffic received from on-premises data centers
CN113938395B (zh) * 2021-08-30 2024-01-19 阿里巴巴(中国)有限公司 数据分析方法、系统、设备及存储介质
US11677645B2 (en) 2021-09-17 2023-06-13 Vmware, Inc. Traffic monitoring
CN116996387A (zh) * 2022-04-26 2023-11-03 华为云计算技术有限公司 一种网络意图挖掘方法、装置及相关设备
CN115065613B (zh) * 2022-06-08 2024-01-12 北京启明星辰信息安全技术有限公司 一种基于防火墙配置的网络连通性分析系统及分析方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618240A (zh) * 2013-11-05 2015-05-13 国际商业机器公司 用于软件定义数据中心网络中动态多径转发的方法和设备
CN107078951A (zh) * 2014-11-21 2017-08-18 思科技术公司 从虚拟端口信道对等体故障恢复
CN107465590A (zh) * 2016-06-02 2017-12-12 阿里巴巴集团控股有限公司 网络基础设施系统、路由网络业务的方法及计算机可读介质
CN109547349A (zh) * 2018-12-06 2019-03-29 郑州云海信息技术有限公司 基于虚拟路由的流量管理方法、装置、终端及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4981974B2 (ja) 2009-03-24 2012-07-25 株式会社日立製作所 管理システム及び情報処理システム
US8634289B2 (en) * 2009-12-31 2014-01-21 Alcatel Lucent Efficient protection scheme for MPLS multicast
US9729414B1 (en) * 2012-05-21 2017-08-08 Thousandeyes, Inc. Monitoring service availability using distributed BGP routing feeds
JP6419967B2 (ja) 2014-07-30 2018-11-07 フォワード・ネットワークス・インコーポレテッド ネットワーク管理のためのシステムおよび方法
US10097995B2 (en) * 2015-07-12 2018-10-09 Qualcomm Incorporated Network architecture and security with encrypted network reachability contexts
US20180115469A1 (en) 2016-10-21 2018-04-26 Forward Networks, Inc. Systems and methods for an interactive network analysis platform
US10938726B2 (en) 2017-09-06 2021-03-02 Nicira, Inc. Internet protocol flow data including firewall rules
US11108805B2 (en) * 2018-06-27 2021-08-31 Amazon Technologies, Inc. Automated packetless network reachability analysis
WO2020206361A1 (en) 2019-04-05 2020-10-08 Google Llc Cloud network reachability analysis

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104618240A (zh) * 2013-11-05 2015-05-13 国际商业机器公司 用于软件定义数据中心网络中动态多径转发的方法和设备
CN107078951A (zh) * 2014-11-21 2017-08-18 思科技术公司 从虚拟端口信道对等体故障恢复
CN107465590A (zh) * 2016-06-02 2017-12-12 阿里巴巴集团控股有限公司 网络基础设施系统、路由网络业务的方法及计算机可读介质
CN109547349A (zh) * 2018-12-06 2019-03-29 郑州云海信息技术有限公司 基于虚拟路由的流量管理方法、装置、终端及存储介质

Also Published As

Publication number Publication date
JP7323636B2 (ja) 2023-08-08
JP2023145612A (ja) 2023-10-11
CN113924761A (zh) 2022-01-11
KR20210128003A (ko) 2021-10-25
WO2020206361A1 (en) 2020-10-08
US11477110B2 (en) 2022-10-18
CN116346635A (zh) 2023-06-27
EP3949295A1 (en) 2022-02-09
JP2022526986A (ja) 2022-05-27
US20200322249A1 (en) 2020-10-08
US11968110B2 (en) 2024-04-23
US20230006915A1 (en) 2023-01-05

Similar Documents

Publication Publication Date Title
CN113924761B (zh) 云网络可达性分析的方法和系统
US11695731B2 (en) Distributed identity-based firewalls
US20230362237A1 (en) Distributed network services
US10237238B2 (en) Regional firewall clustering in a networked computing environment
CN101924693B (zh) 用于在虚拟机间迁移进程的方法和系统
US10218730B2 (en) Systems and methods of stateless processing in a fault-tolerant microservice environment
US20190273718A1 (en) Intercepting network traffic routed by virtual switches for selective security processing
US9880870B1 (en) Live migration of virtual machines using packet duplication
US8625448B2 (en) Method and system for validating network traffic classification in a blade server
US20130054817A1 (en) Disaggregated server load balancing
CN116458135A (zh) 改变影响模拟分析
US11652717B2 (en) Simulation-based cross-cloud connectivity checks
US20220294699A1 (en) Network Reachability Impact Analysis
CN113709016B (zh) 通信系统以及通信方法、装置、设备和存储介质
Kakulapati et al. Switch hierarchical provider (SHP) networks for data network virtualization
Van Vorst et al. PrimoGENI for hybrid network simulation and emulation experiments in GENI
US9385935B2 (en) Transparent message modification for diagnostics or testing

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