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

类似网络错误配置的自动检测和解决

文献发布时间:2023-06-19 19:28:50


类似网络错误配置的自动检测和解决

技术领域

本公开总体涉及数据管理领域。更具体地,本公开涉及用于促进类似网络错误配置的自动检测和解决的方法和系统。

附图说明

图1图示了根据本申请的一个方面的具有促进类似网络错误配置的自动检测和解决的实体和通信的图。

图2A图示了根据本申请的一个方面的用于配置文件中的条目和分层上下文的配置语法(grammar)。

图2B图示了根据本申请的一个方面的可以出现在接口上下文内的有效命令集合。

图2C图示了根据本申请的一个方面的涉及相同逻辑配置的两个行规范。

图3图示了根据本申请的一个方面的用于端口访问安全违规的行规范群组和对应的定义。

图4A图示了根据本申请的一个方面的行规范、对应的项和对应的矩阵。

图4B图示了根据本申请的一个方面的行规范和在图4B中的行规范和图4A中的行规范之间的区别的矩阵。

图5A呈现了图示根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的方法的流程图。

图5B呈现了图示根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的方法的流程图。

图5C呈现了图示根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的方法的流程图。

图6图示了根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的计算机系统。

图7图示了根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的装置。

在附图中,相同的附图标记指代相同的附图元素。

具体实施方式

以下描述被呈现以使得本领域的任何技术人员能够制作和使用这些方面和示例,并且被提供在特定应用及其要求的上下文中。对所公开的方面的各种修改对于本领域技术人员来说将是明显的,并且本文所定义的一般原理可以被应用于其他方面和应用而不背离本公开的精神和范围。因此,本文所描述的各方面不限于所示出的各方面,而是应被赋予与本文所公开的原理和特征相一致的最广泛范围。

网络管理员可以部署具有有限范围的配置更改来核实功能更改是否匹配他们的预期。配置更改可以基于模式和结构。在确认配置更改的部署后,网络管理员可以在整个系统中部署配置更改以保持一致性。用于部署和验证对受管理网络的配置更改部署的当前解决方案可能涉及依赖人类对所部署更改的位置以及可能仍需要部署更改的记忆。当前的解决方案还可能涉及基于文本的搜索,例如,通过存档的网络配置文件,以确定在哪里部署和应用更改。

所描述的本申请的方面提供了一种系统,该系统可以减少网络管理员所需的手动工作量,以便将配置更改适当地部署到受管理网络。通过分析网络状态和配置来标识应该在哪里复制先前所应用的更改,所描述的系统的各方面可以促进类似网络错误配置的自动检测和解决。即使配置不匹配或者线路类型不同,系统也可以确定应该应用的更改。“行规范”(在本公开中被缩写为“行规范”(linespec))可以与配置文件中的特定命令变体相关,包括具有特定类型的项和关键字的排序。

所描述的各方面可以使用行规范的手动或自动分组。每个行规范群组可以包括一组行规范,其中群组的每个成员要么包括用户可以指定的相同项/值,要么每个行规范针对未被明确说明的项/值定义默认值。行规范和行规范群组在下面关于图2A、图2B、图2C和图3进行描述。

系统可以允许网络管理员做出和部署配置更改并且还可以向网络管理员提供“更改的数据”(或“差异”或“差异的”数据)的视图。然后网络管理员可以确定是确认还是提交所部署的配置更改。基于更改的数据、行规范群组和其他标准,系统可以随后标识要为其部署类似配置更改的候选设备,并向网络管理员提供候选设备列表。网络管理员可以选择要为其部署配置更改的一个或多个候选设备。作为响应,系统可以将配置更改部署到所选择的设备,并向网络管理员提供类似的更改或差异数据视图。系统可以提供更改的或差异数据的自动验证,并向网络管理员指示验证结果,网络管理员可以选择是否提交所部署的配置更改。在一些方面,系统可以在整个受管理网络的其余部分中自动复制特定的孤立的更改。下面结合图1描述具有用于类似网络错误配置的自动检测和解决的实体和通信的图解。

在一些方面,系统可以随时间使用机器学习来确定哪些候选设备更有可能被选择用于一个或多个给定客户,并且还可以整合客户之间的更改的或差异数据以标识常见工作流。

促进自动检测和解决的通信

图1图示了根据本申请的一个方面的具有促进类似网络错误配置的自动检测和解决的实体和通信的图解100。图解100可以指示环境,其包括:设备102、关联的用户112和关联的显示屏114;设备104和关联的或被包括的存储设备105;以及设备106、107和108(例如,交换机)。设备102、104和106-108可以经由网络110来彼此通信。设备102可以是客户端计算设备,例如膝上型计算机、移动电话、智能电话、平板计算机、台式计算机和手持设备。设备102、104和106-108可以是计算设备,例如服务器、联网实体和通信设备。设备106-108可以是与配置文件相关联的任何网络设备,诸如服务器或交换机。在一些方面,设备102和设备104(及其关联的操作)可以运行在同一设备上或在交换机106内。

