跨以应用为中心的维度的分布式故障代码聚合的制作方法

文档序号:19943403发布日期:2020-02-14 23:30阅读:277来源:国知局
跨以应用为中心的维度的分布式故障代码聚合的制作方法

相关申请的交叉引用

本申请要求于2017年6月16日提交的、申请号为62/520,663的、题为“跨以应用为中心的维度的分布式故障代码聚合(distributedfaultcodeaggregationacrossapplicationcentricdimensions)”的美国临时专利申请;以及于2017年7月28日提交的、申请号为15/663,455的、题为“跨以应用为中心的维度的分布式故障代码聚合(distributedfaultcodeaggregationacrossapplicationcentricdimensions)”的美国非临时专利申请的权益和优先权。每个申请的内容通过引用以其整体明确地并入本文。

本技术涉及网络配置和故障排除,并且更具体地涉及跨以应用为中心的维度的分布式故障代码聚合。



背景技术:

计算机网络变得越来越复杂,通常在网络的各个层都涉及低层以及高层配置。例如,计算机网络一般包括众多访问策略、转发策略、路由策略、安全性策略、服务质量(qos)策略等等,它们共同定义了网络的整体行为和操作。网络运营商具有各种各样的配置选项,使得可根据用户的需求定制网络。尽管可用的不同配置选项为网络运营商提供了很大程度的灵活性和对网络的控制,但它们也增加了网络的复杂性。在许多情况下,配置过程可能变得高度复杂。毫不奇怪,网络配置过程越来越容易出错。另外,对高度复杂的网络中的错误进行故障排除可能极其困难。识别网络中意外行为的根本原因的过程可能是艰巨的任务。

附图说明

为了描述可以获得本公开的上述和其他优点和特征的方式,将通过参考在附图中示出的上面简要描述的原理的特定实施例来呈现对这些原理的更具体的描述。应理解,这些附图仅描绘了本公开的示例性实施例,因此不应认为是对其范围的限制,通过使用附图,利用附加特征和细节描述和解释了本文的原理,在附图中:

图1a和图1b示出了示例网络环境;

图2a示出了网络的示例对象模型;

图2b示出了图2a的示例对象模型中的租户对象(tenantobject)的示例对象模型;

图2c示出了图2a的示例对象模型中的各对象的示例关联;

图2d示出了用于实现图2a的示例对象模型的示例模型的示意图;

图3a示出了示例网络保证设备(networkassuranceappliance);

图3b示出了用于网络保证的示例系统;

图3c示出了用于网络中的静态策略分析的示例系统的示意图;

图4示出了用于分布式故障代码聚合的示例平台;

图5a和图5b示出了用于网络保证和故障代码聚合的示例方法实施例;

图6示出了根据各种实施例的示例网络设备;以及

图7示出了根据各种实施例的示例计算设备。

具体实施方式

下面详细讨论本公开的各种实施例。虽然讨论了具体实现方式,但应该理解,仅是出于说明目的而这样做的。相关领域的技术人员将认识到,在不脱离本公开的精神和范围的情况下,可以使用其他组件和配置。因此,以下描述和附图是说明性的而不应被解释为限制性的。描述了许多具体细节以提供对本公开的透彻理解。然而,在某些情形下,没有描述众所周知的或传统的细节以避免模糊本描述。在本公开中参考一个实施例或参考实施例可以是参考相同的实施例或任意实施例;并且,这样的参考指的是实施例中的至少一个。

对“一个实施例”或“实施例”的参考意味着结合该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不一定都指代相同的实施例,也不是与其他实施例互斥的单独或替代的实施例。此外,描述了可以由一些实施例而不由其他实施例展示的各种特征。

本说明书中使用的术语在本公开的上下文中以及在其中每个术语被使用的特定上下文中通常具有其在本领域中的普通含义。替代语言和同义词可以用于本文所讨论的任何一个或多个术语,并且本文是否详述或论述某一术语不应被看作具有特殊意义。在一些情况下,提供了某些术语的同义词。对一个或多个同义词的记载不排除对其他同义词的使用。本说明书中任何地方的对示例(包括本文所讨论的任何术语的示例)的使用仅是说明性的,并且不旨在进一步限制本公开或任何示例术语的范围和含义。同样地,本公开不限于本说明书中给出的各种实施例。

不意图限制本公开的范围,下面给出根据本公开的实施例的工具、装置、方法、及其相关结果的示例。注意,为了方便读者,可能在示例中使用标题或副标题,这绝不应限制本公开的范围。除非另有定义,否则本文使用的技术和科学术语具有本公开所属领域的普通技术人员通常理解的含义。在发生冲突的情况下,以包括定义的本文档为准。

将在下面的描述中阐述本公开的其他特征和优点,并且其部分将从描述中变得清晰可见,或者可以通过实践本文公开的原理来进行学习。借助于所附权利要求中具体指出的工具和组合,可以实现和获得本公开的特征和优点。根据以下描述和所附权利要求,本公开的这些和其他特征将变得更加完全地显现出来,或者可以通过实践本文阐述的原理来进行学习。

概述

在独立权利要求中陈述了本发明的方面,并且在从属权利要求中陈述了优选的特征。一个方面的特征可单独地应用于每个方面或者与其他方面结合来应用。

本文公开了用于跨以应用为中心的维度的故障代码聚合的系统、方法和计算机可读介质。在一些示例中,系统可以获得与网络中的一个或多个网络设备(例如,交换机)相对应的相应故障代码(例如,硬件错误),并且将一个或多个网络设备和/或相应故障代码映射到在网络的逻辑策略模型中定义的相应逻辑策略实体(例如,软件定义的网络中的策略或实体,例如契约、端点组、租户、应用简档等),以产生故障代码映射。

逻辑模型可以是基于在软件定义的网络(sdn)中的一个或多个控制器或服务器(例如,以应用为中心的基础设施(aci)网络中的应用策略基础设施控制器(apic))中定义的配置而生成的模型。该逻辑模型因此可以表示sdn网络的逻辑配置(例如,aci中的逻辑配置的表示)。sdn网络的逻辑配置可以基于由sdn网络的网络运营商定义的配置,例如,输入到aci网络的apic中的配置,从而可以反映网络运营商的意图或者sdn网络的预期行为。

然后,系统可以沿着网络中的相应逻辑策略维度来对故障代码映射中的一个或多个故障代码映射进行聚合,以产生跨相应逻辑策略维度(例如,契约、安全组、租户、应用简档、端点组、租户等)的故障代码的聚合,并且基于跨相应逻辑策略维度的故障代码的聚合,针对相应逻辑策略维度中的每个逻辑策略维度,呈现沿着相应逻辑策略维度的一个或多个硬件级错误。系统因此可以识别和可视化沿着逻辑维度(例如,以应用为中心的维度(即,相应逻辑策略维度))的硬件级错误。

描述

所公开的技术满足了本领域中在大型且复杂的网络或数据中心中准确且有效地发现问题的需求。本技术涉及用于跨逻辑或以应用为中心的维度的故障代码聚合的系统、方法和计算机可读介质。本技术将在以下公开中描述如下。本讨论开始于对网络保证和跨以应用为中心的维度的故障代码聚合的介绍性讨论。然后随后将进行对网络保证的介绍性讨论和对示例计算环境的描述,如图1a和图1b中所示。本讨论接着是对用于网络保证、网络建模、和跨逻辑或以应用为中心的维度的故障代码聚合的系统和方法的描述,如图2a-图2d、图3a-图3c、图4以及图5a-图5b中所示。本讨论以对示例网络设备(如图6中所示)和示例计算设备(如图7中所示)的描述结束,包括适合于容宿软件应用和执行计算操作的示例硬件组件。

本公开现在转向对网络保证和跨逻辑或以应用为中心的维度的分布式故障代码聚合的讨论。

网络保证是确保或确定网络按照网络运营商的意图行事并且已经被恰当配置(例如,网络正在做预期它要做的事情)。意图可以包含各种网络操作,例如,桥接、路由、安全性、服务链化(servicechaining)、端点、合规性、qos(服务质量)、审计等。意图可以体现在为网络和各个网络元件(例如,交换机、路由器、应用、资源等)定义的一个或多个策略、设置、配置等中。然而,经常地,网络运营商所定义的配置、策略等是不正确的或者未能准确地反映在网络的实际行为中。例如,网络运营商为一种或多种类型的流量指定配置a,但后来发现网络实际上正在将配置b应用于该流量或以与配置a不一致的方式处理该流量。这可能是许多不同原因导致的结果,例如硬件错误、软件缺陷、变化的优先级、配置冲突、一个或多个设置的误配置、设备不适当的规则呈现、意外错误或事件、软件升级、配置更改、失败等。作为另一示例,网络运营商实现配置c,但一个或多个其他配置导致网络以与配置c的实现方式所反映的意图不一致的方式行动。例如,当配置c与网络中的其他配置冲突时会导致这样的情形。

本文中的方法可以通过对网络的各个方面建模和/或执行一致性检查以及其他网络保证检查来提供网络保证。本文中的方法还可使得能够按照以任何软件或应用为中心的维度对硬件级(例如,网络交换机级)错误进行识别和可视化。非限制性示例可视化可以包括:1)按租户(per-tenant)错误聚合,2)按应用简档(per-applicationprofile)错误聚合,3)按端点(per-endpoint)组对聚合,以及4)按契约(per-contract)错误聚合。通过这种方式,数据中心运营商可以快速查看在整个网络结构中影响特定租户或其他逻辑实体的硬件错误,甚至可以按其他维度(例如端点组)进行深入挖掘,以仅查看那些相关的硬件错误。这些可视化加快了根本原因分析的速度,从而改善数据中心和应用可用性指标。给定网络结构的规模,可以以分布式方式来完成用于创建这些可视化的聚合。

