掌桥专利:专业的专利平台
掌桥专利
首页

源意图策略模型到目标意图策略模型的转换

文献发布时间:2024-04-18 20:01:23


源意图策略模型到目标意图策略模型的转换

相关申请的交叉引用

本申请要求于2022年9月16日提交的题为“GRAPH MODEL ANALYSIS DRIVENPOLICY CONVERSION”(图模型分析驱动策略转换)的印度专利申请号202241052945的优先权,其全部内容通过引用明确并入本文。

背景技术

网络设备通常包括用于本地或远程配置网络设备的诸如管理接口的机制。通过与管理接口进行交互,管理员可以执行配置任务,诸如配置网络设备的接口卡、调整网络设备所支持的网络协议的参数、指定网络设备内的物理组件、修改由网络设备所维护的路由信息、访问驻留在网络设备上的软件模块和其他资源、和/或其他配置任务。

网络设备可以由网络管理系统根据诸如基于意图的联网模型的声明性网络操作模型来配置。系统允许管理员描述网络设备的一个或多个预期状态,诸如预期网络状态、执行状态、存储状态和/或另一状态。意图可以被分类为有状态意图和无状态意图。有状态意图(也称为“业务策略”)可以基于网络设备的当前状态来解决。无论网络状态的当前状态如何,都可以解决无状态意图。

发明内容

在一些实现中,一种方法,包括:由系统标识与具有由多个源边连接的多个源节点的第一图相关联的源意图策略模型;由系统标识多个源节点的源节点集合;由系统转换源节点集合以生成目标节点集合;由系统标识目标节点集合的目标节点子集,其未被包括在与第二图相关联的目标意图策略模型中,该第二图具有由多个目标边连接的多个目标节点;由系统确定与目标节点子集和多个目标节点相关联的层级顺序;并且由系统使目标意图策略模型被更新以包括目标节点子集和多个目标节点,使得第二图根据层级顺序被排序。

在一些实现中,一种存储指令集的非暂态计算机可读介质,包括:一个或多个指令,该一个或多个指令在由系统的一个或多个处理器执行时,使系统:标识与具有由多个源边连接的多个源节点的第一图相关联的源意图策略模型;标识多个源节点的源节点集合;转换源节点集合以生成目标节点集合;标识目标节点集合的未被包括在与第二图相关联的目标意图策略模型的目标节点子集,该第二图具有由多个目标边连接的多个目标节点;并且使目标意图策略模型被更新以包括目标节点子集和多个目标节点。

在一些实现中,一种系统,包括:一个或多个存储器和一个或多个处理器,以用于:标识与源意图策略模型相关联的第一图的多个源节点的源节点集合;转换源节点集合以生成目标节点集合;标识目标节点集合的未被包括在与目标意图策略模型相关联的第二图的多个目标节点中的目标节点子集;执行与目标节点子集和多个目标节点相关联的一个或多个处理操作;并且基于执行一个或多个处理操作,使目标意图策略模型被更新。

附图说明

图1A至图1F是本文所描述的一个或多个示例实现的图。

图2是在其中可以实现本文所描述的系统和/或方法的示例环境的图。

图3至图4是与源意图策略模型到目标意图策略模型的转换相关联的设备的示例组件的图。

图5是与源意图策略模型到目标意图策略模型的转换相关联的示例过程的流程图。

具体实施方式

示例实现的以下详细描述参考附图。不同附图中的相同参考标号可以标识相同或相似的元件。

意图可以被表示在意图数据模型中,意图数据模型可以使用统一图来建模。例如,意图数据模型可以被表示为具有利用边(例如,表示配置对象之间的关系)连接的节点(例如,表示配置对象)的连接图。为了配置网络设备来执行意图,转换程序可以针对网络设备将高级配置信息(例如,包括根据意图数据模型的指令,其可以被表达为连接图)转换为低级配置信息(例如,其包括根据设备配置模型的指令)。

网络管理系统可以维护诸如用于云服务(例如,安全服务边缘(SSE)能力)的意图策略模型,其可以被部署以向多个不同的网络设备提供服务。然而,在多种情况下,每个网络设备还需要针对网络设备的设备上服务(例如,防火墙或其他安全服务)维护不同的意图策略模型。这可能导致网络管理员需要维护和/或监控针对网络设备的网络的全局意图策略模型和个体意图策略模型。因此,网络管理员可以利用设备的计算资源(例如,处理资源、存储器资源、通信资源和/或电力资源等)来管理和监控多个意图策略模型。

本文所描述的一些实现提供网络管理系统(NMS)。NMS标识源意图策略模型(例如,其与多个网络设备的云服务相关联)和目标意图策略模型(例如,其与单个网络设备的设备上服务相关联)。源意图策略模型与具有由多个源边连接的多个源节点(与源意图相关联)的第一图相关联。目标意图策略模型与具有由多个目标边连接的多个目标节点(与目标意图相关联)的第二图相关联。

NMS标识多个源节点中的源节点集合,该源节点集合与要被包括在目标意图策略模型中的源意图相关联。NMS转换源节点集合以生成目标节点集合(例如,使得目标节点被格式化以被包括在与目标意图策略模型相关联的第二图中)。然后,NMS标识目标节点集合的未被包括在第二图中的目标节点子集。NMS由此执行与目标节点集合和多个目标节点(例如,其被包括在第二图中)相关联的一个或多个处理操作。例如,NMS可以确定与目标节点子集和多个目标节点相关联的层级顺序、标识和解决冲突、和/或标识和解决冗余。然后,NMS可以使目标意图策略模型被更新以包括目标节点子集和多个目标节点(例如,使得第二图根据层级顺序被排序)。此外,NMS可以基于检测到对源意图策略模型的改变而使目标意图策略模型随后被更新。