在操作期间,设备104可以针对配置文件中的多个行中的每个行确定句法(syntax),该配置文件用于在网络中操作的交换机(诸如交换机106)(操作120)。相应的行规范可以指示针对配置文件中的命令的项。设备104可以基于句法来创建一个或多个行规范群组(操作122)。群组中的每个行规范可以包括由用户指定的匹配项、或匹配值、或两者(操作124)。

显示器114可以包括、指示或向用户112显示各种信息,包括可动作的小部件和可选择的列表或元素,这些可以被激活或动作以向设备104发送命令。也就是说,用户112可以执行动作113以激活显示器114中指示的元素中的任何元素。例如,用户112可能希望创建和部署针对交换机106的新配置。用户112可以查看显示在显示器114上的信息,并且可以执行动作113,例如以查看针对交换机106的配置(“config”)文件(元素180)并且设置阵地交换机106的新配置(元素181)。用户112可以使用诸如由受管理应用所使用的配置语法。在设置新配置时,用户112可以修改行、移除行或添加行(分别是元素182、183和184)。用户112可以使用各种配置机制,包括:基于命令行接口(CLI)的文本编辑器,其允许用户使用文本来设置新配置;和基于模型的编辑器,其允许用户使用JavaScript对象表示法(JSON)模型来设置新配置。因此,用户112可以使用基于文本或基于对象的编辑工具或应用来录入提供上下文、类型、差异等的新配置。

用户112可以将新配置部署到交换机106(元素184),这可以引起(经由通信124)向设备104发送用于部署新配置的请求。

设备104可以接收用于部署新配置的请求(作为通信126)并且生成和部署针对交换机106的新配置(操作128)。设备104可以确定交换机106的部署前状态和部署后状态之间的差异(操作130)并且将差异(作为差异132)发送回给设备102。设备102可以接收差异(作为差异134)并且在显示器114上显示差异(元素185)。例如,元素185可以被显示为彼此相邻的两个框,左侧框包括来自部署之前(例如,处于部署前状态)的交换机106的配置文件的摘录,并且右侧框包括来自部署之后(例如,处于部署后状态)的交换机106的配置文件的对应摘录。系统可以利用不同的标记来指示每个摘录或框中的更改的行,这些标记包括重叠文本、突出显示、覆盖指示符、标签和其他视觉指示符。用户112可以确定是否向交换机106提交所部署的更改。例如,用户112可以(使用元素186并且经由通信124)向设备104发送提交配置命令。设备104可以接收提交配置命令(作为提交配置命令126)以及提交配置命令(操作136)。

随后,系统可以开始传播过程,即,通过标识要向该候选设备传播新配置的候选设备。设备104可以标识要向该候选设备部署新配置的候选设备(操作138)并且将候选设备140的列表发送给设备102。设备102可以接收候选设备140的列表(作为列表142)并且可以在显示器114上显示该列表(元素187)。在一些方面,系统可以将候选设备显示为具有可选择元素的列表,而在其他一些方面,系统可以将候选设备显示为连通图中的节点,其中边指示候选设备之间的关系。所显示的图表还可以包括设备之间的共同特征的指示符,诸如相同的物理位置或区域(例如,相同的楼层或建筑物)、共享的访问交换机、共享的pod交换机、或者其他共同或类似的特征。所显示的图表还可以包括可选小部件,其允许用户基于共同特征的任何组合来选择一个或多个候选设备。基于各种因素,系统可以按照特定的排名次序或重要性次序来显示候选设备的列表,并且还可以以视觉方式在图表中指示次序或排名。

用户112可以选择一个或多个候选设备(例如,以列表或图形的格式)(元素188)并且将新配置部署到所选择的设备(元素189),这可以引起(经由通信124)向设备104发送用于将新配置部署到所选择的设备的请求。设备104可以接收用于将新配置部署到所选择的所选择的设备的请求(作为通信126),以及生成新配置并且将新配置部署到选定设备(操作148)。设备104可以向所选择的设备验证所部署的新配置(操作150)并且将验证结果152发送回给设备102。设备102可以接收验证结果(作为验证结果154)以及在显示器114上显示验证结果(元素190)。例如以如上文关于图1的元素185所描述的并排方式,所显示的验证结果可以允许用户选择以查看更改的或差异数据(即,新配置更改被部署到的所选择的设备的部署前状态和部署后状态之间的差异)。