在这种情境中,网络保证平台可以在每个单独的网络设备(例如,交换机)上运行保证操作器,并且发出与该网络设备相关联的故障代码。逻辑策略富集器可以将硬件id(例如,范围、pctag等)映射到在软件定义的网络(sdn)结构配置(例如,以应用为中心的基础设施(aci)结构配置)中定义的逻辑策略实体。映射可以产生经富集的故障代码。可以将经富集的故障代码发送到聚合层以供聚合。例如,多个节点(例如,hadoop)可以收集经富集的故障代码,并且将它们作为(密钥、标签)对发射到聚合层。

在一些情况下,聚合层可以通过将用于每个密钥的聚合器作为单独的化简器运行来水平地缩放。每个密钥可以表示用于聚合的不同维度。维度的非限制性示例包括租户、契约、应用简档、端点组(epg)对等等。这为大规模网络结构的运营商提供了对于该特定聚合维度的网络结构的健康的集成视图。例如,这可以提供每个租户的健康、契约、应用简档、epg对等等。

如前所述,故障代码聚合可以实现可以表示网络的各个方面的逻辑模型。模型可包括网络的数学或语义模型,包括但不限于网络的策略、配置、要求、安全性、路由、拓扑结构、应用、硬件、过滤器、契约、访问控制列表、epg、应用简档、租户,等等。可以实现模型以提供网络保证,来确保网络被恰当地配置,并且网络的行为将与通过由网络运营商实现的具体策略、设置、定义等所反映的预期行为一致(或保持一致)。与涉及发送和分析数据分组并观察网络行为的传统网络监视不同,可以通过建模执行网络保证,而不必摄取任何分组数据或监视流量或网络行为。这可产生先见之明、洞悉、和后见之明:可以在问题发生之前加以预防,在发生问题时识别问题,并在问题发生后立即修复问题。

可以对网络的属性进行数学建模以确定性地预测网络的行为和状况。数学模型可以对控制、管理和数据平面进行抽象,并且可以使用诸如符号化、形式验证、一致性、图形、行为等之类的各种技术。如果(一个或多个)模型指示适当的行为(例如,没有不一致、冲突、错误等),则可以确定网络是健康的。如果建模指示适当的行为但有点不一致,则可以确定网络是可实现功能的,但不是完全健康的。如果建模指示不适当的行为和错误,则可以确定网络是不能实现功能的并且不健康。如果通过建模检测到不一致或错误,则对相应的(一个或多个)模型的详细分析可以允许非常准确地识别出一个或多个基础或根本问题。

建模可能消耗多种类型的数据和/或事件,其对网络的大量行为方面进行建模。这样的数据和事件可能影响网络的各个方面,例如底层服务、覆盖服务、租户连通性、租户安全性、租户ep移动性、租户策略、资源等。

已经描述了跨维度的网络保证和故障代码聚合的各种方面,本公开现在转到对用于网络保证和故障代码聚合的示例网络环境的讨论。

图1a示出了示例网络环境100(例如,数据中心)的图示。网络环境100可以包括可以表示网络环境100的物理层或基础设施(例如,底层)的结构120。结构120可以包括脊节点(spine)102(例如,脊路由器或交换机)和叶节点(leaf)104(例如,叶路由器或交换机),它们可以互连以在结构120中路由或交换流量。脊节点102可以互连结构120中的叶节点104,并且叶节点104可以将结构120连接到网络环境100的覆盖或逻辑部分,其可以包括应用服务、服务器、虚拟机、容器、端点等。因此,结构120中的网络连通性可以从脊节点102流向叶节点104,反之亦然。叶节点104和脊节点102之间的互连可以是冗余的(例如,多个互连)以避免路由失败。在一些实施例中,叶节点104和脊节点102可以完全连接,使得任何给定的叶节点都连接到每个脊节点102,并且任何给定的脊节点都连接到每个叶节点104。叶节点104可以是例如架顶式(top-of-rack,“tor”)交换机、聚合交换机、网关、入口和/或出口交换机、提供者边缘设备、和/或任何其他类型的路由或交换设备。

叶节点104可以负责路由和/或桥接租户或客户分组以及应用网络策略或规则。网络策略和规则可以由一个或多个控制器116驱动,和/或由诸如叶节点104之类的一个或多个设备实现或实施。叶节点104可以将其他元件连接到结构120。例如,叶节点104可以将服务器106、管理程序108、虚拟机(vm)110、应用112、网络设备114等与结构120连接。这些元件可以驻留在一个或多个逻辑或虚拟层或网络中,例如覆盖网络。在一些情况下,叶节点104可以对去往和来自这种元件(例如,服务器106)的分组进行封装和解封装,以便使得能够进行整个网络环境100和结构120内的通信。叶节点104还可以向任何其他设备、服务、租户、或工作负载提供对结构120的接入。在一些情况下,连接到叶节点104的服务器106可以类似地对去往和来自叶节点104的分组进行封装和解封装。例如,服务器106可以包括一个或多个虚拟交换机或路由器或隧道端点,用于在由服务器106容宿或连接到服务器106的覆盖层或逻辑层与由结构120表示并通过叶节点104访问的底层之间用隧道传输分组。

应用112可以包括软件应用、服务、容器、设备、功能、服务链等。例如,应用112可以包括防火墙、数据库、cdn服务器、ids/ips、深度分组检查服务、消息路由器、虚拟变换机等。来自应用112的应用可以由多个端点(例如,服务器106、vm110等)分发、链接或容宿,或者可以完全从单个端点运行或执行。

vm110可以是由管理程序108容宿的虚拟机或在服务器106上运行的虚拟机管理器。vm110可以包括在相应服务器上的访客操作系统上运行的工作负载。管理程序108可以提供创建、管理和/或运行vm110的软件、固件和/或硬件层。管理程序108可以允许vm110共享服务器106上的硬件资源,并且允许服务器106上的硬件资源显示为多个单独的硬件平台。此外,服务器106上的管理程序108可以容宿一个或多个vm110。

在一些情况下,vm110和/或管理程序108可以迁移到其他服务器106。服务器106可以类似地迁移到网络环境100中的其他位置。例如,连接到特定叶节点的服务器可以改变为连接到不同的或额外的叶节点。此类配置或部署更改可涉及对应用于正在迁移的资源以及其他网络组件的设置、配置和策略的修改。

在一些情况下,一个或多个服务器106、管理程序108和/或vm110可以表示或驻留在租户或客户空间中。租户空间可以包括与一个或多个客户端或订户相关联的工作负载、服务、应用、设备、网络和/或资源。因此,可以基于特定租户策略、空间、协议、配置等来路由网络环境100中的流量。此外,寻址可以在一个或多个租户之间变化。在一些配置中,租户空间可以被划分为逻辑段和/或网络,并且与跟其他租户相关联的逻辑段和/或网络分开。租户之间的寻址、策略、安全性和配置信息可以由控制器116、服务器106、叶节点104等管理。

可以在逻辑级、硬件级(例如,物理级)和/或两者处实现网络环境100中的配置。例如,可以通过软件定义的网络(sdn)框架(例如,以应用为中心的基础设施(aci)或vmwarensx),基于端点或资源属性(例如,端点类型和/或应用组或简档)来在逻辑和/或硬件级实现配置。为了说明,一个或多个管理员可以通过控制器116在逻辑级(例如,应用或软件级)定义配置,控制器116可以通过网络环境100实现或传播这样的配置。在一些示例中,控制器116可以是aci框架中的应用策略基础设施控制器(apic)。在其他示例中,控制器116可以是与其他sdn解决方案相关联的一个或多个管理组件,例如,nsx管理器。

这样的配置可以定义用于在网络环境100中路由和/或分类流量的规则、策略、优先级、协议、属性、对象等。例如,这样的配置可以定义用于基于端点组(epg)、安全组(sg)、vm类型、桥接域(bd)、虚拟路由和转发实例(vrf)、租户、优先级、防火墙规则等来分类和处理流量的属性和对象。下面进一步描述其他示例网络对象和配置。可以基于流量的标签、属性或其他特性来实施流量策略和规则,诸如与流量相关联的协议、与流量相关联的epg、与流量相关联的sg、与流量相关联的网络地址信息等。这样的策略和规则可以由网络环境100中的一个或多个元件(例如,叶节点104、服务器106、管理程序108、控制器116等)实施。如前所述,可以根据一个或多个特定软件定义的网络(sdn)解决方案(例如,ciscoaci或vmwarensx)来配置网络环境100。下面简要描述这些示例sdn解决方案。

aci可以通过可缩放的分布式实施来提供以应用为中心或基于策略的解决方案。aci支持在针对网络、服务器、服务、安全性、要求等的声明性配置模型下集成物理和虚拟环境。例如,aci框架实现epg,epg可以包括共享通用配置要求(例如,安全性、qos、服务等)的端点或应用的集合。端点可以是虚拟/逻辑或物理设备,例如,连接到网络环境100的vm、容器、主机或物理服务器。端点可以具有一个或多个属性,例如,vm名称、访客os名称、安全标签、应用简档等。应用配置可以以契约的形式在epg之间应用,而不是直接应用于端点之间。叶节点104可以将传入的流量分类为不同的epg。分类可以基于例如网络段标识符,例如,vlanid、vxlan网络标识符(vnid)、nvgre虚拟子网标识符(vsid)、mac地址、ip地址等。