以这种方式,NMS使得多个意图策略模型能够被自动管理和更新(例如,无需网络管理员的人工干预)。此外,NMS实现源意图策略模型到目标意图策略模型的自动转换,这允许网络管理员管理和/或监控针对网络设备的仅一个意图策略模型,而不是两个分开的意图策略模型。因此,节省了设备的计算资源(例如,处理资源、存储器资源、通信资源和/或电力资源等等),否则这些资源将被网络管理员用来管理和监控多个意图策略模型。此外,减少了否则会存在的与多个意图策略模型相关联的排序问题、冲突和/或冗余,这优化了NMS和/或网络设备的计算资源的使用。

图1A至图1F是本文所描述的一个或多个示例实现100的图。如图1A至图1F中所示,(多个)示例实现100可以包括NMS和网络设备。NMS和网络设备将在下面结合图2至图4进行更详细的描述。如图1A至图1F中所示,NMS可以包括意图策略模型管理模块、转换模块和分析模块。

如图1A中并通过参考编号102所示,NMS(例如,使用意图策略模型管理模块)可以标识源意图策略模型(例如,诸如用于云服务的意图策略模型,其将被转换为另一意图策略模型,如本文所述)。源意图策略模型可以是基于图的策略模型或者另一类型的基于意图的模型,基于图的策略模型诸如在其中源意图和源对象被表示为节点,并且源意图和源对象之间的关系被表示为边。例如,如图1A中所示,源意图策略模型可以与具有由多个源边连接的多个源节点的图相关联。多个源节点可以包括一个或多个源意图节点(例如,其中每个源意图节点与源意图相关联)和/或一个或多个源意图对象节点(例如,其中每个源意图对象节点与源意图对象相关联)。多个源节点(例如,其包括一个或多个源意图节点和/或一个或多个源意图对象节点)可以经由多个源边来连接以指示在多个源节点之间诸如“具有”或“引用”关联的关联。

作为特定示例,如图1A中所示,源意图策略模型可以被表示为图,该图包括与源意图A相关联的第一源意图节点、与源意图B相关联的第二源意图节点、以及与源意图C相关联的第三源意图节点;以及与源意图对象1相关联的第一源意图对象节点、与源意图对象2相关联的第二源意图对象节点、以及与源意图对象3相关联的第三源意图对象节点。第一源意图节点可以经由相应的源边而连接到第二源意图节点和第三源意图节点(例如,源“具有”边)。以这种方式,该图指示第二源意图节点和第三源意图节点依赖于第一源意图节点。第二源意图节点可以经由相应的源边连接到第一源意图对象节点和第二源意图对象节点(例如,源“引用”边),并且第三源意图节点可以经由相应的源边而连接到第二源意图对象节点和第三源意图对象节点(例如,源引用边)。以这种方式,该图指示第一源意图对象节点和第二源意图对象节点依赖于第二源意图节点,并且第二源意图对象节点和第三源意图对象节点依赖于第三源意图节点。

在一些实现中,源意图策略模型的每个节点可以包括信息。该信息可以指示例如源节点的名称、与源节点相关联的标识符(例如,通用唯一标识符(UUID)或与源节点相关联的另一标识符)和/或源节点的类型(例如,其指示源节点是源意图节点还是源意图对象节点,或是其他类型的节点)。附加地或备选地,每个源节点可以包括例如指示哪些源节点依赖于该源节点的信息和/或指示该源节点依赖于哪些源节点的信息。例如,第一源意图对象节点(例如,与源意图对象B相关联)可以包括指示第一源意图对象节点依赖于第二源意图节点(例如,与源意图B相关联)的信息;第二源意图对象节点(例如,与源意图对象2相关联)可以包括指示第二源意图对象节点依赖于第二源意图节点(例如,与源意图B相关联)和第三源意图节点(例如,与源意图C相关联)的信息;第三源意图对象节点(例如,与源意图对象3相关联)可以包括指示第三源意图对象节点依赖于第三源意图节点(例如,与源意图C相关联)的信息。作为另一示例,第二源意图节点(例如,与源意图B相关联)可以包括指示第二源意图节点依赖于第一源意图节点(例如,与源意图A相关联)和/或第一源意图对象节点(例如,与源意图对象1相关联)和第二源意图对象节点(例如,与源意图对象2相关联)依赖于第二源意图节点的信息;第三源意图节点(例如,与源意图C相关联)可以包括指示第三源意图节点依赖于第一源意图节点(例如,与源意图A相关联)和/或第二源意图对象节点(例如,与源意图对象2关联)和第三源意图对象节点(例如,与源意图对象3关联)依赖于第三源意图节点的信息。

如图1B中并且通过参考编号104所示,NMS(例如,其使用意图策略模型管理模块)可以标识图中的多个源节点中的与源意图策略模型相关联的源节点集合(例如,一个或多个源节点)。该源节点集合可以与相关于网络设备的源意图策略模型的源意图相关联(例如,其可以在网络设备上被实现)。在一些实现中,网络管理员可以与NMS的用户界面进行交互以输入选择,该选择标识图中的多个源节点中的与源意图策略模型相关联的第一组一个或多个源节点。备选地,NMS可以包括或者可以获得(例如,从诸如数据库、表、文件的数据结构或另一数据结构中)标识该组一个或多个源节点的配置信息。第一组一个或多个源节点可以是其他源节点所依赖于的源节点,并且可以包括例如一个或多个源意图节点(并且可以不包括一个或多个源意图对象节点)。因此,NMS可以标识多个源节点中的第二组一个或多个节点,其依赖于第一组一个或多个源节点的。例如,第二组一个或多个源节点可以包括依赖于第一组一个或多个源节点的一个或多个源意图节点和/或一个或多个源意图对象节点。因此,NMS可以将该源节点集合标识为包括第一组一个或多个源节点,并且在一些实现中还包括第二组一个或多个源节点。