验证结果190还可以基于由设备104执行并且被包括在验证结果152/154中的自动验证来指示所部署的新配置是否成功。例如,验证结果152/154可以基于比较算法,该比较算法针对更改的或差异数据中的每个检测到的差异提供以下内容作为输出:给定值是否更改的指示符;以及在值确实更改的情况下,指示更改的值是正确或预期值的指示符。基于验证结果190,用户112可以确定将新配置提交给所选择的设备中的一些设备、不提交给所选择的设备中的设备、或者提交给所选择的设备中的所有设备(元素191并经由通信144和146到设备104)。设备104可以接收用于提交的命令、并且随后将新配置提交给所确定的所选择的设备(操作156)。

配置更改可以被部署并提交,或者仅经由通信被提交给给定交换机,例如经由通信125被提交给交换机106以用于初始新配置,以及经由通信145被提交给交换机107和108以用于传播新配置。

行规范和行规范群组

图2A图示了根据本申请的一个方面的用于配置文件中的条目200和分层上下文210的配置语法。条目200指示行规范,它可以使用特定句法或语法来表示给定配置文件的行。行规范200可以指定针对给定配置命令可能出现的关键字、项和值,例如,网络管理员在设置配置特征时可以使用这些关键字、项和值。例如,行规范200可以与针对端口速度的设置相关联,具有各种可能的速度值。行规范可以是语法规则,它允许系统标识在句法上有效的文本内容的一个或多个变型,而行可以是在句法上可能有效或无效的文本内容的特定字符串。当行与行规范匹配时,该行被示出为在句法上有效。可以在图2B的行222中看到与行规范200(也在上下文210中被指示为条目/行规范212)(即句法规范)匹配的行(即,特定实例)。

可以在特定分层上下文内定义每个行规范。上下文210可以包括端口速度行规范命令(200),以及与例如上下文的描述、与上下文相关的关闭(shutdown)特征和与虚拟局域网(VLAN)相关的特征相关的其他行规范。上下文210中的命令一起可以确定可能出现在特定上下文(例如,210中描绘的接口上下文)内的有效命令集合,如网络管理员所提供的。

图2B图示了根据本申请的一个方面的用于交换机配置的指令集合220。集合220可以在接口(interface)上下文(对应于图2A的上下文210)中定义用于交换机的配置,包括关键字、项和值。例如:针对项“description(描述)”的条目可以具有“Upstairs hallprinter(楼上大厅打印机)”的值;可以指示“no shutdown(不关闭)”的值;项“speed auto(自动速度)”可以被设置为值“100m”;项“vlan trunk native(vlan中继本征)”可以被设置为值“3”;并且项“vlan trunk allowed(允许的vlan中继)”可以被设置为值“1-10,20-30”。系统不需要针对每个行规范都有一行(例如,配置集合220中的行数与上下文210中的命令数不匹配)。在一些方面,多行/指令可以对应于单个行规范。例如,配置可以包括:

vlan trunk allowed 2-10

vlan trunk allowed 20-25

vlan trunk allowed 23-30

vlan trunk allowed 1

这些多个行都将涉及210中的相同行规范214。聚合起来,多个行将表示设置:

vlan trunk allowed 1-10,20-30

在静态路由(route)中可以看到对应于相同行规范的多行的另一个示例:

ip route 1.1.1.0/24 5.5.5.5

ip route 2.2.2.0/30 5.5.5.5

ip route 3.3.3.3/32 6.6.6.6

请注意,对于确实出现在配置集合220中的行,句法必须与行规范匹配并且以与针对“INTERFACE_NODE(接口节点)”的上下文210中的行规范排序相同的次序出现。

在给定的上下文内,多个行规范可以涉及相同的逻辑配置,但是可以基于项或关键字的不同排序。图2C图示了根据本申请的一个方面的涉及相同逻辑配置的两个行规范230。行规范232在项“(mac-auth)”之前包括项“(dot1x)”,而行规范234包括相反次序的项,即项“(mac-auth)”出现在项“(dot1x)”之前。行规范232和行规范234所指示的命令可以在逻辑上与相同的配置相关,但是,这些行规范为“dot1x”和“mac-auth”项指定了不同的优先级。本申请的各方面可以创建将这些行规范分组到各种群组或“行规范群组”的逻辑分组。行规范群组可以被定义为一组行规范,其中群组中的每一个成员都具有用户可以指定的相同项/值,或者针对未被明确指定或说明的任何项/值定义默认值。例如,在静态路由中,如果虚拟路由和转发(VRF)未被定义,则被假定为“default(默认)”,因此可以将以下内容视为等同:

ip route 1.1.1.0/24 5.5.5.5

ip route 1.1.1.0/24 5.5.5.5vrf default

图3图示了根据本申请的一个方面的用于端口访问安全违规的行规范群组300和对应的定义。行规范群组300可以包括四个命令302、304、306和308,所有这些命令都与端口访问安全违规相关或相关联。在所描述的方面,用户可以手动创建行规范群组,或者系统可以自动创建行规范群组,例如基于机器学习或聚类算法。与端口访问安全违规相关或相关联的命令的得出的行规范群组310可以包括:“pvsa”的群组“name(名称)”,在群组中具有各种“term(项)”;第一项,“name”为“notify(通知)”,“default(默认)”值为“false(假)”;第二项,“name”为“shutdown(关闭)”,“default”值为“false”;第三项,“name”为“auto-recovery(自动恢复)”,“default”值为“false”;第四项,名称为“recovery-timer(恢复定时器)”,默认值为“10”。

