CN114553689A - 连接性模板 - Google Patents
连接性模板 Download PDFInfo
- Publication number
- CN114553689A CN114553689A CN202111405526.4A CN202111405526A CN114553689A CN 114553689 A CN114553689 A CN 114553689A CN 202111405526 A CN202111405526 A CN 202111405526A CN 114553689 A CN114553689 A CN 114553689A
- Authority
- CN
- China
- Prior art keywords
- network
- template
- connectivity
- application points
- node
- 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
- 238000013461 design Methods 0.000 claims abstract description 68
- 230000006870 function Effects 0.000 claims description 99
- 238000000034 method Methods 0.000 claims description 88
- 230000008859 change Effects 0.000 claims description 52
- 230000004044 response Effects 0.000 claims description 7
- 239000003795 chemical substances by application Substances 0.000 description 206
- 238000012795 verification Methods 0.000 description 77
- 238000012545 processing Methods 0.000 description 62
- 238000007726 management method Methods 0.000 description 45
- 230000008569 process Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 39
- 230000009471 action Effects 0.000 description 26
- 230000000875 corresponding effect Effects 0.000 description 22
- 238000010200 validation analysis Methods 0.000 description 12
- 230000001960 triggered effect Effects 0.000 description 11
- 238000004458 analytical method Methods 0.000 description 10
- 230000006855 networking Effects 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 239000004744 fabric Substances 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000003550 marker Substances 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 101100029611 Schizosaccharomyces pombe (strain 972 / ATCC 24843) phf1 gene Proteins 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 101100478989 Caenorhabditis elegans swp-1 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011143 downstream manufacturing Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/084—Configuration by using pre-existing information, e.g. using templates or copying from other elements
- H04L41/0843—Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及连接性模板。接收要应用于计算机网络的设计的连接性模板的标识。自动分析网络的设计以识别网络的设计中的连接性模板有资格被应用于的合格应用点。接收对识别出的合格应用点中的要应用连接性模板的一个或多个指定应用点的指定。将连接性模板应用于识别出的合格应用点中的所指定的一个或多个指定应用点,以配置计算机网络。
Description
相关申请的交叉引证
本申请要求于2020年11月25日提交的美国申请号17/104,804的权益,其全部内容通过引用结合于本文中。
技术领域
本公开涉及连接性模板,更具体地,涉及使用连接性模板的方法及系统。
背景技术
配置网络通常需要网络管理员手动配置网络组件以创建期望的网络。例如,网络管理员通常必须手动配置许多网络交换机、服务器、存储装置和其他网络设备中的每一个以创建期望的网络配置。当添加、移除或修改网络设备和解决方案时,可能需要再次执行整个集成和配置的修改。手动监测这种类型的网络还增加了复杂性和低效率。因此,存在对于网络设备和解决方案的更高效的配置、管理和监测解决方案的需要。
发明内容
本公开描述了一种方法,该方法包括接收要应用于计算机网络的设计的连接性模板的标识;自动分析网络的设计,以识别网络的设计中的连接性模板有资格被应用于的合格应用点;接收对识别出的合格应用点中的要应用连接性模板的一个或多个指定应用点的指定;并且将连接性模板应用于识别出的合格应用点中的所指定的一个或多个指定应用点,以配置计算机网络。
此外,本公开描述了一种系统,该系统包括:处理器,被配置为:接收要应用于计算机网络的设计的连接性模板的标识;自动分析网络的设计,以识别网络的设计中的连接性模板有资格被应用于的合格应用点;接收对识别出的合格应用点中的要应用连接性模板的一个或多个指定应用点的指定;并且将连接性模板应用于识别出的合格应用点中的所指定的一个或多个指定应用点,以配置计算机网络;以及存储器,耦接至处理器并且被配置为向处理器提供指令。
附图说明
在以下详细描述和附图中公开了本发明的各种实施方式。
图1是示出网络管理环境的实施方式的图。
图2是示出管理服务器的实施方式的图。
图3是示出用于应用连接性模板来配置计算机网络的处理的实施方式的流程图。
图4是示出用于应用连接性模板的处理的实施方式的流程图。
图5是示出用于创建新连接性模板的用户界面的实施方式的图。
图6是示出用于选择要应用的连接性模板的用户界面的实施方式的图。
图7是示出用于应用连接性模板的用户界面的实施方式的图。
图8是示出可包括在图模型中的节点和边线的实施方式的图。
图9A是示出网络设备的实施方式的图。
图9B是示出图模型的一部分的实施方式的图。
图9C和图9D是触发图案的示例。
图10示出用于图模型的模型图示(例如,Python格式)的示例。
图11是示出用于验证现有的计算机网络的处理的实施方式的流程图。
图12是示出使用图模型自动配置计算基础设施的处理的实施方式的流程图。
图13是示出用于调用回调函数的处理的实施方式的流程图。
图14是示出代理创建流程的实施方式的流程图。
图15是示出检测和回应异常的处理的实施方式的流程图。
图16是示出用于生成验证模型的处理的实施方式的流程图。
图17是示出用于检测状态参数的处理的实施方式的流程图。
图18是示出用于分析验证报告的处理的实施方式的流程图。
具体实施方式
本发明能够以各种方式实现,包括作为处理;装置;系统;物质的组成;在计算机可读存储介质上体现的计算机程序产品;和/或处理器,诸如被配置为执行存储在耦接至处理器的存储器上和/或由耦接至处理器的存储器提供的指令的处理器。在本说明书中,这些实现方式或本发明可采取的任何其他形式可被称为技术。通常,所公开的处理的步骤顺序在本发明的范围内是可改变的。除非另有陈述,否则被描述为被配置为执行任务的诸如处理器或存储器的组件可实现为临时配置为在给定时间执行任务的通用组件或被制造成执行任务的特定组件。如本文中使用的,术语“处理器”是指被配置为处理诸如计算机程序指令的数据的一个或多个设备、电路和/或处理核心。
以下将结合示出本发明的原理的附图提供本发明的一个或多个实施方式的详细说明。结合这种实施方式描述了本发明,但是本发明不限于任何实施方式。本发明的范围仅由权利要求限制,并且本发明涵盖许多替代方案、修改和等同物。在以下描述中阐释了许多具体细节及附图以便提供本发明的全面理解。为了示例的目的而提供了这些细节,并且本发明可根据未列出一些或所有细节的权利要求来实践。为了清晰起见,没有详细描述与本发明相关的技术领域中已知的技术资料,使得本发明未被不必要地模糊。
在一些实施方式中,一个或多个连接性模板用于配置网络。例如,与配置网络中的网络设备之间的每个单独的端口不同,相同的连接性模板能够被应用于具有类似连接性要求的设备的多个不同应用点。基于连接性模板被应用于何处,由模板指定的配置/功能自动用于特定合适的应用点以实现针对特定应用点的模板配置/功能的版本实现。例如,用户将启用边界网关协议(BGP)通信的连接性模板应用到设备的应用点,并且在需要启用BGP应用的正确行为的任何地方自动地实现。由此,用户能够通过将模板应用到网络设备的应用点来实现由连接性模板指定的期望的应用模型。这允许网络设备最初建模为通用设备,而无需将其建模为特定类型的设备(例如,无需将其定义为网络交换机、防火墙、负载平衡器、服务器等),并且允许应用到设备的应用点的模板的功能/配置定义设备如何运行。
用户能够将功能的模板应用到通用设备的连接而无需遵循特定的刚性网络设计,而不是担心被定型为特定设备的网络设备的刚性功能。这使用户从行业标准参考网络设计中释放出来并且允许用户容易地实现定制设计而无需重复的手动定制配置。例如,参考网络设计可通过不允许与服务器类型设备建立路由会话来限制基于设备角色的配置,因为它要用外部路由器类型设备来完成。然而,用户能够使用应用于通用型设备(例如,虚拟化的外部路由器在服务器上运行)的连接性模板来实现这一点。
此外,自动确定特定应用点的应用背后的意图,并且基于该意图自动执行相关的行政和管理功能。例如,遥测技术和验证被自动配置为自动验证配置并监测任何错误。
在一些实施方式中,使用一个或多个原语定义连接性模板,其中,每个原语是可以基于联网原理一起堆叠/利用的原子网络操作(例如,L2接口的创建、IP地址的分配等)。每个原语在联网设备上执行低级动作(例如,单个原子操作)(例如,在端口上创建子接口)。例如,较低级原语被堆叠/利用以建立较高级连接性模板。在模板创建期间可以强制执行关于设定原语如何基于联网原理可被结构化/堆叠在一起的约束。例如,每个原语是仅适用于特定类型的目标(目标的实例:端口、虚拟路由和转发(VRF)、路由实例等)的类型,以将原语的使用/堆叠限制在联网原理中可允许的程度。在示例中,只能在网络端口上应用原语的子接口类型。此外,用户可基于一个或多个现有的连接性模板创建新的连接性模板,以便重新使用和增大已定义的原语堆栈。
在一些实施方式中,接收要应用于计算机网络的设计的连接性模板的标识。例如,选择所提供的连接性模板或自定义构建的连接性模板以由用户应用在网络设计中。计算机网络的设计的示例是计算机网络的物理设备之间的物理连接的指定,该计算机网络被配置有软件层以启用计算机网络。自动分析网络的设计,以识别网络的设计中可应用连接性模板的合格应用点。例如,某个连接性模板仅可适用于某个类型的应用点,并且基于连接性模板的特定配置/功能,识别计算机网络的设计中的连接性模板有资格被应用的位置。通过指示可以应用特定连接性模板的位置的约束,降低了风险或错误并且增加了可用性的容易性。接收识别出的合格应用点中的要应用连接性模板的一个或多个指定应用点的指定,并且将该连接性模板应用于识别出的合格应用点中的指定的特定应用点,以配置用于部署的计算机网络。
在各种实施方式中,在基于意图的联网的上下文中利用连接性模板。在本文中也可被称为计算网络的计算机网络、网络、计算基础设施、基础设施等(例如,与企业数据中心基础设施相关联的那些)正变得越来越复杂,并且对工具有效地管理计算机网络的需要是极为重要的。基于意图的联网(IBN)已经被许多人认为是全面管理计算基础设施的有效方式。IBN解决方案通常涉及向计算机网络提供一组IBN工具(例如,图1的管理服务器102),并且随后使用相同的IBN工具来管理计算机网络的全部生命周期。在一些实施方式中,可以经由所提供的可被指定为声明性需求的意图来建立和/或管理网络的至少一部分。例如,声明性需求表达网络组件的期望配置,而不指定精确的本地设备配置和控制流。通过利用声明性需求,可指定应实现什么,而不是应如何实现它。声明性需求可与描述实现配置的确切设备配置语法和控制流的命令式指令形成对比。通过利用声明性需求而不是命令式指令,减轻用户和/或用户系统确定实现用户/系统的期望结果所需的确切设备配置的负担。例如,当利用来自不同供应商的各种不同类型的设备时,指定和管理用于配置网络的每个设备的确切的命令式指令通常是困难和繁重的。随着新设备的添加和设备故障的发生,可动态改变网络的设备的类型和种类。利用不同的配置协议、语法和软件版本来管理来自不同供应商的各种不同类型的设备以配置设备的凝聚网络常常难以实现。由此,通过仅要求用户/系统指定声明性需求,该声明性需求指定各种不同类型的设备中可应用的期望结果,网络设备的管理和配置变得更高效。
图1是示出网络管理环境的实施方式的图。管理服务器102经由网络110连接到数据存储器104、网络设备106和网络设备108。在一些实施方式中,管理服务器102提供基于意图的网络(IBN)工具。在一些实施方式中,管理服务器102提供网络配置、监控和管理解决方案。例如,用户可以利用至少部分由管理服务器102提供的解决方案来设置网络配置、设置网络设备、计算操作状态期望、监控网络的属性或操作状态、监控网络的设备、自动执行任务或以其他方式执行网络设备的管理。在所示实施例中,管理服务器102用于管理至少网络设备106和网络设备108。管理服务器102处理/执行代理(例如,当图表示的一部分匹配对应代理的指定触发图形表示模式时触发的代理执行功能)。在一些实施方式中,管理服务器102是专业的定制硬件。在一些实施方式中,管理服务器102用于配置硬件网络交换机。
在一些实施方式中,管理服务器102促进与用户的交互以接收和提供期望的需求、指定和状态更新。例如,用户利用直接和/或远程(例如,通过显示器、有线连接、网络等)提供的用户界面(例如,网络界面、应用程序界面、命令行界面、图形界面、应用程序编程界面(API)、配置文件界面等)。在一些实施方式中,用户与管理服务器102交互以提供连接性模板的指定和应用。在一些实施方式中,使用用户界面,用户可以至少部分地提供指定所需网络/设备的所需配置的高级需求和/或接收关于所需网络的设备/组件的状态和/或关于所需配置需求的实施状态的信息。在一些实施方式中,管理服务器102在多个处理代理当中选择处理代理(例如,由匹配图形表示的至少一部分的模式触发)以实现/完成期望的网络需求。在一些实施方式中,用户通过应用程序编程接口(API)(例如,RESTful API)访问代理。例如,可以用HTTP方法(例如,GET、PUT、POST、DELETE等)通过API访问和管理信息。可以用同一资源标识符(URI)引用状态和资源。可以在多个阶段/级别中的一个或多个选定的状态/级别指定声明性需求。在一些实施方式中,用户指定期望网络配置的一个或多个约束条件(例如,资源、策略等)。
在一些实施方式中,用于实现声明性需求的计算基础设施的至少一部分被表示为包括计算基础设施节点和计算基础设施边界的计算基础设施元素的图形模型/表示。与图形表示的每个节点相关联的数据的示例包括:标识符、节点类型(例如,服务器、交换机、接口、规则、策略等)、描述性标签(例如,节点的描述)、标记、和其他属性(例如,一个或多个键值对)。与图形表示的每个边界相关联的数据的示例包括:标识符、边界类型(例如,托管接口、托管等)、由边界连接的源节点、由边界连接的目标节点、描述性标签(例如,边界的描述)、标记和其他属性(例如,一个或多个键值对)。
当检测到计算基础设施元素的图形表示发生变化时,确定该变化是否影响任何触发图形表示模式。如果该变化影响触发图案,则将该变化通知给与受影响的触发图案相关联的处理代理。例如,处理代理可以使用一组一个或多个具有关联回调函数的触发图案进行声明性创作。每个代理的功能可以执行生成配置和部署计算基础设施所需的部分处理。例如,各种代理的回调函数可以执行语义验证、收集遥测和执行数据、和/或检测执行期间的异常。在各种实施方式中,回调函数包括要执行的代码。该范例可以支持用于创作回调函数的任何编程语言。
在各种实施方式中,任何时候在图形表示的关联部分中“添加”、“更新”和/或“删除”了代理的图形表示元素的相应触发图案,系统就会调用代理的回调。因此,每个代理可以处理与其自身目标相关的图形模型/表示的子集,并且不会因与其无关的变化而被调用。在各种实施方式中,每个处理代理仅关注与其实现的业务逻辑相关的图形表示的部分。代理不需要跟踪图形的所有变化,只需要根据感兴趣的图形表示部分的增量变化重新执行其业务逻辑的部分。通过将与计算基础设施相关的所有处理实现为图形模型的代理,考虑到处理代理的分散化,计算基础设施可以独立于任何复杂的中央处理进行优化和扩展。
因此,以上述方式编码的代理可以递增地执行其职责。在一些实施方式中,在启动时,代理评估它们的输入和输出并执行初始处理以确保输入和输出满足在它们的业务逻辑中限定的约束。此初始处理可以涉及处理与代理限定的触发图案匹配的图形表示的多个组件。在初始启动处理之后,代理已达到稳定状态。在稳定状态下,代理可以选择仅对与其业务逻辑相关的图形表示的增量变化做出反应,并在稳定状态之上对此类变化执行增量处理。
在一些实施方式中,处理代理的触发图案指定描述感兴趣的图表示的至少一部分的图形表示元素的标识符,并且当触发图案匹配感兴趣的图形表示的一部分或不再匹配之前的图形表示的匹配部分时,执行相关的处理函数。可以向代理的被调用函数提供指向包括在匹配部分中的图形表示元素的指针,以允许被调用函数利用/修改相关联的图形表示元素。在一些实施方式中,提供API以允许通过API修改和使用图形表示。API的执行会调用一个或多个相关联的代理来执行实现API调用所需结果所需的必要处理。在一些实施例方式中,将在计算基础设施的使用和执行期间收集的遥测数据映射到对应的图形表示元素以提供(例如,视觉上)呈图形表示格式的遥测数据的表示。
该范例可以支持用于创作代理的任何编程语言。代码执行是有效的,因为每段代码只能与感兴趣的图形表示的一部分(例如,一小部分)显式关联,并且仅在必要时调用。代理也是模块化的,因为每个代理可以具有任意数量的规则,每个规则都有一个回调函数,从而沿着触发图案的边界干净地分离代码。它也是可扩展的,因为可以有多个代理实例和多个系统来向感兴趣的代理发送变化。这使得在基于图的实时查询之上实现的基于实时状态(例如,非消息)的发布/订阅通信机制成为可能,因此能够对增量图形变化做出反应并触发增量处理。系统的异步、反应能力允许系统扩展。可以容易地添加(例如,通过添加新代理)对现代基础设施平台提供的新特征的支持。在一些实施方式中,系统的组件响应于意图的变化而进行通信。
管理服务器102实现并管理各种图形表示处理代理。在一些实施方式中,代理向被管理的网络的各种设备提供设备需求指令并从其接收状态信息。例如,使用期望的网络需求,代理可以确定单独的设备需求以实现期望的网络需求。在一些实施方式中,在将期望的网络需求转换为设备需求时,可以利用多个不同的连续处理阶段/级别。可以为任何不同的处理阶段级别指定网络需求。例如,可以在最一般和最高级别和/或在较低和更具体的阶段/级别指定网络需求。每个处理阶段/级别可以将输入声明性需求转换为输出声明性需求,该输出声明性需求可以用作下一个后续较低处理阶段/级别的输入声明性需求。对于每个处理阶段/级别,代理可以将输入声明性需求与一个或多个约束(例如,可用的资源、要遵循的策略等)合并,以确定输出声明性需求。通过能够提供多个不同处理阶段/级别中的任何所选阶段/级的所需声明性网络需求,给予用户调整用户在配置网络时所需的控制的级别/量的选项。例如,希望快速建立默认配置网络的网络管理员可以指定在最高阶段/级别的声明性需求,而希望建立更定制和特定网络的网络管理员可以指定在较低阶段/级别的声明性需求。在一些实施方式中,每个处理阶段/级别执行不同的功能。例如,一个处理阶段/级别可以确定其输出声明性需求中的逻辑连通性,另一处理阶段/级别可以确定其输出声明性需求中的物理连通性,而另一处理阶段/级别可以确定其输出声明性需求中的布线图。
在不同实施方式中,可以存在任何数量的代理。每个代理可以执行可以由一个或多个相关联的触发图案触发的相同和/或不同的功能。在一些实施方式中,代理协调和执行服务正在运行的验证。例如,已接收的期望网络/设备服务的期望配置可以用于为所利用的一个或多个设备生成一个或多个设备验证模型。每个设备验证模型可以识别用于验证模型的特定装置的待验证/检测的一个或多个参数。设备验证模型不同于提供给设备以实现设备需求来配置设备的设备需求。例如,提供设备需求以配置/设置设备来提供服务,而提供设备验证模型来验证服务的状态和/或配置。在一些实施方式中,响应于设备验证模型,从对应设备接收识别验证模型中识别的一个或多个参数的状态的状态报告。然后,代理可以聚合并分析一个或多个状态报告,以便确定服务是否已经被正确地实施/配置和/或正在正确地运行。
各种处理代理可以执行处理以创建、实现、验证和/或修改图形表示。每个代理与将触发相关联的代理的一个或多个触发图形表示模式相关联,并且当由于初始指定和/或由于修改图形表示的另一个代理的处理而创建或修改图形表示时,确定该变化是否影响任何触发图案。如果该变化影响触发图案,则将该变化通知给与受影响的触发图案相关联的处理代理。例如,处理代理可以用具有相关联的回调的一个或多个规则的集合来声明性地创作。每个代理的回调函数和业务逻辑函数可以执行生成配置和部署计算基础设施所需的处理的各部分。例如,各种代理的回调函数可以执行语义验证、收集遥测和执行数据、和/或检测执行期间的异常。
在一些实施方式中,这些代理一起有效地分析所希望的网络配置并且确定并识别将用于实现所接收的网络需求的所期望的网络配置的设备。假设L3 Clos网络需求规定主干网络交换设备的数量为6,并且叶网络交换设备的数量为32。总的来说,代理将确定并识别38个设备,其将需要被配置为实施所期望的Clos网络。对于待利用的每个设备,代理将确定实施期望的Clos网络的单个设备需求。对于L3 Clos网络示例,以下是针对38个不同设备需求之一的设备需求的一个示例。
角色=主干
IP地址=10.0.0.3
ASN=1000
邻居=[(叶-1,10.0.0.7,1010),(叶-2,10.0.0.15,1011),…(叶-32,10.0.0.176),1042]
状态=已限定
上述设备需求指定在Clos网络中,一个网络交换设备将是具有限定为IP地址10.0.0.3和ASN 1000的BGP路由器标识符的主干交换机。连接到这个主干交换机设备的叶交换机以及它们的IP和ASN也已经被识别。
在一些实施方式中,代理是可配置的/可定制的。例如,用户可以修改、扩展和/或配置由代理执行的触发图案和/或回调函数处理。代理可以经由诸如API的接口来配置/定制。
在所示的示例中,由网络设备106执行的一个或多个处理代理接收对于网络设备106的设备需求,并且由网络设备108执行的一个或多个处理代理接收对于网络设备108的设备需求。这些代理中的每一个可以生成和/或实现/执行本机硬件指令,本机硬件指令实现配置其相关联的单独网络设备的设备需求。
在一些实施方式中,由网络设备106托管的代理接收用于网络设备106的设备验证模型,并且由网络设备108托管的代理接收用于网络设备108的设备验证模型。这些代理中的每一个可以确定要报告的一个或多个状态参数以验证对应的设备验证模型,并收集/检测所确定的状态参数。然后,每个代理可以向正在处理所提供的服务的验证的另一代理提供所收集/检测到的状态参数的状态报告。在一些实施方式中,每个代理报告关于其相关联设备的状态、操作和/或其他信息的信息。然后,不同的代理可以收集和处理所报告的信息以报告该信息和/或执行响应动作。例如,当代理提供其相关联装置过载的状态更新时,(例如,由管理服务器102托管的)另一代理可以向网络添加新设备以卸载处理和/或将过载设备的处理任务移动到另一网络设备。所收集的状态信息可以由代理提供作为报告和/或动作请求。
在各种实施方式中,数据存储器104存储图形模型/表示的数据。数据存储器104可以包括在联网存储服务中。在所示的实施例中,代理经由网络110访问数据存储器104。在一些实施方式中,数据存储器104经由非共享连接而连接至管理服务器102。在各种实施方式中,数据存储器104包括在图1所示的任何组件中。例如,数据存储器104可以包括在管理服务器102中。数据存储器104可以包括管理存储在数据存储器104中的数据的服务器。数据存储器104的示例包括数据库、高度可用的存储器、分布式存储器、云存储器、数据服务器、或任何其他类型的数据存储器。
网络设备106和网络设备108可以是连接到网络110的任何类型的设备。网络设备106和网络设备108的实例包括服务器、网络交换机、网络路由器、缓存服务器、存储设备、管理程序交换机、虚拟路由器、负载均衡器、防火墙、网络结构设备、虚拟网络设备、软件设备、软件组件或可以是物理或虚拟的任何类型的计算机或网络设备。在各种实施方式中,所示出的代理是包括在相应的组件中的软件和/或硬件组件。网络110的示例包括以下中的一个或多个:直接或间接的物理通信连接、移动通信网络、互联网、内联网、局域网、广域网、存储区域网络和将两个或更多个系统、组件或存储设备连接在一起的任何其他形式。可以存在其他通信路径,并且已经简化图1的实例以清楚地示出该实例。
尽管已经示出了图1中所示的许多组件的单个示例以简化图,但是可以存在图1中所示的任何组件的附加示例。例如,可以存在任何数量的管理服务器、存储器和网络设备。管理服务器102可以是服务器集群,并且存储器104可以是分布式存储器。可以存在任何数量的代理。单个服务器/设备可以包括任何数量的代理。尽管图1中示出的示例示出了包括/安装在其各自相关联的系统组件中的每个代理,但是代理可以包括在不同的服务器/设备中。例如,单个代理可以被分配给跨多个网络设备的处理。还可以存在图1中未示出的组件。在一些实施方式中,图1的每个资源(例如,每个代理、服务器和网络设备)可以属于域。例如,属于相同域的资源是可互操作的并且可以一起运行以执行网络配置和/或管理任务。在一些实施方式中,每个资源可以仅属于一个域,并且仅保证同一域内的资源可互操作以执行网络配置和/或管理任务。某个资源可以属于多个域。多个域可以用于管理单个网络。图1中示出的组件可以是一个或多个域的组件。图1中示出的任何组件可以是物理或虚拟组件。
图2是示出管理服务器的实施方式的图。管理服务器200可用于实现图1的管理服务器102。在所示的示例中,管理服务器200包括代理管理器202和代理204、206和208。在不同实施方式中,管理服务器包括60、200、1000或任何适当数量的代理。代理可以包括触发图案和在触发图案存在的情况下被调用的对应的回调函数。如所示出的,代理208与触发图案210和回调函数212相关联。
在一些实施方式中,中央软件组件(诸如代理管理器202)用于通过跟踪网络配置的图形表示的改变来跟踪网络配置的所有改变,其中,图形表示精确地表示网络的实时状态。在一些实施方式中,代理管理器202包括查询引擎。如所示出,代理管理器202接收来自分布式数据存储器214的输入。在一些实施方式中,网络配置的图形表示被存储在分布式数据存储器214中。输入可以包括当前的网络配置图形(例如网络配置的图形表示)。在一些实施方式中,代理管理器202将网络配置图形的当前状态与网络配置图形的先前状态进行比较以确定图中的改变。在一些实施方式中,代理管理器202检测图形表示的影响触发图案或代理的部分。在网络配置图形已经改变的情况下,代理管理器202可以仅向相关代理通知该改变。在不同实施方式中,相关代理基于它们的触发图案而确定(例如,图中的改变是否影响代理的触发图案)。例如,可以利用“发布-订阅”模型,其中,代理订阅影响与代理相关联的触发图案的图中的改变。在一些实施方式中,代替中央改变记录组件,基于触发图案来调用代理。
可能需要基于网络配置图形来执行不同动作。在不同实施方式中,图中的改变导致从设备收集状态、删除链接、创建节点或任何其他适当动作。可以经由回调函数执行动作。在一些实施方式中,特定触发图案的查询运行一次。在指定了触发图案之后,相关联的代理可以仅在其触发图案在图模型中匹配的情况下被通知图中的改变。在一些实施方式中,实时查询和图形表示允许系统是稳健且可扩展的。在一些实施方式中,系统的框架不改变;添加代理、节点或边线以实现新特征。
在所示的示例中,代理向分布式数据存储器214提供输入。当调用相关联的回调函数时,代理可导致网络配置的改变。该改变可存储在网络配置图中。在一些实施方式中,如果适用,代理基于代理回调函数的处理结果更新图形表示。
图3是示出了用于应用连接性模板来配置计算机网络的处理的实施方式的流程图。图3的方法可以由图1的管理服务器102和/或图2的管理服务器200执行。
在302处,接收对计算机网络的物理设计的指定。计算机网络的物理设计指定一个或多个物理网络设备(例如网络荚、机架、脊柱节点、叶节点(例如路由器、交换机、服务器、防火墙、负载平衡器等)和设备的接口和子接口等)之间的物理连接。在一些实施方式中,物理设计指定包括在该设计中的网络设备中的至少一个是通用型设备。这允许网络设备最初被建模为通用设备,而无需将其指定或配置为特定类型的设备(例如无需将其定义为网络交换机、防火墙、负载平衡器、服务器等),并且允许应用于设备的应用点的模板的功能/配置定义设备如何运行。在一些实施方式中,用户使用图形用户界面来实例化表示由指定线连接的网络设备的用户界面对象,该指定线表示对应网络设备之间的连接。在一些实施方式中,计算机网络的物理设计的指定使用包括表示物理设备的节点和表示物理设备之间的连接的节点之间的边线的计算基础设施元件的图形模型/表示来表示。
在一些实施方式中,至少部分自动地生成计算机网络的物理设计的指定。例如,用户提供引用网络设计的声明性需求和/或标识,并且引用设计的意图和/或标识被自动翻译成计算机网络的物理设计的指定。
尽管计算机网络的物理设计的指定识别物理设备的存在以及它们之间的物理连接,但是需要将设备配置为启用路由和其他网络功能以建立/启用期望的功能计算机网络。端点模板可用来指定这些配置的至少一部分来构建期望的网络堆栈。
在304处,接收对连接性模板的指定。连接性模板允许用户指定要应用于任何未来应用点的期望配置,并且可将模板重新应用于任何数量的合格应用点以在目标应用点上实现期望配置。例如,相同的模板可应用于多个应用点以将它们附连到相同的虚拟网络。由此,不是针对许多不同的应用点单独地执行相同配置的重复配置,而是该配置可被指定一次并简单地应用于所有不同的应用点。可应用连接性模板的应用点的示例包括两个设备之间的连接的任何通信属性。应用点的具体示例包括端口、端口通道、设备端口、设备端口通道、子接口、路由实例、路由/安全区实例、以及任何互联网协议(IP)接口(例如接口的任何IP、交换虚拟接口(SVI)IP、回送IP等)。可以在应用的连接性模板中指定的配置包括用于建立、定义、管理或修改应用点的任何属性的任何配置。连接性模板的具体示例包括用于以下操作的模板:创建子接口、建立IP地址、添加到指定的虚拟网络、建立路由实例、添加路由策略、建立新的静态路由、启用桥接协议数据单元保护、启用PortFast等。
在一些实施方式中,使用一个或多个原语来指定连接性模板,其中,每个原语是可以基于联网原理一起堆叠/利用的原子网络操作(例如L2接口的创建、IP地址的分配等)。每个原语在网络设备上执行低级动作(例如单个原子操作)(例如在端口上创建子接口)。例如,较低级原语堆叠/用于构建较高级连接性模板。在模板创建期间可以基于联网原理来强制执行约束,该约束关于可以如何将集合原语结构化/堆叠在一起。例如,每个原语是仅适用于特定类型的目标(目标的示例:端口、虚拟路由和转发(VRF)、路由实例等)的类型,以将原语的使用/堆叠限制在联网原理中可允许的程度。在实施例中,只能在网络端口上应用子接口类型的原语。另外,用户可基于一个或多个现有连接性模板来创建新的连接性模板,以便重新使用和扩充已定义的原语堆栈。
可以从所提供的连接性模板库当中选择连接性模板。例如,向用户提供了连接性模板的内置库,并且用户能够从库中选择用于应用的模板。连接性模板可由用户自定义构建。例如,用户通过指定在应用模板时执行的配置来创建新的连接性模板。可以使用一个或多个已经存在的连接性模板来构建新的连接性模板,以允许重新使用和扩充现有连接性模板的原语的已经构建的堆栈。例如,用户创建指定使用一个或多个已经存在的连接性模板的新连接性模板(例如用户将现有连接性模板的实例连接在一起以创建新连接性模板)。在一个具体实施例中,用户可以构建虚拟机管理程序配置模板,该虚拟机管理程序配置模板包括用于附接到各种不同的虚拟网络的现有模板的多个实例。为了允许连接性模板的通用灵活性,可以指定模板以在创建、配置和/或应用它时请求用户输入的一个或多个配置参数。例如,可基于上下文和/或模板被应用到何处来从用户请求模板要应用的配置的特定参数(例如VLAN ID、IP地址等)。在一些实施方式中,一个或多个标签可以与连接性模板相关联,并且当将模板应用于应用点时,应用点标记有连接性模板的一个或多个标签。这些标签可以随后用于标记、分类、过滤、描述和/或搜索应用点。
在一些实施方式中,当创建、配置和/或应用连接性模板时,该连接性模板请求用户输入的一个或多个配置参数。例如,可基于上下文和/或模板被应用到何处来从用户请求模板要应用的配置的特定参数(例如,VLAN ID、IP地址等)。
原语(例如可用于直接用作连接性模板或用作组件模板来建立新的连接性模板)是子接口创建模板。该模板只能应用于设备端口或设备端口通道等应用点上。在应用时,该模板请求用户输入虚拟局域网(VLAN)标识符(例如从1到4094的值)和路由/安全区域。对于所应用的应用点,在指定的路由/安全区域中用指定的VLAN标识符创建子接口。自动执行验证,以验证不存在具有相同VLAN标识符的其他现有子接口。
原语(例如可用于直接用作连接性模板或用作组件模板来建立新的连接性模板)的另一示例是IP接口创建模板。该模板只能应用于设备端口或设备端口通道等应用点上。在应用时,该模板请求某种类型的用户输入(例如允许用户选择IPv4网络、IPv6网络、本地IPv6链路或未编号的IPv4(从回送))、前缀长度(例如取决于所选择的类型具有最大长度的IP前缀/掩码)、分配方案(例如IPv4网络和IPv6网络类型所需的)以允许用户在“手动”或“从可用资源池”和/或IP地址(例如分配方案手动所需的)之间选择。对于应用的应用点,IP地址被分配给应用的接口(例如在模板中指定的特定IP地址+前缀或从通用系统链路池自动确定的一个空闲IP地址+前缀)。自动执行验证以验证新分配的IP前缀不与在相同路由/安全区域中定义的任何其他IP前缀重叠。在一些实施方式中,该模板支持客户资源组。
原语(例如可用于直接用作连接性模板或用作组件模板来建立新的连接性模板)的另一示例是虚拟网络成员关系模板。该模板只能应用于设备端口或设备端口通道等应用点上。在应用时,该模板请求用户输入其中要添加应用点的一个或多个虚拟网络的标识(例如所有虚拟网络都默认加标签,但一个最大虚拟网络可以是未加标签的)。例如,现有虚拟网络的列表连同对应的描述和VLAN标识符(例如针对本地VLAN类型)一起提供,和/或用户可以通过名称或标识符(例如特定数量或范围)搜索期望的虚拟网络以选择期望的虚拟网络。将应用的应用点添加到期望的虚拟网络。自动执行验证以确定该连接性模板是否与可能已经在应用点上应用的另一连接性模板(例如每个应用点端口只有一个未加标签的虚拟网络)冲突。
原语(例如可用于直接用作连接性模板或用作组件模板来建立新的连接性模板)的另一示例是路由实例模板。该模板仅可应用于任何互联网协议(IP)接口(例如接口的任何IP、交换虚拟接口(SVI)IP、回送IP等)。在应用时,该模板请求用户输入是否要利用边界网关协议(BGP)或开放式最短路径优先(OSPF)协议来建立路由实例的标识。如果基于所选择的协议,则从用户请求附加配置。例如,如果选择BGP,则用户在未编号的BGP、BGP P2P+远程自治系统号(ASN)和对等地址(用户还可以选择定义ASN和回送的外部路由器)或从交换虚拟接口(SVI)/回送+远程ASN和对等点中选择BGP。用户还能够在IPv4、IPv6或IPv4+IPv6家庭类型之间进行选择。对于所应用的应用点,自动执行适当的验证,并且建立指定的路由实例。
原语(例如可用于直接用作连接性模板或用作组件模板来建立新的连接性模板)的另一示例是路由策略模板。该模板仅可应用于具有路由实例的应用点。在应用时,该模板请求应用路由策略的用户输入。对所应用的应用点,自动进行合适的验证,建立指定的路由策略。
原语(例如可用于直接用作连接性模板或用作组件模板来建立新的连接性模板)的另一示例是静态路由模板。该模板仅可应用于具有路由/安全区域实例的应用点。在应用时,该模板请求用户输入IP前缀和下一跳地址。对于所应用的应用点,自动执行适当的验证,并且建立指定的静态路由。
原语(例如可用于直接用作连接性模板或用作组件模板来构建新的连接性模板)的另一示例是BPDUGuard模板。该模板仅可应用于设备端口或设备端口通道等应用点上。该模板不需要用户输入。对于所应用的应用点,自动执行适当的验证,并且启用桥接协议数据单元保护。
原语(例如可用于直接用作连接性模板或用作组件模板来构建新的连接性模板)的另一示例是PortFast模板。该模板仅可应用于设备端口或设备端口通道等应用点上。该模板不需要用户输入。对于所应用的应用点,自动执行适当的验证,并且启用PortFast。
在306处,接收连接性模板在计算机网络的物理设计上的应用的指示,并且实现所指示的应用。用户指示在计算机网络的物理设计上将把连接性模板应用到哪里。例如,通过图形用户界面,用户在设计中选择要应用连接的一个或多个设备和/或设备的应用点。不同的连接性模板仅可应用于某个不同类型的应用点。例如,基于连接性模板的配置/功能,其仅可应用于某个类型的应用点且无法应用于其他类型的应用点。在一些实施方式中,用户界面自动指示计算机网络的物理设计中的连接性模板有资格被应用于的对象/位置以防止用户将模板应用到不适用的应用点。连接性模板可以是被应用于计算机网络的设计的各个部分的多个连接性模板中的一个。多于一个连接性模板可应用于同一应用点。在一些实施方式中,如果应用于同一应用点的连接性模板彼此冲突,则提供错误消息和/或自动防止用户将导致冲突的后续连接性模板应用于同一应用点。当将应用点应用于网络设计中的整个设备时,将连接性模板应用于设备的能够由该连接性模板配置的所有应用点。
当将连接性模板应用于相应的应用点时,基于模板所指定的配置建立、定义、管理和/或修改应用点的属性。连接性模板动态地适配于应用该连接性模板的应用点的类型、网络位置、上下文和/或任何其他现有属性。例如,可基于类型、网络位置、上下文和/或连接性模板正被应用于的应用点的任何其他现有属性来动态地作出由连接性模板作出的改变。
在一些实施方式中,在适当时,自动确定连接性模板的应用的意图以供在基于意图的联网中使用。例如,基于将哪个连接性模板应用于哪个应用点来自动地确定连接性模板的应用的意图。可将规则、分析和/或机器学习模型用来基于模板的类型和/或其他属性和网络属性、上下文、其他应用的模板、或被分配的标签或模板被应用的应用点的其他属性来确定与模板应用相关联的意图(例如声明性需求)。基于该意图,能够应用除了模板中明确指定的配置之外的附加配置以实现所期望的意图。因此,可以基于意图来自动地执行相关的行政和管理功能。例如,自动实现从适当的设备/数据源收集适当的遥测数据所需的配置,以自动验证/监视连接性模板的应用的意图的实现和功能。
在一些实施方式中,确定意图包括使用和/或建立基于意图的网络模型作为图形表示(例如参见图8至图10)。在一些实施方式中,可以将模板配置信息传送到图形表示以在图形表示的适当位置处完成图形表示。例如,图8中所示的图形表示中的节点和边线包括多个性质,诸如标签和各种属性,并且应用点的对应于该应用点的这些属性用于基于连接性模板来确定意图和/或添加/修改。
在308处,检测所应用的连接性模板的变化或已应用连接性模板的应用点的变化,并且作为响应,使用所应用的连接性模板来自动更新计算机网络的配置。
在一些实施方式中,当修改现有连接性模板时,更新应用连接性模板的实例以实现新修改。这允许以倍数应用的原语在模板级别被集中管理。例如,用户能够对现有连接性模板做出改变,并且该改变在先前应用该模板的应用点处自动实现。这允许自动传播用户改变,而无需用户向所有合适的应用点重新应用变化的模板。在一个具体实施例中,对于具有跨多个不同BGP对等体共有的路由地图和路由导入/导出规则的列表的路由策略,可在连接性模板中定义一次该路由策略,并将其应用于多个路由实例并经由模板进行集中管理。
在一些实施方式中,当修改了已应用模板的底层网络或应用点时,基于底层目标应用点的修改来自动更新先前基于连接性模板的应用作出的配置。例如,当应用点从一个网络位置上下文移动到另一网络位置上下文时,通过重新配置应用点以应用于新网络位置上下文的模板,已经应用于应用点的连接性模板自动适应新网络位置上下文。在一个具体实施例中,所应用的连接性模板自动适配从本地VLAN到新建立的虚拟扩展局域网(VXLAN)的移动。
连接性模板的示例是启用朝向浮动IP地址的BGP对等会话的连接性模板。该模板使网络架构的应用点能够自动适应浮动IP地址(例如迁移到不同的网络架构)而无需执行手动网络架构更新,从而允许虚拟机服务器跨网络在不同交换机之间移动而无需手动重新配置。例如,该模板指定了与浮动/移动端点的BGP关系。当检测到端点到新交换机的移动时(例如经由来自VM管理程序的信息),自动执行重新配置,包括遥测数据源到新交换机的改变。这可以通过将模板的路由实例和路由策略应用于存在于多个设备上的虚拟网络交换虚拟接口(SVI)IP地址(例如合理化其应当应用的地方和确定其存在于多个目标中),并且在多个设备上提供BGP会话同时每次仅保持一个活动(例如由管理程序管理器指定的)来实现。
图4是示出用于应用连接性模板的处理的一个实施方式。在图3的方法的306中执行图4的至少一部分。
在402处,接收对要应用于计算机网络设计的一个或多个连接性模板的选择。在一些实施方式中,提供一个或多个可用连接性模板库,并且用户在库中选择要应用于计算机网络的设计的一个或多个连接性模板。例如,用户检查靠近要应用于网络设计的连接性模板的选择框。用户还能够创建新的连接性模板、修改任何现有连接性模板或克隆现有连接性模板以供进一步定制。
在404处,分析网络的设计以确定网络的设计中可应用一个或多个连接性模板中的每一个的合格的应用点。例如,包括物理设备和设备之间的连接的网络的设计已经被指定(例如被组织为网络荚的连接,该网络荚包括机架、脊柱节点、以及包括接口和子接口的叶节点),并且对于要应用的每个所选模板,自动确定其中可以应用所选的连接性模板的网络的物理设计中的合格应用点。连接性模板通常仅适合于应用于某个类型的应用点。例如,基于连接性模板的配置/功能,其仅可应用于某个类型的应用点且无法应用于其他类型的应用点。为了防止用户将连接性模板应用于不合格应用点,预先确定网络设计中可应用连接性模板的所有可能的应用点以在用户选择应用点以应用模板之前指示约束。
可基于连接性模板和/或组成连接性模板的组件连接性模板的指定/配置/功能来确定连接性模板可应用于的应用点的类型。例如,如果连接性模板由其他连接性模板构成,那么确定应用点的类型的集合与适用的每个组件连接性模板的交集以识别适用于所有组件连接性模板的应用点的类型。此外,确定适用于连接性模板的任何属性/配置的应用点的类型的交集以识别适用于所有模板属性/配置的应用点的类型。
一旦确定了可以应用每个所选连接性模板的应用点的类型,则搜索/分析网络的设计以识别网络设计中与每个所选连接性模板的合格的类型相匹配的每个应用点。由此,对于要应用的每个所选连接性模板,可确定该模板有资格被应用于的任何类型的网络设计中的每个应用点的列表。
在406处,接收要应用一个或多个连接性模板的所确定的合格的应用点中的一个或多个的指定。在一些实施方式中,对于每个所选择的连接性模板,用户界面提供适合应用的应用点的列表,并且用户从所提供的列表中选择用于应用所选择的连接性模板的应用点。例如,如果模板要应用于一应用点,则用户选择该应用点旁边的复选框。
图5是示出用于创建新连接性模板的用户界面的实施方式的图。在一些实施方式中,在图3的304中利用图5中所示的用户界面502来构建新连接性模板。用户界面区域504列出要用于构建新连接性模板的现有连接性模板(包括图元)。当选择针对现有连接性模板之一的“使用”链接时,将对应连接性模板的实例实例化以供在新模板中使用。用户界面区域506示出用于构建新模板的组件连接性模板以及它们的应用排序和彼此之间的关系的图形流可视化。用户界面区域508示出其中用户能够输入组件连接性模板的配置参数的输入字段。
图6是示出用于选择要应用的连接性模板的用户界面的实施方式的图。在各种实施方式中,图6所示的用户界面602在图3的304和/或图4的402中被用来指示要应用的连接性模板。用户界面602示出可用连接性模板(包括图元)的列表,并且用户能够检查用户想要应用的连接性模板中的连接性模板旁边的框。此外,用户还能够经由所提供的按钮来执行用于编辑、复制或删除相应的连接性模板的动作。
图7是示出用于应用连接性模板的用户界面的实施方式的图。在各种实施方式中,在图3的306和/或图4的406中利用图7所示的用户界面702来将连接性模板应用于期望的应用点。已经确定使用图6的用户界面选择连接性模板的网络设计中的合格应用点。用户界面702示出网络设计中的元素的分级列表。此外,对于为应用选择的每个选择的连接性模板(例如,命名为“VLAN10”和“VLAN20”),如果对应模板可应用于对应应用点,则在连接性模板的对应列中的应用点的行中示出复选框。如果没有示出复选框,则对应的模板不能被应用到对应的应用点。用户可以选中相应的复选框以将相应的模板应用到相应的应用点。用户界面702还示出了已被分配给相应的应用点的标签。这些标签可以用于搜索应用点以及确定与连接性模板到应用点的应用相关联的意图。
图8是示出可以包括在图模型中的节点和边线的实施方式的图。在一些实施方式中,计算基础设施的图模型完全由节点和边线组成。所有节点可以共享相同的结构,而边线共享相同的结构。在所示的示例中,节点800包括多个性质,这些性质包括标识(ID)、类型、标记、标签和属性。在一些实施方式中,ID包括唯一标识,诸如字符串或整数。ID可以用于识别图形表示中的节点并且将其与其他节点和边线区分开。在一些实施方式中,类型描述节点分类为的不可变类型。类型可以是字符串。在各种实施方式中,节点是服务器、交换机、策略、规则、用户或任何抽象概念的类型。在一些实施方式中,标记是用于识别节点的用户友好的标题。标记可以是字符串。例如,在节点是服务器的类型并且其是存在于网络中的第三服务器,则该节点可以被标记为“服务器3”。在一些实施方式中,标签是用于将网络组件分组在一起的灵活标识。例如,用户使用标签来编码不能基于类型分组的组。可以使用标签来编码在与图形表示相关联的图形图示中不可用的组。标签可以用于将相同类型的节点子集、不同类型的边线组、或者节点和边线的任何组合分组在一起。标签可以是用户友好的格式,诸如字符串(例如,“high_availability_servers”)。在一些实施方式中,属性包括节点的属性或与节点相关联的数据。在一些实施方式中,属性包括期望与节点相关联的任何数据的键值列表。例如,属性可以包括与计算机存储器大小或服务器速度有关的信息。特性可以包括遥测数据。
如所示出的,边线802包括多个性质,这些性质包括ID、类型、标记、标签、源、目标和属性。在一些实施方式中,网络配置的图形表示中的边线包括与图形表示中的节点相同的性质(例如,ID、类型、标记、标签、属性),其中添加了源和目标。
在一些实施方式中,ID包括唯一标识,诸如字符串或整数。ID可以用于识别图形表示中的边线并且将其与其他节点和边线区分开。在一些实施方式中,类型描述边线被分类为的不可变类型。类型可以是字符串。在各个实施方式中,边线是“链接”、“界面”、“托管”、“应用于”、或任何抽象概念的类型。在一些实施方式中,标记是用于识别边线的用户友好的字幕。标记可以是字符串。例如,边线可被标记为“托管(host_on)”,因为边线是“托管”类型。在一些实施方式中,标签是用于将网络组件分组在一起的灵活标识符。例如,用户使用标签来编码不能基于类型分组的组。可以使用标签来编码在与图形表示相关联的图形图示中不可用的组。标签可以用于将相同类型的边线的子集、不同类型的节点组、或者节点和边线的任何组合分组在一起。标签可以是用户友好的格式,诸如,字符串(例如,“open_connections”)。在一些实施方式中,属性包括边线的属性或与边线相关联的数据。在一些实施方式中,属性包括期望与边线相关联的任何数据的键值列表。例如,属性可以包括与计算机存储器大小或服务器速度有关的信息。属性可以包括遥测数据。
在一些实施方式中,边线是定向的并且表示两个节点之间的关系。在一些实施方式中,源是指边线的源/源发节点并且目标是指边线的目标/目的地节点。源和目标可以由引用图形表示中的节点的字符串组成。例如,图模型中的边线的源和目标可包括存在于图模型中的节点的ID。边线可表示两个节点之间的单向关系。两个节点之间可存在多条边线。例如,交换机节点(例如,“交换机(switch)”类型的节点)可以具有托管接口节点的关系(从交换机节点到接口节点的方向),而接口节点可以具有关于交换机节点的“hosted_on”的关系(从接口节点到交换机节点的方向)。如所示出的,边线802是定向的,其中,节点800是其源,并且其目标是其所指向的节点。在网络配置图形表示中,每条边线可以具有源和目标节点。
在一些实施方式中,并非所有性质(例如,ID、类型、标签等)都需要在节点或边线的创建中指定。可以使用默认性质。例如,给定源和目标,可以推断边线类型。在一些实施方式中,基于源和目标的节点类型推断边线类型。在一些实施方式中,随机生成和/或自动生成ID和标记。例如,当创建“服务器(server)”类型的节点时,标记可递增“server_1”、“server_2”等以标记节点。属性可基于类型来确定。标签的默认设置可以包括无标签。
在一些实施方式中,图形表示允许灵活性地表示各种概念,而图形元素的结构保持静态。图形表示可以允许鲁棒且可扩展的系统。例如,策略类型的节点可以包括将策略描述为使用特定资源池的属性。“策略应用(policy_applies_to)”类型的边线以“策略(policy)”类型的节点作为源并且以“switch”类型的节点作为目标表示策略在交换机上实现。具有“策略应用(policy_applies_to)”类型的边线的触发图案的代理与“policy”类型的源节点和“switch”类型的目标节点可以调用在图形表示的一部分将“policy_applies_to”类型的边线的模式与“policy”类型的源节点和“switch”类型的目标节点匹配的情况下实施策略的代理。
在一些实施方式中,在计算基础设施的使用和执行期间收集的遥测数据被映射到相应的图形元素以(例如,可视地)提供图模型格式的遥测数据的表示。在一些实施方式中,节点或边线的属性包括从设备收集的遥测数据。例如,存储发送/接收的业务量、错误的数量、风扇速度、温度、运行的控制处理的数量或类型、或者任何其他合适的操作数据。在一些实施方式中,利用实时遥测数据来更新图模型。用户可以使用查询语言(例如,GraphQL)来访问网络配置图形中的遥测信息或其他信息。在一些实施方式中,遥测信息是只读的。遥测数据可以按键值格式存储,其中,键包括参数(例如,风扇速度),并且值包括测量参数值(例如,以转/毫秒为单位的风扇速度)。
图形表示可以随着需求变化和与图形表示元素相关联的属性被更新而改变。在一些实施方式中,检测图形表示的变化并且确定该变化是否影响触发图形表示模式。例如,执行处理的处理代理可以各自与触发相关联的代理的处理的一个或多个触发图案相关联。在检测到的变化影响处理代理的触发图案的情况下,可以将该变化报告给与触发图案相关联的代理。每个代理可以与触发图案相关联,该触发图案标识将触发代理的处理的感兴趣的图形表示的一部分。如果图形表示包括与代理的触发图案相匹配的至少一部分(例如,对声明性需求的改变改变了与为代理指定的触发图案相匹配的图形表示部分),则可以调用所匹配的代理的处理函数以允许该处理函数执行与所匹配的图形表示部分相关联的处理。
图9A是示出网络设备的实施方式的框图。示出了两个交换机。在一些实施方式中,两个交换机可以经由这两个交换机之间的电缆来连接。在一些实施方式中,所示的实例是用户所期望的网络配置。例如,意图可以指定具有连接两个交换机的电缆的两个交换机。如所示出的,交换机900被标记为“脊1”并且交换机902被标记为“叶1”。如所示出的,交换机900的接口被标记为“以太网1/1”,交换机902的接口标记为“SWP”。
图9B是示出图模型的一部分的实施方式的图。在一些实施方式中,图模型部分表示图9A的网络设备配置。节点904的类型为“switch”,标记为“脊1”,并且表示图9A的交换机900。节点926的类型为“switch”,标记为“叶1”,并且表示图9A的交换机902。
所示出的节点908的类型为“接口(interface)”并且标记为“以太网1/1”。边线906和910描述了以太网1/1节点(908)与脊1节点(904)之间的关系。“托管接口(host_interfaces)”类型的边线906具有作为源节点的节点904和作为目标节点的节点908。“托管(host_on)”类型的边线910具有作为源节点的节点908和作为目标节点的节点904。节点920的类型为“interface”,标记为“swp1”。边线924和928描述了叶1节点(926)与swp1节点(920)之间的关系。类型“托管”的边线924具有作为源节点的节点920和作为目标节点的节点926。类型“托管接口”的边线928具有作为源节点的节点926和作为目标节点的节点920。
节点914的类型为“link”,标记为“spineToLink”。节点与脊1节点和叶1节点的接口有关系。边线912和916描述以太网1/1节点与spineToLink节点之间的关系。“link”类型的边线912具有作为源节点的节点908和作为目标节点的节点914。“interface”类型的边线916具有作为源节点的节点914和作为目标节点的节点908。边线918和922描述了swp1节点与spineToLink节点之间的关系。“link”类型的边线922具有作为源节点的节点920和作为目标节点的节点914。“interface”类型的边线918具有作为源节点的节点914和作为目标节点的节点920。
图9C是触发图案的示例。该示例示出了以编程语言(例如,Python)表达的触发图案。在所示的实例中,定义了特定节点和边线的特定组合和顺序。可以使用任何适当的编程语言来定义触发图案。在一些实施方式中,所示出的实例描述了图9B中示出的图模型部分的一部分。例如,在960处的“node(type=‘switch’)”描述图9B的节点904,在962处的“.out(‘hostedinterfaces’)”描述图9B的边线906,以及在964处的“.node(‘interface’)”描述图9B的节点908。
所示的触发图案定义了如图9B所示的从左(图9B的节点904)到右(图9B的节点926)的输出关系,而未描述如图9B所示的从右到左的输出关系。例如,触发图案仅描述图9B所示的图模型部分的一部分。在一些实施方式中,在图9B所示的图模型部分在图模型中被检测到、被添加到图模型、在图模型中被修改或从图模型中被删除的情况下,调用与所示出的触发图案相关联的代理。
图9D是触发图案的示例。在一些实施方式中,在触发图案中指定一个或多个相关数据结构。可使用标记(例如,节点或边线的标记属性)来指定一个或多个相关数据结构。在一些实施方式中,参考在触发图案中指定的数据结构(例如,通过标记)来调用与触发图案相关联的回调函数。例如,在网络配置图形的一部分匹配代理的触发图案的情况下,可以向代理提供到特定节点或边线的路径。在一些实施方式中,特定节点或边线存在于与触发图案相匹配的图模型的部分中。可以利用到特定节点或边线的引用或路径来调用代理的回调函数,从而允许在特定节点或边线上实现该函数。例如,回调函数可包括回调函数中与触发图案中的标记匹配的标记。标记允许回调函数在图模型中的节点或者边线上执行动作,其中图模型中的节点或边线与触发图案中的标记的节点或边线匹配。使用图模型和标记性质允许容易地传递对数据结构的引用。在一些实施方式中,使用对多个数据结构的多个引用来调用回调函数。
在所示的实例中,在980处,触发图案定义“node(type=’switch’,label=’local_device’)”。在一些实施方式中,在图形表示的一部分与触发图案匹配的情况下,与在980中限定的节点匹配的节点被标记为“local_device”。与和触发函数相关联的代理相关联的回调函数可用“local_device”作为输入来定义。在回调函数被调用的情况下,则可以将对图形表示中与在980处定义的节点相匹配的节点的引用传递给回调函数。
图10示出了用于图模型的模型图示(例如,Python格式)的示例。在一些实施方式中,网络的图模型具有相关联的图模型图示。可以在图示中定义有效节点、边线以及节点与边线之间的关系。例如,仅允许第一类型的节点与第二类型的节点共享边线。无效的关系或节点可以调用回调函数。例如,回调函数可以向用户提供错误或丢弃最后接收的意图改变。图示可以是域特定的;对于不同的网络架构,可存在不同的图示。
模型图示1000以Python编写,但是可以使用任何计算机语言来实现模型图示。该示例示出了通常的叶脊网络架构的图模型图示。所公开的系统可以将各个设计图示视为不透明的并且仅在仅包括节点和关系的图元模型处操作。如所示出的,模型图示1000描述了允许的数据类型和值。如所示出的,1020、1022、1024和1026包括在该图示下允许的关系。例如,“组成(composite_of)”类型的边线必须具有“link”类型的源节点和“link”类型的目标节点;“部分(part_of)”类型的边线必须具有“link”类型的源节点和“link”类型的目标节点;并且“托管接口(host_interfaces)”类型的边线必须具有“系统(system)”类型的源节点和“interface”类型的目标节点。
图11是示出用于验证现有的计算机网络的处理的实施方式的流程图。在一些实施方式中,该处理由图1的管理服务器102、图2的管理服务器200或图4的管理服务器402执行。在一些实施方式中,在图5的508中执行图11的处理的至少一部分。
在1102处,接收与现有计算机网络相关联的遥测信息。接收到的遥测信息的示例包括与设备操作状态和连接性相关联的信息以及填充遥测服务图示(例如,参见图9B)的信息,诸如主机名、LLDP、BGP、接口、MLAG、VLAN、VRF和多播细节。接收到的遥测信息的附加示例包括设备列表、它们的连接、它们的角色、端口的角色、IP地址、子网、虚拟网络、自治系统编号等。在各个实施方式中,遥测信息由安装在网络设备(例如,图1的网络设备106和108)上的代理收集。
在1104处,接收与现有计算机网络相关联的约束。约束的示例包括隐式约束和用户指定约束。在不同实施方式中,隐式约束基于参考网络类型并且是参考网络类型固有的。例如,在L3 Clos(叶脊)设计中(例如,参见图9A),每个叶必须连接到每个脊,而其他参考网络类型并不需要如此。隐式约束的另一示例是在L3 Clos(叶脊)和第2层设计中,虚拟网络子网必须跨给定VRF域内的现有计算机网络是唯一的。在不同实施方式中,用户指定约束专用于给定网络,因为它们由用户指定。例如,在L3 Clos(叶脊)设计中,用户指定约束可以是结构对称(例如,每个叶应具有到每个脊的相同上行链路数量和/或速度)。用户指定约束的另一示例是第2层设计中的高可用性(例如,参见图9B的第2层设计的非高可用性变体和高可用性变体的比较以及相关联描述)。
在1106处,针对接收到的遥测信息和接收到的约束来评估现有计算机网络的基于意图的网络模型的一致性。在一些实施方式中,当推断意图时,意图具有一些约束(例如,需要具有指定角色的某个设备、设置某个设备连接等)。在验证期间可以依赖于该信息。在各个实施方式中,如果接收到的遥测表明违反了接收到的约束,则引起错误。例如,在L3 Clos(叶脊)设计中,如果接收到的关于连通性的遥测表明违反了连接到每个脊的每个叶的隐式约束,则将引发错误。这种情况发生的情形可以是,如果叶仅具有到4个脊的3个的链接(例如,由于没有物理电缆或有故障的电缆)。类似地,如果基于所接收的遥测违反了用户指定约束(例如,结构对称性),则将引起错误。在一些实施方式中,图16至图18的验证处理至少部分地用于验证现有计算机网络。
在一些实施方式中,用户提供用于验证的信息。该信息可以在验证之前(例如,在经由图4的发现激活接口的验证之前)提供。在一些实施方式中,在验证期间可以请求和接收此类信息。在一些实施方式中,当收集IP地址遥测信息时,不可能仅从IP地址确定它们是否在正确的范围内、正确的子网中等。因此,用户可能需要提供该信息作为验证的一部分。例如,当经由遥测检测到重叠的IP地址空间时,IP地址可能不正确,但取决于用户意图可能是正确的(例如,当隔离至单独的域时,IP地址可能需要被重新使用)。对于IP地址,用户指定约束可以是所有结构链接都在指定的子网中。关于机架,机架可以是单叶或双叶(例如,双叶机架在它们之间具有一组链路)。机架设计可包括约束(例如,机架上的服务器之间的连接可具有约束)。超额订阅(例如,馈送至叶中的流量对结构带宽的比率)还可受到在验证期间使用的约束。
图12是示出了用于使用图形模型自动配置计算基础设施的处理的实施方式的流程图。在一些实施方式中,该处理在图1的管理服务器102、图2的管理服务器200或图4的管理服务器402中实现。在1200处,接收意图。意图包括期望的计算基础设施配置。意图可以指定所期望的服务、参考架构和/或网络需求。在一些实施方式中,意图是由网络运营商发起的业务规则变化或操作状态变化(例如,网络组件被禁用)的结果。在1202处,将计算基础设施表示为图形表示。在一些实施方式中,业务规则和策略元素也在图形表示中表示。例如,意图可被处理以在实现意图时确定节点和边线的图。在一些实施方式中,网络设备由节点表示,而设备之间的关系由边线表示。在不同实施方式中,策略、规则、接口、摘要信息或任何其他适当的网络配置信息经由节点和边表示在图形中。在意图指示改变现有网络配置的情况下,意图可被处理并表示为对现有图形模型的变化(例如,通过修改节点或关系、删除节点或关系、或者添加节点或关系)。在意图是网络意图的第一指示的情况下,可以基于意图创建新的图形模型。在一些实施方式中,在意图中指示足够的配置参数之前,不部署网络。例如,网络设备可被配置但不能联机。
在1204处,检测影响代理的触发图案的图形表示的部分。例如,代理可以与相互关联的节点和边线的特定触发图案相关联。在一些实施方式中,触发图案以编程语言(例如,Python、PERL、Java等)来编写。触发图案可描述图形模型的一部分。在一些实施方式中,触发图案定义节点或边线的属性(例如,类型、属性或标签)。在一些实施方式中,触发图案定义特定类型的节点和边线,并且定义在特定配置中节点和边线如何相互关联。图形表示的变化可导致特定图案在先前不存在的图形表示中出现,调用与特定模式相关联的代理。例如,可基于对特定类型的节点和关系的指定链的检测和以由模式指示的特定顺序来调用代理。在一些实施方式中,与代理相关联的触发图案在图形表示变化之前匹配图形表示的至少一部分,并且图形表示的变化修改(例如,改变或删除)图形表示的先前匹配触发图案的部分。这可导致响应于检测到匹配的图形表示部分已被修改而调用代理。例如,该模式可指定两种特定类型的链接节点的特定配置,并且在图形表示中检测该模式。图形表示的属于与模式匹配的图形部分的任何节点的属性的变化可调用与该模式相关联的回调函数。在另一示例中,用于匹配触发图案的图形表示的一部分的任何元素的移除可以调用与触发图案相关联的代理。
在1206处,调用所调用的代理的回调函数。在一些实施方式中,代理与触发图案和回调函数相关联。在检测到代理的触发图案的情况下,调用代理,并调用与代理相关联的回调函数。回调函数执行命令(例如,以实现意图的至少一部分)。例如,图形模型被更新并且网络设备由回调函数配置,该回调函数由检测到的图形表示的与触发图案相关联的适当部分的变化触发。在一些实施方式中,触发图案和回调函数的发布-订阅模型,能够增量地实现网络配置的变化。
在1208处,如果适用,则基于代理回调函数的处理结果来更新图形表示。在一些实施方式中,回调函数引起图形表示中的节点或边线的修改、添加或删除。图形表示基于由代理回调函数引起的任何变化而更新。在一些实施方式中,由回调函数引起的图形表示的变化调用一个或多个附加回调函数。在一些实施方式中,图形表示准确地表示在任何给定时间的网络配置。可通过改变图形表示来实现网络配置的变化,其中,改变该图形表示触发代理来执行变化的回调函数。
图13是示出用于调用回调函数的处理的实施方式的流程图。在一些实施方式中,处理实现图12的1204和1206。在一些实施方式中,处理由图2的代理管理器202实现。在1300处,确定图形是否已经改变。图形可基于所接收的意图或基于所调用的回调函数而改变。在一些实施方式中,由一个代理引起的图形的变化触发另一代理。在图形未改变的情况下,处理完成。在一些实施方式中,在网络处于活动状态(例如,需要配置)时,重复该处理。如果图形已改变,则在1302处,确定图形中的变化是否会影响一个或多个代理。
在一些实施方式中,在图形表示的与代理的触发图案相关联的部分在图形表示中检测到、添加到图形表示、在图形表示中更新或从图形表示中移除的情况下,则对图形表示的改变调用代理。在一些实施方式中,在图形表示的变化引起图形表示的一部分与特定触发图案匹配的情况下,检测图形表示的与特定触发图案匹配的部分或将其添加到图形表示,其中,图形表示的该部分先前与特定触发图案不匹配。例如,在图形中的现有节点和边线被修改使得图形的一部分与特定触发图案匹配的情况下,在图形表示中检测图形表示的与特定触发图案匹配的部分。在匹配特定触发图案的新图形部分被添加到现有图形的情况下,图形表示的匹配特定触发图案的部分被添加到图形表示。
在一些实施方式中,在图形表示的变化修改了图形表示的在变化之前与特定触发图案相匹配的部分内的节点或边线情况下,图形表示的与图形表示中的触发图案相匹配的部分被更新,并且该部分在变化之后继续与特定触发图案相匹配。
在一些实施方式中,在图形表示的变化修改了图形表示的先前匹配触发图案的部分的情况下,从图形表示中删除图形表示的与触发图案相关联的部分,使得图形表示的该部分不再匹配触发图案。例如,可以从图形的先前匹配触发图案的部分中删除节点或边线,可以改变图形的先前匹配触发图案的部分中的节点或边(例如,改变诸如类型的属性),或者可以完全删除图形的先前匹配触发图案的部分。
在图形中的变化不影响一个或多个代理的情况下,则处理完成。在图形中的变化影响一个或多个代理的情况下,在1304处,调用回调函数。例如,调用与一个或多个代理相关联的一个或多个回调函数。在一些实施方式中,回调函数提供有与图形表示的与触发图案相关联的部分是否在图形表示中被检测到、被添加到图形表示、在图形表示中被更新或从图形表示中被移除的指示。在一些实施方式中,基于该指示调用不同的回调函数以便基于该指示执行不同的动作。例如,在特定节点关系模式被添加到网络配置图形的情况下,回调函数分配资源(例如,为类型“链接”的节点分配IP地址)。在移除该模式的情况下,回调函数移除该节点的资源请求。
图14是示出代理创建流程的实施方式的流程图。在一些实施方式中,创建代理以基于触发图案来执行回调函数。各自跟踪不同触发图案的多个代理可以一起工作以基于计算基础设施的图形模型的变化来适当地配置网络。在一些实施方式中,使用单独代理的模块化方法提高了处理意图变化的效率。
在一些实施方式中,一组预先创建的代理与特定网络架构(例如,叶脊架构)相关联。例如,一组代理和模式可以与具有叶脊架构的网络相关联。每个网络架构类型可具有对应的模式和代理集。在一些实施方式中,为网络定制模式或代理集。可以通过创建或修改代理来将特征添加至网络配置系统。例如,可以通过写入逻辑来添加代理来轻松扩展系统。
所示的示例示出创建代理的处理。在1400处,定义触发图案。触发图案可包括计算基础设施的图形模型的一部分。代理可由边线、节点、属性或网络配置图形的任何方面触发。在一些实施方式中,代理包括多个触发图案。在一些实施方式中,每个代理具有单个触发图案。代理可将其触发图案作为查询注入到管理服务器(例如,图1的管理服务器102)中的查询引擎。在1402处,定义回调函数。在一些实施方式中,回调函数基于触发图案来定义要采取的动作。例如,代理可与类型“链接”的节点的触发图案和与分配IP地址的回调函数相关联。在类型“链接”的节点被添加到图形模型的情况下,代理可使回调函数分配IP地址。在一些实施方式中,回调函数将图形模型的节点或者边线作为输入。例如,可以至少部分地基于图形模型的与触发图案相匹配的部分中的节点或边线来执行函数。
在一些实施方式中,代理包括一组回调函数。例如,可以基于图形模型的与触发图案相关联的部分是否被添加至图形模型、在图形模型中修改或从图形模型中删除(例如,图形模型的一部分是否被改变成匹配触发图案,图形模型的与触发图案相匹配的部分中的边或节点的属性是否被改变,或者图形模型的与触发图案相匹配的部分是否被改变成不再匹配触发图案)来执行不同功能。代理可存储多个函数,其中,基于图形模型的与触发图案相关联的部分的变化的类型(例如,“添加”、“修改”或“删除”)、变化的数据结构的类型、变化的数据结构的位置、对数据结构的引用/至数据结构的路径、或任何其他因素来执行这些功能。例如,触发图案可包括类型设备的节点,其具有类型链路的边将其连接到类型链路的节点。。一个回调函数可定义在类型设备的节点改变属性的情况下要执行的动作,而另一回调函数可定义在类型链接的节点被删除的情况下要执行的动作。在触发图案定义包括相同类型的两个节点的模式的情况下,可基于哪个节点被改变来调用不同的回调函数。
代理可在配置网络时起到不同作用。在一些实施方式中,资源分配代理与表示一个或多个网元的触发图案相关联,当一个或多个元素存在于网络中时,该网元需要分配资源。与资源分配代理相关联的回调函数可执行分配一个或多个网元所需的资源的动作。例如,可改变联网配置图形以向网络添加电缆。可以调用与被创建以添加电缆的特定节点和边线的触发图案相关联的资源分配代理。可以调用与资源分配代理相关联的回调函数,引起电缆所需的资源分配。
在一些实施方式中,代理用于确定图形中的变化是否与和图形相关联的图形模式一致。语义验证代理可基于图形模式来确定图形是否准备好进行下游处理。在图形不满足图形模式中所陈述的规则的情况下,变化可能是不适用的。例如,在IP地址未分配或无效的情况下,不能呈现某个设备配置。例如,语义验证代理可以与“实例化(instantiated_by)”边线类型的触发图案相关联。图形模式可指示“instantized_by”类型的边线必须具有“虚拟网络(virtual_network)”类型的源节点和“虚拟网楼实例(vn_instance)”类型的目标节点。在将“instantiated_by”类型的边线添加到图形模型中的情况下,则可触发语义验证代理。语义验证代理的关联回调函数可确定边的源节点是否是“virtual_network”类型以及边的目标节点是否是“vn_instance”类型。在源节点和目标节点不具有如图形模式中所定义的预期类型的情况下,可以向用户提供错误消息。
在一些实施方式中,一旦检测到触发图案,代理就执行与触发图案相关联的检查。例如,代理对围绕“交换机”类型的节点的边和节点执行检查,以确保存在所需的节点和边线。在一些实施方式中,在网络组件在不希望的范围操作的情况下,代理发出警报或调整网络配置。例如,代理可与“服务器”类型的节点的属性的触发图案相关联。在节点的属性的变化指示服务器正在高温下操作的情况下,可调用遥测数据代理的相关联的回调函数以关闭与“服务器”类型的节点相关联的服务器。
图15是示出了检测和响应异常的处理的实施方式的流程图。在一些实施方式中,该系统用于收集网络遥测数据、分析网络、以及在闭环中适当地响应。可以从原始遥测数据中提取异常、可操作信号、影响分析或任何其他适当的信息。例如,检测服务、设备或功能组件中断(例如,经由遥测数据)可随后按需确定受影响的消费者或确定和收集附加遥测数据。基于该分析,可以采取适当的行动来通知受影响的各方或者纠正异常。
在1510处,确定图形表示的一部分与触发图案匹配。在一些实施方式中,该触发图案定义一组被管理的网络元素,其中针对异常监测这些被管理的网络元素。例如,触发图案可以包括属于特定租户的特定虚拟网络的流量遍历的一组链路。在1512处,计算一组网络元素的聚合属性。在不同实施方式中,计算标准偏差、最小值、最大值、平均值或任何适当的统计或属性。例如,每个链路上的流量的最近历史时间序列可被创建并通过水印聚合器运行以确定在超过80%利用率下运行超过30秒的链路的数量。在1514处,将条件逻辑应用于结果以检测异常。在一些实施方式中,预定义的条件逻辑包括聚合属性的阈值(例如,最大值或最小值),并且在所计算的聚合属性异常的情况下基于阈值检测异常。例如,在一组链路中的超过5%的链路在超过80%利用率下运行超过30秒的情况下,可能产生异常。在1516处,基于异常来收集附加的遥测数据。例如,可确定对一组链路上的流量有贡献的一组完整租户。在1518处,确定受该异常影响的一方。例如,可以标识受异常影响的其他虚拟网络和租户。在1520处,基于异常执行适当行动。例如,流量可被重定向到不同的链路,或者可请求受影响的租户降低链路的利用率。
在一些实施方式中,闭环遥测收集、分析和响应处理是自动化的。在一些实施方式中,基于时间间隔(例如,每五秒计算)连续监测该组网络元素的聚合属性。
在一些实施方式中,代理与定义一组被管理的网络元素的触发图案相关联。在一些实施方式中,触发图案还定义该组被管理的网络元素的属性。例如,“传输字节(transmitted_bytes)”是指传输字节的数量,是“link”类型节点的属性。代理的相关联触发图案通过指定一组链路的“transmitted_bytes”属性来指定属于特定租户的特定虚拟网络的流量所遍历的一组链路的传输字节。在一些实施方式中,基于在触发图案中指定的属性来执行函数以计算聚合属性。例如,与指定“link”类型的一组指定节点的“transmitted_bytes”属性的触发图案相关联的代理可以与确定在超过80%利用率下运行超过30秒的链路(在由“link”类型的该组指定节点表示的链路中)的百分比的回调函数相关联。
在一些实施方式中,代理与一组函数相关联,该一组函数计算被管理的元素的聚合属性、将条件逻辑应用于聚合属性、检测异常、并将异常数据(例如,存在传递异常的信息或传递关于异常的细节的信息,诸如在超过80%利用率下运行超过30秒的链路的百分比)存储在图形表示中。例如,回调函数可以确定在超过80%利用率下运行超过30秒的链路的百分比是否超过阈值。在确定百分比超过阈值的情况下,可确定存在异常,并且存储异常数据。例如,异常数据可以存储为节点的属性(例如,“聚合流量(aggregated_traffic)”作为“link”类型的节点的属性,其是指在超过80%利用率下运行超过30秒的链路的百分比)。在一些实施方式中,异常数据触发附加代理。例如,附加代理可以与指定属于特定租户的特定虚拟网络的流量遍历的一组链路的“aggregated_traffic”属性的触发图案相关联。附加代理可以触发附加遥测。例如,与附加代理相关联的函数可被定义为确定对该组链路上的流量有贡献的一组完整租户。在一些实施方式中,单独的代理与指定一组受影响方的触发图案相关联。例如,触发图案可以指定具有虚拟网络的租户,该虚拟网络具有托管在经由聚合流量超过阈值的链路连接的服务器上的端点(例如,与“virtual_network”类型的节点共享边线的“租户(tenant)”类型的节点,其中,“virtual_network”类型的节点与“端点(endpoint)”类型的节点共享边线,其中,“托管(host_on)”类型的节点与“服务器(server)”类型的节点共享边线,其中,“server”类型的节点与“link”类型的节点共享边线,其中,“link”类型的节点具有“aggregated_traffic”的属性)。单独的代理可执行警告租户的相关联的功能。
在一些实施方式中,无论是否检测到异常,都保存聚合属性(例如,作为节点属性)。基于聚合属性触发的回调函数可以包括条件(例如,在聚合属性值没有被确定为异常情况下,将不调用函数)。
在一些实施方式中,在图形表示中表示1512、1514、1516、1518和1520。在一些实施方式中,在有向无环图中表示处理阶段(例如,在1512、1514、1516、1518和1520处所描述的步骤)的工作流。在一些实施方式中,每个步骤被表示为节点。所示的流的顺序可以经由方向边来表示。例如,“处理步骤(process_step)”类型的节点可包括关于计算网络元素的聚合属性的信息,并且可具有指向“process_step”类型的另一节点的有向边线,该节点包括将条件逻辑应用于聚合属性的信息,使得聚合属性计算步骤在条件逻辑步骤之前执行。在一些实施方式中,处理阶段的工作流(例如,在1512、1514、1516、1518和1520处所描述的步骤)被表示为图形表示的一部分并且是计算基础设施的图形表示的一部分。在一些实施方式中,在单独的图形中表示步骤序列。
代理可以订阅表示阶段的图形元素并且通过执行所需的处理来对它们作出反应。在一些实施方式中,代理与表示处理阶段或步骤的图形元素的触发图案相关联。在一些实施方式中,代理具有执行由图形元素定义或参数化的处理的相关联的回调函数。例如,在“link”类型的指定节点上请求数据分析的情况下,可以创建源自“link”类型的指定节点的“process_step”类型的一系列节点。该系列节点可以包括单个链。例如,可以创建从“link”类型的指定节点指向的边线,并且将“link”类型的指定节点与“process_step”类型的后续新创建的节点连接,其中,“process_step”类型的新创建的节点具有描述计算聚合属性的公式的节点属性。在创建具有描述计算聚合属性的公式的节点属性的“process_step”类型的节点之后,可以创建从聚合属性计算节点指向的新边并且将聚合属性计算节点与具有包括阈值的节点属性的“process_step”类型的后续创建的节点连接。在一些实施方式中,“process_step”类型的节点的创建使得与指定“process_step”类型的节点的触发图案相关联的代理被触发。“process_step”类型的节点的创建可以一次一个,以期望的顺序触发代理。
例如,具有“link”类型的指定节点的“transmitted_bytes”的属性的相关联触发图案的代理可以与确定“link”类型的指定节点是否具有指向“process_step”类型的节点的输出边的回调函数相关联,并且在“link”类型的指定节点确实与“process_step”类型的节点共享输出边线的情况下,将“link”类型的节点的“transmitted_bytes”属性值保存到“process_step”类型的节点的属性。“transmitted_bytes”属性值可以保存在“process_step”类型的节点的“基础计算值(base_calculation_value)”的属性之下。在一些实施方式中,聚合属性的计算通过触发图案被参数化(例如,传递传输字节的属性在触发图案中定义并且被用作对过度利用的链路的百分比的计算的输入)。例如,与指定“process_step”类型的节点的“base_calculation_value”属性的触发图案相关联的代理可以使与代理相关联的回调函数基于在“process_step”类型的节点的“base_calculation_value”属性下保存的值和“式子(formula)”属性下保存的公式执行聚合属性的计算。在一些实施方式中,聚合属性被保存为节点的属性(例如,作为“聚合属性(aggregate_property)”属性值)。在一些实施方式中,通过将值保存为节点或边属性而在处理阶段之间传递这些值。
创建具有指定阈值的节点属性的“process_step”类型的第二节点可以触发与指定节点的“阈值(threshold_value)”属性的触发图案相关联的代理。与代理相关联的回调函数可基于“process_step”类型的第二节点的“threshold_value”属性值和“process_step”类型的第一节点的“aggregate_property”属性值来确定是否存在异常。在检测到异常的情况下,可更新“process_step”类型的第二节点的“异常(anomaly)”属性以指示存在异常。在不同实施方式中,处理步骤由图形元素(例如,节点、属性和边线)和代理的不同配置执行。
图16是示出了用于生成验证模型的处理的实施方式的流程图。图16的处理可在图1的管理服务器102上实现。
在1602处,接收服务的一组需求。服务可以是网络服务和/或其他类型的服务。在一些实施方式中,该组需求包括一组声明性需求。例如,声明性需求可以表达网络组件的期望配置,而无需指定精确的本地设备配置和控制流。通过利用声明性需求,可指定应实现什么,而不是应如何实现它。
在1604处,为该组需求中的每个设备生成验证模型,以验证该服务的状态和实施。在一些实施方式中,生成验证模型包括使用接收的一组需求和与该组需求相关联的一个或多个接收的约束来确定要用于生成一个或多个验证模型和一个或多个设备配置的更完整的一组需求。在一些实施方式中,执行验证测试程序,并且将结果与生成的预期进行比较。在一些实施方式中,所接收的一组需求已被处理以包括诸如布线图/地图的信息。例如,可以处理在1602中接收的该组需求以指定网络组件之间的连接的拓扑。
在1606处,将每个生成的验证模型提供给一个或多个用于实施所需服务的设备中的每个相应设备。在一些实施方式中,提供生成的验证模型包括将生成的验证模型发送到相应设备的代理。例如,图1的管理服务器102的代理可将生成的验证模型发送到图1的网络设备106的代理,并将另一生成的验证模型发送到图1的网络设备108的代理。在一些实施方式中,提供每个生成的验证模型包括将每个生成的验证模型存储在数据存储(例如,图1的数据存储104)中存储的图形表示的节点的数据中,以允许一个或多个代理从图形表示的节点读取和访问其相应的验证模型。因此,代理将验证模型存储到图形表示的节点以传递信息,而不是将验证模型直接传递到设备。
在一些实施方式中,验证图形表示以确保其符合定义图形表示的允许元素以及如何允许图形表示结构化/连接的模式。例如,由图形表示的新的/经修改的元素或连接触发的代理可以经由其回调函数执行新的/经修改的元素或连接的验证以确保其满足模式的规则。在一些实施方式中,验证在计算机网络的监视期间执行(例如,监视计算机网络以发现问题或异常)。在一些实施方式中,当配置计算机网络(例如,基于声明性需求配置新的计算机网络用于操作)时执行验证。
图17是示出了用于检测状态参数的处理的实施方式的流程图。图17的处理可在图1的网络设备106和/或网络设备108上实现。例如,图17的处理的至少一部分可由图1的网络设备106和/或网络设备108的一个或多个代理来执行。
在1702处,接收验证模型。在一些实施方式中,代理接收验证模型。代理可以是被配置为处理使用验证模型的验证的代理。在一些实施方式中,接收的验证模型是图16的1606中提供的验证模型。例如,正被验证的设备的代理可从另一代理获得验证模型。
在一些实施方式中,所接收的验证模型是图16的1606中为该代理的设备提供的验证模型。在一些实施方式中,接收验证模型包括检测(例如,经由匹配触发图案)验证模型已经存储在图形表示的节点中。在一些实施方式中,验证模型包括一个或多个连接和连接的相关联参数的列表,并且验证模型的相关联设备/代理报告/验证所列出的连接的存在、状态和/或参数。
在一些实施方式中,验证模型包括应在验证模型的相关联设备上操作的一个或多个服务进程的列表,并且相关联的设备/代理报告/验证所列出的服务进程的存在、状态、和/或参数。在一些实施方式中,验证模型包括应在验证模型的相关联设备上配置和操作的一个或多个IP地址的列表,并且相关联的设备/代理报告/验证所列出的IP地址的存在、状态和/或参数。在一些实施方式中,验证模型包括应被验证的相关联设备的一个或多个接口的列表,并且相关联设备/代理报告/验证所列出的接口的存在、状态和/或参数。在一些实施方式中,验证模型包括相关联的设备的接口与应配置和操作的另一连接的设备的接口之间的一个或多个连接的列表,并且相关联的设备/代理报告/验证所列出的接口连接的存在、状态和/或参数。在一些实施方式中,验证模型包括相关联的设备的一个或多个设备标识的列表,并且相关联的设备/代理报告/验证所列出的设备标识的存在、状态和/或参数。
在1704处,确定要报告的一个或多个参数以验证该验证模型。在一些实施方式中,验证模型识别一个或多个参数。例如,验证模型可以包括感兴趣参数的列表和要报告的这些参数中的每的状态/验证。参数和状态的示例包括连接会话的参数/状态、服务、IP地址、接口、接口连接、设备配置、设备属性、端口、服务质量指标等。在一些实施方式中,验证模型识别待验证的更高的概念性项目而不是待验证的特定参数,并且识别需要被验证以验证该项目的一个或多个参数。例如,验证模型可识别待验证的连接,并且识别需要验证的连接的一个或多个参数。在一些实施方式中,确定一个或多个参数包括基于验证模型生成需要从设备检测的状态参数的列表。在一些实施方式中,确定一个或多个参数包括识别要被验证以验证验证模型的项目的设备/操作系统特定参数。例如,验证模型可包括不专用于特定设备类型和/或设备操作系统的验证指令/参数,并且代理将验证指令转换成设备类型/操作系统特定指令/参数。通过允许验证模型的协议/格式/指令与特定供应商/操作系统无关,验证模型的生成被简化。因为每个代理可专用于特定类型的设备供应商/操作系统,所以代理是用于执行验证模型的通用验证项目到设备特定的特定项目之间的转换的最有效的实体。
在1706处,检测确定的参数。在一些实施方式中,在接收验证模型时执行参数检测。例如,可执行初始验证以确保在图形表示中已正确地初始化/配置的验证模型的服务。在一些实施方式中,周期性地执行参数检测。例如,可以在持续的基础上以周期间隔执行验证,以便连续地确保服务的正确运行。在一些实施方式中,周期性地(例如,每个周期间隔)执行参数检测。在一些实施方式中,动态执行参数检测。例如,在检测到潜在的材料改变时(例如,在图形表示中),可以调用和执行参数检测以确保服务在发生改变的情况下仍正确运行。改变的示例可以包括对以下一项或多项的改变:网络连接、设备硬件、设备操作系统、设备的应用、错误事件和与验证模型相关联的设备的任何状态。在另一示例中,在将改变(例如,对路由/路由表的改变)通知设备(例如,交换机)操作系统时,操作系统可通知代理响应触发参数检测。
在一些实施方式中,检测确定的参数包括获得参数的状态。例如,可以获得网络连接的状态。在另一示例中,可确定所识别的处理是否仍在运行。在一些实施方式中,检测确定的参数包括获得参数的值。例如,可以确定标识的网络连接的网络标识符(例如,IP地址)。在一些实施方式中,检测确定的参数包括获得从另一个设备报告给该设备的信息。例如,执行验证检测的设备可从其邻近设备接收状态报告/消息,并且获得包含在这些报告/消息中的信息。在一些实施方式中,检测确定的参数包括对连接到执行验证检测的设备的另一设备执行查询。例如,可以向另一设备发送查询消息以检测参数。在另一示例中,可以发送ping消息或对信息的请求。在一些实施方式中,检测确定的参数包括从连接的节点/设备获得标识参数/状态的接收消息。例如,可从对等交换机接收链路层发现协议(LLDP)消息并且报告/分析该消息以执行验证。
在1708处,报告检测的参数。例如,一个或多个检测到的参数可以由一个或多个代理(例如,图1的管理服务器102的代理,其被分派执行验证的任务)检测并存储在图形表示的一个或多个节点中。在一些实施方式中,报告检测到的参数包括执行分析以确定验证结果。例如,通过由图模型的节点的参数的改变触发的代理来检测一个或多个检测到的参数,并且代理的回调函数可以执行与参数的一个或多个期望值的比较以确定是否已经检测到期望值,并且将比较结果的标识包括在报告中。在一些实施方式中,报告检测到的参数包括使用由相关联的触发图案触发的代理的回调函数来确定检测到的参数中的一个或多个的汇总。例如,可以对检测到的参数进行分类、组织、分析、记录、和/或统计分析,并且可以在所提供的报告中包括一个或多个结果。
在一些实施方式中,报告检测到的参数包括将报告存储在图形表示的一个或多个节点中和/或将报告提供给用户。在一些实施方式中,该报告包括一个或多个参数的确定的汇总/计数。例如,除了每个接口的个体状态/参数(例如,状态标识符、状态最后更新时间等)的列表之外,活动、不活动、预期等的接口的数量可被确定并包括在报告中。在另一示例中,除了每个会话的单个状态/参数(例如,会话状态、上一次状态更新时间、源/目的IP地址/ASN等)的列表之外,活动、不活动、预期等的会话(例如,BGP会话)的数量可以被确定并被包括在报告中。在一些实施方式中,报告包含LLDP消息的识别和已在设备与其对等设备之间交换的消息的一个或多个参数(例如,发送/接收接口和设备的识别、消息时间戳等)。
图18是示出用于分析验证报告的处理的实施方式的流程图。在图1的管理器服务器102中可实现图18的处理。在一些实施方式中,图18的处理的至少一个或多个部分由一个或多个代理执行。
在1802处,接收一个或多个验证模型的检测到的参数的一个或多个报告。在一些实施方式中,接收的报告是在图17的1708中提供的来自一个或多个实例中的一个或多个不同代理的报告。例如,可从已经被配置成提供正被验证的服务的每个设备接收报告。在一些实施方式中,接收报告包括直接从一个或多个设备接收报告。在一些实施方式中,接收报告包括从图表示的一个或多个节点获得/接收报告。
在1804处,分析报告。例如,可以关联、比较和以其他方式分析包括在接收的报告中的报告数据以确定否已经被适当地实现/配置和/或正在适当地运行服务。在一些实施方式中,与服务的适当运行状态对应的一个或多个预期值和/或预期状态是已知的,并且分析该报告以验证已经检测到预期值/状态。在一些实施方式中,分析该报告包括确定在报告中是否已报告错误消息和/或非预期状态的指示。
在一些实施方式中,验证与所接收的报告相关联的预期。例如,可执行一个或多个规则或测试以验证报告中包括的值是所预期的、指定的和/或在范围内。在一些实施方式中,预期包括要执行的验证已成功实现了一组需求的一个或多个测试。例如,接收到的一组网络需求可指定要执行的验证已成功实现了该组网络需求的一个或多个测试。例如,在L3Clos网络中,可以连同接收到的网络需求一起接收用于验证路由表已经被成功更新并且叶交换机节点知道邻居反映Clos网络配置的测试。该测试可由一个或多个代理公布,并且一个或多个代理可接收该测试作为对验证的预期。在一些实施方式中,预期识别资源利用指示符的可接受范围。在一些实施方式中,预期识别所接收的状态的错误状态。
在一些实施方式中,执行分析包括确定满足吞吐量和/或服务质量/属性度量。在一些实施方式中,执行分析包括确定是否已在来自提供服务的设备的所有报告中适当地配置/检测到用于提供期望服务的设备之间的所有所需连接。例如,可以将在来自不同设备的多个报告中报告的数据相关以确定被支持连接的两个设备之间的连接数据/参数匹配以创建有效连接,而不是仅仅单独地检查每个报告。在一些实施方式中,执行分析包括确定是否存在无关紧要的(或假定不存在提供所需服务)一个或多个参数/连接。在一些实施方式中,执行分析包括验证域的隔离和/或确保一个域不会过度利用资源。
在1806处,如果适用,则基于报告的分析来执行动作。在一些实施方式中,如果所接收的报告中包括的数据是所预期的、指定的和/或在范围内,则不执行动作。例如,可确定正在适当地运行和/或已经适当地配置服务。在一些实施方式中,确定没有适当地运行和/或没有适当地配置服务,并且提供消息以指示此错误(例如,经由代理)。在一些实施方式中,预期基于所接收的报告的数据来识别要执行的响应动作。在一些实施方式中,执行动作包括报告报告的数据。例如,可报告测试的结果(例如,报告验证已成功实现该组网络需求的测试的结果)。在一些实施方式中,报告报告的数据包括概述报告的数据。报告报告的数据可包括向代理提供报告/状态(例如,代理可向用户提供报告/状态)。
在一些实施方式中,执行动作包括配置、移动、移除和/或添加网络的设备和/或网络的设备的进程/程序。例如,代理可生成用于自动缓解/修理由状态指示的错误(例如,修复/替换已遇到错误的设备)的指令(例如,向系统数据存储发布设备需求以供代理在设备上实现)。在一个实例中,当代理提供其相关联的设备过载的状态更新时,代理可将新设备添加至网络以卸载处理和/或将过载设备的处理任务移动到另一网络设备。收集到的状态信息可由代理作为报告和/或动作请求提供。
在一些实施方式中,执行动作包括允许配置为执行动作的代理执行动作。例如,已确定接收到的状态指示应当执行动作的代理通知另一代理(例如,由于检测到代理的触发图案)执行动作。
尽管为了理解清晰的目的,已在一些细节中描述了上述实施方式,但本发明不限于所提供的细节。存在许多实现本发明的替代方式。所公开的实施方式是说明性的而不是限制性的。
Claims (20)
1.一种方法,包括:
接收要应用于计算机网络的设计的连接性模板的标识;
自动分析所述网络的所述设计,以识别所述网络的所述设计中的所述连接性模板有资格被应用于的合格应用点;
接收对识别出的所述合格应用点中的要应用所述连接性模板的一个或多个指定应用点的指定;并且
将所述连接性模板应用于识别出的所述合格应用点中的所指定的所述一个或多个指定应用点,以配置所述计算机网络。
2.根据权利要求1所述的方法,其中,所述连接性模板的所述标识指定在可用连接性模板库当中的选择。
3.根据权利要求1所述的方法,其中,所述连接性模板由用户使用一个或多个包括至少一个原语的其他连接性模板而建立。
4.根据权利要求1所述的方法,其中,所述连接性模板使用由用户提供的一个或多个参数进行配置。
5.根据权利要求1所述的方法,其中,所述计算机网络的所述设计包括对物理设备的指定以及对所述物理设备之间的连接的指定。
6.根据权利要求1所述的方法,其中,所述计算机网络的所述设计识别一个或多个具有对应的应用点的通用型设备。
7.根据权利要求1所述的方法,其中,所述计算机网络的所述设计至少部分地基于由用户提供的基于意图的声明性需求而自动生成。
8.根据权利要求1所述的方法,其中,识别出的所述合格应用点包括以下项中的至少一项:端口、端口通道、子接口、路由实例、路由或安全区实例、以及互联网协议IP接口。
9.根据权利要求1所述的方法,其中,自动分析所述网络的所述设计以识别所述合格应用点包括:分析所述连接性模板以确定所述连接性模板有资格被应用于的一个或多个应用点类型,并且识别属于所述一个或多个应用点类型的所述合格应用点。
10.根据权利要求1所述的方法,其中,自动分析所述网络的所述设计以识别所述合格应用点包括:分析所述连接性模板以确定应用点类型的集合、和与在所述连接性模板中利用的不同的一个组件连接性模板相对应的每个集合之间的交集。
11.根据权利要求1所述的方法,还包括经由用户界面指示识别出的所述合格应用点对于所述连接性模板的应用合格,并且指示其他应用点对于所述连接性模板的应用不合格。
12.根据权利要求1所述的方法,其中,接收对识别出的所述合格应用点中的一个或多个指定应用点的指定包括:接收用户对识别出的所述合格应用点的列表当中的项目的选择。
13.根据权利要求1所述的方法,其中,所述连接性模板是被应用于识别出的所述合格应用点当中的同一连接点的多个连接性模板中的一个。
14.根据权利要求1所述的方法,其中,将所述连接性模板应用于识别出的所述合格应用点中的所指定的所述一个或多个指定应用点包括:基于所述连接性模板和所述网络的所述设计内的应用上下文来建立、定义、管理或修改识别出的所述合格应用点中的所指定的所述一个或多个指定应用点的一个或多个属性。
15.根据权利要求1所述的方法,其中,将所述连接性模板应用于识别出的所述合格应用点中的所指定的所述一个或多个指定应用点包括:自动确定与所述连接性模板的应用相关联的意图,并且执行基于所确定的意图而自动执行的行政或管理功能。
16.根据权利要求1所述的方法,还包括检测所述连接性模板的变化,并且作为响应,基于所述连接性模板的所述变化来自动更新识别出的所述合格应用点中的所指定的所述一个或多个指定应用点的配置。
17.根据权利要求1所述的方法,还包括:检测已应用所述连接性模板的某个应用点的变化,并且作为响应,基于检测出的变化和所述连接性模板来自动更新所述某个应用点的配置。
18.根据权利要求1至17中任一项所述的方法,其中,应用所述连接性模板包括:启用朝向浮动互联网协议IP地址的边界网关协议BGP对等会话。
19.一种系统,包括:
处理器,被配置为:
接收要应用于计算机网络的设计的连接性模板的标识;
自动分析所述网络的所述设计,以识别所述网络的所述设计中的所述连接性模板有资格被应用于的合格应用点;
接收对识别出的所述合格应用点中的要应用所述连接性模板的一个或多个指定应用点的指定;并且
将所述连接性模板应用于识别出的所述合格应用点中的所指定的所述一个或多个指定应用点,以配置所述计算机网络;以及
存储器,耦接至所述处理器并且被配置为向所述处理器提供指令。
20.一种计算机可读存储介质,编码有指令,所述指令用于使一个或多个可编程处理器执行根据权利要求1至18中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/104,804 | 2020-11-25 | ||
US17/104,804 US11570055B2 (en) | 2020-11-25 | 2020-11-25 | Connectivity templates |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114553689A true CN114553689A (zh) | 2022-05-27 |
Family
ID=78789757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111405526.4A Pending CN114553689A (zh) | 2020-11-25 | 2021-11-24 | 连接性模板 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11570055B2 (zh) |
EP (1) | EP4007233A1 (zh) |
CN (1) | CN114553689A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10313206B1 (en) | 2015-12-23 | 2019-06-04 | Apstra, Inc. | Verifying service status |
US11075805B1 (en) | 2019-04-24 | 2021-07-27 | Juniper Networks, Inc. | Business policy management for self-driving network |
US11283691B1 (en) | 2020-10-21 | 2022-03-22 | Juniper Networks, Inc. | Model driven intent policy conflict detection and resolution through graph analysis |
US11777800B2 (en) * | 2021-06-24 | 2023-10-03 | Juniper Networks, Inc. | Identifying out-of-band configuration changes to validate intent files |
US11695624B1 (en) * | 2022-02-25 | 2023-07-04 | Dell Products L.P. | Outcome-based workload configurations for information technology environments |
Family Cites Families (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7783468B2 (en) | 1998-05-13 | 2010-08-24 | Accretive Technologies, Inc. | Automated system and method for service and cost architecture modeling of enterprise systems |
US6868070B1 (en) | 2000-10-06 | 2005-03-15 | Vertical Networks, Inc. | Systems and methods for providing voice/data communication systems and voice/data communications |
US6978301B2 (en) | 2000-12-06 | 2005-12-20 | Intelliden | System and method for configuring a network device |
WO2002048910A2 (en) | 2000-12-14 | 2002-06-20 | Appilog Logview Ltd. | System for collecting, correlating, querying and viewing topology information |
CA2337292A1 (en) | 2001-02-15 | 2002-08-15 | Linmor Technologies Inc. | Dynamically adaptive network element telemetry system |
US7150037B2 (en) | 2001-03-21 | 2006-12-12 | Intelliden, Inc. | Network configuration manager |
US7200548B2 (en) | 2001-08-29 | 2007-04-03 | Intelliden | System and method for modeling a network device's configuration |
US20030158925A1 (en) * | 2002-01-18 | 2003-08-21 | Uniacke Mark J. | Management of communications networks |
US20050091068A1 (en) | 2003-10-23 | 2005-04-28 | Sundaresan Ramamoorthy | Smart translation of generic configurations |
US7668944B2 (en) | 2004-02-20 | 2010-02-23 | Evgeny Leib | System and unified setting interface for configuring network manageable devices |
US8156207B2 (en) | 2004-10-08 | 2012-04-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for remotely configuring network devices |
US8819202B1 (en) | 2005-08-01 | 2014-08-26 | Oracle America, Inc. | Service configuration and deployment engine for provisioning automation |
JP4836237B2 (ja) | 2005-10-18 | 2011-12-14 | キヤノン株式会社 | システム及びその制御方法 |
US20070130192A1 (en) | 2005-12-01 | 2007-06-07 | Alcatel | Method and system for configuring network devices through an operations support system interface |
US20080043648A1 (en) | 2006-05-25 | 2008-02-21 | Proximetry, Inc. | Systems and methods for wireless resource management |
US7962443B2 (en) * | 2007-02-08 | 2011-06-14 | Interactive Documents, Llc | Method and system for replacing data in a structured design template |
US8782182B2 (en) | 2007-05-24 | 2014-07-15 | Foundry Networks, Llc | Generating device-specific configurations |
US9730078B2 (en) | 2007-08-31 | 2017-08-08 | Fisher-Rosemount Systems, Inc. | Configuring and optimizing a wireless mesh network |
US8789036B2 (en) | 2008-01-17 | 2014-07-22 | Qualcomm Incorporated | Device software customization |
US20090198797A1 (en) | 2008-02-05 | 2009-08-06 | Microsoft Corporation | Network device provisioning using documents |
US7870238B2 (en) | 2008-02-15 | 2011-01-11 | !J Incorporated | Vendor-independent network configuration tool |
US8281046B2 (en) | 2008-07-03 | 2012-10-02 | Steelseries Aps | System and method for distributing user interface device configurations |
US8386593B1 (en) | 2008-07-17 | 2013-02-26 | NetBrain Technologies Inc. | Computer aided network engineering system, apparatus, and method |
US8195706B2 (en) | 2009-05-26 | 2012-06-05 | Computer Associates Think, Inc. | Configuration management visualization |
US8837493B2 (en) | 2010-07-06 | 2014-09-16 | Nicira, Inc. | Distributed network control apparatus and method |
US9808730B2 (en) | 2011-10-31 | 2017-11-07 | Traxxas Lp | Multi-function electronic device-enabled transmit controller |
US9311160B2 (en) | 2011-11-10 | 2016-04-12 | Verizon Patent And Licensing Inc. | Elastic cloud networking |
US20160342510A1 (en) | 2012-01-17 | 2016-11-24 | Google Inc. | Remote management of data planes and configuration of networking devices |
US8869236B1 (en) | 2013-01-11 | 2014-10-21 | Shoretel, Inc. | Automatic configuration of a network device |
US9449119B2 (en) | 2013-01-15 | 2016-09-20 | Hewlett-Packard Development Company, L.P. | Product visualization |
US9037571B1 (en) | 2013-03-12 | 2015-05-19 | Amazon Technologies, Inc. | Topology service using closure tables and metagraphs |
IN2013MU04061A (zh) | 2013-12-26 | 2015-07-31 | Tata Consultancy Services Ltd | |
US9621428B1 (en) | 2014-04-09 | 2017-04-11 | Cisco Technology, Inc. | Multi-tiered cloud application topology modeling tool |
EP2963563A1 (en) | 2014-06-30 | 2016-01-06 | Fujitsu Limited | Computing apparatus and method for managing a graph database |
US9916551B1 (en) * | 2014-10-31 | 2018-03-13 | Veritas Technologies Llc | Business continuity optimization |
US10389573B2 (en) | 2014-11-14 | 2019-08-20 | Apstra, Inc. | Configuring a network |
US10747740B2 (en) | 2015-03-24 | 2020-08-18 | Kyndi, Inc. | Cognitive memory graph indexing, storage and retrieval |
US20160344772A1 (en) | 2015-05-22 | 2016-11-24 | Brian Quentin Monahan | Modelling network to assess security properties |
US10063428B1 (en) | 2015-06-30 | 2018-08-28 | Apstra, Inc. | Selectable declarative requirement levels |
US10411954B2 (en) * | 2015-10-13 | 2019-09-10 | International Business Machines Corporation | Pattern based network configuration |
US9704277B2 (en) | 2015-10-15 | 2017-07-11 | International Business Machines Corporation | Vectorized graph processing |
US10313206B1 (en) | 2015-12-23 | 2019-06-04 | Apstra, Inc. | Verifying service status |
US10277461B1 (en) | 2016-04-20 | 2019-04-30 | Juniper Networks, Inc. | Generating network service models |
US9888007B2 (en) | 2016-05-13 | 2018-02-06 | Idm Global, Inc. | Systems and methods to authenticate users and/or control access made by users on a computer network using identity services |
US10374872B2 (en) | 2016-05-24 | 2019-08-06 | Apstra, Inc. | Configuring system resources for different reference architectures |
US11567994B2 (en) | 2017-01-24 | 2023-01-31 | Apstra, Inc. | Configuration, telemetry, and analytics of a computer infrastructure using a graph model |
US10516761B1 (en) | 2017-03-17 | 2019-12-24 | Juniper Networks, Inc. | Configuring and managing network devices using program overlay on Yang-based graph database |
US10558542B1 (en) | 2017-03-31 | 2020-02-11 | Juniper Networks, Inc. | Intelligent device role discovery |
US10698714B2 (en) | 2017-04-07 | 2020-06-30 | Nicira, Inc. | Application/context-based management of virtual networks using customizable workflows |
US10812342B2 (en) | 2017-04-28 | 2020-10-20 | Hewlett Packard Enterprise Development Lp | Generating composite network policy |
US10756983B2 (en) | 2017-12-08 | 2020-08-25 | Apstra, Inc. | Intent-based analytics |
US11019027B2 (en) | 2018-06-27 | 2021-05-25 | Cisco Technology, Inc. | Address translation for external network appliance |
US10771342B2 (en) | 2018-10-31 | 2020-09-08 | Hewlett Packard Enterprises Development LP | Encoding and verifying network intents for stateful networks |
US11588711B2 (en) * | 2020-08-14 | 2023-02-21 | Cisco Technology, Inc. | Intent-driven cloud branches |
-
2020
- 2020-11-25 US US17/104,804 patent/US11570055B2/en active Active
-
2021
- 2021-11-24 EP EP21210291.7A patent/EP4007233A1/en active Pending
- 2021-11-24 CN CN202111405526.4A patent/CN114553689A/zh active Pending
-
2022
- 2022-11-10 US US18/054,201 patent/US20230101057A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4007233A1 (en) | 2022-06-01 |
US20230101057A1 (en) | 2023-03-30 |
US20220166679A1 (en) | 2022-05-26 |
US11570055B2 (en) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11805024B1 (en) | Automatically generating an intent-based network model of an existing computer network | |
CN110383765B (zh) | 使用图形模型的计算机基础结构的配置、遥测和分析 | |
EP3465401B1 (en) | Configuring system resources for different reference architectures | |
US11625293B1 (en) | Intent driven root cause analysis | |
US10554483B2 (en) | Network policy analysis for networks | |
US10873505B2 (en) | Validation of layer 2 interface and VLAN in a networked environment | |
US10972352B2 (en) | Validation of routing information base-forwarding information base equivalence in a network | |
US11303531B2 (en) | Generation of counter examples for network intent formal equivalence failures | |
US11570055B2 (en) | Connectivity templates | |
US10826770B2 (en) | Synthesis of models for networks using automated boolean learning | |
EP3643013B1 (en) | Validation of layer 3 bridge domain subnets in a network | |
US11303520B2 (en) | Validation of cross logical groups in a network | |
US11153167B2 (en) | Validation of L3OUT configuration for communications outside a network | |
EP3643010B1 (en) | Validation of layer 1 interface in a network | |
US10812336B2 (en) | Validation of bridge domain-L3out association for communication outside a network | |
US10528444B2 (en) | Event generation in response to validation between logical level and hardware level | |
US10644946B2 (en) | Detection of overlapping subnets in a network | |
CN110785963A (zh) | 从网络收集网络模型和节点信息 | |
CN110741602A (zh) | 响应于网络意图形式对等性失败的事件生成 | |
CN114338376B (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 |