如图1C中并且通过参考编号106所示,NMS(例如,使用转换模块)可以转换源节点集合以生成目标节点集合。例如,NMS可以遍历源节点集合并且可以由此将每个源节点转换成至少一个目标节点。NMS可以使用诸如深度优先搜索技术的递归技术来遍历源节点集合。因此,基于递归地遍历源节点集合,NMS可以转换源节点集合中的每个源节点以生成目标节点集合(例如,以深度优先方式),使得该源节点集合中的每个源节点与目标节点集合中的至少一个目标节点相对应。NMS可以使用与本文所描述的目标意图策略模型相关联的转换技术来转换源节点集合以生成目标节点集合。例如,转换技术可以指示包括在源节点中的信息将如何被修改(如果有的话)并被包括在至少一个目标节点中,和/或可以指示与源节点相关联的一个或多个源边如何被修改(如果有的话)并与至少一个目标节点相关联。

如图1D中并且通过参考编号108所示,NMS(例如,使用意图策略模型管理模块)可以标识目标意图策略模型(例如,意图策略模型,诸如用于网络设备的设备上服务,即如本文所描述的那样进行更新)。目标意图策略模型可以是基于图的策略模型或者另一类型的基于意图的模型,基于图的策略模型诸如在其中目标意图和目标对象被表示为节点,并且目标意图和目标对象之间的关系被表示为边。例如,如图1D中所示,目标意图策略模型可以与具有由多个目标边连接的多个目标节点的图相关联。多个目标节点可以包括一个或多个意图节点(例如,其中每个目标意图节点与目标意图相关联)和/或一个或多个目标意图对象节点(例如,其中每个目标意图对象节点与目标意图对象相关联)。多个目标节点(例如,包括一个或多个目标意图节点和/或一个或多个目标意图对象节点)可以经由多个目标边连接以指示在多个目标节点之间的关联,例如“具有”或“引用”关联。

作为特定示例,如图1D中所示,目标意图策略模型可以表示为图,该图包括与目标意图A相关联的第一目标意图节点和与目标意图1B相关联的第二目标意图节点;以及与目标意图对象1相关联的第一目标意图对象节点和与目标意图对象2相关联的第二目标意图对象节点。第一目标意图节点可以经由目标边被连接到第二目标意图节点(例如,目标“具有”边)。以这种方式,该图指示第二目标意图节点依赖于第一目标意图节点。第二目标意图节点可以经由相应的目标边被连接到第一目标意图对象节点和第二目标意图对象节点(例如,目标“引用”边)。以这种方式,该图指示第一目标意图对象节点和第二目标意图对象节点依赖于第二目标意图节点。

在一些实现中,目标意图策略模型的每个节点可以包括信息。该信息可以指示例如目标节点的名称、与目标节点相关联的标识符(例如,通用唯一标识符(UUID)或与目标节点相关联的另一标识符)和/或目标节点的类型(例如,其指示目标节点是目标意图节点还是目标意图对象节点,或是其他类型的节点)。附加地或备选地,每个目标节点可以包括例如指示哪些目标节点依赖于该目标节点的信息和/或指示该目标节点依赖于哪些目标节点的信息。例如,第一目标意图对象节点(例如,与目标意图对象1相关联)可以包括指示第一目标意图对象节点依赖于第二目标意图节点(例如,与目标意图1相关联)的信息;第二目标意图对象节点(例如,与目标意图对象2相关联)可以包括指示第二目标意图对象节点依赖于第二目标意图节点(例如,与目标意图1相关联)的信息;并且第二目标意图节点(例如,与目标意图1相关联)可以包括指示第二目标意图节点依赖于第一目标意图节点(例如,与目标意图A相关联)和/或第一目标意图对象节点(例如,与目标意图对象1相关联)和第二目标意图对象节点(例如,与目标意图对象2相关联)依赖于第二目标意图节点的信息。

在一些实现中,目标意图策略模型可以与源意图策略模型相关联。例如,当源意图策略模型与可以被应用于多个不同网络设备(包括本文所描述的网络设备)上的特定类型的云服务(例如,安全服务)相关联并且目标意图策略模型与要被应用于本文所描述的网络设备上的特定类型的设备上服务相关联时,目标策略模型可能包括一些(但不是全部)与源意图策略模型相同或相似的意图(例如,在如本文所描述的那样更新目标策略模型之前)。

如图1E中并且通过参考编号110所示,NMS(例如,使用分析模块)可以标识目标节点集合(例如,其对应于源节点集合)的目标节点子集(例如,一个或多个目标节点),其未被包括在目标意图策略模型(例如,其与具有由多个目标边连接的多个目标节点的图相关联)中。例如,对于目标节点集合中的每个目标节点,NMS可以处理(例如,使用散列技术)目标节点(例如,处理包括在目标节点中的至少一些信息),以确定与目标节点相关联的散列值。然后,NMS可以确定多个目标节点中的一个(例如,其与多个目标节点相关联)是否与散列值相关联。例如,NMS可以处理多个目标节点中的每一个以确定与多个目标节点相关联的相应散列值(或者可以从数据结构中获得各个散列值)。然后,NMS可以搜索相应散列值以确定散列值中的任何一个是否匹配(例如,等于)与目标节点相关联的散列值。因此,当NMS确定多个目标节点中的一个目标节点与散列值相关联时(例如,做出肯定匹配确定),NMS可以确定目标节点已经被包括在目标意图策略模型中并且因此可以避免执行与目标节点相关联的任何其他操作。备选地,当NMS确定多个目标节点中没有一个与散列值相关联时(例如,做出否定匹配确定),NMS可以确定目标节点未被包括在目标意图策略模型中并且因此可以将目标节点子集标识为包括目标节点。NMS还可以将目标节点子集标识为包括目标节点集合中的依赖于该目标节点的一个或多个目标节点。