在一些情况下,aci基础设施中的分类可以由应用虚拟交换机(avs)实现,其可以在诸如服务器或交换机之类的主机上运行。例如,avs可以基于指定的属性对流量进行分类,并且对具有不同标识符(例如,网络段标识符(例如,vlanid))的不同属性epg的分组进行标记。最后,叶节点104可以基于其标识符和实施策略来将分组与其属性epg捆绑,这可以由一个或多个控制器116实现和/或管理。叶节点104可以对来自主机的流量属于哪个epg进行分类并且相应地实施策略。

另一示例sdn解决方案基于vmwarensx。使用vmwarensx,主机可以运行分布式防火墙(dfw),其可以对流量进行分类和处理。考虑将三种类型的vm(即,应用、数据库和webvm)放入单个第2层网络段的情况。可以基于vm类型在网络段内提供流量保护。例如,可以在webvm之间允许http流量,并且在webvm与应用或数据库vm之间不允许http流量。为了对流量进行分类并实现策略,vmwarensx可以实现安全组,该安全组可用于对特定vm(例如,webvm、应用vm、数据库vm)进行分组。可以配置dfw规则以实现针对特定安全组的策略。为了说明,在先前的示例的情境中,dfw规则可以被配置为阻止web、应用和数据库安全组之间的http流量。

现在回到图1a,网络环境100可以通过叶节点104、服务器106、管理程序108、vm110、应用112和控制器116来部署不同的主机,例如vmwareesxi主机、windowshyper-v主机、裸金属物理主机等。网络环境100可以与各种管理程序108、服务器106(例如,物理和/或虚拟服务器)、sdn编排平台等进行互操作。网络环境100可以实现声明性模型以允许其与应用设计和整体网络策略的集成。

控制器116可以提供对软件定义的网络(sdn)基础设施的结构信息、应用配置、资源配置、应用级配置建模的集中访问,与管理系统或服务器的集成等。控制器116可以形成通过上行(northbound)api与应用平面进行接口,并且通过下行(southbound)api与数据平面进行接口的控制平面。

如前所述,控制器116可以定义和管理网络环境100中的针对配置的(一个或多个)应用级模型。在一些情况下,还可以由网络中的其他组件管理和/或定义应用或设备配置。例如,管理程序或虚拟设备(例如,vm或容器)可以运行服务器或管理工具来管理网络环境100中的软件和服务,包括虚拟设备的配置和设置。

如上所示,网络环境100可以包括一个或多个不同类型的sdn解决方案、主机等。为了清楚和解释的目的,将参考aci框架描述本公开中的各种示例,并且控制器116可以可互换地被称为控制器、apic或apic控制器。然而,应该注意,本文的技术和概念不限于aci解决方案,并且可以在其他架构和场景中实现,包括其他sdn解决方案以及可以不部署sdn解决方案的其他类型的网络。

此外,如本文所引用的,术语“主机”可以指代服务器106(例如,物理的或逻辑的)、管理程序108、vm110、容器(例如,应用112)等,并且可以运行或包括任何类型的服务器或应用解决方案。“主机”的非限制性示例可以包括虚拟交换机或路由器,例如分布式虚拟交换机(dvs)、应用虚拟交换机(avs)、矢量分组处理(vpp)交换机;vcenter和nsx管理器;裸金属物理主机;hyper-v主机;vm;docker容器;等等。

图1b示出了网络环境100的另一示例。在该示例中,网络环境100包括连接到结构120中的叶节点104的端点122。端点122可以是物理和/或逻辑或虚拟实体,诸如服务器、客户端、vm、管理程序、软件容器、应用、资源、网络设备、工作负载等。例如,端点122可以是表示下列项的对象:物理设备(例如,服务器、客户端、交换机等)、应用(例如,web应用、数据库应用等)、逻辑或虚拟资源(例如,虚拟交换机、虚拟服务设备、虚拟化网络功能(vnf)、vm、服务链等)、运行软件资源的容器(例如,应用、设备、vnf、服务链等)、存储设备、工作负载或工作负载引擎等。端点122可以具有地址(例如,身份)、位置(例如,主机、网络段、虚拟路由和转发(vrf)实例、域等)、一个或多个属性(例如,名称、类型、版本、补丁级别、os名称、os类型等)、标签(例如,安全性标签)、简档等。

端点122可以与相应的逻辑组118相关联。逻辑组118可以是包含根据以下各项分组在一起的端点(物理和/或逻辑或虚拟)的逻辑实体:一个或多个属性(例如,端点类型(例如,vm类型、工作负载类型、应用类型等)),一个或多个要求(例如,策略要求、安全性要求、qos要求、客户要求、资源要求等),资源名称(例如,vm名称、应用名称等),简档,平台或操作系统(os)特性(例如,包括访客和/或主机os的os类型或名称等),关联的网络或租户,一个或多个策略,标签等。例如,逻辑组可以是表示分组在一起的端点集合的对象。为了说明,逻辑组1可以包含客户端端点,逻辑组2可以包含web服务器端点,逻辑组3可以包含应用服务器端点,逻辑组n可以包含数据库服务器端点等。在一些示例中,逻辑组118是aci环境中的epg和/或另一sdn环境中的其他逻辑组(例如,sg)。

可以基于逻辑组118对去往端点122和/或来自端点122的流量进行分类、处理、管理等。例如,逻辑组118可以用于对去往端点122或者来自端点122的流量进行分类,将策略应用于去往端点122或者来自端点122的流量,定义端点122之间的关系,定义端点122的角色(例如,端点是消费还是提供服务等),将规则应用于去往端点122或来自端点122的流量,对去往端点122或来自端点122的流量应用过滤器或访问控制列表(acl),为去往端点122或来自端点122的流量定义通信路径,实施与端点122相关联的要求,实现与端点122相关联的安全性以及其他配置等。

在aci环境中,逻辑组118可以是用于在aci中定义契约的epg。契约可以包括指定epg之间发生什么通信和如何发生通信的规则。例如,契约可以定义提供服务的是什么,消费服务的是什么以及什么策略对象与该消费关系相关。契约可以包括定义如下内容的策略:通信路径以及端点或epg之间的通信或关系的所有相关元素。例如,webepg可以提供客户端epg所消费的服务,并且该消费可以受制于过滤器(acl)和包括一个或多个服务(例如,防火墙检验服务和服务器负载平衡)的服务图。

图2a示出了诸如网络环境100之类的sdn网络的示例管理信息模型200的图示。以下对管理信息模型200的讨论提及了各种术语,在整个公开中也将使用这些术语。因此,为清楚起见,本公开首先将在下面提供术语列表,随后将对管理信息模型200进行更详细的讨论。

如本文所使用的,“别名(alias)”可以指代给定对象的可改变的名称。因此,即使对象的名称一旦被创建就不能被改变,别名也可以是能够被改变的字段。

如本文所使用的,术语“别名(aliasing)”可以指代与一个或多个其他规则重叠的规则(例如,契约、策略、配置等)。例如,如果在网络的逻辑模型中定义的契约1与在网络的逻辑模型中定义的契约2重叠,则可以说契约1是契约2的别名。在此示例中,通过使契约2成为别名,契约1可使得契约2冗余或不可操作。例如,如果契约1具有比契约2更高的优先级,则这种别名化可基于契约1的重叠和更高优先级特性而致使契约2冗余。

如本文所使用的,术语“apic”可以指代aci框架中的一个或多个控制器(例如,控制器116)。apic可以为aci多租户结构提供统一的自动化和管理点、策略编程、应用部署、健康监控。apic可以实现为单个控制器,分布式控制器,或复制的、同步的和/或集群的控制器。

如本文所使用的,术语“bdd”可以指代二元决策树。二元决策树可以是表示函数(例如,布尔函数)的数据结构。

如本文所使用的,术语“bd”可以指代桥接域。桥接域可以是一组共享相同洪泛或广播特性的逻辑端口。与虚拟lan(vlan)一样,桥接域可以跨越多个设备。桥接域可以是l2(第2层)构造。

如本文所使用的,“消费者”可以指代消费服务的端点、资源和/或epg。

如本文所使用的,“情境(context)”可以指代l3(第3层)地址域,其允许路由表的多个实例存在并同时工作。这通过允许在不使用多个设备的情况下对网络路径进行分段来提高功能性。情境或l3地址域的非限制性示例可以包括虚拟路由和转发(vrf)实例、私有网络等。

如本文所使用的,术语“契约”可以指代指定在网络中进行什么通信以及如何进行通信(例如,允许、拒绝、过滤、处理通信等)的规则或配置。在aci网络中,契约可以指定端点和/或epg之间的通信如何发生。在一些示例中,契约可以提供类似于访问控制列表(acl)的规则和配置。

如本文所使用的,术语“可辨别名称”(dn)可以指代描述诸如mo之类的对象并且定位其在管理信息模型200中的位置的唯一名称。在一些情况下,dn可以是(或等同于)全限定域名(fqdn)。

如本文所使用的,术语“端点组”(epg)可以指代与端点的集合或组相关联的逻辑实体或对象,如先前参考图1b所描述的。

如本文所使用的,术语“过滤器”可以指代用于允许通信的参数或配置。例如,在其中默认情况下所有通信都被阻止的白名单模型中,必须给予通信明确的许可,以防止此类通信被阻止。过滤器可以定义针对一个或多个通信或分组的(一个或多个)许可。因此,过滤器的功能可以类似于acl或防火墙规则。在一些示例中,过滤器可以在分组(例如,tcp/ip)头部字段中实现,例如,l3协议类型、l4(第4层)端口等,其例如用于允许端点或epg之间的入站或出站通信。