行规范302-308都以相同的前缀“port-access security violation action(端口访问安全违规动作)”开始,因此可以被分组成名称为“pvsa”的群组,其中项被指派了各种默认值。行规范群组310可以定义应用于群组的项,也可以定义项的默认值,这可以覆写群组的默认值。

如上所述,系统可以基于机器学习或聚类算法来创建行规范群组。系统可以通过遍历语法来执行聚类,以标识出现在任何行规范中的每个项,这可以产生整个语法的唯一项集合(其中集合可以具有为T的尺寸)。集合T中的项中的每个项都可以被用作二维矩阵中的维度,其中维度是T(项的总数)和L(行规范的总数)。对于每个行规范,系统可以为行规范中该项的每个实例而递增对应的项维度。

图4A图示了根据本申请的一个方面的行规范400、对应项410和对应矩阵420。给定行规范400中的四个行规范AD,项的总数可以是T=11,如对应的项410中所示。也就是说,尺寸T=11的集合410可以包括来自行规范400的行规范A-D的中的所有行规范的每个唯一项的一个实例。集合410可以包括以下项:“port-access(端口访问)”、“security(安全)”、“violation(违规)”、“action(动作)”、“notify(通知)”、“shutdown(关闭)”、“auto-recovery(自动恢复)”、“disable(停用)”、“enable(启用)”、“recovery-timer(恢复定时器)”和“<10-600>”。

矩阵420可以包括与行规范400的行规范A-D对应的列和与11(或T)个项中的每个项对应的行。矩阵420中的每个条目可以具有:值“0”,其指示该项未出现在给定的行规范中;或值“1”,其指示该项确实出现在给定的行规范中。使用矩阵420,系统可以忽略排序,因为行规范将等同于T维空间中的相同点,如图4B中所示。

图4B图示了根据本申请的一个方面的行规范430和矩阵440,矩阵440图示了图4B中的行规范和图4A中的行规范之间的区别。行规范430可以包括行规范X和Y(其类似于图2C的行规范230)。矩阵440可以指示行规范A-D和行规范X-Y的示例,这些行规范被指示为列并且被放置在同一矩阵中。矩阵440的行可以对应于出现在行规范A-D和X-Y之一或两者中的项。提供矩阵440以说明将聚类算法应用于项数T等于“6”的项集合中的结果。例如基于被用来定义网络设备的配置文件的行规范中可能的唯一项的最大数目,系统可以在更大维度的矩阵上应用聚类算法。

因此,在图4B中,矩阵440的行可以对应于出现在行规范X和Y中的六个唯一项:“aaa”、“authentication(认证)”、“port-access(端口访问)”、“auth-precedence(认证-优先级)”、“dot1x”和mac-auth”。矩阵440清楚地描绘了行规范A-D和X-Y之间的区别。系统可以将传统的聚类算法(例如,K均值、基于密度的噪声应用空间聚类(DBSCAN)、和层次聚类)应用于任何T维矩阵,以标识相关行规范的聚类,并且聚类符号可以被用来用某个“群组”标签对行规范进行注释。在图4B中,所应用的聚类算法可以确定行规范X和Y可以被一起分组到行规范群组中、并且行规范X-Y不同于行规范A-D。仅给定矩阵440,系统可以将行规范A-D分组在一起,因为相同的匹配项和非匹配项在数目或相似性上可能足以通过聚类算法而被分组在一起。

如上所述,网络管理员可以创建新配置并且将其部署到第一设备,并且可能希望将新配置部署到多个其他设备。当系统将新配置保存或部署到给定交换机或网络设备时,系统可以确定给定交换机或网络设备的部署前状态(例如,已有配置)和部署后状态(例如,新配置)之间的差异。对于每个更改的行,系统可以记录或存储与变更的行相关联的信息,诸如:针对更改的行的行编号;针对更改的行的行更改类型,包括该行是被添加、被移除还是被修改;与更改的行相关联的群组;更改的行被修改时针对每个更改的项的先前值和当前值;更改的行是否存在于相同的上下文中但未被修改;以及对于更改的行,哪个设备被更改,包括与该更改的设备相关联的信息(例如,设备标识符、型号、版本号等)。

一旦系统已经将新配置或更改部署到网络,系统就可以使用集成工具来核实更改引起对网络的预期效果。例如,系统可以通过比较更改前后的“show command(显示命令)”输出来表征效果,从而验证所部署的新配置(即验证更改或显示验证结果)。网络管理员可以视觉地检查更改的效果并分析更改的或差异数据。这可以允许网络管理员审阅更改并且基于验证结果来决定是否提交所部署的更改。