如图1F中并且通过参考编号112所示,NMS(例如,使用分析模块)可以执行(例如,目标意图策略模型的)与目标节点子集和多个目标节点相关联的一个或多个处理操作。

在一些实现中,一个或多个处理操作可以包括确定与目标节点子集和多个目标节点相关联的层级顺序。例如,NMS可以确定目标节点子集中的第一目标节点是否依赖于多个目标节点中的第二目标节点,反之亦然。当另一目标节点依赖于(例如,直接或间接)目标节点时,该目标节点被认为在层级顺序中被排序在另一目标节点之前。因此,NMS可以确定层级顺序,其中(目标节点子集和多个目标节点的)与“特定”目标意图相关联的目标节点被排序在(目标节点子集和多个目标节点的)与“广泛”目标意图相关联的其他目标节点之前。例如,在安全防火墙意图策略上下文中,NMS可以确定与允许营销用户组访问营销网站相关联的一个或多个目标节点被排序在与允许所有用户组访问互联网相关联的一个或多个目标节点之前。

在一些实现中,一个或多个处理操作可以包括标识目标节点子集与多个目标节点之间的一个或多个冲突。当目标节点子集和多个目标节点中的至少两个目标节点与相互矛盾的目标意图相关联时(例如,针对相同或相似的目标资源或对象而与不同的动作相关联的目标意图),存在冲突。例如,在安全防火墙意图策略上下文中,NMS可以确定允许营销用户组访问营销网站相关联的一个或多个目标节点与拒绝营销用户组访问营销网站相关联的一个或多个目标节点冲突。在一些实现中,NMS可以确定目标节点子集中的第一目标节点和多个目标节点中的第二目标节点彼此冲突。例如,NMS可以比较被包括在第一目标节点中的至少一些信息和被包括在第二目标节点中的至少一些信息(例如,其对应于包括在第一目标节点中的至少一些信息)来确定第一目标节点与第二目标节点彼此冲突。NMS可以提供指示NMS标识出一个或多个冲突的信息(例如,指示NMS确定第一目标节点和第二目标节点彼此冲突的信息),使得该信息(例如,经由与NMS相关联的显示屏)可以被呈现给网络管理员。

此外,一个或多个操作可以包括解决(例如,由NMS标识的)目标节点子集与多个目标节点之间的一个或多个冲突。在一些实现中,NMS可以移除目标节点子集和多个目标节点中的至少一个目标节点,该至少一个目标节点与目标节点子集和多个目标节点中的至少一个其他目标节点冲突。备选地,NMS使冲突的目标节点以特定方式被排序(例如,按层级顺序)。例如,基于确定目标节点子集中的第一目标节点和多个目标节点中的第二目标节点彼此冲突,NMS可以使第二目标节点在层级顺序中被排序在第一目标节点之前(反之亦然)。以这种方式,在层级顺序中可以建立第一目标节点和第二目标节点之间的优先关系(或依赖关系)。

在一些实现中,一个或多个处理操作可以包括标识目标节点子集和多个目标节点之间的一个或多个冗余。当目标节点子集和多个目标节点中的至少两个目标节点与匹配的目标意图相关联时(例如,针对相同或类似的目标资源或对象,目标意图与相同或类似的动作相关联),则存在冗余。例如,在安全防火墙意图策略上下文中,NMS可以确定与允许营销用户组访问营销网站相关联的一个或多个目标节点和与允许所有用户组访问互联网相关联的一个或多个其他目标节点冗余。在一些实现中,NMS可以确定目标节点子集和多个目标节点中的目标节点与目标节点子集和多个目标节点中的另一目标节点冗余。例如,NMS可以比较被包括在目标节点中的至少一些信息和被包括在另一目标节点中的至少一些信息(例如,其对应于包括在第一目标节点中的至少一些信息)来确定目标节点与另一目标节点冗余。NMS可以提供指示NMS标识出一个或多个冗余的信息(例如,指示NMS确定目标节点与另一目标节点冗余的信息),使得该信息(例如,经由与NMS相关联的显示屏显示)可以被呈现给网络管理员。

此外,一个或多个操作可以包括解决(例如,由NMS标识的)目标节点子集和多个目标节点之间的一个或多个冗余。在一些实现中,NMS可以移除目标节点子集和多个目标节点中的至少一个目标节点,该至少一个目标节点与目标节点子集和多个目标节点中的至少一个其他目标节点冗余。例如,基于确定目标节点与另一目标节点冗余,NMS可以从目标节点子集和多个目标节点中移除该目标节点(或另一目标节点)。以这种方式,可以减小目标节点子集和多个目标节点的大小。

如参考编号114所示,NMS(例如,使用意图策略模型管理模型)可以使目标意图策略模型被更新(例如,基于执行一个或多个处理操作)。例如,NMS可以使目标意图策略模型被更新为包括目标节点子集和多个目标节点(例如,在标识和/或解决冲突和/或冗余之后),使得与目标意图的策略模型相关联的图是根据层级顺序排序的。以这种方式,目标意图策略模型可以被更新为与源意图策略模型相同或相似(但是以使得目标意图策略模型能够被部署在网络设备上的方式而被格式化和排序)。

