CN118120204A - 计算系统中的网络配置验证 - Google Patents
计算系统中的网络配置验证 Download PDFInfo
- Publication number
- CN118120204A CN118120204A CN202280070368.8A CN202280070368A CN118120204A CN 118120204 A CN118120204 A CN 118120204A CN 202280070368 A CN202280070368 A CN 202280070368A CN 118120204 A CN118120204 A CN 118120204A
- Authority
- CN
- China
- Prior art keywords
- network
- packet
- virtual
- endpoint
- policies
- 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.)
- Pending
Links
- 238000012795 verification Methods 0.000 title claims abstract description 6
- 239000002131 composite material Substances 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 27
- 230000006870 function Effects 0.000 claims description 64
- 230000015654 memory Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 12
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 230000009466 transformation Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000001172 regenerating effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 27
- 238000005516 engineering process Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 229920003245 polyoctenamer Polymers 0.000 description 10
- 230000008520 organization Effects 0.000 description 8
- 239000000956 alloy Substances 0.000 description 6
- 229910045601 alloy Inorganic materials 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本文中公开了网络配置验证技术。一个示例过程包括:在接收到用于确定虚拟网络中来自第一端点的分组是否可到达第二端点的查询之后,在网络图中标识第一端点与第二端点之间的网络路径。网络图具有表示虚拟网络中的网络策略的对应实施点的节点和连接节点对的边。该示例过程还可以包括生成复合函数,该复合函数表示在网络图中沿着所标识的网络路径的节点中的每个节点处的网络策略的联合个体约束,将生成的复合函数编译成布尔公式,以及求解经编译的布尔公式以确定是否存在到分组的分组字段的值的分配使得复合函数的所有联合个体约束可以被满足。
Description
背景技术
分布式计算系统通常包括路由器、交换机、网桥、和互连大量服务器、网络存储设备或其他计算设备的其他类型的网络设备。个体服务器可以托管一个或多个虚拟机(“VM”)、容器、虚拟交换机或其他虚拟化功能。虚拟机或容器可以促进针对个体用户的合适应用的执行以向用户提供期望的云服务或其他合适的计算服务。
发明内容
提供本发明内容是为了以简化的形式介绍以下在具体实施方式中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。
数据中心和其他大规模分布式计算系统可以提供计算资源,诸如处理能力和数据存储,作为租户(诸如组织)经由计算机网络可访问的计算服务。组织可以在由云计算提供商提供的远程数据中心中部署虚拟网络,而不是部署本地企业网络。例如,虚拟专用网络(VPN)可以链接组织的各个分支,而远程数据中心处的数据存储可以保存组织的企业数据。组织的用户可以经由诸如互联网等计算机网络访问虚拟网络上的各种资源。因此,组织可以将各种计算资源的某些硬件/软件部署、维护、升级或其他管理任务卸载到云计算提供商。
由数据中心中的租户部署的虚拟网络可以具有复杂的网络策略。网络策略通常是体现在合适的数据结构中的规则,其指定某些网络业务如何在计算机网络中被处理。例如,租户可以使用虚拟网络,经由限制去往/来自一个虚拟网络的网络业务的合适规则,将一个虚拟网络中的一组虚拟机与附加虚拟网络中的其他虚拟机隔离。租户还可以使用被称为网络安全组(NSG)或应用安全组(ASG)的规则对某些虚拟网络和/或其端点所发送/接收的分组实施可达性限制。例如,NSG可以包括允许基于分组的某些报头字段中包含的元数据来转发或丢弃分组的规则。租户还可以设计用户定义的路由,该路由确定如何从诸如虚拟机或虚拟网络等各种端点转发分组。租户还可以针对对等通信将两个虚拟网络分组,或者配置连接远程虚拟网络中的端点的虚拟广域网(WAN)。在另一示例中,租户可以配置服务端点和专用端点,以经由合适的规则将VM连接到由云计算提供商提供的计算服务。
针对租户管理虚拟网络中具有不同语义的大量网络策略可以是困难的。除非网络策略的规则极其容易解决的,否则个体网络策略通常不适合人工检查。管理网络策略的困难只会随着规模的扩大而增加。例如,可以手动检查具有三个规则的网络策略。然而,每个具有数百个规则的一组数百个网络策略不再适合人类检查。
因此,管理复杂网络策略的租户经常进行配置改变,这些改变无意中使租户的虚拟网络上的各种资源的安全性和/或可用性倒退。事实上,虚拟网络的网络策略的这种错误配置往往是常见的。例如,租户可能有若干虚拟网络最初以网状拓扑被连接。核心服务被部署在虚拟网络中,并且具有通过网状拓扑可到达互联网的能力。在测试期间,租户的开发者创建新的虚拟集线器,其从虚拟网络接收到互联网的所有业务并且将所接收的业务路由到防火墙。然而,开发者忘记配置防火墙来处理去往/来自互联网的所有业务。因此,去往/来自互联网的所有业务都被黑洞,而核心服务不再可以经由互联网到达。在另一示例中,当租户错误配置NSG或ASG策略时,SQL管理事件(SQMI)后端服务的可达性可能会被阻止,并且从而导致数据备份中断。
验证虚拟网络的网络策略和/或其改变可能是困难的。传统上,网络策略验证工具直接用解算器的低级语言来表达验证问题。例如,为了回答在从第一端点到第二端点的路由的可达性问题,验证器可以将路由表和可达性查询转换为布尔逻辑公式,当且仅当路由表保持可达性时,该布尔逻辑公式是可满足的。验证器然后可以使用解算器(诸如由华盛顿州雷德蒙德的微软公司提供的Z3定理证明器)来导出可达性结果。这种方法用于验证虚拟网络的大量网络策略类型是不可行的,诸如NSG、路由表、防火墙、服务端点、专用端点、服务防火墙、ASG、虚拟WAN和虚拟对等。将这样的网络策略直接转换为解算器的低级语言是很复杂的,同时保持这样的转换的正确性是困难的。此外,执行这样的转换还需要与解算器一起工作的特殊技能和专业知识。
所公开的技术的若干实施例可以通过实现网络验证器来解决上述困难的若干方面,该网络验证器被配置为经由中间表示(IR)将计算机网络(例如,虚拟网络)的网络策略转换为布尔逻辑公式。在某些实现中,网络验证器可以被配置为从诸如由资源管理器或云计算平台的其他合适实体维护的部署配置数据库等数据库中检索租户的一个或多个虚拟网络的网络策略。示例网络策略可以包括NSG、路由表、防火墙、服务端点、专用端点、服务防火墙、ASG、虚拟WAN、虚拟对等或其他合适类型的网络规则。
然后,网络验证器可以被配置为将检索到的网络策略转换为具有多个节点的网络图,每个节点表示策略实施点并且通过边彼此互连,每个边表示分组传输和/或变换。每个边还可以携带描述对对应边有效的网络策略的注释。例如,示例策略实施点可以包括VM、网络接口卡(NIC)上的NSG、子网入站和出站、虚拟网络入站和出站等。因此,示例网络图可以包括表示第一VM的节点,该第一VM通过边连接到表示连接到第一VM的NIC的出站NSG的节点。边表示分组传输或变换,例如,分组具有从VM发送到NIC的VM/NIC的源IP地址。示例网络图还可以包括表示通过附加边连接到出站NSG的虚拟网络的另一节点。附加边表示NSG允许将分组发送到虚拟网络的分组变换。网络图还可以包括表示连接到虚拟网络的另一NIC上的另一入站NSG的节点和表示连接到另一NIC的第二VM的另一节点。
在标识出网络图的节点和边之后,网络验证器可以被配置为对网络图中的每个节点进行编码,以用于评估分组是被允许转发还是被丢弃。例如,表示NSG的节点可以使用递归函数“Allow”被编码,该递归函数评估在节点处接收的分组,以产生布尔输出(说明性地命名为“Zen”),其指示该分组被允许还是以C#语言而被丢弃,如下所示:
Zen<bool>Allow(Nsg nsg,Zen<Packet>pkt,int i){
if(i>=nsg.Rules.Length)
return false;//如果规则的索引超过最大值,则返回//
var rule=nsg.Rules[i];//处理Rule[i]//
return If(Matches(rule,pkt),rule.Permit,Allow(nsg,pkt,i+1));//如果分组
匹配Rule[i],则从规则输出许可;否则,调用下一规则//
}
如上所示,函数“Allow”被实现为递归函数,其将具有一个或多个规则的NSG、建模为Zen<packet>类型的分组、和要处理的规则的索引(在第一调用时设置为零)作为输入,并且最终提供Zen<bool>类型的输出,其指示分组被丢弃还是被允许。
在构造网络图之后,网络验证器可以接收关于例如在虚拟网络中,来自第一VM的分组是否可以到达第二VM的查询。该查询还可以包括第一VM和第二VM的IP地址以及其他合适的信息,诸如端口号。响应于接收到该查询,网络验证器可以被配置为跟踪如网络图上所表示的虚拟网络中的第一VM与第二VM之间的一个或多个网络路径。对于一个或多个网络路径中的每个网络路径,网络验证器可以被配置为生成复合函数,该复合函数将沿着所跟踪的一个或多个网络路径的各个节点的所有递归函数联合起来。例如,复合函数可以将第一节点的第一递归函数的输出作为第一节点下游的第二节点处的第二递归函数的输入。复合函数可以重复这样的联合操作,直到沿着网络路径的所有递归函数被处理。
网络验证器然后可以将所跟踪的网络路径的生成的复合函数转换为逻辑表示,诸如将复合函数的布尔公式表示为逻辑树的抽象语法树(AST)。例如,上面递归函数的代码最初可以转换为描述代码的不同部分的令牌列表。然后可以解析令牌列表,以标识被布置为树的函数调用、函数定义、分组等,以表示代码的结构。然后可以将逻辑树转换为不同种类的逻辑代码。例如,输出代码可以是JavaScript、机器代码或其他合适类型的代码。
基于与复合函数相对应的AST,网络验证器然后可以被配置为使用解算器(例如,Z3定理证明器)来确定具有第一VM的源IP地址值和源端口值以及第二VM的目的地IP地址值和目的地端口值的分组是否可以到达第二VM。只有当存在值到分组字段的分配使得复合函数的所有约束满足时,才确认第一VM与第二VM之间的可达性。
在某些实施例中,网络验证器还可以被配置为在网络图上的每个节点处输出评估结果。例如,下面说明了路由表的评估结果:
{
Type:“RoutingTable”,
Destination:“10.111.0.0/16”,
NextHop:“VnetLocal”,
}
如上所示,该示例示出了分组被转发到“VnetLocal”中目的地IP为“10.111.0.0/16”的节点。在另一示例中,以下说明了拒绝访问分组的NSG的另一评估结果:
{
Type:“NetworkSecurityGroup”,
Description:“Deny to Internet”,
Destination:“0.0.0.0/0”,
Source:“*”
DestinationPorts:“*”,
SourcePorts:“*”,
Priority:65000,
}
在上面的示例中,到互联网的所有业务在NSG节点处被阻塞。
因此,上述网络验证器的若干实施例可以提供一种工具,该工具允许租户对虚拟网络中的网络配置高效地测试和/或进行故障排除。网络验证器可以接收查询作为输入,分析虚拟网络中的网络路径,收集沿着网络路径的约束,并且将所收集的约束联合起来。网络验证器然后可以将联合约束编译成逻辑表示,并且使用解算器来求解联合约束,以确定虚拟网络中的两个端点之间的可达性是否被保留。网络验证器的若干实施例还可以向租户输出并且指示网络图上的哪个节点导致分组被丢弃。因此,租户可以容易地测试网络策略的修改,并且在这样的修改在虚拟网络中被部署之前对虚拟网络中的任何错误配置进行故障排除。
附图说明
图1是示出根据所公开的技术的实施例的实现网络访问验证的分布式计算系统的示意图。
图2是示出根据所公开的技术的实施例的图1的分布式计算系统的某些硬件/软件组件和操作的示意图。
图3A和图3B是示出根据所公开的技术的实施例的适合于验证图1的分布式计算系统中的网络访问的网络验证器的示例组件和操作的示意图。
图4示出了根据所公开的技术的实施例的从虚拟网络的对应网络策略中导出的虚拟网络的示例网络图。
图5示出了根据所公开的技术的实施例的图4中的虚拟网络的示例网络图中的复合函数。
图6是示出根据所公开的技术的实施例的来自网络验证器的示例验证输出的示意性框图。
图7是适合于图1中的分布式计算系统的某些组件的计算设备。
具体实施方式
以下描述用于数据中心或其他合适的分布式计算系统中的网络访问验证的系统、设备、组件、模块、例程、数据结构和过程的某些实施例。在以下描述中,包括组件的具体细节以提供对所公开的技术的某些实施例的全面理解。相关领域的技术人员还将理解,该技术可以具有附加实施例。该技术也可以在没有以下参考图1-图7描述的实施例的若干细节的情况下实践。
如本文中使用的,术语“分布式计算系统”通常是指具有多个网络节点的互连计算机系统,这些网络节点将多个服务器或主机互连到彼此和/或外部网络(例如,互联网)。术语“网络节点”通常是指物理网络设备。示例网络节点包括路由器、交换机、集线器、网桥、负载均衡器、安全网关或防火墙。“主机”通常是指物理计算设备。在某些实施例中,主机可以被配置为实现例如一个或多个虚拟机、虚拟交换机或其他合适的虚拟化组件。例如,主机可以包括具有管理程序的服务器,该管理程序被配置为支持一个或多个虚拟机、虚拟交换机或其他合适类型的虚拟组件。在其他实施例中,主机可以被配置为直接在操作系统之上执行合适的应用。
在某些实现中,计算机网络可以在概念上被划分为在底层网络之上实现的覆盖网络。“覆盖网络”通常是指在底层网络之上实现并且在底层网络之上操作的抽象网络。底层网络可以包括彼此互连的多个物理网络设备。覆盖网络可以包括一个或多个虚拟网络。“虚拟网络”通常是指覆盖网络中的底层网络的一部分的抽象。虚拟网络可以包括称为“租户站点”的一个或多个虚拟端点,该虚拟端点由“租户”或租户的一个或多个用户分别地使用,以访问虚拟网络和相关联的计算、存储或其他合适资源。租户站点可以托管一个或多个租户端点(“TEP”),例如虚拟机。虚拟网络可以互连不同主机上的多个TEP。
覆盖网络中的虚拟网络节点可以通过虚拟链路彼此连接,该虚拟链路分别对应于底层网络中沿着一个或多个物理网络设备的一个或多个网络路由。在其他实现中,计算机网络只能包括底层网络。如本文中使用的,“网络路由”或“网络路径”通常是指分组从源(例如,第一主机)到达目的地(例如,第二主机)所遍历的一个或多个网络节点的序列。“往返”网络路由通常是指源与目的地之间的一对入站和出站网络路径。在一些示例中,入站和出站网络路径可以是对称的,例如,在相反方向上具有相同中间网络节点序列。在其他示例中,入站和出站网络路径可以是不对称的,例如,在相反方向上具有不同序列和/或中间网络节点。
如本文中使用的,“分组”通常是指由分组交换网络携带的格式化数据单元。分组通常可以包括用户数据和控制数据。控制数据可以提供用于递送用户数据的信息。例如,控制数据可以包括源和目的地网络地址/端口、错误校验码、排序信息、跳数、优先级信息、安全信息,或关于用户数据的其他合适信息。通常,控制数据可以被包含在分组的报头和/或报尾中。报头和报尾可以包括包含合适信息的一个或多个数据字段。
图1是示出根据所公开的技术的实施例的实现网络访问验证的分布式计算系统100的示意图。如图1所示,分布式计算系统100可以包括互连多个主机106的底层网络108、与对应用户101相关联的多个客户端设备102,以及彼此可操作地耦合网络验证器125。即使分布式计算系统100的特定组件如图1所示,但是在其他实施例中,分布式计算系统100还可以包括附加和/或不同组件或布置。例如,在某些实施例中,分布式计算系统100还可以包括网络存储设备、服务器和/或其他合适配置的合适组件。
如图1所示,底层网络108可以包括将多个主机106和用户101的客户端设备102互连的一个或多个网络节点112。在某些实施例中,主机106可以被组织成机架、动作区、组、集合或其他合适的划分。例如,在所示实施例中,主机106被分组为三个集群,这三个集群被分别地标识为第一集群107a、第二集群107b和第三集群107c。个体集群107a-107c分别可操作地耦合到对应网络节点112a-112c,这些网络节点通常称为“架顶”网络节点或“TOR”。然后,TOR 112a-112c可以可操作地耦合到附加网络节点112,以形成分层、扁平、网状或其他合适拓扑的计算机网络。底层网络108可以允许主机106、网络验证器125和用户101的客户端设备102之间的通信。在其他实施例中,多个集群107a-107c可以共享单个网络节点112,或者可以具有其他合适的布置。
主机106可以分别地被配置为向用户101提供计算、存储和/或其他云或其他合适类型的计算服务。例如,如下面参考图2更详细地描述的,在来自用户101的请求之后,主机106中的一个可以发起和维护一个或多个虚拟机144(如图2所示)或容器(未示出)。然后,用户101可以利用所提供的虚拟机144或容器来执行数据库、计算、通信和/或其他合适的任务。在某些实施例中,主机106中的一个可以针对多个用户101提供虚拟机144。例如,主机106a可以托管分别与用户101a-101c中的每个相对应的三个虚拟机144。在其他实施例中,多个主机106可以针对用户101a-101c中的一个或多个用户托管虚拟机144。
客户端设备102各自可以包括促进用户101经由底层网络108访问由主机106提供的计算服务的计算设备。在所示实施例中,客户端设备102分别地包括台式计算机。在其他实施例中,客户端设备102还可以包括膝上型计算机、平板电脑、智能手机或其他合适的计算设备。尽管为了说明目的,图1中示出了三个用户101a-101c,但在其他实施例中,分布式计算系统100可以促进任何合适数量的用户101访问由分布式计算系统100提供的合适计算服务。
网络验证器125可以被配置为允许用户101查询虚拟网络146中的端点之间的可访问性(如图2所示)。尽管网络验证器125在图1中被示出为单个实体,但在某些实现中,网络验证器125可以以分布式方式实现。例如,网络验证器125的逻辑的一个或多个部分可以在主机106或虚拟机144中的一个或多个上分布式地执行。例如,个体主机106可以包括某些指令,这些指令的执行使得第一主机106a将网络策略转换为网络图,而第二主机106b可以独立地路由跟踪从第一端点到第二端点的网络路径。下面参考图3A和图3B更详细地描述网络验证器125的示例组件和操作。
图2是示出根据所公开的技术的实施例的分布式计算系统100的某些硬件/软件组件的示意图。特别地,图2示出了可以在图1中的底层网络108上实现的覆盖网络108'。尽管覆盖网络108'的特定配置如图2所示,但在其他实施例中,覆盖网络108'也可以以其他合适的方式来配置。在图2中,为了清楚起见,仅示出了图1的底层网络108的某些组件。
在图2和本文中的其他图中,个体软件组件、对象、类、模块和例程可以是用C、C++、C#、Java和/或其他合适的编程语言作为源代码而编写的计算机程序、过程或进程。组件可以包括但不限于一个或多个模块、对象、类、例程、属性、进程、线程、可执行文件、库或其他组件。组件可以是源或二进制形式。组件可以包括编译前的源代码方面(例如,类、属性、过程、例程)、经编译的二进制单元(例如,库、可执行文件)、或在运行时实例化和使用的人工产物(例如,对象、进程、线程)。
系统内的组件在系统内可以采取不同形式。作为一个示例,包括第一组件、第二组件和第三组件的系统可以不受限制地涵盖具有作为源代码中的属性的第一组件、作为二进制编译库的第二组件,以及作为在运行时创建的线程的第三组件的系统。计算机程序、过程或进程可以被编译为对象代码、中间代码或机器代码,并且被呈现以供个人计算机、网络服务器、膝上型计算机、智能手机和/或其他合适的计算设备的一个或多个处理器执行。
同样地,组件可以包括硬件电路。本领域普通技术人员将认识到,硬件可以被认为是固化的软件,而软件可以被认为液化的硬件。仅作为一个示例,组件中的软件指令可以被烧录到可编程逻辑阵列电路,或者可以被设计为具有适当集成电路的硬件电路。同样地,硬件可以由软件来模拟。源代码、中间代码和/或目标代码的各种实现以及相关联的数据可以存储在计算机存储器中,该计算机存储器包括只读存储器、随机存取存储器、磁盘存储介质、光存储介质、闪存设备、和/或除传播信号之外的其他合适的计算机可读存储介质。
如图2所示,第一主机106a和第二主机106b各自可以包括彼此可操作地耦合的处理器132、存储器134、网络接口卡136和分组处理器138。在其他实施例中,主机106还可以包括输入/输出设备,其被配置为接受来自操作者和/或自动软件控制器(未示出)或其他合适类型的硬件组件的输入并且向其提供输出。
处理器132可以包括微处理器、高速缓存和/或其他合适的逻辑设备。存储器134可以包括易失性和/或非易失性介质(例如,ROM、RAM、磁盘存储介质、光存储介质、闪存设备和/或其他合适的存储介质)、和/或被配置为存储从处理器132接收的数据以及用于处理器132的指令(例如,用于执行下面参考图3A-图5B讨论的方法的指令)的其他类型的计算机可读存储介质。尽管在图2中仅示出了在个体主机106中的一个处理器132和一个存储器134,但在其他实施例中,个体主机106可以包括两个、六个、八个或任何其他合适数量的处理器132和/或存储器134。
第一主机106a和第二主机106b可以分别地在存储器134中包含指令,该指令由处理器132可执行以使得个体处理器132提供管理程序140(分别地标识为第一管理程序140a和第二管理程序140b)和操作系统141(分别地标识为第一操作系统141a和第二操作系统141b)。即使管理程序140和操作系统141被示出为单独的组件,在其他实施例中,管理程序140可以在主机106上执行的操作系统141或主机106的固件组件上执行。
管理程序140可以分别地被配置为生成、监测、终止和/或以其他方式管理被组织到租户站点142中的一个或多个虚拟机144。例如,如图2所示,第一主机106a可以提供第一管理程序140a,该第一管理程序140a分别管理第一租户站点142a和第二租户站点142b。第二主机106b可以提供分别管理第一租户站点142a'和第二租户站点142b'的第二管理程序140b。管理程序140在图2中分别地示出为软件组件。然而,在其他实施例中,管理程序140可以是固件和/或硬件组件。租户站点142各自可以包括用于特定租户(未示出)的多个虚拟机144。例如,第一主机106a和第二主机106b两者都可以针对第一租户101a托管租户站点142a和142a'(图1)。第一主机106a和第二主机106b两者都可以针对第二租户101b托管租户站点142b和142b'(图1)。每个虚拟机144可以执行对应操作系统、中间件和/或应用。
还如图2所示,分布式计算系统100可以包括覆盖网络108',该覆盖网络108'具有跨多个主机106互连租户站点142a和142b的一个或多个虚拟网络146。例如,第一虚拟网络142a互连第一主机106a和第二主机106b处的第一租户站点142a和142a'。第二虚拟网络146b互连第一主机106a和第二主机106b处的第二租户站点142b和142b'。即使单个虚拟网络146被示出为对应于一个租户站点142,但是在其他实施例中,多个虚拟网络146(未示出)也可以被配置为对应于单个租户站点146。
虚拟机144可以被配置为执行一个或多个应用147,以向用户101(图1)提供合适的云或其他合适类型的计算服务。例如,第一主机106a可以执行应用147,该应用147被配置为提供监测在线交易的计算服务并且将价格数据分发给订阅该计算服务的多个用户101。虚拟网络146上的虚拟机144也可以经由底层网络108(图1)彼此通信,即使虚拟机144位于不同主机106上。
虚拟网络146中各自的通信可以与其他虚拟网络146隔离。在某些实施例中,可以允许通信通过安全网关或以受控方式从一个虚拟网络146交叉到另一虚拟网络。虚拟网络地址可以对应于特定虚拟网络146中的虚拟机144中的一个。因此,不同虚拟网络146可以使用相同的一个或多个虚拟网络地址。示例虚拟网络地址可以包括IP地址、MAC地址和/或其他合适的网络地址。为了促进虚拟机144之间的通信,虚拟交换机(未示出)可以被配置为切换或过滤经由网络接口卡136指向不同虚拟机144并且由分组处理器138促进的分组114。
如图2所示,为了促进彼此的通信或与外部设备的通信,个体主机106还可以包括用于与计算机网络(例如,图1的底层网络108)接口的网络接口卡(“NIC”)136。NIC 136可以包括网络适配器、LAN适配器、物理网络接口、或其他合适的硬件电路和/或固件,以通过根据以太网、光纤通道、Wi-Fi或其他合适的物理和/或数据链路层标准经由网络介质(例如,光纤)发送/接收数据(例如,作为分组)来实现主机106之间的通信。在操作期间,NIC 136可以促进去往/来自在主机106上执行的合适软件组件的通信。示例软件组件可以包括虚拟交换机141、虚拟机144、在虚拟机144上执行的应用147、管理程序140或其他合适类型的组件。
在某些实现中,分组处理器138可以与NIC 136互连和/或集成,以促进网络业务操作,用于实施通信安全性、执行网络虚拟化、转换网络地址、维持/限制通信流状态、或执行其他合适的功能。在某些实现中,分组处理器138可以包括与NIC 136集成的现场可编程门阵列(“FPGA”)。
FPGA可以包括逻辑电路阵列和可重新配置的互连层,这些互连层允许用户在制造之后将逻辑电路像逻辑门一样“连线在一起”。因此,用户101可以将FPGA的逻辑块配置为执行复杂组合功能,或仅配置为简单逻辑操作,以合成在硬件中以比软件快得多的速度可执行的等效功能。在所示实施例中,分组处理器138的一个接口通信地耦合到NIC 136,另一接口在另一处耦合到网络交换机(例如,架顶或“TOR”交换机)。在其他实施例中,分组处理器138还可以包括专用集成电路(“ASIC”)、微处理器或其他合适的硬件电路。在任何前述实施例中,分组处理器138可以由处理器132(或与其相关联的合适软件组件)编程,以在分组处理器138内部路由分组,以实现时间敏感数据递送的各个方面,如下文参考图3A-图5B更详细地描述的。
在操作中,处理器132和/或用户101(图1)可以将分组处理器138中的逻辑电路配置为执行复杂组合功能或简单逻辑操作,从而以比软件快得多的速度合成在硬件中可执行的等效功能。例如,分组处理器138可以被配置为根据流表(诸如MAT)中包含的配置的网络策略或规则来处理针对个体流的入站/出站分组。流表可以包含表示与每个流相对应的处理动作的数据,用于启用具有客户提供的地址空间、可扩展负载均衡器、安全组和访问控制列表(“ACL”)、虚拟路由表、带宽计量、服务质量(“QoS”)等的专用虚拟网络。
因此,一旦分组处理器138将入站/出站分组标识为属于特定流,则分组处理器138可以在将经处理的分组转发到NIC 136或TOR 112之前在流表中应用一个或多个对应网络策略。例如,如图2所示,第一主机106a上的应用147、虚拟机144和/或其他合适的软件组件可以生成出站分组114,该出站分组注定要去往例如第二主机106b处的其他应用147。第一主机106a处的NIC 136可以将生成的分组114转发到分组处理器138,用于根据流表中的某些策略进行处理。一旦被处理,分组处理器138就可以将出站分组114转发到第一TOR 112a,该第一TOR 112a继而经由覆盖/底层网络108和108'将分组转发到第二TOR 112b。
第二TOR 112b然后可以将分组114转发到第二主机106b处的分组处理器138,以根据第二主机106b处的另一流表中的其他网络策略进行处理。如果分组处理器138不能将分组标识为属于任何流,则分组处理器138可以经由NIC 136将分组转发到处理器132以进行异常处理。在另一示例中,当第一TOR 112a例如经由第二TOR 112b从第二主机106b接收到入站分组115时,第一TOR 112a可以将分组115转发到分组处理器138以根据与分组115的流相关联的网络策略进行处理。分组处理器138然后可以将经处理的分组115转发到NIC 136,以转发到例如应用147或虚拟机144。
针对租户管理虚拟网络146中具有不同语义的大量网络策略可以是困难的。除非网络策略的规则极其容易解决的,否则个体网络策略通常不适合人工检查。管理网络策略的困难只会随着规模的扩大而增加。例如,可以手动检查具有三个规则的网络策略。然而,每个具有数百个规则的一组数百个网络策略不再适合人类检查。因此,管理复杂网络策略的租户经常进行配置改变,这些改变无意中使租户的虚拟网络上的各种资源的安全性和/或可用性倒退。所公开的技术的若干实施例可以通过实现网络验证器125来解决上述困难的若干方面,该网络验证器125被配置为经由中间表示(IR)(例如,网络图)将计算机网络(例如,虚拟网络146)的网络策略转换为布尔逻辑公式。然后,网络验证器125可以利用布尔逻辑公式的合适解算器来回答虚拟网络146中的两个端点是否可以到达彼此,如下面参考图3A-图6更详细地描述的。
图3A和图3B是示出根据所公开的技术的实施例的适合于验证图1的分布式计算系统100中的网络访问的网络验证器125的示例组件和操作的示意图。如图3A和图3B所示,网络验证器125可以包括彼此可操作地耦合的图形开发器160、路由查找器162、编译器164和解算器166。尽管为了说明目的网络验证器125的上述组件在图3A和图3B中被示出,但在其他实施例中,网络验证器125可以包括接口、网络、数据库或其他合适的组件,以补充或代替图3A和图3B所示的组件。例如,前述组件中的一个或多个(例如,解算器)可以与网络验证器125分离。
如图3A所示,图形开发器130可以被配置为从例如由云计算平台的资源管理器维护的诸如部署配置数据库(未示出)的数据库接收网络策略150。检索到的网络策略150可以包括表示租户的虚拟网络146的部署的组织的数据。例如,所示的示例组织包括经由站点到站点VPN连接不同区域(例如,“区域1”和“区域2”)中的多个站点(例如,HQ和分支)的虚拟WAN集线器143。虚拟WAN集线器143还经由对应虚拟网络连接149连接到多个虚拟网络146,并且经由集线器到集线器连接145彼此连接。该组织还可以包括到总部的快速路由连接151(示出为“HQ/DC”)以及到远程用户101的点到站点VPN连接153。示例网络策略可以包括NSG、路由表、防火墙、服务端点、专用端点、服务防火墙、ASG、虚拟WAN、虚拟对等、或在虚拟网络146中的各个节点处实现的其他合适类型的网络策略。
在接收到网络策略150之后,图形开发器130可以被配置为将检索到的网络策略150转换为网络图152,该网络图152具有多个节点182,每个节点表示策略实施点并且通过表示分组传输和/或变换的边184彼此互连,如图3B所示。边184还可以各自携带注释186(如图4所示),该注释描述对边184有效的网络策略。例如,示例策略实施点可以包括VM、网络接口卡(NIC)上的NSG、子网入站和出站、虚拟网络入站和出站等。因此,图3B中的示例网络图包括表示通过边184连接到节点182b的第一VM的节点182a,该节点182b表示连接到第一VM的NIC的出站NSG。表示分组传输或变换的边184(例如,分组)具有从VM发送到NIC的VM/NIC的源IP地址。示例网络图152还可以包括表示子网的附加节点182c和182d以及通过附加边144连接的虚拟网络144(如图2所示)。网络图152还可以包括表示连接到虚拟网络144的另一子网的附加节点182e、182f和182g、与另一NIC上的第二VM相对应的入站NSG、以及连接到另一NIC的第二VM。
在标识出网络图152的节点182和边184之后,图形开发器160可以被配置为对网络图152中的每个节点182进行编码,以用于评估分组是否允许被转发或丢弃。例如,如图3B所示,表示NSG的节点182f可以使用递归函数“Allow”被编码,该递归函数评估在该节点处接收的分组,以产生布尔输出(说明性地命名为“Zen”),其指示该分组被允许还是以C#语言而被丢弃,如下所示:
Zen<bool>Allow(Nsg,Zen<Packet>pkt,int i){
if(i>=nsg.Rules.Length)
return false;//如果规则的索引超过最大值,则返回//
var rule=nsg.Rules[i];//处理Rule[i]//
return If(Matches(rule,pkt),rule.Permit,Allow(nsg,pkt,i+1));//如果分组
匹配Rule[i],则从规则输出许可;否则,调用下一规则//
}
如上所示,函数“Allow”被实现为递归函数,其将具有一个或多个规则的NSG、建模为Zen<packet>类型的分组、和要处理的规则的索引(在第一调用时设置为零)作为输入,并且最终提供Zen<bool>类型的输出,其指示分组被丢弃还是被允许。下面参考图4更详细地描述另一示例网络图152。
在构造网络图152之后,网络验证器125可以从网络管理员或其他合适实体接收关于例如来自第一VM的分组是否可以到达虚拟网络144中的第二VM的查询154,如图3B所示。查询154还可以包括第一VM和第二VM的IP地址以及端口标识符或其他合适的信息。响应于接收到查询154,路由查找器162可以被配置为跟踪网络图152上表示虚拟网络144中的第一VM和第二VM的节点182a和182b之间的一个或多个网络路径188。对于一个或多个网络路径188中的每个网络路径,路由查找器162可以被配置为生成复合函数190(如图5所示),该复合函数将沿着所跟踪的一个或多个网络路径88的各个节点182的所有递归函数154联合起来。例如,复合函数190可以将来自第一节点182a的第一递归函数的输出作为第一节点182a下游的第二节点182b处的第二递归函数的输入。复合函数190可以重复这样的联合操作,直到沿着网络路径188的所有递归函数被处理。下面参考图5更详细地描述示例复合函数190。
编译器164然后可以使用库168将从路由查找器162生成的网络路径188的复合函数190转换为逻辑表示156,例如使用抽象语法树(AST)来表示复合函数的布尔逻辑公式,如图3B所示。例如,针对上面递归函数的代码最初可以转换为描述C#代码的不同部分的令牌列表。然后可以解析令牌列表,以标识被布置为树的函数调用、函数定义、分组等,从而表示C#代码的结构。然后可以将树转换为不同类型的代码。例如,输出代码可以是JavaScript、机器代码或其他合适类型的代码。可以从https://github.com/microsoft/zen中检索用于转换复合函数的示例库。
基于与复合函数190相对应的网络策略150(如图3A所示)的逻辑表示156,解算器166(例如,Z3定理证明器)用以确定具有第一VM的源IP地址值和源端口值以及第二VM的目的地IP地址值和目的地端口值的分组是否可以到达第二VM。只有当存在值到分组字段的分配使得复合函数190的所有约束满足时,才确认第一VM与第二VM之间的可达性。在图3B所示的示例中,来自解算器166的输出被示出为验证结果158,根据该验证结果,表示“X”的节点可以经由表示“Y”的另一节点到达表示“Z”的节点,但不能直接到达表示“Z”的节点。
因此,上述网络验证器125的若干实施例可以允许租户对虚拟网络146中的网络配置高效地测试和/或进行故障排除。网络验证器125可以接收查询154作为输入,分析虚拟网络146中的网络路径188,收集沿着网络路径188的约束,并且将这些约束联合起来。网络验证器然后可以将联合约束编译成逻辑表示156,并且使用解算器166来求解联合约束,以确定虚拟网络146中的两个端点之间的可达性是否被保留。网络验证器125的若干实施例还可以向租户输出并且指示网络图188上的哪个节点导致分组被丢弃,如下面参考图6更详细地描述的。因此,租户可以容易地测试网络策略的修改,并且在这样的修改在虚拟网络146中被部署之前对虚拟网络146的任何错误配置进行故障排除。
图4示出了根据所公开的技术的实施例的虚拟网络146的示例网络图152。如图4所示,网络图中的每个节点182表示虚拟网络146中的资源,该资源在网络路径188中执行一些分组转发功能。例如,VM1是该网络图152中的虚拟机。源自VM1的所有分组都具有分配给VM1的特定源地址和对应NIC,并且转变到NIC NSG输出节点。NIC NSG输出节点表示应用于NIC的NSG策略中的出站规则。出站NIC策略允许的分组占用连接到子网NSG输出节点的后续边。子网NSG节点表示应用于子网的NSG策略中的出站规则。
出站子网策略所允许的分组采用连接到subnet1_out节点182的子序列边184。subnet1_out节点182表示在子网中应用的用户定义的路由规则。根据用户定义的路由策略,以相同虚拟网络146内的目的地为目标的分组以“vnetlocal”的“nexthop”被评估。这样的分组采用连接到“Vnet1”节点182的后续边184。“Vnet1”节点182表示包括托管VM1和VM2的子网的虚拟网络。如果分组的目的地地址被设置为VM2,则分组采用后续边到subnet1_in节点182。分组然后被转发到子网NSG输入节点182。子网NSG输入节点182表示应用于子网的入站NSG策略。入站NSG策略所允许的分组现在采用NIC NSG输入节点182的后续边。NIC NSG输入节点182表示应用于连接到VM2的NIC的入站NSG策略。该策略允许的分组采用后续边最终到达VM2。
图5示出了根据所公开的技术的实施例的图4中的虚拟网络的示例网络图中的复合函数190。如图5所示,来自VM1的分组可以具有由“S”表示的某些元数据,例如,源IP地址、目的地IP地址、源端口、目的地端口等。函数C1可以被配置为确定分组是否包括与VM1相对应的源IP地址和对应NIC。函数C1的输出然后被用作函数C2的输入,以确定NIC NSG是否允许分组。来自函数C2的输出然后被用作函数C3的输入,以确定分组是否被子网NSG允许。操作继续,直到网络路径到达VM2以导出复合函数190,例如“c8(c7(c6(c5(c4(c3(c2(c1(S))))))))”
图6是示出根据所公开的技术的实施例的来自网络验证器125的示例验证输出158的示意性框图。如图6所示,在某些实施例中,网络验证器125(如图3A所示)也可以被配置为在网络图152上的每个节点182处输出验证结果158。例如,以下示出了从Subnet1_out到Vnet1的路由表的评估结果:
{
Type:“RoutingTable”,
Destination:“10.111.0.0/16”,
NextHop:“VnetLocal”,
}
如上所示,上面的示例示出了分组被转发到“VnetLocal”到目的地IP为“10.111.0.0/16”的节点182。在另一示例中,下面示出了拒绝访问分组的NSG的另一评估结果:
{
Type:“NetworkSecurityGroup”,
Description:“DenytoInternet”,
Destination:“0.0.0.0/0”,
Source:“*”,
DestinationPorts:“*”,
SourcePorts:“*”,
Priority:65000,
}
在上面的示例中,到互联网的所有业务在NSG节点182处被阻塞。网络验证器的若干实施例还可以向租户指示网络图上的哪个节点182导致分组被丢弃。因此,租户可以很容易地对虚拟网络146中的任何错误配置进行故障排除(如图2所示)。
图7是适合于图1中的分布式计算系统100的某些组件的计算设备300。例如,计算设备300可以适合于图1的主机106、客户端设备102或网络验证器125。在非常基本的配置302中,计算设备300可以包括一个或多个处理器304、和系统存储器306。存储器总线308可以用于在处理器304与系统存储器306之间进行通信。
根据期望配置,处理器304可以是任何类型,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合。处理器304可以包括又一个级别的高速缓存,诸如一级高速缓存310和二级高速缓存312、处理器核心314和寄存器316。示例处理器核心314可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心)或其任何组合。示例存储器控制器318也可以与处理器304一起使用,或者在一些实现中,存储器控制器318可以是处理器304的内部部分。
根据期望配置,系统存储器306可以是任何类型,包括但不限于易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或其任何组合。系统存储器306可以包括操作系统320、一个或多个应用322和程序数据324。如图7所示,操作系统320可以包括用于管理一个或多个虚拟机144的管理程序140。所描述的基本配置302在图8中通过内部虚线内的那些组件来说明。
计算设备300可以具有附加特征或功能以及附加接口,以促进基本配置302与任何其他设备和接口之间的通信。例如,总线/接口控制器330可以用于促进基本配置302与一个或多个数据存储设备332之间经由存储接口总线334的通信。数据存储设备332可以是可移动存储设备336、不可移动存储设备338或其组合。可移动存储和不可移动存储设备的示例包括诸如软盘驱动器和硬盘驱动器(HDD)等磁盘设备、诸如光盘(CD)驱动器或数字多功能盘(DVD)驱动器等光盘驱动器、固态驱动器(SSD)和磁带驱动器等。示例计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性的可移动和不可移动介质,诸如计算机可读指令、数据结构、程序模块或其他数据。术语“计算机可读存储介质”或“计算机可读储存设备”不包括传播信号和通信介质。
系统存储器306、可移动存储设备336和不可移动存储设备338是计算机可读存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或者可以用于存储期望信息并且可以由计算设备300访问的任何其他介质。任何这样的计算机可读存储介质都可以是计算设备300的一部分。术语“计算机可读存储介质”不包括传播信号和通信介质。
计算设备300还可以包括用于促进从各种接口设备(例如,输出设备342、外围接口344和通信设备346)经由总线/接口控制器330到基本配置302的通信的接口总线340。示例输出设备342包括可以被配置为经由一个或多个A/V端口352与诸如显示器或扬声器等各种外部设备通信的图形处理单元348和音频处理单元350。示例外围接口344包括可以被配置为经由一个或多个I/O端口358与诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等)或其他外围设备(例如,打印机、扫描仪等)等外部设备通信的串行接口控制器354或并行接口控制器356。示例通信设备346包括网络控制器360,该网络控制器360可以被布置为促进经由一个或多个通信端口364经由网络通信链路与一个或多个其他计算设备362通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以由计算机可读指令、数据结构、程序模块、或调制数据信号(诸如载波或其他发送机制)中的其他数据来体现,并且可以包括任何信息递送介质。“调制数据信号”可以是一种信号,其特性中的一个或多个特性能够以在信号中对信息进行编码的方式设置或改变。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接等有线介质、以及诸如声学、射频(RF)、微波、红外(IR)和其他无线介质等无线介质。本文中使用的术语计算机可读介质可以包括存储介质和通信介质两者。
计算设备300可以被实现为小尺寸便携式(或移动)电子设备的一部分,诸如蜂窝电话、个人数据助理(PDA)、个人媒体播放器设备、无线网络手表设备、个人头戴式耳机设备、专用设备、或包括上述功能中的任何功能的混合设备。计算设备300还可以被实现为包括膝上型计算机和非膝上型计算机配置两者的个人计算机。
从上文中可以理解,为了说明的目的,本文中已经描述了本公开的具体实施例,但是可以在不偏离本公开的情况下进行各种修改。此外,一个实施例的很多元素可以与其他实施例相结合,以补充或代替其他实施例的元素。因此,本技术仅受所附权利要求的限制。
Claims (10)
1.一种分布式计算系统中的网络配置验证方法,所述分布式计算系统具有互连多个服务器并且支持一个或多个虚拟网络的底层网络,所述方法包括:
在服务器处接收表示与在所述分布式计算系统中的所述底层网络上实现的虚拟网络相对应的网络策略的数据;
基于所接收的表示所述网络策略的所述数据,生成所述虚拟网络的网络图,所述网络图具有表示所述网络策略的实施点的多个节点和连接所述多个节点的对的多个边,所述多个边各自表示所述虚拟网络中的分组传输或变换;以及
在接收到用于确定所述虚拟网络中来自第一端点的分组是否可到达第二端点的查询之后,
在生成所述网络图中标识所述分组从所述第一端点到所述第二端点的网络路径;
生成复合函数,所述复合函数表示在所述网络图中沿着所标识的所述网络路径的所述节点中的每个节点处的所述网络策略的联合个体约束;
使用库将生成所述复合函数编译成表示所述联合个体约束的布尔公式;以及
求解经编译的所述布尔公式,以确定是否存在到所述分组的分组字段的值的分配使得所述复合函数的所有所述联合个体约束能够被满足,从而验证所述虚拟网络中的所述网络策略的合适配置。
2.根据权利要求1所述的方法,还包括:
响应于确定存在到所述分组的分组字段的值的分配,输出所述虚拟网络中所述第一端点可到达所述第二端点的指示;以及
响应于确定不存在到所述分组的分组字段的值的分配,输出所述虚拟网络中所述第一端点不可到达所述第二端点的指示。
3.根据权利要求1所述的方法,其中所述实施点对应于虚拟机、网络安全组、子网或虚拟网络。
4.根据权利要求1所述的方法,其中:
所述网络策略各自包括表示对所述分组的处理的所述约束的一个或多个规则;以及
所述一个或多个规则表示网络安全组、路由表、防火墙、应用安全组、虚拟广域网或虚拟对等。
5.根据权利要求1所述的方法,其中:
所述网络策略各自包括表示对所述分组的处理的所述约束的一个或多个规则;以及
生成所述网络图包括利用被配置为递归地评估所述网络策略中的一个网络策略的所述一个或多个规则的函数来对所述网络图中所述节点中的每个节点进行编码。
6.根据权利要求1所述的方法,其中:
所述网络策略各自包括表示对所述分组的处理的所述约束的一个或多个规则;以及
生成所述网络图包括:
利用被配置为递归地评估所述网络策略中的一个网络策略的所述一个或多个规则的函数来对所述网络图中所述节点中的每个节点进行编码;以及
将注释附加到所述边中的每个边,所述注释指示对所述边中的每个边有效的所述一个或多个规则。
7.根据权利要求1所述的方法,其中:
所述网络策略各自包括表示对所述分组的处理的所述约束的一个或多个规则;
生成所述网络图包括利用被配置为递归地评估所述网络策略中的一个网络策略的所述一个或多个规则的函数来对所述网络图中所述节点中的每个节点进行编码;以及
生成所述复合函数包括将沿着所标识的所述网络路径的所述节点中的至少一些节点的多个递归函数联合起来。
8.根据权利要求1所述的方法,其中编译所述复合函数包括:
生成所述布尔公式作为生成所述复合函数的逻辑表示;以及
将所述逻辑表示转换为与解算器相对应的代码,所述解算器被配置为确定是否存在到所述分组的分组字段的值的分配使得所述复合函数的所有所述联合个体约束能够被满足。
9.根据权利要求1所述的方法,还包括:
在求解经编译的所述布尔公式之后,
接收对所述网络策略中的一个网络策略的修改;以及
在接收到所述修改之后,
基于所接收的对所述网络策略中的一个网络策略的所述修改来再生另一网络图;以及
重复所述标识操作、所述生成操作、所述编译操作和所述求解操作,以确定是否存在到所述分组的分组字段的值的分配使得所述复合函数的所有所述联合个体约束能够被满足。
10.一种分布式计算系统中的计算设备,所述分布式计算系统具有互连多个计算设备并且支持一个或多个虚拟网络的底层网络,所述计算设备包括:
处理器;以及
可操作地耦合到所述处理器的存储器,,所述存储器包括由所述处理器可执行的指令,以使得所述处理器执行根据权利要求1-9中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/272,993 | 2021-10-28 | ||
US17/542,045 US11516088B1 (en) | 2021-10-28 | 2021-12-03 | Network configuration verification in computing systems |
US17/542,045 | 2021-12-03 | ||
PCT/US2022/039650 WO2023075883A1 (en) | 2021-10-28 | 2022-08-06 | Network configuration verification in computing systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118120204A true CN118120204A (zh) | 2024-05-31 |
Family
ID=91212382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280070368.8A Pending CN118120204A (zh) | 2021-10-28 | 2022-08-06 | 计算系统中的网络配置验证 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118120204A (zh) |
-
2022
- 2022-08-06 CN CN202280070368.8A patent/CN118120204A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110741603B (zh) | 拓扑探测器 | |
CN110521170B (zh) | 网络的静态网络策略分析 | |
CN110692227B (zh) | 识别网络意图形式对等性失败中的冲突规则 | |
Jayaraman et al. | Validating datacenters at scale | |
CN110710159B (zh) | 用于网络配置和故障排除的方法、系统、设备和介质 | |
Guo et al. | Survivable virtual network design and embedding to survive a facility node failure | |
US11411803B2 (en) | Associating network policy objects with specific faults corresponding to fault localizations in large-scale network deployment | |
US11265292B1 (en) | Graph based management of virtualized infrastructures | |
JP7189236B2 (ja) | 自動パケットレスネットワーク到達可能性分析 | |
CN110785964B (zh) | 网络中第3层桥接域子网的验证 | |
CN110785963B (zh) | 从网络收集网络模型和节点信息 | |
US20150082370A1 (en) | System and method for compact form exhaustive analysis of security policies | |
KR20220024758A (ko) | 클라우드 기반 인증, 허가, 및 사용자 관리 서비스의 발견 및 매핑 | |
CN110754065B (zh) | 网络的逻辑级和硬件级之间的网络验证 | |
US20140068701A1 (en) | Automatically Recommending Firewall Rules During Enterprise Information Technology Transformation | |
RU2638733C1 (ru) | Система и способ создания сервисных цепочек и виртуальных сетей в облаке | |
Mhaskar et al. | A formal approach to network segmentation | |
US11743206B2 (en) | Systems and methods for intelligent application grouping | |
Bleikertz et al. | Automated information flow analysis of virtualized infrastructures | |
CN111034123A (zh) | 网络中第1层接口的验证 | |
US20180343162A1 (en) | System management apparatus and system management method | |
US11593192B2 (en) | Detecting resource redundancy and conflicts in a heterogeneous computing environment | |
Mohan et al. | On optimizing firewall performance in dynamic networks by invoking a novel swapping window–based paradigm | |
US11824727B2 (en) | Network configuration verification in computing systems | |
CN118120204A (zh) | 计算系统中的网络配置验证 |
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 |