标识要在其上部署配置更改的候选设备;机器学习;以及自动验证

所描述的各方面可以使用更改的或差异数据来标识要对其应用相同配置更改的其他配置或候选设备。系统可以寻找与应用更改的部署前状态相匹配的配置状态。总体来说,如果部署前状态匹配,那么该匹配配置可能是对其应用配置更改的候选。术语“状态”可以指的是“show command”请求的输出、网络的物理拓扑以及特定设备或交换机的邻居。术语“状态”还可以包括交换机本身的不可变特性(例如,型号、端口数、特征支持)或指派的交换机角色(例如,聚合、访问、核心、边界等)。

系统可以使用命名资源(诸如访问控制列表(ACL)或策略)来确定要对其应用配置更改的候选设备。例如,如果网络管理员将配置更改部署到名称为“打印机业务”的ACL,则网络管理员可能希望修改具有相同名称的ACL的其他交换机。代替于要求网络管理员使用针对项“打印机业务”的基于文本的搜索(这可能导致匹配在文本中使用该项的其他配置块),所描述的各方面可以自动标识名称为“打印机业务”的ACL的所有其他实例作为候选设备。因为命名资源在内容和定义方面可能不同,所以所描述的各方面可以可选地比较命名资源内容以确定最可能的候选设备。

系统因此可以匹配特定的主要标准并且搜索如下任何配置:针对每个更改的行,该配置包含与相同行规范群组(例如,与更改的行相关联的群组)匹配的至少一个行。系统可以通过按行规范来索引设备配置从而优化搜索。如果特定配置与主要标准不匹配,则系统可以从分析的其余部分中排除该特定配置。并非每个匹配配置都一定是要对其应用配置更改的好候选。系统可以基于若干因素将可能的候选列表排序,包括:其他设备中一个其他设备的相应配置是否在相同的上下文中包含所有或“许多”未修改的行(其中系统可以使用明文搜索来执行搜索并且其中“许多”可以基于预定的阈值或数目);相应配置是否关联于如下类型的设备,该类型与关联于新配置的设备类型相同(例如,相同的标识符、型号或版本号);相应配置中的相应更改的行(如果被修改或被移除)是否包括更接近于针对部署前状态的项的第二值的项的第一值(其中“更接近”可以基于预定阈值或基于最近的部署后状态中的项的最高值的用户定义阈值);以及相应更改的行(如果被修改或移除)是否与相应配置中的行匹配相同的行规范。

系统可以如上文关于图1的元素187描述的列表格式或图形格式向网络管理员显示该“可能性排序列表”或“更改排名”。例如,网络管理员可以使用图形拓扑查看工具来确定设备、交换机和/或配置文件如何互相关。网络管理员可以视觉地检查列表或图形格式以确定所提议的更改的范围(例如,对候选设备),并且随后确定是接受还是拒绝所提议的更改(例如,选择要对其部署新配置的一个或多个候选设备)。在一些方面,系统可以自动将更改应用于满足某个预定阈值的所有被标识的候选设备(例如,基于上述标准或可能性因素中的任何标准或可能性因素,或者在某些行规范更改中针对“接近度”的预定阈值或用户定义阈值)。系统因此可以显示候选设备,将新配置部署到用户选择的(或自动确定的全部)候选设备,并且经由集成的更改验证工具来提供更改的或差异数据,从而允许网络管理员选择接受(即提交)或拒绝的哪些设备/配置。

系统还可以基于更改排名(例如,候选设备的可能性排序列表),使用机器学习来利用来自网络管理员的反馈随着时间对模型进行训练。系统可以跟踪哪些候选由网络管理员选择以被包括在可能性排序列表中/被从可能性排序列表排除。如果管理员排除了候选,则系统可以降低与原始更改匹配的更改的对应特性的权重。如果管理员包括候选,则系统可以提高此权重。

系统还可以跨所有客户整合更改的行和所存储的信息,以将数据“平滑”到某个基本行规范和上下文。这种整合可以允许系统按照相似的行为对客户进行分组以及标识常见工作流,其可以被用来提供反馈并提高某些销售和支持团队的效率。例如,销售和支持团队可以使用整合的信息来创建针对最常见的客户工作流的培训材料。

系统还可以跟踪哪些特征正在被更改。频繁更改的配置可能指示客户在配置该特征时遇到困难。系统可以基于对应行是否被移除/被修改或者是否被添加该行来区分“启用新特征”和“修复该特征的糟糕配置”。通过跨所有客户整合这些信息,系统可以提供关于哪些特征(或特定命令)可能对客户的配置更成问题的全局视图。此外,在该特征未以其他方式被知晓为难以配置的情况下,此信息可能对为那些可能需要更多帮助的特征提供文档、培训、实现或测试的团队是有用的。