在一些实现中,NMS(例如,使用意图策略模型管理模型)可以维护映射或其他数据结构,其指示与源意图策略模型相关联的图的源节点和与目标意图策略模型相关联的图的目标节点之间的对应关系(例如,在更新目标意图策略模型之后)。因此,NMS(例如,使用意图策略模型管理模型)可以标识对与目标意图策略模型相关联的图的多个源节点中的特定源节点的改变(例如,由于对与特定源节点相关联的特定源意图和/或特定源意图对象的更新)。例如,NMS可以标识对包括在特定源节点中的至少一些信息的改变。NMS因此可以标识多个源节点中的一组一个或多个源节点,该组一个或多个源节点包括该特定源节点。该组一个或多个源节点可以包括该特定源节点并且还可以包括依赖于该特定源节点的一个或多个源节点。NMS可以转换该组一个或多个源节点以生成一组一个或多个目标节点(例如,以与本文关于图1C和参考编号106所描述的方式类似的方式)。NMS可以进一步使目标意图策略模型基于该组一个或多个源节点而被更新。

例如,对于该组目标节点中的每个目标节点,NMS可以标识(例如,包括在图中的目标节点子集和多个目标节点的)与目标意图策略模型相关联的图的对应目标节点。NMS可以确定目标节点是否与对应目标节点匹配(例如,包括在目标节点中的信息与包括在对应目标节点中的信息是否相同)。因此,NMS可以基于确定目标节点与对应目标节点不匹配而将对应目标节点替换为(例如,在图中的)该目标节点。否则,NMS可以将该目标节点从该组目标节点中移除。

如上面所指示的,图1A至图1F作为示例而被提供。其他示例可以不同于关于图1A至图1F所描述的。

图2是在其中可以实现本文所描述的系统和/或方法的示例环境200的示意图。如图2中所示,环境200可以包括网络管理系统201,其可以包括云计算系统202的一个或多个元件和/或可以在云计算系统202内被执行。云计算系统202可以包括一个或多个元件203-212,如下面更详细描述的。如图2中进一步所示,环境200可以包括网络220和/或网络设备230。环境200的设备和/或元件可以经由有线连接和/或无线连接互连。

云计算系统202可以包括计算硬件203、资源管理组件204、主机操作系统(OS)205和/或一个或多个虚拟计算系统206。云计算系统202可以在如下平台上执行,例如,AmazonWeb Services平台、Microsoft Azure平台或Snowflake平台。资源管理组件204可以执行计算硬件203的虚拟化(例如,抽象)以创建一个或多个虚拟计算系统206。使用虚拟化,诸如通过从单个计算设备的计算硬件203创建多个隔离的虚拟计算系统206,资源管理组件204使得单个计算设备(例如,计算机或服务器)能够像多个计算设备一样操作。以这种方式,与使用分开的计算设备相比,计算硬件203可以更有效地操作,具有更低的功耗、更高的可靠性、更高的可用性、更高的利用率、更大的灵活性和更低的成本。

计算硬件203可以包括来自一个或多个计算设备的硬件和对应资源。例如,计算硬件203可以包括来自单个计算设备(例如,单个服务器)或来自诸如一个或多个数据中心中的多个计算设备的多个计算设备(例如,多个服务器)的硬件。如图所示,计算硬件203可以包括一个或多个处理器207、一个或多个存储器208和/或一个或多个联网组件209。处理器、存储器和联网组件(例如,通信组件)的示例在本文别处被描述。

资源管理组件204可以包括能够虚拟化计算硬件203以启动、停止和/或管理一个或多个虚拟计算系统206的虚拟化应用(例如,在诸如计算硬件203的硬件上执行)。例如,资源管理组件204可以包括管理程序(例如,裸机或类型1管理程序、托管或类型2管理程序或其他类型的管理程序)或虚拟机监视器,诸如当虚拟计算系统206是虚拟机210时。附加地或备选地,资源管理组件204可以包括容器管理器,诸如当虚拟计算系统206是容器211时。在一些实现中,资源管理组件204在主机操作系统205内执行和/或与主机操作系统205协调执行。

虚拟计算系统206可以包括虚拟环境,该虚拟环境使用计算硬件203实现本文所描述的操作和/或过程的基于云的执行。如图所示,虚拟计算系统206可以包括虚拟机210、容器211或包括虚拟机和容器的混合环境212,等等。虚拟计算系统206可以使用文件系统来执行一个或多个应用,该文件系统包括二进制文件、软件库和/或在客户操作系统(例如,在虚拟计算系统206内)或主机操作系统205上执行应用所需的其他资源。

虽然网络管理系统201可以包括云计算系统202的一个或多个元件203-212,可以在云计算系统202内执行,和/或可以被托管在云计算系统202内,但是在一些实现中,网络管理系统201可能不是基于云的(例如,可以在云计算系统之外被实现)或者可以是部分基于云的。例如,网络管理系统201可以包括不是云计算系统202的一部分的一个或多个设备,诸如图3的设备300或图4的设备400,其可以包括独立服务器或另一类型的计算设备。网络管理系统201可以执行在本文别处更详细描述的一个或多个操作和/或过程。

网络220可以包括一个或多个有线和/或无线网络。例如,网络220可以包括蜂窝网络、公共陆地移动网络(PLMN)、局域网(LAN)、广域网(WAN)、专用网络、互联网和/或这些或其他类型的网络的组合。网络220使得环境200的设备之间能够通信。