如本文所使用的,术语“l2输出”可以指代桥接连接。桥接连接可以连接同一网络的两个或更多个段,使得它们可以通信。在aci框架中,l2输出可以是aci结构(例如,结构120)和外部第2层网络(例如,交换机)之间的桥接(第2层)连接。

如本文所使用的,术语“l3输出”可以指代路由连接。路由第3层连接使用一组协议,该组协议确定数据所遵循的路径以便跨网络地从其源行进到其目的地。路由连接可以根据所选择的协议(例如,bgp(边界网关协议)、ospf(开放式最短路径优先)、eigrp(增强型内部网关路由协议)等)来执行转发(例如,ip转发)。

如本文所使用的,术语“管理对象”(mo)可以指代在网络(例如,网络环境100)中管理的对象的抽象表示。对象可以是具体对象(例如,交换机、服务器、适配器等)或逻辑对象(例如,应用简档、epg、故障等)。mo可以是在网络中管理的网络资源或元素。例如,在aci环境中,mo可以包括aci结构(例如,结构120)资源的抽象。

如本文所使用的,术语“管理信息树”(mit)可以指代包含系统的mo的分层管理信息树。例如,在aci中,mit包含aci结构(例如,结构120)的mo。mit也可以被称为管理信息模型(mim),例如管理信息模型200。

如本文所使用的,术语“策略”可以指代用于控制系统或网络行为的某些方面的一个或多个规范。例如,策略可以包括命名实体,该命名实体包含用于控制系统行为的一些方面的规范。为了说明,第3层外部网络策略可以包含bgp协议,以在将结构120连接到外部第3层网络时使能bgp路由功能。

如本文所使用的,术语“简档”可以指代与策略相关联的配置细节。例如,简档可以包括命名实体,该实体包含用于实现策略的一个或多个实例的配置细节。为了说明,针对路由策略的交换机节点简档可以包含特定于交换机的配置细节以实现bgp路由协议。

如本文所使用的,术语“提供者”指代提供服务的对象或实体。例如,提供者可以是提供服务的epg。

如本文所使用的,术语“主体”指代用于定义通信的契约中的一个或多个参数。例如,在aci中,契约中的主体可以指定什么信息可以被传送以及如何被传送。主体的功能类似于acl。

如本文所使用的,术语“租户”指代网络中的隔离单元。例如,租户可以是安全且排他的虚拟计算环境。在aci中,租户可以是从策略角度看的隔离单元,但不一定代表私有网络。实际上,aci租户可以包含多个私有网络(例如,vrf)。租户可以代表服务提供者设置中的消费者、企业设置中的组织或领域、或仅代表策略组。

如本文所使用的,术语“vrf”指代虚拟路由和转发实例。vrf可以定义第3层地址域,其允许路由表的多个实例存在并同时工作。这通过允许在不使用多个设备的情况下对网络路径进行分段来提高功能性。其也被称为情境或私有网络。

已经描述了本文使用的各种术语,本公开现在返回到对图2a中的管理信息模型(mim)200的讨论。如前所述,mim200可以是分层管理信息树或mit。此外,mim200可以由控制器116(例如,aci中的apic)管理和处理。控制器116可以通过将其可管理特性呈现为可以根据对象在模型的分层结构内的位置而继承的对象属性来实现对被管理资源的控制。

mim200的分层结构从位于顶部(根)的策略全集202开始并且包含双亲(parent)节点和子节点116、204、206、208、210、212。树中的节点116、202、204、206、208、210、212表示管理对象(mo)或对象组。结构(例如,结构120)中的每个对象具有唯一的可辨别名称(dn),其描述对象并定位其在树中的位置。节点116、202、204、206、208、210、212可以包括如下所述的各种mo,其包含统管系统的操作的策略。

控制器116

控制器116(例如,apic控制器)可以为结构120提供管理、策略编程、应用部署和健康监控。

节点204

节点204包括用于使管理员能够执行基于域的访问控制的策略的租户容器。租户的非限制性示例可以包括:

管理员根据用户的需求定义的用户租户。它们包含统管资源(例如,应用、数据库、web服务器、网络附接存储、虚拟机等)的操作的策略。

共同租户由系统提供,但是可以由管理员配置。它包含统管所有租户可访问资源(例如,防火墙、负载平衡器、第4层到第7层服务、入侵检测设备等)的操作的策略。

基础设施租户由系统提供,但是可以由管理员配置。它包含统管基础设施资源(例如,结构覆盖(例如,vxlan))的操作的策略。它还使得结构提供者能够选择性地将资源部署到一个或多个用户租户。基础设施租户策略可由管理员进行配置。

管理租户由系统提供,但是可以由管理员配置。它包含统管结构管理功能的操作的策略,这些功能用于对结构节点的带内和带外配置。管理租户包含用于控制器/结构内部通信的私有界外(out-of-bound)地址空间,该地址空间位于通过交换机的管理端口提供访问的结构数据路径之外。管理租户使能与虚拟机控制器的通信的发现和自动化。

节点206

节点206可以包含统管交换机访问端口的操作的访问策略,交换机访问端口提供到诸如存储、计算、第2层和第3层(桥接和路由)连通性、虚拟机管理程序、第4层到第7层设备等之类的资源的连接。如果租户需要除默认链路、思科发现协议(ciscodiscoveryprotocol,cdp)、链路层发现协议(lldp)、链路聚合控制协议(lacp)或生成树协议(stp)中提供的接口配置以外的接口配置,则管理员可以配置访问策略以在叶节点104的访问端口上使能此类配置。

节点206可以包含统管交换机结构端口的操作的结构策略,包括诸如网络时间协议(ntp)服务器同步、中间系统到中间系统协议(is-is)、边界网关协议(bgp)路由反射器、域名系统(dns)等之类的功能。结构mo包含诸如电源、风扇、底座等之类的对象。

节点208

节点208可以包含vm域,其将具有类似的联网策略要求的vm控制器聚集起来。vm控制器可以共享虚拟空间(例如,vlan或vxlan空间)和应用epg。控制器116与vm控制器通信以发布网络配置,例如随后应用于虚拟工作负载的端口组。

节点210

节点210可以包含第4层到第7层服务集成生命周期自动化框架,其使得系统能够在服务在线或离线时动态地做出响应。策略可以提供服务设备分组和库存管理功能。

节点212

节点212可以包含统管结构120的用户权限、角色和安全域的访问、认证和计费(aaa)策略。

分层策略模型可以很好地适合api,例如restapi接口。调用时,api可以读取或写入mit中的对象。url可以直接映射到标识mit中的对象的可辨别名称。例如,mit中的数据可以被描述为以xml或json编码的自包含结构化树文本文档。

图2b示出了用于mim200的租户部分的示例对象模型220。如前所述,租户是用于使管理员能够执行基于域的访问控制的应用策略的逻辑容器。因此,租户代表了从策略角度看的隔离单元,但它不一定代表私有网络。租户可以代表服务提供者设置中的客户、企业设置中的组织或域、或者仅代表方便的策略分组。此外,租户可以彼此隔离或可以共享资源。

mim200的租户部分204a可以包括各种实体,并且租户部分204a中的实体可以从双亲实体继承策略。租户部分204a中的实体的非限制性示例可以包括过滤器240、契约236、外部网络222、桥接域230、vrf实例234、和应用简档224。

桥接域230可以包括子网232。契约236可以包括主体238。应用简档224可以包含一个或多个epg226。一些应用可以包含多个组件。例如,电子商务应用可能需要web服务器、数据库服务器、位于存储区域网络中的数据、以及对允许实现金融交易的外部资源的访问。应用简档224包含与提供应用的能力在逻辑上相关的尽可能多(或少)的epg。

epg226可以以各种方式来组织,例如基于它们提供的应用、它们提供的功能(例如基础设施)、它们在数据中心(例如dmz)的结构中的位置、或者结构或租户管理员选择使用的任何组织原则。

结构中的epg可以包含各种类型的epg,例如,应用epg、第2层外部网络外实例epg、第3层外部网络外实例epg、用于带外或带内访问的管理epg等。epg226还可以包含属性228,例如基于封装的epg、基于ip的epg、或基于mac的epg。