如上所述,因为系统可以使用集成工具来记录更改的或差异数据,所以系统可以通过比较部署前状态和部署后状态来执行验证(如上文关于图1中的150和190所描述的)。也就是说,系统可以通过执行这种差异函数或比较来获取一个或多个更改的行。由于网络状态的各方面或局部值可能会基于位置(例如,主机名、IP地址或端口号)而改变,因此产生的更改的或差异数据可能不完全匹配。系统可以将这些局部值放置在候选设备的配置文本中或从邻居表(例如,链路层发现协议(LLDP)或其他协议状态表)中提取值,以标识配置文本中的哪些值需要被抽象/被替换。这可以引起有效地掩盖这些局部值或差异。邻居表可以标识连接到系统或交换机的实体的特性(例如,互联网协议(IP)地址、媒体访问控制(MAC)地址、主机名或端口号)。邻居特性可能出现在交换机配置中。例如,交换机可以具有IP地址为5.5.5.5的L3邻居(例如路由器)。此IP地址可能会作为下一跳出现在交换机的静态路由配置中:

ip route 1.1.1.0/24 5.5.5.5

ip route 2.2.0.0/16 5.5.5.5

在验证所部署的新配置时(例如,在执行更改验证时),系统可以针对更改的或差异数据中的每个检测到的差异来确定:值是否被更改;并且如果值被更改,值是否被更改为正确值。如果值更改并且在原始更改和自动应用的更改之间不同,则检测到的差异将自动使验证失败。如果值确实更改,系统可以确定该值是否更改为正确值。系统可以表征原始差异数据中的更改的值。系统可以提取更改的值以及在配置文本中和在邻居/协议状态表中搜索更改的值,并且可以记录与这些搜索结果相关联的相关上下文。系统可以通过检查是否针对更改的值找到相同的上下文/特性来分析针对每个自动应用的更改的差异数据。如果找到,则系统可以自动验证更改。如果否,则系统可以将更改作为潜在无效的结果呈现给网络管理员。

促进自动检测和解决的方法

图5A呈现了图示根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的方法的流程图500。在操作期间,系统配置文件中的多个行中的每个行确定句法,其中相应的行规范指示针对配置文件中的命令的项,该配置文件用于在网络中的操作的交换机(操作502)。系统基于句法来创建一个或多个行规范群组,其中群组中的每个行规范包括由用户指定的匹配项、或匹配值、或两者(操作504)。系统由用户经由计算设备的显示屏设置针对与部署前状态相关联的第一设备的新配置(操作506)。系统经由显示屏从用户接收用于部署针对第一设备的新配置的请求(操作508)。系统针对第一设备生成并且部署新配置以获取部署后状态(操作510)。系统通过确定部署前状态和部署后状态之间的差异来获取一个或多个更改的行(操作512)。系统存储与更改的行相关联的信息(操作514)。系统在显示屏上显示与所确定的差异和更改的行相关联的信息(操作516),并且操作在图5B的标签A处继续。

图5B呈现了图示了根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的方法的流程图520。系统经由显示屏从用户接收用于将所部署的新配置提交给第一设备的请求(操作522)。系统将所部署的新配置提交给第一设备(操作524)。系统基于所创建的行规范群组和该一组标准来标识要向其部署新配置的其他设备(操作526)。系统可以进一步基于新配置来标识其他设备。系统在显示屏上向用户显示其他设备的第一列表,其中第一列表基于一组标准而被排序(操作528)。系统由用户经由显示屏选择要向其部署新配置的其他设备中的一个或多个其他设备(操作530)。系统经由显示屏从用户接收用于将新配置部署到所选择的其他设备的请求(操作532)。系统将新配置部署到所选择的其他设备(操作534),并且操作在图5C的标签B处继续。

图5C呈现了图示了根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的方法的流程图540。系统验证针对所选择的其他设备所部署的新配置(操作542)。系统在显示屏上向用户显示第二列表,该第二列表指示针对所选择的其他设备所部署的新配置是否成功被验证(操作544)。系统经由显示屏从用户接收请求,该请求用于基于第二列表中所指示的验证结果提交针对所选择的其他设备中的至少一个所选择的其他设备提交所部署的新配置(操作546)。系统提交针对所选择的其他设备中的至少一个所选择的其他设备所部署的新配置(操作548),并且操作返回。

虽然流程图500、520和540描绘了顺序发生的操作,但是一些操作可以并行发生。例如,在执行操作508时,另一设备(诸如图1中的设备104)可以开始并行执行操作526(假设部署将被配置并且用户将提交更改)。在执行操作526时,系统可以使用先前所计算的信息,而不是按需计算信息。例如,系统可以在邻居表发生更改时对更改进行跟踪。当邻居表中针对给定邻居的条目更改时,系统可以解析与给定邻居相邻的交换机的配置,并且关联配置中的哪些项与给定邻居相关。随后,在执行操作526时,系统将已经缓存了用于标识相似行的抽象数据。