网络设备230包括能够以本文所描述的方式接收、处理、存储、路由和/或提供业务(例如,分组或其他信息或元数据)的一个或多个设备。例如,网络设备230可以包括路由器,诸如标签交换路由器(LSR)、标签边缘路由器(LER)、入口路由器、出口路由器、提供商路由器(例如,提供商边缘路由器或提供商核心路由器)、虚拟路由器或其他类型的路由器。附加地或者备选地,网络设备230可以包括网关、交换机、防火墙、集线器、网桥、反向代理、服务器(例如,代理服务器、云服务器或数据中心服务器)、负载平衡器和/或类似设备。在一些实现中,网络设备230可以是在诸如机箱的外壳内实现的物理设备。在一些实现中,网络设备230可以是由云计算环境或数据中心的一个或多个计算机设备所实现的虚拟设备。在一些实现中,一组网络设备230可以是被用来通过网络220路由业务流的一组数据中心节点。

图2中所示的设备和网络的数量和布置作为示例而被提供。在实践中,与图2中所示的设备和/或网络相比,可能有更多的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或不同布置的设备和/或网络。此外,图2中所示的两个或更多设备可以在单个设备内被实现,或者图2中所示的单个设备可以被实现为多个分布式设备。附加地或备选地,环境200的一组设备(例如,一个或多个设备)可以执行被描述为由环境200的另一组设备执行的一个或多个功能。

图3是与源意图策略模型到目标意图策略模型的转换相关联的设备300的示例组件的图。设备300可以对应于网络管理系统201、计算硬件203和/或网络设备230。在一些实现中,网络管理系统201、计算硬件203和/或网络设备230可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3中所示,设备300可以包括总线310、处理器320、存储器330、输入组件340、输出组件350、和/或通信组件360。

总线310可以包括一个或多个组件,这些组件实现在设备300的组件之间的有线和/或无线通信。例如经由操作耦合、通信耦合、电子耦合和/或电耦合,总线310可以将图3的两个或更多组件耦合在一起。例如,总线310可以包括电连接(例如,电线、迹线和/或引线)和/或无线总线。处理器320可以包括中央处理单元、图处理单元、微处理器、控制器、微控制器、数字信号处理器、现场可编程门阵列、专用集成电路和/或其他类型的处理组件。处理器320可以以硬件、固件或硬件和软件的组合来实现。在一些实现中,处理器320可以包括一个或多个处理器,该处理器能够被编程以执行本文别处描述的一个或多个操作或过程。

存储器330可以包括易失性和/或非易失性存储器。例如,存储器330可以包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器和/或另一种类型的存储器(例如,闪存、磁存储器和/或光存储器)。存储器330可以包括内部存储器(例如,RAM、ROM或硬盘驱动器)和/或可移动存储器(例如,经由通用串行总线连接可移动)。存储器330可以是非暂态计算机可读介质。存储器330可以存储与设备300的操作相关的信息、一个或多个指令和/或软件(例如,一个或多个软件应用)。在一些实现中,存储器330可以包括例如经由总线310耦合(例如,通信耦合)到一个或多个处理器(例如,处理器320)的一个或多个存储器。处理器320和存储器330之间的通信耦合可以使得处理器320能够读取和/或处理存储在存储器330中的信息和/或将信息存储在存储器330中。

输入组件340可以使得设备300能够接收输入,诸如用户输入和/或感测输入。例如,输入组件340可以包括触摸屏、键盘、小键盘、鼠标、按钮、麦克风、开关、传感器、全球定位系统传感器、加速度计、陀螺仪和/或致动器。输出组件350可以使得设备300能够提供输出,诸如经由显示器、扬声器和/或发光二极管。通信组件360可以使得设备300能够经由有线连接和/或无线连接来与其他设备通信。例如,通信组件360可以包括接收器、发射器、收发器、调制解调器、网络接口卡和/或天线。

设备300可以执行本文所描述的一个或多个操作或过程。例如,非暂态计算机可读介质(例如,存储器330)可以存储指令集(例如,一个或多个指令或代码)以供处理器320执行。处理器320可以执行该指令集以执行本文所描述的一个或多个操作或过程。在一些实现中,由一个或多个处理器320对指令集的执行,导致一个或多个处理器320和/或设备300执行本文所描述的一个或多个操作或过程。在一些实现中,可以使用硬连线电路代替指令或与指令结合使用,以执行本文所描述的一个或多个操作或过程。附加地或备选地,处理器320可以被配置为执行本文所描述的一个或多个操作或过程。因此,本文所描述的实现不限于硬件电路和软件的任何特定组合。

图3中所示的组件的数目和布置作为示例而被提供。设备300可以包括比图3中所示的组件更多的组件、更少的组件、不同的组件或不同布置的组件。附加地或备选地,设备300的一组组件(例如,一个或多个组件)可以执行被描述为由设备300的另一组组件执行的一个或多个功能。

图4是与源意图策略模型到目标意图策略模型的转换相关联的设备400的示例组件的图。设备400可以与网络管理系统201、计算硬件203和/或网络设备230相对应。在一些实现中,网络管理系统201、计算硬件203和/或网络设备230可以包括一个或多个设备400和/或设备400的一个或多个组件。如图4中所示,设备400可以包括一个或多个输入组件410-1至410-B(B≥1)(以下统称为输入组件410,并单独称为输入组件410)、交换组件420、一个或多个输出组件430-1至430-C(C≥1)(以下统称为输出组件430,并单独称为输出组件430)、和控制器440。