如前所述,epg可以包含具有共同特性或属性(例如,共同策略要求(例如,安全性、虚拟机移动性(vmm)、qos、或第4层到第7层服务)的端点(例如,ep122)。不是单独配置和管理端点,而是可以将它们放在epg中并作为群组进行管理。

策略应用于epg,包括它们所包含的端点。epg可以由管理员在控制器116中静态配置,或者由诸如vcenter或openstack之类的自动系统动态地配置。

为在租户部分204a中激活租户策略,应配置结构访问策略并将其与租户策略相关联。访问策略使管理员能够配置其他网络配置,例如,端口信道和虚拟端口信道,诸如lldp、cdp或lacp之类的协议,以及诸如监控或诊断之类的特征。

图2c示出了mim200中的租户实体和访问实体的示例关联260。策略全集202包含租户部分204a和访问部分206a。因此,租户部分204a和访问部分206a通过策略全集202相关联。

访问部分206a可以包含结构和基础设施访问策略。通常,在策略模型中,epg与vlan耦合。例如,为使流量流过,epg被部署在具有在物理、vmm、l2输出、l3输出或光纤信道域中的vlan的叶端口上。

因此,访问部分206a包含域简档236,其可以定义例如要与epg相关联的物理、vmm、l2输出、l3输出或光纤信道域。域简档236包含vlan实例简档238(例如,vlan池)和可附接访问实体简档(aep)240,它们直接与应用epg相关联。aep240将关联的应用epg部署到它所附接的端口,并自动执行分配vlan的任务。虽然大型数据中心可以在数百个vlan上配有数千个活动的vm,但结构120可以自动从vlan池分配vlanid。与在传统数据中心中中继(trunkdown)vlan相比,这节省了时间。

图2d示出了诸如网络环境100之类的网络的示例模型的示意图。可以基于与mim200中定义的各种对象、策略、属性和元素相关联的特定配置和/或网络状态参数来生成模型。模型可以被实现用于网络分析和保证,并且可以在实现的各个阶段和网络的各个级别提供对网络的描述。

如图所示,模型可以包括l_模型270a(逻辑模型)、lr_模型270b(逻辑呈现模型或逻辑运行时模型)、li_模型272(针对i的逻辑模型)、ci_模型274(针对i的具体模型)和/或hi_模型276(针对i的硬件模型或tcam模型)。

l_模型270a是在网络(例如,网络环境100)中配置的mim200中的各种元素(例如,如网络中配置的mim200中的对象、对象属性、对象关系和其他元素)的逻辑表示。控制器116可以基于针对网络而输入在控制器116中的配置来生成l_模型270a,并且因此l_模型270a表示控制器116处的网络的逻辑配置。这是对在网络实体(例如,应用、租户等)的元素被连接并且结构120被控制器116配设时所期望的“结束状态”表述的声明。因为l_模型270a表示输入在控制器116中的配置(包括mim200中的对象和关系),它还可以反映管理员的“意图”:管理员希望网络和网络元件如何运作。

l_模型270a可以是结构或网络范围的逻辑模型。例如,l_模型270a可以描述来自每个控制器116的配置和对象。如前所述,网络环境100可以包括多个控制器116。在一些情况下,两个或更多个控制器116可以包括用于网络的不同配置或逻辑模型。在这种情况下,l_模型270a可以获得来自控制器116的配置或逻辑模型中的任一者,并基于来自所有控制器116的配置和逻辑模型来生成结构或网络范围的逻辑模型。因此,l_模型270a可以在控制器116之间合并配置或逻辑模型,以提供综合的逻辑模型。l_模型270a还可以解决或解释可能由不同控制器116处的配置或逻辑模型导致的任何依赖性、冗余、冲突等。

lr_模型270b是控制器116(例如,aci中的apic)从l_模型270a中解析的抽象模型表述。lr_模型270b可以提供将被递送到物理基础设施(例如,结构120)以执行一个或多个策略的配置组件。例如,lr_模型270b可以被递送到结构120中的叶节点104,以将叶节点104配置用于与附接的端点122通信。lr_模型270b还可以包含状态信息以捕获网络(例如,结构120)的运行时状态。

在一些情况下,lr_模型270b可以提供l_模型270a的表示,其根据可以传播到结构120的物理基础设施(例如,叶节点104、脊节点102等)和/或被结构120的物理基础设施所理解的特定格式或表述来标准化。例如,lr_模型270b可以将l_模型270a中的元素与可以由结构120中的交换机解释和/或编译的特定标识符或标签(例如,用作分类符的硬件平面标识符)相关联。

li_模型272是从l_模型270a和/或lr_模型270b获得的交换机级或特定于交换机的模型。li_模型272可以将l_模型270a和/或lr_模型270b投射在特定交换机或设备i上,并且因此可以传达l_模型270a和/或lr_模型270b应该如何出现在特定交换机或设备i处或如何在特定交换机或设备i处实现。

例如,li_模型272可以投射与特定交换机i有关的l_模型270a和/或lr_模型270b,以捕获l_模型270a和/或lr_模型270b在交换机i处的交换机级表示。为了说明,li_模型272l1可以表示投射到叶节点1(104)或在叶节点1(104)处实现的l_模型270a和/或lr_模型270b。因此,对于结构120上的个体设备(例如,叶节点104、脊节点102等),可以从l_模型270a和/或lr_模型270b生成li_模型272。

在一些情况下,可以使用json(javascript对象表示法)来表示li_模型272。例如,li_模型272可以包括json对象,例如规则、过滤器、条目和范围。

ci_模型274是在单独的结构成员i(例如,交换机i)处的实际状态内(in-state)配置。换句话说,ci_模型274是基于li_模型272的交换机级或特定于交换机的模型。例如,控制器116可以将li_模型272递送到叶节点1(104)。叶节点1(104)可以采用li_模型272(其可以特定于叶节点1(104)),并且叶节点1(104)可以将li_模型272中的策略呈现为在叶节点1(104)上运行的具体模型ci_模型274。例如,叶节点1(104)可以通过叶节点1(104)上的os来呈现li_模型272。因此,ci_模型274可以类似于经编译的软件,因为它采用叶节点1(104)处的交换机os可以执行的li_模型272的形式。

在一些情况下,li_模型272和ci_模型274可以具有相同或相似的格式。例如,li_模型272和ci_模型274可以基于json对象。具有相同或相似格式可以协助li_模型272和ci_模型274中的对象进行比较以确定是否对等或一致。如本文进一步描述的,这种对等性或一致性检查可以用于网络分析和保证。

hi_模型276也是针对交换机i的交换机级或特定于交换机的模型,但是基于针对交换机i的ci_模型274。hi_模型276是在单独的结构成员i(例如,交换机i)处的硬件或存储器(例如,tcam存储器)上存储或呈现的实际配置(例如,规则)。例如,hi_模型276可以表示叶节点1(104)基于叶节点1(104)处的ci_模型274在叶节点1(104)的硬件(例如,tcam存储器)上存储或呈现的配置(例如,规则)。叶节点1(104)处的交换机os可以呈现或执行ci_模型274,并且叶节点1(104)可以存储或呈现来自存储设备(例如,叶节点1(104)处的存储器或tcam)中的ci_模型274的配置。来自由叶节点1(104)存储或呈现的hi_模型276的配置表示在处理流量时将由叶节点1(104)实现的配置。

虽然模型272、274、276被示出为特定于设备的模型,但是类似的模型可以针对结构120中的结构成员(例如,叶节点104和/或脊节点102)的集合而生成或聚合。当被组合时,特定于设备的模型(例如模型272、模型274和/或模型276)可以提供超出特定设备的结构120的表示。例如,在一些情况下,可以组合或聚合与一些或所有各个结构成员(例如,叶节点104和脊节点102)相关联的li_模型272、ci_模型274和/或hi_模型276,以基于各个结构成员生成一个或多个聚合模型。

如本文所提及的,术语h模型、t模型和tcam模型可以互换使用以指代硬件模型,例如hi_模型276。例如,ti模型、hi模型和tcami模型可以互换使用,以指代hi_模型276。

模型270a、270b、272、274、276可以提供网络的各个方面或mim200的各个配置阶段的表示。例如,模型270a、270b、272、274、276中的一个或多个可以用于生成表示结构120的一个或多个方面(例如,底层拓扑、路由等)的底层模型278,表示网络环境100的覆盖或(一个或多个)逻辑段的一个或多个方面(例如,coop、mpbgp、租户、vrf、vlan、vxlan、虚拟应用、vm、管理程序、虚拟交换等)的覆盖模型280,表示mim200中的租户部分204a的一个或多个方面(例如,安全性、转发、服务链、qos、vrf、bd、契约、过滤器、epg、子网等)的租户模型282,表示网络环境100中的一个或多个资源(例如,存储、计算、vm、端口信道、物理元件等)的资源模型284,等等。

通常,l_模型270a可以是存在于lr_模型270b中的内容的高级表述,其应当在具体设备上被呈现为ci_模型274和hi_模型276表述。如果模型之间存在任何间隙,则可能存在不一致的配置或问题。

图3a示出了用于网络保证的示例保证设备300的图。在该示例中,保证设备300可以包括以集群模式操作的k个vm110。在此示例中为了解释的目的而使用vm。然而,应该理解,本文还设想了其他配置,例如,使用容器、裸金属设备、端点122、或任何其他物理或逻辑系统。此外,例如,虽然图3a示出了集群模式配置,但是本文还设想了其他配置,例如单模式配置(例如,单个vm、容器或服务器)或服务链。

保证设备300可以在一个或多个服务器106、资源110、管理程序108、ep122、叶节点104、控制器116或任何其他系统或资源上运行。例如,保证设备300可以是在网络环境100中的一个或多个vm110上运行的逻辑服务或应用。

保证设备300可以包括数据框架308,其可以基于例如apacheapex和hadoop。在一些情况下,保证检查可以被编写为驻留在数据框架308中的个体操作器(operator)。这允许实现本地水平扩展架构,其能够扩展到结构120(例如,aci结构)中的任意数量的交换机。

保证设备300可以以可配置的周期(例如,时段)轮询结构120。分析工作流可以被设置为操作器310的dag(有向无环图),其中数据从一个操作器流向另一操作器,并且最终生成结果并且针对每个间隔(例如,每个时段)将结果永久保存到数据库302。

上层(north-tier)实现api服务器(例如,apachetomcat、spring框架)304和web服务器306。图形用户界面(gui)经由暴露给客户的api进行交互。客户还可以使用这些api来从保证设备300收集数据,以进一步集成到其他工具中。

数据框架308(例如,apex/hadoop)中的操作器310可以一起支持保证操作。以下是保证设备300可以通过操作器310执行的保证操作的非限制性示例。

安全性策略遵守

保证设备300可以检查以确保来自可以反映用户对网络的意图的l_模型270a的配置或规范(包括例如安全性策略和客户配置的契约)被正确地实现和/或呈现在li_模型272、ci_模型274和hi_模型276中,并且因此由结构成员(例如,叶节点104)适当地实现和呈现,并且报告任何发现的错误、契约违规或不规则。

静态策略分析

保证设备300可以检查用户的一个或多个意图的规范中的问题(例如,识别l_模型270a中的矛盾或冲突的策略)。

tcam利用率

tcam是结构(例如,结构120)中的稀缺资源。然而,保证设备300可以通过网络数据(例如,最长前缀匹配(lpm)表、路由表、vlan表、bgp更新等)、契约、逻辑组118(例如,epg)、租户、脊节点102、叶节点104、和网络环境100中的其他维度和/或mim200中的对象来分析tcam利用率,以向网络运营商或用户提供对该稀缺资源的利用率的可见性。这对规划和其他优化目的有很大帮助。

端点检查

保证设备300可以验证结构(例如,结构120)在所注册的端点信息中没有不一致(例如,两个叶节点宣告相同的端点、重复的子网等),以及其他这样的检查。

租户路由检查

保证设备300可以验证bd、vrf、子网(内部和外部两者)、vlan、契约、过滤器、应用、epg等被正确地编程。

基础设施路由

保证设备300可以验证基础设施路由(例如,is-is协议)没有导致黑洞、环路、振荡(flap)的收敛问题和其他问题。

mp-bgp路由反射检查

网络结构(例如,结构120)可以与其他外部网络接口连接,并通过一个或多个协议(例如,边界网关协议(bgp)、开放式最短路径优先(ospf)等)提供到它们的连接。通过例如mp-bgp在网络结构内通告已获知的路由。这些检查可以保证通过例如mp-bgp(例如,来自边界叶节点)的路由反射服务不具有健康问题。

逻辑线头(lint)和实时变化分析

保证设备300可以验证网络的规范(例如,l_模型270a)中的规则是完整的并且没有不一致或其他问题。可以由保证设备300通过在l_模型270a和/或mim200中的mo的相关联的配置上执行的语法和语义检查来检查mim200中的mo。保证设备300还可以验证不必要的、陈旧的、未使用的或冗余的配置(例如契约)被移除。

图3b示出了用于网络保证的示例系统350(例如,保证设备300)的架构图。在一些情况下,系统350可以对应于先前关于图3a所讨论的操作器310的dag。

在该示例中,拓扑探测器312与控制器116(例如,apic控制器)通信,以便发现或以其他方式构建结构120的综合拓扑视图(例如,脊节点102、叶节点104、控制器116、端点122、和任何其他组件及其互连)。虽然各种架构组件以单个盒装方式来表示,但是应理解,给定的架构组件(例如,拓扑探测器312)可对应于一个或多个个体操作器310,并且可以包括一个或多个节点或端点,例如一个或多个服务器、vm、容器、应用、服务功能(例如,服务链中的功能或虚拟化网络功能)等。

拓扑探测器312被配置为发现结构120中的节点,例如,控制器116、叶节点104、脊节点102等。拓扑探测器312还可以检测在控制器116之间执行的多数选举,并确定控制器116之间是否存在规定数量(quorum)。如果不存在规定数量或多数,则拓扑探测器312可以触发事件并警告用户控制器116之间存在配置或其他错误,其阻止达到规定数量或多数。拓扑探测器312可以检测作为结构120的一部分的叶节点104和脊节点102,并将其相应的带外管理网络地址(例如,ip地址)发布到下游服务。这可以是在拓扑探测器312发现时段(例如,5分钟或某个其他指定间隔)结束时发布到下游服务的拓扑视图的一部分。

在一些示例中,拓扑探测器312可以接收与网络/结构(例如,结构120)相关联的控制器116(例如,apic控制器)的列表作为输入。拓扑探测器312还可以接收相应的证书以登录到每个控制器。拓扑探测器312可以使用例如rest调用从每个控制器取回信息。拓扑探测器312可以从每个控制器获得该控制器知道的节点列表(例如,叶节点104和脊节点102)及其相关联的属性。拓扑探测器312可以从控制器116获得节点信息,包括但不限于,ip地址、节点标识符、节点名称、节点域、节点uri、节点_dm、节点角色、节点版本等。

拓扑探测器312还可以确定控制器116是否是规定数量的,或者它们之间是否充分地以通信方式耦合。例如,如果存在n个控制器,则当(n/2+1)个控制器知道彼此和/或以通信方式耦合时,可以满足规定数量的条件。拓扑探测器312可以通过解析从控制器返回的数据并识别其组成节点之间的通信耦合来确定规定数量(或识别任何失败的节点或控制器)。拓扑探测器312可以识别网络中每个节点的类型,例如,脊节点、叶节点、apic等,并将该信息包括在所生成的拓扑信息中(例如,拓扑图或模型)。

如果不存在规定数量,则拓扑探测器312可以触发事件并警告用户需要重新配置或适当注意。如果存在规定数量,则拓扑探测器312可以将网络拓扑信息编译为json对象,并将其向下游传递给其他操作器或服务,例如统一收集器314。

统一收集器314可以从拓扑探测器312接收拓扑视图或模型,并使用拓扑信息以从结构120收集用于网络保证的信息。统一收集器314可以轮询结构120中的节点(例如,控制器116、叶节点104、脊节点102等)以从这些节点收集信息。

统一收集器314可以包括一个或多个收集器(例如,收集器设备、操作器、应用、vm等),其被配置为从拓扑探测器312和/或结构120中的节点收集信息。例如,统一收集器314可以包括收集器集群,并且可以将每个收集器分配给拓扑模型和/或结构120内的节点的子集,以便从其被分配的节点的子集收集信息。为提高性能,统一收集器314可以以并行、多线程方式运行。

统一收集器314可以跨各个收集器实现负载平衡,以提高整个收集过程的效率。可以通过管理节点的子集到收集器的分布来优化负载平衡,例如通过随机地将节点散布到收集器。

在一些情况下,保证设备300可以运行统一收集器314的多个实例。这还可以允许保证设备300通过分片(sharding)和/或负载平衡来针对拓扑结构(例如,包括脊节点102、叶节点104、控制器116等的结构120)中的每个节点分布收集数据的任务,以及将收集任务和/或节点映射到统一收集器314的特定实例,其中跨越节点的数据收集由统一收集器314的各个实例并行执行。在给定节点内,可以串行地执行命令和数据收集。保证设备300可以控制统一收集器314的每个实例用于从结构120轮询数据的线程的数量。

统一收集器314可以收集来自控制器116的模型(例如,l_模型270a和/或lr_模型270b),来自结构120中的节点(例如,叶节点104和/或脊节点102)的交换机软件配置和模型(例如,ci_模型274),来自结构120中的节点(例如,叶节点104和/或脊节点102)的硬件配置和模型(例如,hi_模型276)等。统一收集器314可以收集来自各个节点或结构成员(例如,叶节点104和脊节点102)的ci_模型274和hi_模型276,以及来自网络环境100中的一个或多个控制器(例如,控制器116)的l_模型270a和/或lr_模型270b。

统一收集器314可以轮询拓扑探测器312发现的设备,以便从结构120(例如,从结构的组成成员)收集数据。统一收集器314可以使用由控制器116和/或交换机软件(例如,交换机os)暴露的接口(包括例如表示状态转移(rest)接口和安全外壳(ssh)接口)来收集数据。

在一些情况下,统一收集器314经由restapi收集l_模型270a、lr_模型270b和/或ci_模型274,并且经由ssh、使用交换机软件所提供的实用程序(例如,用于访问交换机命令行接口(cli)的虚拟壳(vsh或vshell)或用于访问线卡的运行时状态的vsh_lc壳)收集硬件信息(例如,配置、表、结构卡信息、规则、路由等)。

统一收集器314可以轮询来自控制器116的其他信息,包括但不限于:拓扑信息、租户转发/路由信息、租户安全性策略、契约、接口策略、物理域或vmm域信息、结构中的节点的oob(带外)管理ip等。

统一收集器314还可以轮询来自结构120中的节点(例如,叶节点104和脊节点102)的信息,包括但不限于:用于vlan、bd和安全性策略的ci_模型274;节点(例如,叶节点104和/或脊节点102)的链路层发现协议(lldp)连通性信息;来自epm/coop的端点信息;来自脊节点102的结构卡信息;来自结构120中的节点的路由信息库(rib)表;来自结构120中的节点的转发信息库(fib)表;来自结构120中的节点的安全组硬件表(例如,tcam表);等等。

在一些情况下,统一收集器314可以从网络获得运行时状态并且将运行时状态信息合并到l_模型270a和/或lr_模型270b中。统一收集器314还可以从控制器116获得多个逻辑模型,并基于逻辑模型生成综合或网络范围的逻辑模型(例如,l_模型270a和/或lr_模型270b)。统一收集器314可以比较来自控制器116的逻辑模型,解决依赖性,移除冗余等,并为整个网络或结构生成单个l_模型270a和/或lr_模型270b。

统一收集器314可以跨控制器116和结构节点或成员(例如,叶节点104和/或脊节点102)收集整个网络状态。例如,统一收集器314可以使用rest接口和ssh接口来收集网络状态。统一收集器314收集的该信息可以包括与链路层、vlan、bd、vrf、安全性策略等有关的数据。可以在lr_模型270b中表示状态信息,如前所述。然后,统一收集器314可以将收集的信息和模型发布给对此类信息感兴趣或需要此类信息的任何下游操作器。统一收集器314可以在接收到信息时发布信息,使得数据被流送到下游操作器。

统一收集器314所收集的数据可以被压缩并发送到下游服务。在一些示例中,统一收集器314可以以在线方式或实时方式收集数据,并在收集数据时向下游发送数据以供进一步分析。在一些示例中,统一收集器314可以以离线方式收集数据,并且编译数据以供稍后分析或传输。

保证设备300可以联系控制器116、脊节点102、叶节点104和其他节点以收集各种类型的数据。在一些场景中,保证设备300可能经历失败(例如,连通性问题、硬件或软件错误等),这使其在一段时间内无法收集数据。保证设备300可以无缝地处理这种失败,并基于这样的失败生成事件。

交换机逻辑策略生成器316可以从统一收集器314接收l_模型270a和/或lr_模型270b,并且为结构120中的每个网络设备i(例如,交换机i)计算li_模型272。例如,交换机逻辑策略生成器316可以接收l_模型270a和/或lr_模型270b并通过为结构120中的每个单独节点i(例如,脊节点102和/或叶节点104)投射逻辑模型来生成li_模型272。交换机逻辑策略生成器316可以为结构120中的每个交换机生成li_模型272,从而为每个交换机创建基于l_模型270a和/或lr_模型270b的交换机逻辑模型。

每个li_模型272可以表示在结构120中的相应网络设备i(例如,交换机i)处投射或应用的l_模型270a和/或lr_模型270b。在一些情况下,可以以与相应网络设备兼容的方式将li_模型272标准化或格式化。例如,可以以可由相应网络设备读取或执行的方式将li_模型272格式化。为进行说明,li_模型272可以包括可由相应网络设备解析的特定标识符(例如,控制器116用作分类符的硬件平面标识符等)或标签(例如,策略组标签)。在一些情况下,li_模型272可以包括json对象。例如,li_模型272可以包括json对象来表示规则、过滤器、条目、范围等。

用于li_模型272的格式可以与ci_模型274的格式相同或一致。例如,li_模型272和ci_模型274两者都可以基于json对象。类似或匹配的格式可以使li_模型272和ci_模型274能够进行对等性或一致性的比较。这种对等性检查可以有助于网络分析和保证,如本文进一步解释的。

交换机逻辑配置生成器316还可以执行变化分析并生成针对在l_模型270a和/或lr_模型270b中发现的问题的线头事件(lintevent)或记录。线头事件或记录可用于为用户或网络运营商生成警报。

策略操作器318可以针对每个交换机从统一收集器314接收ci_模型274和hi_模型276,并且针对每个交换机从交换机逻辑策略生成器316接收li_模型272,并且基于ci_模型274、hi_模型276和li_模型272执行保证检查和分析(例如,安全性遵守检查、tcam利用率分析等)。策略操作器318可以通过比较模型中的一个或多个来逐个交换机地执行保证检查。

返回到统一收集器314,统一收集器314还可以将l_模型270a和/或lr_模型270b发送到路由策略解析器320,并且将ci_模型274和hi_模型276发送到路由解析器326。

路由策略解析器320可以接收l_模型270a和/或lr_模型270b,并解析(一个或多个)模型以获得可以与下游操作器(例如端点检查器322和租户路由检查器324)相关的信息。类似地,路由解析器326可以接收ci_模型274和hi_模型276,并解析每个模型以获得针对下游操作器(端点检查器322和租户路由检查器324)的信息。

在解析ci_模型274、hi_模型276、l_模型270a和/或lr_模型270b之后,路由策略解析器320和/或路由解析器326可以将清理的协议缓冲区(protobuff)发送到下游操作器(端点检查器322和租户路由检查器324)。然后,端点检查器322然后可以生成与端点违规相关的事件,例如重复的ip、apipa等,并且租户路由检查器324可以生成与bd、vrf、子网、路由表前缀等的部署相关的事件。

图3c示出了用于网络(例如,网络环境100)中的静态策略分析的示例系统的示意图。静态策略分析器360可以执行保证检查,以检测配置违规、逻辑线头事件、矛盾或冲突的策略、未使用的契约、不完整的配置等。静态策略分析器360可以检查l_模型270a中用户的一个或多个意图的规范,以确定控制器116中是否有任何配置与用户的一个或多个意图的规范不一致。

静态策略分析器360可以包括在保证设备300中执行或容宿的操作器310中的一个或多个。然而,在其他配置中,静态策略分析器360可运行与操作器310和/或保证设备300分离的一个或多个操作器或引擎。例如,静态策略分析器360可以是vm、vm集群、或服务功能链中的端点的集合。

静态策略分析器360可以从逻辑模型收集过程366接收l_模型270a并且接收为l_模型270a中的每个特征(例如,对象)定义的规则368作为输入。规则368可以基于mim200中的对象、关系、定义、配置、以及任何其他特征。规则368可以指定条件、关系、参数、和/或用于识别配置违规或问题的任何其他信息。

此外,规则368可以包括用于识别语法违规或问题的信息。例如,规则368可以包括用于执行语法检查的一个或多个规则。语法检查可以验证l_模型270a的配置是否完整,并且可以帮助识别未使用的配置或规则。语法检查还可以验证分层mim200中的配置是否完整(已定义),并且识别已定义但未使用的任何配置。为进行说明,规则368可以指定l_模型270a中的每个租户都应被配置一个情境;l_模型270a中的每个契约都应指定提供者epg和消费者epg;l_模型270a中的每个契约都应指定主体、过滤器和/或端口;等等。

规则368还可以包括用于执行语义检查和识别语义违规或问题的规则。语义检查可以检查冲突的规则或配置。例如,规则1和规则2可能有别名问题,规则1可能比规则2更具体,从而产生冲突/问题,等等。规则368可以定义可能导致别名规则、冲突规则等的条件。为进行说明,规则368可以指定如果针对两个对象之间的特定通信的允许策略的优先级高于针对两个对象之间的同一通信的拒绝策略,则该允许策略可能与该拒绝策略相冲突,或者针对对象的一种规则使得另一规则显得不必要。

静态策略分析器360可以将规则368应用于l_模型270a,以检查l_模型270a中的配置,并基于检测到的任何问题而输出配置违规事件370(例如,警报、日志、通知等)。配置违规事件370可以包括语义或语义问题,例如,不完整的配置、冲突的配置、别名规则、未使用的配置、错误、策略违规、误配置的对象、不完整的配置、不正确的契约范围、不正确的对象关系等。

在一些情况下,静态策略分析器360可以迭代遍历基于l_模型270a和/或mim200生成的树中的每个节点,并在树中的每个节点处应用规则368以确定是否有任何节点发生违规(例如,不完整的配置、不恰当的配置、未使用的配置等)。当静态策略分析器360检测到任何违规时,它可以输出配置违规事件370。

图4示出了网络保证平台434的示例配置400。网络保证平台434可以在每个叶节点104上运行保证操作器402,以生成故障代码并且从叶节点104发出故障代码。在一些情况下,保证操作器402可以是诸如来自图3a中所示的操作器310中的一个或多个操作器。故障代码可以表示错误,例如硬件错误。保证操作器402可以将原始故障404发送到逻辑策略富集器406。

逻辑策略富集器406可以将硬件标识符(例如,范围、pctag等)映射到在结构配置(例如,aci结构配置)中定义的逻辑策略实体。例如,逻辑策略富集器406可以将硬件标识符映射到特定租户、epg、应用简档(ap)、契约等。逻辑策略富集器406可以基于映射来生成索引故障408,并且将索引故障408发送到租户聚合器418、420、422、424。在一些情况下,可以将索引故障408作为诸如密钥和标签对的对传输到聚合器。每个密钥可以表示特定维度,例如租户、契约、应用简档和epg对,等等。

聚合器418、420、422、424可以表示聚合层。在一些情况下,聚合器418、420、422、424可以被具体地设置为沿着预定维度(例如,租户(例如,聚合器418)、契约(例如,聚合器420)、应用简档(例如,聚合器422)、epg对(例如,聚合器424)等)进行聚合。聚合器418、420、422、424可以沿着特定维度来生成故障,例如租户410的故障、契约412的故障、应用简档414的故障、epg对416的故障,等等。

网络保证平台434然后可以生成和/或存储特定维度的可视化数据。例如,网络保证平台434可以维护租户错误可视化426、契约错误可视化428、应用简档错误可视化430、epg对错误可视化432,等等。可视化可以提供沿着诸如aci网络之类的sdn中的特定维度的错误的硬件级可见性。此外,租户错误可视化426、契约错误可视化428、应用简档错误可视化430、epg对错误可视化432可以被存储在一个或多个相应的存储位置(例如,数据库或存储服务器)中。

图5a示出了网络保证模型的示例流程图。在步骤500处,该方法涉及数据收集。数据收集可以包括针对运营商意图的数据的收集,例如,结构数据(例如,拓扑结构、交换机、接口策略、应用策略、端点组等)、网络策略(例如,bd、vrf、l2输出(l2out)、l3输出(l3out)、协议配置等)、安全性策略(例如,契约、过滤器等)、服务链策略等等。数据收集还可包括针对具体硬件模型的数据,例如,网络配置(例如,rib/fib、vlan、mac、isis、db、bgp、ospf、arp、vpc、lldp、mtu、qos等)、安全性策略(例如,tcam、ecmp表等)、端点动态(例如,epm、coopepdb等)、统计信息(例如,tcam规则命中、接口计数器、带宽等)。

在步骤502处,该方法可以涉及形式建模和分析。形式建模和分析可以涉及确定逻辑模型与硬件模型之间的对等关系,例如,模型之间的安全性策略等。

在步骤504处,该方法可以涉及智能事件生成。可以使用深度对象分层结构来生成智能事件以进行详细分析,例如:租户,叶节点,vrf,规则;过滤器,路由,前缀,端口号。

在步骤506处,该方法可以涉及可视化。可以在用户友好的gui中使用形式模型来识别问题以进行分析和调试。

图5b示出了用于故障代码聚合的示例方法。在步骤520处,保证操作器402获得与网络中的一个或多个网络设备(例如,叶节点104)相对应的相应故障代码。在步骤522处,逻辑策略富集器406将一个或多个网络设备和/或相应故障代码映射到在网络的逻辑策略模型中定义的相应逻辑策略实体,以产生故障代码映射。逻辑策略模型可以是基于sdn或aci配置生成的结构和/或网络的模型。

在步骤524处,聚合器418、420、422、424沿着网络中的相应逻辑策略维度来聚合故障代码映射中的一个或多个故障代码映射,以产生跨相应逻辑策略维度的故障代码的聚合。在步骤526处,网络保证平台434针对相应逻辑策略维度中的每个逻辑策略维度,沿着相应逻辑策略维度来呈现一个或多个硬件级错误。在一些情况下,网络保证平台434可以生成可视化数据或接口数据,用于沿着相应逻辑策略维度呈现一个或多个硬件级错误。这种数据可以基于跨越相应逻辑策略维度的故障代码的聚合。

本公开现在转向图6和图7,其示出了示例网络设备和计算设备,例如,交换机、路由器、负载平衡器、客户端设备等。

图6示出了适用于执行交换、路由、负载平衡、和其他联网操作的示例网络设备600。网络设备600包括中央处理单元(cpu)604、接口602和总线610(例如,pci总线)。当在适当的软件或固件的控制下动作时,cpu604负责执行分组管理、错误检测和/或路由功能。cpu604优选地在包括操作系统和任何适当的应用软件的软件的控制下完成所有这些功能。cpu604可以包括一个或多个处理器608,例如来自intelx86系列微处理器的处理器。在一些情况下,处理器608可以是用于控制网络设备600的操作的专门设计的硬件。在一些情况下,存储器606(例如,非易失性ram、rom等)也形成cpu604的一部分。然而,有许多不同的方式可以将存储器耦合到系统。

接口602通常作为模块化接口卡(有时被称为“线卡”)提供。通常,它们控制通过网络发送和接收数据分组,并且有时支持与网络设备600一起使用的其他外围设备。可以提供的接口包括以太网接口、帧中继接口、线缆接口、dsl接口、令牌环接口等等。此外,可提供各种非常高速的接口,例如,快速令牌环接口、无线接口、以太网接口、千兆以太网接口、atm接口、hssi接口、pos接口、fddi接口、wifi接口、3g/4g/5g蜂窝接口、can总线、lora等。一般而言,这些接口可以包括适合于与适当介质通信的端口。在一些情况下,它们还可以包括独立处理器,并且在一些实例中,还包括易失性ram。独立处理器可以控制诸如分组交换、介质控制、信号处理、加密处理、和管理之类的通信密集型任务。通过为通信密集型任务提供分离的处理器,这些接口允许主微处理器604高效地执行路由计算、网络诊断、安全性功能等。

尽管图6中所示的系统是本发明的一个特定网络设备,但它决不是可以在其上实现本发明的唯一网络设备架构。例如,经常使用具有处理通信以及路由计算等的单个处理器的架构。此外,其他类型的接口和介质也可以与网络设备600一起使用。

无论网络设备的配置如何,它都可以采用一个或多个存储器或存储器模块(包括存储器606),其被配置为存储用于本文所描述的漫游、路由优化和路由功能的通用网络操作和机制的程序指令。例如,程序指令可以控制操作系统和/或一个或多个应用的操作。一个或多个存储器还可以被配置为存储诸如移动性绑定、注册和关联表之类的表。存储器606还可以保存各种软件容器和虚拟化的执行环境和数据。

网络设备600还可以包括专用集成电路(asic),其可以被配置为执行路由和/或交换操作。例如,asic可以经由总线610与网络设备600中的其他组件通信,以交换数据和信号并协调网络设备600的各种类型的操作,例如路由、交换、和/或数据存储操作。

图7示出了计算系统架构700,其中该系统的组件使用诸如总线之类的连接705彼此电通信。示例性系统700包括处理单元(cpu或处理器)710和系统连接705,系统连接705将包括系统存储器715在内的各种系统组件(例如,只读存储器(rom)720和随机存取存储器(ram)725)耦合到处理器710。系统700可以包括高速存储器的缓存,其与处理器710直接连接、靠近处理器710、或者集成作为处理器710的一部分。系统700可以将数据从存储器715和/或存储设备730复制到缓存712以供处理器710快速访问。以这种方式,缓存可以提供性能提升,避免处理器710在等待数据时的延迟。这些和其他模块可以控制或被配置为控制处理器710以执行各种动作。也可以使用其他系统存储器715。存储器715可以包括具有不同性能特性的多个不同类型的存储器。处理器710可以包括任何通用处理器和被配置为控制处理器710的硬件或软件服务(例如,存储在存储设备730中的服务1732、服务2734和服务3736)以及其中将软件指令包含在实际的处理器设计中的专用处理器。处理器710可以是完全自包含的计算系统,包含多个核或处理器、总线、存储器控制器、缓存等。多核处理器可以是对称的或非对称的。

为了实现与计算设备700的用户交互,输入设备745可以表示任何数量的输入机制,诸如用于语音的麦克风、用于手势或图形输入的触敏屏幕、键盘、鼠标、运动输入、语音等等。输出设备735也可以是本领域技术人员已知的多种输出机构中的一种或多种。在一些实例中,多模式系统可以使用户能够提供多种类型的输入以与计算设备700通信。通信接口740通常可以控制和管理用户输入和系统输出。对任何特定硬件布置进行的操作没有限制,并且因此这里的基本特征可以很容易地随着改进的硬件或固件布置被开发而被替换为这些改进的硬件或固件布置。

存储设备730是非易失性存储器,并且可以是硬盘或其他类型的计算机可读介质,其可以存储可由计算机访问的数据,例如磁带盒、闪存卡、固态存储器设备、数字通用盘、盒式磁带、随机存取存储器(ram)725、只读存储器(rom)720及其混合。

存储设备730可以包括用于控制处理器710的服务732、734、736。可以预期其他硬件或软件模块。存储设备730可以连接到系统连接705。在一个方面,执行特定功能的硬件模块可以包括存储在与必要的硬件组件(例如,处理器710、连接705、输出设备735等)相连的计算机可读介质中的软件组件以执行功能。

总之,描述了用于跨以应用为中心的维度的故障代码聚合的系统、方法、和计算机可读介质。在示例实施例中,系统获得与网络中的一个或多个网络设备相对应的相应故障代码,并且将一个或多个网络设备和/或相应故障代码映射到在网络的逻辑策略模型中定义的相应逻辑策略实体,以产生故障代码映射。该系统沿着网络中的相应逻辑策略维度来聚合故障代码映射中的一个或多个故障代码映射,以产生跨相应逻辑策略维度的故障代码的聚合,并且基于该聚合,针对相应逻辑策略维度中的每个逻辑策略维度,沿着相应逻辑策略维度来呈现一个或多个硬件级错误。

为了解释的清楚起见,在一些实例中,本技术可以被呈现为包括个体的功能块,其包括包含以下项的功能块:设备、设备组件、在软件中体现的方法中的步骤或例程、或者硬件和软件的组合。

在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的有线或无线信号。然而,当提及时,非暂态计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。

可以使用存储在计算机可读介质中或以其他方式可从计算机可读介质获得的计算机可执行指令来实现根据上述示例的方法。这样的指令可以包括例如使得或以其他方式配置通用计算机、专用计算机或专用处理设备以执行特定功能或功能组的指令和数据。可以通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制指令、诸如汇编语言之类的中间格式指令、固件、或源代码。可用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、具有非易失性存储器的usb设备、联网的存储设备等等。

实现根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并且可以采用各种形式因子中的任何形式因子。这种形式因子的典型示例包括膝上型计算机、智能电话、小型个人计算机、个人数字助理、机架设备、独立设备等。本文描述的功能也可以实现在外围设备或附加卡中。作为进一步的示例,这样的功能还可以在不同芯片之间的电路板上实现,或者在单个设备中执行的不同处理过程中实现。

指令、用于传达这些指令的介质、用于执行它们的计算资源以及用于支持这种计算资源的其他结构是用于提供这些公开内容中所描述的功能的手段。

尽管使用各种示例和其他信息来解释所附权利要求范围内的各个方面,但是不应基于这些示例中的特定特征或布置来暗示对权利要求的限制,因为普通技术人员将能够使用这些示例来导出各种各样的实现方式。此外,尽管可能已经用特定于结构特征和/或方法步骤的示例的语言描述了一些主题,但是应该理解,所附权利要求中定义的主题不必限于这些描述的特征或动作。例如,这种功能可以在本文标识的那些组件之外的组件中以不同的方式分布或者在本文标识的那些组件之外的组件中执行。相反,所描述的特征和步骤被公开为所附权利要求范围内的系统和方法的组分的示例。

记载“……中的至少一个”的权利要求语言指的是集合中的至少一个,并且指示该集合中的一个成员或该集合中的多个成员满足该权利要求。例如,记载“a和b中的至少一个”的权利要求语言意思是a、b或a和b。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1