计算机系统和设备

图6图示了根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的计算机系统。计算机系统600包括处理器602、易失性存储器606和存储设备608。易失性存储器606可以包括例如用作受管理的存储器的随机存取存储器(RAM),并且可以被用来存储一个或多个存储器池。存储设备608可以包括可以经由处理器602来管理或访问的持久存储。此外,计算机系统600可以耦合到外围输入/输出(I/O)用户设备610,例如显示设备611、键盘612、和指点设备614。存储设备608可以存储操作系统616、内容处理系统618和数据636。计算机系统600可以包括比图6中所示的那些更少或更多的模块。

内容处理系统618可以包括指令,这些指令在由计算机系统600执行时可以使计算机系统600或处理器602执行本公开中描述的方法和/或过程。具体而言,内容处理系统618可以包括:用于接收和传输数据分组的指令,与配置文件、请求和命令相关的指令(通信模块620)。

内容处理系统618还可以包括用于针对配置文件中的多个行中的每个行确定句法的指令,其中相应的行指示针对配置文件中的命令的项,该配置文件用于在网络中操作的交换机(行规范分组模块622)。内容处理系统618可以包括用于基于句法来创建多行的一个或多个群组,其中群组中的每一行包括由用户指定的匹配项或匹配值、或者两者(行规范分组模块622)。内容处理系统618可以包括用于生成针对与部署前状态相关联的第一设备的新配置(配置生成模块624)以及将新配置部署到第一设备以获取部署后状态的指令(配置部署模块626)。内容处理系统618可以包括用于通过确定部署前状态与部署后状态之间的差异来获取一个或多个更改的行的指令(差异确定模块630)。内容处理系统618可以包括用于存储与更改的行相关联的信息的指令(差异确定模块630)。内容处理系统618可以包括用于基于所创建的行群组和一组标准来标识要向其部署新配置的其他设备的指令(候选标识模块628)。内容处理系统618可以包括用于在计算设备的显示屏上向用户显示其他设备的第一列表的指令,其中第一列表基于该组标准来进行排序(候选标识模块628)。内容处理系统618可以包括用于由用户选择要向其部署新配置的其他设备中的一个或多个其他的指令(候选标识模块628)。内容处理系统618可以包括用于将新配置部署到所选择的其他设备的指令(配置部署模块626)。内容处理系统618可以包括用于验证对所选择的其他设备所部署的新配置的指令(更改验证模块632)。内容处理系统618可以包括用于在显示屏上向用户显示第二列表的指令,该第二列表指示对所选择的其他设备所部署的新配置是否成功被验证(更改验证模块632)。

内容处理系统618可以附加地包括用于以下的指令:基于所生成的新配置和所选择的其他设备来训练模型,以学习哪些配置更可能用于多个客户中的客户;跨多个客户整合更改的行和所存储的信息,以标识常见工作流;并且进一步基于跟踪与客户相关联的动作来训练模型以学习哪些配置更可能用于客户(模型训练模块634)。

数据636可以包括通过本公开中描述的方法和/或过程作为输入所需的或作为输出所生成的任何数据。具体而言,数据636至少可以存储:句法;行;已修改或未修改的行;行规范;行群组;行规范群组;项;值;默认值;关键字;配置;配置文件;更改的行;差异;更改的数据;差异数据;差异的数据;比较结果;设备或候选设备的指示符;设备列表;所选择的设备;经验证的设备;成功验证所部署配置的指示符;模型;客户的指示符或标识符;工作流;动作;编号;聚类算法;矩阵;视觉相似性;命名资源;标准;针对相应更改的行的匹配的行、行规范或行规范群组;与设备相关联的信息;部署前状态;部署后状态;行编号;行更改类型;先前值;当前值;以及上下文。

图7图示了根据本申请的一个方面的促进类似网络错误配置的自动检测和解决的装置700。装置700可以包括多个单元或装置,它们可以经由有线、无线、量子光或电通信信道而彼此通信。装置700可以使用一个或多个集成电路来实现,并且可以包括比图7中所示的那些更少或更多的单元或装置。此外,装置700可以被集成在计算机系统中,或者被实现为能够与其他计算机系统和/或设备通信的分开的一个或多个设备。

装置700还可以包括非易失性存储系统或存储器管理单元。装置700可以包括模块或单元702-716,它们被配置为执行类似于图6的计算机系统600的模块620-634的功能或操作,包括:通信单元702;行规范分组单元704;配置生成单元706;配置部署单元708;候选标识单元710;差异确定单元712;变更验证单元714;以及模型训练单元716。