输入组件410可以是用于物理链路的一个或多个附接点,并且可以是传入业务(诸如分组)的一个或多个入口点。诸如通过执行数据链路层封装或解封装,输入组件410可以处理传入业务。在一些实现中,输入组件410可以发射和/或接收分组。在一些实现中,输入组件410可以包括输入线卡,该输入线卡包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个接口卡(IFC)、分组转发组件、线卡控制器组件、输入端口、处理器、存储器和/或输入队列。在一些实现中,设备400可以包括一个或多个输入组件410。

交换组件420可以将输入组件410与输出组件430互连。在一些实现中,交换组件420可以经由一个或多个交叉开关、经由总线和/或利用共享存储器来实现。共享存储器可以充当临时缓冲器,以在分组最终被调度以递送到输出组件430之前存储来自输入组件410的分组。在一些实现中,交换组件420可以使得输入组件410、输出组件430和/或控制器440能够彼此通信。

输出组件430可以存储分组并且可以调度分组以便在输出物理链路上发射。输出组件430可以支持数据链路层封装或解封装和/或各种更高级别的协议。在一些实现中,输出组件430可以发射分组和/或接收分组。在一些实现中,输出组件430可以包括输出线卡,该输出线卡包括一个或多个分组处理组件(例如,以集成电路的形式),诸如一个或多个IFC、分组转发组件、线卡控制器组件、输出端口、处理器、存储器和/或输出队列。在一些实现中,设备400可以包括一个或多个输出组件430。在一些实现中,输入组件410和输出组件430可以由同一组组件来实现(例如,输入/输出组件可以是输入组件410和输出组件430的组合)。

控制器440包括处理器,其形式例如是CPU、图处理单元(GPU)、加速处理单元(APU)、微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)和/或其他类型的处理器。处理器以硬件、固件或硬件和软件的组合来实现。在一些实现中,控制器440可以包括可以被编程以执行功能的一个或多个处理器。

在一些实现中,控制器440可以包括RAM、ROM和/或另一种类型的动态或静态存储设备(例如闪存、磁存储器、光存储器等),其存储信息和/或指令以供控制器440使用。

在一些实现中,控制器440可以与连接到设备400的其他设备、网络和/或系统通信以交换关于网络拓扑的信息。控制器440可以基于网络拓扑信息来创建路由表,可以基于路由表来创建转发表,并且可以将转发表转发到输入组件410和/或输出组件430。输入组件410和/或输出组件430可以使用转发表来执行针对传入和/或传出分组的路由查找。

控制器440可以执行本文所描述的一个或多个过程。控制器440可以响应于执行由非暂态计算机可读介质所存储的软件指令来执行这些过程。计算机可读介质在本文中被定义为非暂态存储器设备。存储器设备包括单个物理存储设备内的存储器空间或分布在多个物理存储设备上的存储器空间。

软件指令可以从另一个计算机可读介质或经由通信接口从另一个设备而被读取到与控制器440相关联的存储器和/或存储组件中。当被执行时,存储在与控制器440相关联的存储器和/或存储组件中的软件指令可以使控制器440执行本文所描述的一个或多个过程。附加地或备选地,硬连线电路可以代替软件指令或与软件指令结合使用以执行本文所描述的一个或多个过程。因此,本文所描述的实现不限于硬件电路和软件的任何特定组合。

图4中所示的组件的数目和布置作为示例而被提供。在实践中,设备400可以包括比图4中所示的组件更多的组件、更少的组件、不同的组件或不同布置的组件。附加地或备选地,设备400的一组组件(例如,一个或多个组件)可以执行被描述为由设备400的另一组组件执行的一个或多个功能。

图5是与源意图策略模型到目标意图策略模型的转换相关联的示例过程500的流程图。在一些实现中,图5的一个或多个处理块由系统(例如,网络管理系统201)执行。在一些实现中,图5的一个或多个处理块由与系统分离或包括系统的诸如网络设备(例如,网络设备230)的另一设备或一组设备执行。附加地或备选地,图5的一个或多个处理块可以由如下设备执行:设备300的一个或多个组件,诸如处理器320、存储器330、输入组件340、输出组件350和/或通信组件360;设备400的一个或多个组件,诸如输入组件410、交换组件420、输出组件430和/或控制器440;和/或另一设备的一个或多个组件。

如图5中所示,过程500可以包括标识与具有由多个源边连接的多个源节点的第一图相关联的源意图策略模型(块510)。例如,系统可以标识与具有由多个源边连接的多个源节点的第一图相关联的源意图策略模型,如上所述。

如图5中进一步所示,过程500可以包括标识多个源节点中的源节点集合(块520)。例如,如上所述,系统可以标识多个源节点中的源节点集合。

如图5中进一步所示,过程500可以包括转换源节点集合以生成目标节点集合(块530)。例如,如上所述,系统可以转换源节点集合以生成目标节点集合。

如图5中进一步所示,过程500可以包括标识目标节点集合中的未被包括在与第二图相关联的目标意图策略模型中的目标节点子集,该第二图具有由多个目标边连接的多个目标节点(块540)。例如,如上所述,系统可以标识目标节点集合中的目标节点子集,该目标节点子集未被包括在与第二图相关联的目标意图策略模型中,该第二图具有由多个目标边连接的多个目标节点。

如图5中进一步所示,过程500可以包括确定与目标节点子集和多个目标节点相关联的层级顺序(块550)。例如,如上所述,系统可以确定与目标节点子集和多个目标节点相关联的层级顺序。

如图5中进一步所示,过程500可以包括使目标意图策略模型被更新以包括目标节点子集和多个目标节点,使得第二图根据层级顺序被排序(块560)。例如,如上所述,系统可以使目标意图策略模型被更新为包括目标节点子集和多个目标节点,使得第二图根据层级顺序被排序。