总体来说,所公开的各方面提供了一种促进处理指令的系统。一方面,在操作期间,系统针对配置文件中的多个行中的每个行确定句法,其中相应的行规范指示针对配置文件中的命令的项,该配置文件用于在网络中操作的交换机。系统基于句法来创建一个或多个行规范群组,其中群组中的每个行规范包括由用户指定的匹配项、或匹配值、或两者。系统生成针对与部署前状态相关联的第一设备的新配置。系统将新配置部署到第一设备以获取部署后状态。系统通过确定部署前状态与部署后状态之间的差异来获取一个或多个更改的行。系统存储与更改的行相关联的信息。系统基于所创建的行规范群组和一组标准来标识要向其部署新配置的其他设备,并且在计算设备的显示屏上向用户显示其他设备的第一列表,其中第一列表基于该一组标准而被排序。系统由用户选择要向其部署新配置的其他设备中的一个或多个其他设备,并且将新配置部署到所选择的其他设备。系统延伸针对所选择的其他设备验证所部署的新配置,并且在显示屏上向用户显示第二列表,该第二列表指示针对所选择的其他设备所部署的新配置是否成功被验证。

在这个方面的变型中,系统基于所生成的新配置和所选择的其他设备来训练模型,以学习哪些配置更可能用于多个客户中的客户。系统整合跨多个客户的更改的行和所存储的信息,以标识常见工作流。

在该方面的另一变型中,系统进一步基于跟踪与客户相关联的动作来训练模型以学习哪些配置更可能用于客户,其中被跟踪的动作包括以下至少一项:多个配置文件中的相应配置文件被查看的次数;相应配置文件中的多个行中的行被查看、被点击、被修改、被更改、或被移除的次数;所显示的其他设备的第一列表中的相应设备是否被用户选择;以及新配置是否被部署到相应设备。

在进一步的变型中,相应行规范还指示针对配置文件中的命令的关键字和值。

在进一步的变型中,群组中的每个行规范还包括针对未被指定的项和/或值的默认值。

在进一步的变型中,系统基于以下中的至少一个来创建一个或多个行群组:聚类算法;以及由用户标识的视觉相似性。

在进一步的变型中,系统基于命名资源来标识要向其部署新配置的其他设备。

在进一步的变型中,该一组标准包括相应其他设备的当前状态是否与第一设备的部署前状态匹配。

在进一步的变型中,标识向其部署新配置的其他设备还基于在其他设备的多个配置中搜索如下任何配置:针对每个更改的行,该配置包含与和相应更改的行相关联的群组匹配的至少一个行。

在进一步的变型中,基于该一组标准将其他设备的第一列表排序包括基于以下至少一项将其他设备排名:针对其他设备中的一个其他设备的相应配置是否在相同的上下文中包含所有或许多未修改的行;相应配置是否与如下类型的设备相关联:该类型与关联于新配置的设备类型相同;相应配置中的相应更改的行是否包括更接近于针对部署前状态的项的第二值的针对项的第一值;以及相应更改的行是否与相应配置中的行匹配相同的行规范。

在进一步的变型中,针对每个更改的行,与更改的行相关联的所存储的信息包括以下至少一项:针对相应更改的行的行编号;针对相应更改的行的行更改类型,包括该行是被添加、被移除还是被修改;与相应更改的行相关联的群组;相应更改的行是被修改时针对每个更改的项的先前值和当前值;相应更改的行是否存在于相同的上下文中但是未被修改;以及针对相应更改的行,哪个设备被更改,包括与相应更改的设备相关联的信息

本具体实施方式中描述的数据结构和代码通常被存储在计算机可读存储介质上,该介质可以是可以存储代码和/或数据以供计算机系统使用的任何设备或介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光存储设备,诸如磁盘驱动器、磁带、CD(压缩盘)、DVD(数字多功能盘或数字视频盘)或者能够存储现在已知或以后开发的计算机可读介质的其他介质。

在具体实施方式部分中描述的方法和过程可以被体现为代码和/或数据,其可以被存储在如上所述的计算机可读存储介质中。当计算机系统读取并执行存储在计算机可读存储介质上的代码和/或数据时,计算机系统执行体现为数据结构和代码并且被存储在计算机可读存储介质内的方法和过程。

此外,上述方法和过程可以被包括在硬件设备或装置中。例如,硬件设备或装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)、在特定时间执行特定软件程序或一段代码的专用或共享处理器、以及现在已知或以后开发的其他可编程逻辑器件。当硬件设备或装置被激活时,硬件模块执行包括在其内的方法和过程。

仅出于说明和描述的目的而呈现了对各方面的前述描述。它们并非旨在详尽或将本文描述的各方面限制为所公开的形式。因此,对于本领域技术人员来说,许多修改和变型将是明显的。此外,上述公开内容并非旨在限制本文描述的各方面。本文描述的各方面的范围由所附权利要求来限定。

相关技术
  • 使用声明性配置数据解决云操作中的错误
  • 解决小区更新后将UE配置到错误小区的方法与装置
技术分类

06120115924695