过程500可以包括附加的实现,诸如下文描述的和/或结合本文别处描述的一个或多个其他过程的任何单个实现或实现的任何组合。

在第一实现中,多个源节点包括一个或多个源意图节点,每个源意图节点与源意图策略模型的源意图相关联,多个源节点包括一个或多个源意图对象节点,每个源意图对象节点与源意图策略模型的源意图对象相关联,并且多个源边指示多个源节点之间的关联。

在第二实现中,单独地或与第一实现相结合,标识源节点集合包括:标识多个源节点中的第一组源节点,标识多个源节点中的依赖于第一组源节点的第二组源节点,并且将源节点集合标识为包括第一组源节点和第二组源节点。

在第三实现中,单独地或与第一和第二实现中的一个或多个相结合,转换源节点集合以生成目标节点集合包括使用深度优先搜索技术遍历源节点集合,以及使用转换技术并基于遍历源节点集合,将源节点转换为目标节点,其中转换技术与目标意图策略模型相关联。

在第四实现中,单独地或与第一至第三实现中的一个或多个相结合,多个目标节点包括一个或多个目标意图节点,每个目标意图节点与目标意图策略模型的目标意图相关联,多个目标节点包括一个或多个目标意图对象节点,每个目标意图对象节点与目标意图策略模型的目标意图对象相关联,并且多个目标边指示多个目标节点之间的关联。

在第五实现中,单独地或与第一至第四实现中的一个或多个相组合,标识未被包括在目标意图策略模型中的目标节点子集包括:对于目标节点集合中的每个目标节点,处理目标节点以确定散列值,确定多个目标节点中的一个目标节点是否与散列值相关联,以及基于确定多个目标节点中的一个目标节点不与散列值相关联,将目标节点子集标识为包括目标节点。

在第六实现中,单独地或与第一至第五实现中的一个或多个相结合,过程500包括基于确定与目标节点子集和多个目标节点相关联的层级顺序,确定目标节点子集中的第一目标节点和多个目标节点中的第二目标节点彼此冲突。

在第七实现中,单独地或与第一至第六实现中的一个或多个相结合,过程500包括:基于确定第一目标节点和第二目标节点彼此冲突,使第二目标节点在层级顺序中被排序在第一目标节点之前。

在第八实现中,单独地或与第一至第七实现中的一个或多个相结合,过程500包括:基于确定与目标节点子集和多个目标节点相关联的层级顺序,标识目标节点子集和多个目标节点中的目标节点与目标节点子集和多个目标节点中的另一目标节点冗余,并且从目标节点子集和多个目标节点中移除该目标节点。

在第九实现中,单独地或与第一至第八实现中的一个或多个相结合,过程500包括:在使目标意图策略模型被更新之后,标识对多个源节点中的特定源节点的改变;标识多个源节点中的包括特定源节点的一组一个或多个源节点,转换该组一个或多个源节点以生成一组一个或多个目标节点;以及对于该组一个或多个目标节点中的每个目标节点,标识目标节点子集和多个目标节点中的对应目标节点,确定目标节点是否与对应目标节点匹配,并且基于确定目标节点与对应目标节点不匹配,将对应目标节点替换为目标节点。

虽然图5示出了过程500的示例块,但是在一些实现中,过程500包括比图5中所描绘的块更多的块、更少的块、不同的块或不同布置的块。附近地或备选地,过程500的块中的两个或更多块可以并行执行。

前述公开提供了说明和描述,但是并非旨在穷举或将实现限制为所公开的精确形式。可以根据上述公开内容进行修改和变化,或者可以从实现的实践中获得修改和变化。

如本文中所使用的,术语“组件”旨在被广泛地解释为硬件、固件或者硬件和软件的组合。显而易见的是,本文所描述的系统和/或方法可以以不同形式的硬件、固件和/或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不限制实现。因此,系统和/或方法的操作和行为在本文中被描述而不参考特定的软件代码。应当理解,软件和硬件可以被用于基于本文的描述来实现系统和/或方法。

即使特征的特定组合在权利要求中被叙述和/或在说明书中被公开,这些组合并不旨在限制各种实现的公开。事实上,这些特征中的许多特征可以以具体未在权利要求中叙述和/或未在说明书中公开的方式来进行组合。尽管下面列出的每个从属权利要求可以直接从属于仅一个权利要求,但是各种实现的公开包括每个从属权利要求与权利要求书中的每个其他权利要求的组合。如本文中所使用的,提及项目列表中的“至少一个”的短语是指那些项目的任何组合,包括单个成员。例如,“a、b或c中的至少一个”旨在涵盖a、b、c、a-b、a-c、b-c和a-b-c、以及具有多个相同项目的任意组合。

本文中所使用的任何元件、动作或指令都不应被解释为是关键或必要的,除非明确如此描述。此外,如本文中所使用的,冠词“一”和“一个”旨在包括一个或多个项目,并且可以与“一个或多个”互换使用。此外,如本文中所使用的,冠词“该”旨在包括与冠词“该”相关的一个或多个项目,并且可以与“该一个或多个”互换使用。此外,如本文中所使用的,术语“组”(集合)旨在包括一个或多个项目(例如,相关项目、不相关项目或相关和不相关项目的组合),并且可以与“一个或多个”互换使用。如果只有一个项目,则使用短语“仅一个”或类似的语言。此外,如本文中所使用的,术语“具有”等旨在为开放式术语。此外,除非另有明确说明,否则短语“基于”旨在意指“至少部分地基于”。此外,如本文中所使用的,除非另有明确说明(例如,如果与“或者”或“……中的仅一个”),否则术语“或”在系列中使用时旨在包含在内,并且可以与“和/或”互换使用。

技术分类

06120116546330