CN112805984B - 用于部署增量网络更新的系统 - Google Patents

用于部署增量网络更新的系统 Download PDF

Info

Publication number
CN112805984B
CN112805984B CN201980063143.8A CN201980063143A CN112805984B CN 112805984 B CN112805984 B CN 112805984B CN 201980063143 A CN201980063143 A CN 201980063143A CN 112805984 B CN112805984 B CN 112805984B
Authority
CN
China
Prior art keywords
configuration
network
program
computer network
nom
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.)
Active
Application number
CN201980063143.8A
Other languages
English (en)
Other versions
CN112805984A (zh
Inventor
许伟
纳加文德·查莱克雷
孙岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112805984A publication Critical patent/CN112805984A/zh
Application granted granted Critical
Publication of CN112805984B publication Critical patent/CN112805984B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0886Fully automatic configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network

Abstract

提供了一种用于部署增量网络更新的方法。接收包括用于计算机网络的提议的更新的程序,并分析所述程序以生成网络对象模型(network object model,NOM)。使用所述NOM针对所述提议的更新生成所述计算机网络的配置变更,并解析所述配置变更和初始配置以生成合成的网络配置。将所述合成的网络配置转换为一阶逻辑表示,并验证所述逻辑表示以确定所述配置变更是否由不变量约束。使用所述NOM分析验证结果,以确定所述配置变更如何导致与所述不变量相关的违规,以及如何在测试所述合成的网络配置时检测所述违规。使用分析结果更新所述计算机网络配置。

Description

用于部署增量网络更新的系统
相关申请案的交叉引用
本申请要求于2018年10月3日提交的申请号为62/740,471、发明名称为“用于部署增量网络更新(System for Deploying Incremental Network Updates)”的美国临时申请的优先权和权益,该在先申请通过引用并入本文。
技术领域
本发明涉及计算机网络管理,具体涉及用于部署增量网络更新的系统和方法。
背景技术
网络配置需要频繁更新,而配置更新会带来比网络的初始构建更加困难的问题。对生产网络配置的增量更新可能难以正确实现。使用传统的配置指令增量配置不同的网络设备(例如路由器、交换机和中间盒),与使用汇编语言对可操作的分布式系统编程一样具有挑战性。在云级网络中,这个问题变得难以解决。当前网络管理实践中缺少的几个关键能力包括依赖关系、排序、事务原子性和可验证性。
目前,主要通过陈旧的低级配置指令执行网络变更。这种高级网络表示和部署方面的差距阻碍了通用网络的规模化。网络设计不是一次性活动,因为网络配置是不断演进的。网络变更目前是通过陈旧的低级配置指令来执行的,由于在网络中不同节点或层上相关对象的依赖关系,这经常导致错误。
发明内容
提供了用于部署增量网络更新的方法、装置和系统。现在描述了各种示例从而以简化形式引入一些概念,在具体实施方式中会进一步描述这些概念。发明内容并非旨在确定请求保护的主题的关键或必要特征,也并非旨在用于限制请求保护的主题的范围。
本主题的实施例提供对生产网络配置的增量更新。在各种实施例中,使用增量验证确保满足原始和新的不变量。本主题使用分层对象模型的增量验证和对象模型中变更的语义来确定增量更新中的故障来源。本主题计算原子事务的顺序,将子动作转换为低级配置指令,并按计算的顺序配置节点及其组件对象。
根据第一方面,本主题涉及一种使用一个或多个处理器更新计算机网络配置的方法。所述方法包括:接收包括用于所述计算机网络配置的提议的更新的程序,在接收所述程序时的所述计算机网络配置为初始配置;分析所述程序以生成网络对象模型(networkobject model,NOM);使用所述NOM针对所述提议的更新生成所述计算机网络的配置变更;验证所述初始配置的表示,以确定所述配置变更是否由不变量约束;使用所述NOM分析所述验证的结果,以确定所述配置变更如何导致与所述不变量相关联的违规,以及如何在测试所述初始配置的所述表示时检测所述违规;使用所述分析的结果更新所述计算机网络配置。
根据所述第一方面,在所述方法的第一种实现方式中,更新所述计算机网络包括:解析所述计算机网络的所述配置变更和所述初始配置以生成合成的网络配置;将所述合成的网络配置转换为一阶逻辑表示;验证所述一阶逻辑表示,以确定所述配置变更是否由不变量约束。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第二种实现方式中,更新所述计算机网络包括向所述计算机网络添加节点或从所述计算机网络移除节点。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第三种实现方式中,更新所述计算机网络配置包括修改所述初始计算机网络配置。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第四种实现方式中,修改所述初始配置包括添加新前缀。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第五种实现方式中,修改所述初始配置包括升级接口。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第六种实现方式中,验证所述逻辑表示以确定所述配置变更是否由不变量约束包括使用可满足性模理论(satisfiability modulo theory,SAT/SMT)解算器。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第七种实现方式中,分析所述程序以生成NOM包括确定所述程序的原子。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第八种实现方式中,确定所述程序的原子包括确定所述原子的依赖关系。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第九种实现方式中,确定所述程序的原子包括确定所述原子的操作顺序。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第十种实现方式中,确定所述程序的原子包括确定所述程序使用的物理接口。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第十一种实现方式中,确定所述程序的原子包括确定所述程序使用的中继接口。
根据所述第一方面或所述第一方面的任一上述实现方式,在所述方法的第十二种实现方式中,确定所述程序的原子包括确定所述程序使用的路由信息。
根据第二方面,本主题涉及一种用于更新计算机网络配置的系统,所述系统包括连接到所述计算机网络的一个或多个处理器,所述一个或多个处理器用于:接收包括用于所述计算机网络配置的提议的更新的程序,在接收所述程序时的所述计算机网络配置为初始配置;分析所述程序以生成网络对象模型(network object model,NOM);使用所述NOM针对所述提议的更新生成所述计算机网络的配置变更;验证所述初始配置的表示,以确定所述配置变更是否由不变量约束;使用所述NOM分析所述验证的结果,以确定所述配置变更如何导致与所述不变量相关联的违规,以及如何在测试所述初始配置的所述表示时检测所述违规;使用所述分析的结果更新所述计算机网络配置。因此,可以实现对生产网络配置提供增量更新的有效概念。
根据所述第二方面,在所述系统的第一种实现方式中,所述一个或多个处理器还用于:解析所述计算机网络的所述配置变更和所述初始配置以生成合成的网络配置;将所述合成的网络配置转换为一阶逻辑表示;验证所述一阶逻辑表示,以确定所述配置变更是否由不变量约束。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第二种实现方式中,所述一个或多个处理器还用于:确定所述程序的原子以生成所述NOM;执行依赖关系分析,包括确定所述原子内网络对象之间的关系。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第三种实现方式中,所述一个或多个处理器还用于计算对象变更集以生成所述NOM。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第四种实现方式中,所述一个或多个处理器还用于使用所述计算的对象变更集构建增量图。
根据所述第二方面或所述第二方面的任一上述实现方式,在所述系统的第五种实现方式中,所述一个或多个处理器还用于对所述增量图应用拓扑排序以计算变更对象的顺序。
根据第三方面,本主题涉及一种计算机可读介质,所述计算机可读介质存储用于更新计算机网络配置的计算机指令,当一个或多个处理器执行所述计算机指令时,所述一个或多个处理器执行以下步骤:接收包括用于所述计算机网络配置的提议的更新的程序,在接收所述程序时的所述计算机网络配置为初始配置;分析所述程序以生成网络对象模型(network object model,NOM);使用所述NOM针对所述提议的更新生成所述计算机网络的配置变更;验证所述初始配置的表示,以确定所述配置变更是否由不变量约束;使用所述NOM分析所述验证的结果,以确定所述配置变更如何导致与所述不变量相关联的违规,以及如何在测试所述初始配置的所述表示时检测所述违规;使用所述分析的结果更新所述计算机网络配置。
根据所述第三方面,在所述计算机可读介质的第一种实现方式中,更新所述计算机网络配置包括以下各项中的至少一项:向所述计算机网络添加节点、从所述计算机网络中移除节点,以及修改所述计算机网络配置。
根据所述第三方面或所述第三方面的任一上述实现方式,在所述计算机可读介质的第二种实现方式中,修改所述计算机网络配置包括添加新前缀。
根据所述第三方面或所述第三方面的任一上述实现方式,在所述计算机可读介质的第三种实现方式中,所述计算机网络为云计算机网络。
前述任一个示例可以与前述其它示例中的任何一个或多个组合以在本发明范围内产生新实施例。
本发明内容是本申请的一些教导的概述,而不意欲为本主题的排他性的或详尽的论述。关于本主题的额外细节见于具体实施方式和所附权利要求。本发明主题的范围由所附权利要求及其法律等同物限定。
附图说明
图1是各种实施例提供的向云计算机网络添加租户的示意图。
图2是各种实施例提供的用于部署增量网络更新的方法的流程图。
图3是各种实施例提供的用于计算机网络管理所执行的动作的示意图。
图4是各种实施例提供的用于建模和部署增量网络更新的系统的流程图。
图5A是各种实施例提供的在部署增量网络更新时用于确定配置变更的方法所使用的步骤的流程图。
图5B是各种实施例提供的在部署增量网络更新时用于更新网络配置的方法所使用的步骤的流程图。
图6A-图6C示出了示例性实施例提供的用于部署增量网络更新的代码列表和示意图。
图7A-图7B示出了各种实施例提供的用于配置合成和验证的代码列表和示意图。
图8为各种实施例提供的从用于向云计算机网络添加租户的程序推导的变更的示意图。
图9示出了本发明实施例提供的用于识别在部署增量网络更新时导致违规的对象的代码列表。
图10为用于执行示例性实施例提供的方法的电路的示意图。
具体实施方式
以下结合附图进行详细描述,所述附图是描述的一部分,并通过图解说明的方式示出可以实施本发明的具体实施例。这些实施例进行了足够详细的描述以使本领域技术人员能够实践本发明主题,应理解,可以利用其它实施例,并且在不脱离本发明主题范围的情况下可以进行结构、逻辑和电更改。因此,以下示例性实施例的描述不具有限定意义,本发明主题的范围由所附权利要求界定。
如本文所用,术语“对象”(或“网络对象”)表示网络实体(例如网络接口或网络进程)的配置数据(例如,支持的带宽、路由过程定义、虚拟局域网(virtual local areanetwork,VLAN)关联或其它网络属性)或网络实体之间的交互。如本文所用,术语“节点”表示网络设备。一个节点可以与不同的网络对象相关联,以表征该节点在网络内的操作方式。如本文所用,术语“网络对象模型(network object model,NOM)”表示涵盖与一个或多个网络节点相关联的不同网络对象之间的多种关系的模型。
如本文所用,术语“租户”可与术语“租户子网”互换使用,表示可以与其它子网共享网络资源(或资源)的一个或多个网络实体,但是到达子网端点的网络流量与其它子网中的实体分离。
目前的网络更新技术是基于模板的,并且没有在配置指令中使用对象间依赖关系。移除网络中的对象可能会留下垃圾配置,因为相关对象没有相应地更新。垃圾配置定义为不再需要的过期配置元素。此外,错误地移除共享对象(即多个节点之间共享的配置数据)可能会关闭网络部分。增量操作往往需要严格的动作顺序,所述增量操作如电路迁移、添加或移除全网内部边界网关协议(internal border gateway protocol,iBGP)路由器、添加或移除弹性IP/虚拟专用网(elastic IP/virtual private network,EIP/VPN)。如果未遵循正确的顺序,则生产网络可能会中断。此外,增量更新通常需要原子操作能力。失败后,提交的动作需要按照正确的顺序进行完全回滚。应该在网络管理过程中嵌入验证,以确保满足现有的和新的增量不变量。如本文所用,术语“不变量”表示不能通过修改网络配置而改变的一个或多个节点的预定义属性。如果网络修改违反了不变量(即,一个或多个节点的预定义属性被改变),则可以回滚修改,以防止不变量违反。
现有的配置描述框架(如OpenConfig)提供了设备级模型,但是在计算这些模型时,难以指定不同网络层的依赖关系。使用本文所公开的技术,在节点层次扩展现有的配置描述框架模型,并定义分层YANG(yet another next generation)模型来表示网络范围的依赖关系。正确的操作顺序可以确保无中断的增量更新。在当前的部署框架中,缺少顺序程序指令无法描述操作顺序。在本主题中,配置即程序(configuration-as-program)的表示使得能够应用经过验证的程序分析技术,如静态分析、引用计数和垃圾收集,从而可证明地确定正确的操作顺序。
在各种实施例中,使用增量验证确保满足原始和新的不变量。本主题使用分层对象模型的增量验证和对象模型中变更的语义来确定增量更新中的故障来源。尽管在大规模网络中,故障确定可能会充满挑战,但有助于减少搜索空间的一个关键观察是,对于配置变更之间违反的给定不变量,如果网络模型支持增量表示,则有可能找出问题的原因。
传统的网络管理中很少支持失败后完全回滚(clean rollback)的能力。生产网络通常有许多垃圾配置,这些垃圾配置会妨碍网络性能。在本主题中,运维人员可以使用高级语言对大多数网络对象进行回滚。本文公开的技术可以用于计算原子事务的顺序,将子动作转换为低级配置指令,并按计算的顺序配置节点及其组件对象。
图1是各种实施例提供的向云计算机网络添加租户的示意图。参考图1,示出了管理接口152、路由分发功能154、三层接口156和166、二层接口158和168,以及物理接口160、162、170和172。
管理接口152(如管理员的用户界面)用于通过接口之间的路由分发功能154来控制路由分发(例如,接口之间的路由信息共享)。在一些方面,路由分发功能154包括一个或多个路由表,所述一个或多个路由表可用于使节点能够到达可通过路由分发功能154访问的一个或多个子网。在一些方面,管理接口152可以通过管理与路由分发功能154相关联的路由表来控制路由分发功能154。
三层接口156和166包括可寻址的逻辑网络接口,如VLAN接口或其它逻辑类型接口。二层接口158和168是可用于聚合来自物理接口160、162、170和172的流量的接口。物理接口160、162、170和172可以表示具有不同带宽需求的网络设备端口。图1所示的箭头的依赖关系(如A→B)表示A依赖B,B应该先于A实例化。
在一个数据中心网络中,同一个物理基础设施可以支持一个或多个客户网络或子网,这些客户网络或子网都彼此分离。如上所述,每个客户网络或子网在本文中称为租户或租户子网。例如,第一租户子网可以包括三层接口156、二层接口158和物理接口160。第二租户子网可以包括三层接口156、二层接口158和物理接口162,所述物理接口162可以具有与物理接口160不同的带宽需求。
当添加与路由分发功能154相关联的租户时,例如添加包括三层接口166、二层接口168和物理接口170或172的租户子网时(用虚线框表示它们的添加),可能会遭遇挑战。更具体而言,添加新租户子网的增量操作可能导致现有网络对象变更,并且为了避免不变量违规,实现增量操作的顺序可能会非常重要。
图2是各种实施例提供的用于部署增量网络更新的方法200的流程图。在操作202中,一个或多个处理器接收包括用于计算机网络配置的提议的更新的程序。在接收程序时的计算机网络配置可以视为初始配置。在操作204中,一个或多个处理器分析所述程序以生成网络对象模型(network object model,NOM)。在操作206中,一个或多个处理器使用NOM针对提议的更新生成计算机网络的配置变更。
可选地,在操作208中,一个或多个处理器解析配置变更和初始配置以生成合成的网络配置。在一些方面,合成的网络配置包括初始配置中列出,并由与配置变更相关联的一个或多个附加配置例程补充的一个或多个网络节点的配置例程。合成的网络配置可以由一个或多个处理器进一步转换为一阶逻辑表示。更具体而言,来自合成的网络配置的单个配置例程可以转换为包括谓词、量词和变量的对应一阶逻辑表示。
在操作210中,一个或多个处理器验证配置的表示(例如,在操作208中生成的一阶逻辑表示),以确定配置变更是否由不变量约束。例如,为了执行验证,一个或多个处理器可以解析配置的表示,并确定网络节点的一个或多个预定义属性是否受到配置变更的影响,其中所述预定义属性定义不变量。在一些方面,可以通过初始网络配置获得不会因网络配置修改而改变的不变量和关联的预定义属性。
在操作212中,一个或多个处理器使用NOM分析验证结果,以确定配置变更如何导致与不变量相关联的违规,以及如何在测试配置的表示时检测所述违规。在操作214中,一个或多个处理器使用分析结果更新计算机网络配置。可选地,在操作216中,可以确定故障来源以指示由配置变更引起的检测到的违规。
本主题对现有方法进行了改进,其中生成模型并检测与模型的约束违规。与先前方法相比,本主题有两个独特优势:(1)增量更新是目标问题,本主题使运维人员能够将网络变更的影响与配置的变更部分完全隔离开。在执行增量网络升级的现有方法中,网络是数据包流动的模型。现有配置和提议的变更没有基于第一原理的定义;(2)对象间依赖关系:本网络模型不仅分析变更对“运维人员目标”的影响,还分析配置变更对现有配置元素的影响,对网络进行前瞻性验证。例如,由于提议的变更,网络节点可以接收用于新子网的流量,并且节点上已经存在的转发尚未对应于变更(例如二阶变更)的影响进行更新。由于本主题使用网络对象模型的对象间依赖关系,因此可以分析这些场景。
在各种实施例中,在操作202中接收的程序为如图6A的程序602等程序,包括对add_tenant()函数的函数调用。在各种实施例中,在操作202中接收的示例性程序调用包括:Add_tenant("Core Router 1",10,10.10.10.1,10.10.10.64/28,yes,ospfv3)。在各种实施例中,程序使用若干调用(如create_management_interface)转换为NOM,其中创建的对象及其关系为NOM。图6B-图6C提供了如何将NOM转换为配置变更列表的详细信息。
本主题提供一种框架,其中,网络的增量配置变更与程序同构,所述程序可以根据指示不变量(即,不会因网络配置的修改而改变的一个或多个节点的预定义属性)的初始网络配置等进行验证。通常,提议的配置变更按配置变更行处理。在本主题中,使用程序来描述提议的变更,所述程序可以根据可以与初始网络配置通信的预定义不变量进行验证。网络的演进可以建模为应用一系列原子变更的累积效应。从需求推导的网络不变量可以用于指导这些原子变更的定义。编译器技术、程序分析和形式验证方法用于在大规模网络中实施增量更新。对提议的变更的语义进行定义以验证配置的语法变更是否满足基本的不变量。
在超大型网络中,配置错误很常见,难以实行人工管理。不变量语言或高级语言用于定义不变量,用于在高层指定网络行为,覆盖不同抽象层次的端到端用例,并捕获设备级配置,以便能够表达如开放式最短路径优先(open shortest path first,OSPF)区域和VPN实例等网络级对象。在各种实施例中,本系统响应于接收对网络配置请求的变更,生成可能的中间表示,使得如果网络不变量被违反,则识别影响网络行为变更的可能的中间表示。
图3是各种实施例提供的用于计算机网络管理所执行的动作的示意图。参考图3,在图的第一层次中,定义提议的更新302。提议的更新302可以是所接收程序(例如,如图2的操作202中接收)的一部分,所述程序如程序312、314、316和318,所述提议的更新302可以更新现有的网络配置策略310。可以分析提议的更新302并且可以生成推断知识304,所述推断知识304可以包括网络对象模型324。在一些方面,可以根据网络对象模型324生成逻辑模型322,其中,逻辑模型322可以包括如图2的操作208中所述的一阶逻辑表示。推断知识304可以用于根据一个或多个配置变更328执行网络326的网络更新306。示例性配置变更330与服务规则和转发规则相关联,并且根据推断知识304生成。
提议的变更302可以基于包括添加或删除租户(EIP或VPN)的程序,并且可以进行提议的变更以防止违反不变量(INV),包括现有网络配置策略310的不变量INV0。如图3所示,演进网络表示为一系列程序(例如312-318),其中每个程序代表一个特定时间的增量更新。例如,“添加EIP1”程序312(包括附加变型INV1)和“添加VPN1”程序314(包括附加变型INV2)是两个增量更新。在“添加VPN1”之后,本主题确保两个新的不变量(INV1、INV2)和现有不变量(INV0)都得到满足。程序316添加新租户(EIP2),但不包括任何附加不变量(NULL)。程序318删除租户(EIP1),这导致使用自动恢复320删除不变量INV1。
本主题使用推断知识304(包括逻辑模型322和对象模型324)来建模变更并根据模型更新网络326。本主题还支持如自动事务、自动删除和基于微模板的增量强制等能力。在现有方法中,网络运维人员手动变更网络,验证约束可满足性,然后按正确的顺序更新每个设备(因为网络对象是相关的)。由于本主题解决了依赖关系问题,因此可以与部署平台(如ansible/Napalm)耦合,以自动推送满足不变量的提议变更,如自动事务和自动删除。
在各种实施例中,生产网络配置用于通过相关性分析生成对象模型,控制平面模拟用于生成逻辑模型。各种实施例有助于人类运维人员制定现有生产网络的不变量,并且对增量更新进行编程。程序被编译成增量对象模型,并且增量对象模型被转换成一系列配置组。在各种实施例中,验证新不变量(INV1、INV2)和所有现有不变量(INV0)。本主题提供原子操作,从而在失败时提供完全回滚。此外,增量删除还提供自动恢复,以提供正确的删除顺序,但这通常并非总是与租户添加相反。自动恢复是指网络返回到先前已知的运行状态。当应用变更时,如果违反不变量,则恢复变更。由于网络配置元素之间的依赖关系,从节点中移除几行配置并不是简单的操作。操作顺序很重要,可以确保网络不会达到或传播错误状态。例如,图6C示出了各种实施例提供的用于向现有计算机网络(如图3所示的网络)添加租户和从现有计算机网络移除租户的方法的代码列表(例如,步骤1-4)。在各种实施例中,类似的步骤用于添加和移除租户:依赖关系评估、排序以及使用程序指定操作和网络对象模型是相同的,只是操作的意图是“删除”而不是添加。
图4是各种实施例提供的用于建模和部署增量网络更新的系统400的流程图。参考图4,用于部署增量网络更新的系统400可以包括程序分析器模块404、合成模块406、解析器模块410、解算器模块412、分析模块414、配置更新模块418以及故障来源模块416。
网络运维人员将提议的网络更新编写为程序402,该程序402是提议的更新呈命令或高级计算机语言形式的表示。系统400接收程序402作为输入,程序分析器模块404确定原子、它们的依赖关系和操作顺序,以生成网络对象模型(network object model,NOM)420,该网络对象模型420是事务变更的分层表示。合成模块406用于根据NOM 420生成配置变更422。图5示出了关于程序分析器模块404和合成模块406的操作的进一步细节。
计算机网络配置408被传送到解析器模块410。可以在接收程序402时接收网络配置408,并且配置408可以视为初始网络配置。解析器模块410解析配置变更422和初始配置408,以根据配置变更422生成初始配置408的表示。在一些方面,解析器模块410可以通过解析配置变更422和初始配置408来生成初始配置的表示,以生成合成的网络配置。解析器模块410将合成的网络配置转换为网络配置的一阶逻辑表示(first-order logicalrepresentation,FOLR)424,并传送到解算器模块412。
解算器模块412接收FOLR 424以及附加输入428作为输入,所述附加输入428可以包括与网络配置相关联的查询输入(QUERY)和其它输入(ENV)。解算器模块412可以是可满足性或可满足性模理论(satisfiability-modulo-theory,SAT/SMT)解算器412,并且可以用于测试FOLR 424是否由不变量约束,所述不变量在框架中表示为约束。QUERY输入是指运维人员的不变量描述,该描述呈查询形式。在一些方面,解算器模块412可以从运维人员接收自然语言不变量描述,所述解算器模块可以以查询形式转换该自然语言不变量描述。ENV输入可以通过与管理员的交互过程获得,并且可以包括自然语言输入,所述自然语言输入可以描述并非从配置推导的外来条件。在一些方面,解算器模块412可以确定拒绝由查询输入428(输出为结果426)定义的不变量的可满足性的网络配置的反例,所述反例指示由不变量约束的网络配置。
分析模块414用于接收NOM 420以及结果426,并确定配置变更如何导致与解算器412检测到的不变量相关联的违规。配置更新模块418可以根据分析模块414生成的结果(例如,根据由配置变更引起的检测到的不变量违规)对网络配置408执行更新。故障来源模块416可以指示由配置变更引起的检测到的违规。图5B对解算器412和分析模块414的操作进行了更详细的描述。
图5A是各种实施例提供的在部署增量网络更新时用于确定配置变更的方法500所使用的步骤的流程图。在一些方面,方法500可以由图4的系统400内的程序分析器模块404和合成模块406执行。系统从网络运维人员接收程序502(可以与图4中的程序402相同),该程序502可以包括多组操作。程序分析器404识别程序中具有与一个或多个接口或其它网络节点相关联的相关配置变更集合(或原子504)的部分。如本文所用,术语“原子”表示与网络内相互关联的接口或其它节点相关联的配置变更的内聚单元。程序分析器404可以根据原子504生成网络对象模型506。例如,程序分析器404可以通过聚合与原子504相关联的网络对象来生成网络对象模型506。
在一些方面,使用原子504提供了事务原子性。例如,将租户加入网络时,在架顶式(top-of-rack,TOR)交换机上创建物理接口、中继接口和路由信息。更新边缘路由器或防火墙上访问控制列表(access control list,ACL)规则中的对应地址,这些变更共同构成原子。在各种实施例中,依赖关系分析用于确定原子内网络对象之间的关系,以确定网络对象模型506。利用依赖关系分析,计算对象变更集并构建原子的增量图。增量图是范围仅包括因现有配置的链路而变更的对象的一种图。某些对象在创建或添加租户时可能已经存在,某些对象可能具有依赖关系,因此在执行删除时不应去引用。对增量图应用拓扑排序以推导变更对象在序列图508中的顺序。在各种实施例中,使用对象变更集的值实例化所提议的微模板,并且使用低级指令510将微模板转换为供应商特定配置并按照序列图508规定的顺序配置给节点。在一些方面,可以使用低级指令510(例如,与查找表的连接)来确定配置变更422。图6A-图6C示出了程序、原子、序列图和低级指令的示例性表示。
图5B是各种实施例提供的在部署增量网络更新时用于更新网络配置的方法550所使用的步骤的流程图。参考图5B,方法550可以包括可以由图4的解算器模块412、分析模块414、配置更新模块418以及故障来源模块416执行的示例性操作552、554、556、558、560和562。
根据各种实施例,本主题通过检测不变量违规提供增量验证。将对象模型编码为扩展有限状态机(Extended Finite State Machine,EFSM),转换网络不变量以推导查询,并在不满足不变量时使用来自网络模型的增量语义识别故障来源。在各种实施例中,识别故障来源是网络合成的逆过程。在合成网络配置时,先定义更宽泛的全网配置,然后才能生成设备特定配置。在识别可能违反给定不变量的配置变更时,本主题首先识别设备级变更,然后评估其全网影响。为了减少程序运行时间,本主题进行了以下优化:减少候选节点的数量和减少待检查的网络对象集。
在操作552中,接收查询输入(例如,输入428),该查询输入包括运维人员的不变量描述的转换。在操作554中,解算器模块412可以使用FOLR 424确定拒绝查询可满足性的网络配置的反例。所确定的反例指示由不变量约束的网络配置,并且可以作为结果426输出到分析模块414。
在操作556中,可以从反例确定网络处理流程,其中,所述流程对应于初始网络配置408的表示(例如,FOLR 424)中的标记状态。更具体而言,分析模块414可以使用FOLR424中的标记状态来分析反例。例如,FOLR 424中的节点入口、节点出口、路由匹配、ACL/路由过滤决策和节点接受/丢弃决策为相关标记。分析模块414根据反例确定与这些标记状态对应的网络处理流程。在这方面,流程标识从与查询相关的一个网络状态到与查询相关的下一个网络状态的转换。在操作558中,从处理流程中选择候选节点。例如,从处理流程(例如,源节点、目的节点、中转节点和非中转节点)中选择待检查的候选节点列表。为了减少要检查的网络对象的集合,使用算法(如图9所示的算法)来识别导致违规的变更对象,并且可以选择与这些对象关联的候选节点。在操作560中,对于每个选择的候选节点,分析模块414可以确定节点配置对与输入查询相关联的不变量的影响。在操作562中,根据所确定的节点配置影响,配置更新模块418可以更新网络配置408,例如,在不影响网络不变量的情况下实现程序402指定的网络更新。在操作562中,故障来源模块416可以指示节点和对应的节点配置影响(例如,使得网络运维人员可以使用不影响不变量的节点配置手动执行增量网络更新)。
图6A-图6C示出了示例性实施例提供的用于部署增量网络更新的代码列表和示意图。图6A示出了可以包括增量网络更新的程序602的代码列表。程序602可以涉及在网络内添加租户子网。在一些方面,程序602可以类似于上文论述的程序402和502。
图6B示出了在接收程序602之后对原子的识别(例如,也如图2的操作202中所述)。更具体而言,识别原子604、606以将程序分成相关的操作和配置变更的集合。第一原子604包括添加管理接口612、三层接口616、聚合接口617和物理接口618、619的操作。第二原子606包括添加三层接口626、聚合接口627和物理接口628、629的操作。原子604、606访问来自路由分发614的数据,并且可以聚合与原子内的节点和接口相关联的网络对象以获得NOM。NOM可以识别由于程序内提议的变更而改变的对象,并且可以用于推导序列图608。
序列图是原子的配置操作顺序的图形表示,可以使用拓扑排序进行推导,以获得有向图,在所述有向图中,存在从A到B的连接,表示A早于B。如图6B所示,序列图608中的元素1-7可以按照指示的顺序使用,以将租户添加到网络中。元素7是指子接口,包括聚合接口,以及与环回相同的环路。序列图可用于推导低级指令(例如,610),低级指令可用于获取配置变更(例如,也如图2的操作206中所述)。
图6C示出了可用于确定配置变更(例如,图4中的配置变更422)的示例性低级指令610。在一些方面,可以将低级指令610映射到与查找表中的每个指令相关联的对应配置变更。在这方面,合成模块406可以使用这种查找表以根据低级指令(如低级指令610)确定配置变更422。
在一些方面,从NOM生成序列图并使用序列图作为中间表示可以实现构建校正(correct-by-construction)、控制平面模拟、形式验证和网络合成。模型包括对对象及其依赖关系以及操作序列进行编码的能力。在本主题中,这些能力用于数据中心中配置的自上而下分析(即,合成)和现有配置的自下而上分析(即,验证)。
在一些方面,在自下而上分析期间验证现有配置的这些能力。在各种实施例中,本主题实现用于全网拓扑的分层YANG模型和用于节点级配置的扩展OpenConfig模型。两种模型都包括表示变更元素的语义。支持的对象类型包括数据中心组网,包括:物理接口,如以太网(Ethernet,ETH);虚拟接口,如以太网聚合组(Ethernet trunk,ETH-TRUNK)、环回、虚拟局域网接口(virtual local area network interface,VLANIF)、OSPF、边界网关协议(border gateway protocol,BGP)、静态路由、虚拟路由转发(virtual routing andforwarding,VRF)、路由策略、防火墙策略、虚拟局域网(virtual local area network,VLAN)、虚拟扩展局域网(virtual extendible local area network,VxLAN)和拓扑(L1、L2、L3)。在各种实施例中,模型是可扩展的,并且模型的语言绑定(例如,在一个实施例中为Python)提供了基于模型的可编程性。
图7A-图7B示出了各种实施例提供的用于配置合成(自上而下分析)和验证(自下而上分析)的代码列表和示意图。参考图7A和图7B,可以从序列图722开始进行自上而下分析,所述自上而下分析用于生成图7B中的低级指令711、712、713、714、715和716。图7B中的低级指令可用于生成配置变更718。根据配置变更,可以执行配置更新,从而可以生成最终配置720。
在一个实施例中,序列图722可以基于使用子接口707将节点添加到网络的任务。对于图7B中的序列图722,为接口ETH 701、ETH-TRUNK 702、VLANIF 703、环路704、OSPF 705和VPN-INSTANCE 706提供了对应的低级指令(711对应ETH、712对应ETH-TRUNK、713对应VLANIF、714对应环路、715对应OSPF、716对应VPN-INSTANCE)。
在一些方面,自下而上分析可用于验证更新的配置720。更具体而言,自下而上分析可以从更新的配置720开始,所述更新的配置720可用于生成配置变更718。配置变更718可用于生成与一个或多个任务相关联的序列图722,所述一个或多个任务在自上而下分析期间已添加到配置720中。然后,可以评估序列图722是否正在执行任何非预期任务或违反现有不变量的任务。
图8为各种实施例提供的从用于向云计算机网络添加租户的程序推导的变更的示意图。在所描述的实施例中,示出了向云计算机网络添加新节点的增量任务。在802中,执行添加节点1的操作,其中,添加节点1包括添加租户OSPF 814、环路1 804、包括虚拟接口VLANIF1 806和ETH-TRUNK1 808,以及物理接口ETH1 810和ETH2 812的对象。在822中,执行添加节点2的操作,包括租户OSPF 814、环路1 804、包括虚拟接口VLANIF2 826、ETH-TRUNK2828和物理接口ETH3 830和ETH4 832的对象。当系统执行增量任务时,子任务顺序和对共享子任务的依赖关系通过模型确定。在各种实施例中,程序依赖关系分析技术用于分析程序的影响对象。影响对象是指为确保新增对象有效而需要修改的对象,例如添加OSPF进程时,需要创建新的环回接口。通过依赖关系分析计算对象变更集,并从变更集构建增量图。在各种实施例中,然后对增量图应用拓扑排序以推导变更对象在序列图中的顺序。在各种实施例中,模板概念以更小的粒度使用,本文称为微模板。使用对象变更集的值实例化微模板,并且使用供应商特定转换程序将微模板转换为供应商特定配置,并按照序列图规定的顺序配置给节点。
在各种实施例中,本主题可用于将租户从计算机网络安全地移除。虽然移除租户可以是添加租户的逆过程,但在确定从何处开始移除过程和正确的操作顺序时可能会遇到问题。移除租户的另一个问题是对象共享。如果共享对象仍然由其它对象引用,则不应移除这些共享对象。在各种实施例中,使用垃圾收集器和智能指针等技术以完全自动化的方式实现增量删除,而不创建垃圾配置。在各种实施例中,可以在不违反不变量的情况下检测和消除垃圾配置。本发明方法使用对象模型的排序信息。如上所述,执行租户的增量添加遵循特定的顺序来创建网络对象和构建对象模型。可以逆转该过程以执行自动增量删除。在一个示例中,每个增量添加操作都会跟踪接收器对象。接收器对象是序列图中只有一个父节点的网元,所述父节点表示先前存在的网络对象。增量删除使用这些接收器对象,并按照序列图移除接收器对象的子对象,从而移除在增量添加期间创建的对象。为了管理共享对象,每个对象使用一个引用计数(refcnt)变量,用于跟踪该对象的实时引用的数量。如果移除了引用图中每个对象的父对象,则refcnt值减1。在各种实施例中,如果refcnt值等于0,则可以安全移除对象。
对于程序驱动的增量删除(如删除租户),本主题使用依赖关系树识别网络依赖关系,并安全地解除分配资源,从而减少人为错误的可能性。对于自动增量删除,在解析现有配置时可以识别未使用的网络对象(零引用)。通过生成查询来测试自动增量删除的影响,如果未检测到不变量违规,则可以安全删除对象。
本主题的各种实施例提供了事务原子性,所述事务原子性允许在增量添加和删除操作失败时完全回滚。在各种实施例中,事务原语用于标记增量添加和删除操作的事务范围。各种实施例提供了模型驱动的自下而上的原始配置分析。在各种实施例中,自下而上分析包括提取、关联和排序。提取包括将整体配置转换为离散对象。关联是指将对象关联,从而推导依赖关系图。排序包括依赖关系图的拓扑排序,以将序列施加到模型上。给定物理拓扑和原始配置,本主题将生产网络转换为伴随的对象模型。在各种实施例中,将该对象模型编码为用于基于SMT解算器的验证的逻辑模型。
图9示出了本发明实施例提供的用于识别在部署增量网络更新时导致违规的对象的代码列表。更具体而言,算法900用于识别导致违规的变更对象,并且可以选择与这些对象相关联的候选节点(例如,在结合图5B所述的处理期间)。在所描述的实施例中,DP是合成数据平面(或每个节点处转发行为的集合)的对象模型,也称为收缩状态(其中网络配置收缩(collapse)为每个节点处的转发表项集合);T是拓扑;Q是表示不变量定义的断言的查询;N是网络模型。候选节点从上述流集合中选择。对于每个候选节点,本主题检查候选节点的配置对查询结果的影响。这样一来,在分配了资源但未使用的地方检测到配置错误。在各种实施例中,T是当前网络拓扑,DP是合成的网络配置(例如,在操作208中),Q是具有用于测试不变量的函数的对象,N在描述网络时补充T。在各种实施例中,Croutes是存储已删除路线的地图。根据各种实施例,每个Q是不变量,使得每个Q调用一次函数Tracefailure。
因此,本主题提供了一种在不显著修改基本配置的情况下实时将更新部署到网络的有效系统。该系统包括有效建模预期变更和合成网络命令的方法,还包括在错误情况下定位故障的算法。所提议主题的益处还包括减少添加/删除和对应调试的延迟,这降低了长时间网络中断造成的金钱成本,长时间的网络中断还可能损害品牌和声誉。
图10为用于执行示例性实施例提供的方法的电路的示意图。在各种实施例中不需要使用所有组件。例如,计算设备可以各自使用一组不同的组件和存储设备。
计算机1000形式的一个示例性计算设备可以包括处理单元或处理器1002、存储器1003、高级缓存1007、可移动存储器1011和不可移动存储器1012,它们都与总线1020耦合。尽管示例性计算设备图示和描述为计算机1000,但是该计算设备在不同的实施例中可以有不同的形式。例如,计算设备可以是路由器或其它计算设备,包括结合图10所示和描述的相同或类似元件。此外,尽管各种数据存储元件作为计算机1000的一部分进行说明,但是存储器也可以或者可选地包括可通过网络(如互联网)访问的基于云的存储器或基于服务器的存储器。
在图10中,存储器1003可以包括易失性存储器1014和/或非易失性存储器1008。计算机1000可以包括或可以访问计算环境,所述计算环境包括各种计算机可读介质,如易失性存储器1014和/或非易失性存储器1008、可移动存储器1011和/或不可移动存储器1012。计算机存储器包括随机存取存储器(random access memory,RAM)、只读存储器(read onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)或电可擦除可编程只读存储器(electrically erasable programmable read-onlymemory,EEPROM)、闪存或其它存储器技术、只读光盘存储器(compact disc read-onlymemory,CD ROM)、数字通用光盘(digital versatile disk,DVD)或其它光盘存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备,或能够存储计算机可读指令的任何其它介质。存储器还可以包括联网存储器,例如存储区域网络(storage area network,SAN)。
计算机1000可以包括或可以访问计算环境,该计算环境包括输入接口1006、输出接口1004和通信接口1016。在各种实施例中,通信接口1016包括收发器和天线。输出接口1004可以包括显示设备(如触摸屏),所述显示设备也可以用作输入设备。输入接口1006可以包括以下各项中的一个或多个:触摸屏、触摸板、鼠标、键盘、摄像头、一个或多个设备专用按钮、集成在计算机1000内或通过有线或无线数据连接耦合到计算机1000的一个或多个传感器或其它输入设备。计算机1000可以使用通信连接在网络环境中运行,以连接到一个或多个远程计算机,如数据库服务器。远程计算机可以包括个人计算机(personalcomputer,PC)、服务器、路由器、网络PC、对端设备或其它公共网络节点等。通信连接可以包括局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、蜂窝网、WiFi、
Figure BDA0002992551780000121
或其它网络。
计算机可读指令(即程序1018)包括存储在计算机可读介质中的指令,所述指令可由计算机1000的处理器1002执行。术语“计算机可读介质”和“存储设备”不包括载波,因为载波被认为太短暂。在一个示例中,处理器1002执行程序1018以实现用于部署增量网络更新的方法。在一些方面,程序1018可以实现用于执行本文论述的功能的一个或多个模块。例如,程序1018可以实现程序分析器404、合成模块406、分析模块414和故障来源模块416。即使没有在图10中示出,程序1018还可以实现执行本文公开的功能的其它模块,如解算器模块412和配置更新模块418。
在示例性实施例中,计算机1000包括:接收模块,接收包括用于计算机网络配置的提议的更新的程序,在接收所述程序时的所述计算机网络配置为初始配置;模型模块,分析所述程序以生成网络对象模型(network object model,NOM);变更模块,使用所述NOM针对所述提议的更新生成所述计算机网络的配置变更;验证模块,验证所述初始配置的表示,以确定所述配置变更是否由不变量约束;结果模块,使用所述NOM分析所述验证的结果,以确定所述配置变更如何导致与所述不变量相关联的违规,以及如何在测试所述初始配置的所述表示时检测所述违规;更新模块,使用所述分析的结果更新所述计算机网络配置。在一些实施例中,计算机1000可以包括其它模块或附加模块,以用于执行实施例中所描述的步骤中的任一步骤或步骤的组合。此外,如任一附图中所示出的或任一权利要求中所叙述的方法的任何附加或替代实施例或方面也可以预期包括类似的模块。
前述任一个示例可以与前述其它示例中的任何一个或多个组合以在本发明范围内产生新实施例。
尽管上文详细描述了几个实施例,但也可以进行其它修改。例如,在图中描述的逻辑流程不需要所示特定顺序或连续顺序来达到期望的结果。可以向所描述的流程提供其它步骤或从所描述的流程中删除步骤,并可以向所描述的系统添加其它组件或从所描述的系统中移除组件。其它实施例可在所附权利要求的范围内。
尽管已经参考本发明的特定特征和实施例描述了本发明,但是明显可以在不脱离本发明的情况下制定本发明的各种修改和组合。因此,说明书和附图仅被视为所附权利要求所定义的本发明的说明并且考虑落于本发明范围内的任何和所有修改、变体、组合或等效物。

Claims (18)

1.一种使用一个或多个处理器更新计算机网络配置的方法,其特征在于,所述方法包括:
接收包括用于所述计算机网络配置的提议的更新的程序,在接收所述程序时的所述计算机网络配置为初始配置;
分析所述程序以生成网络对象模型NOM;
使用所述NOM针对所述提议的更新生成所述计算机网络的配置变更;
验证所述初始配置的表示,以确定所述配置变更是否由不变量约束;
使用所述NOM分析所述验证的结果,以确定所述配置变更如何导致与所述不变量相关联的违规,以及如何在测试所述初始配置的所述表示时检测所述违规;
使用所述分析的结果更新所述计算机网络配置;
所述方法还包括:
解析所述计算机网络的所述配置变更和所述初始配置以生成合成的网络配置;
将所述合成的网络配置转换为一阶逻辑表示;
验证所述一阶逻辑表示,以确定所述配置变更是否由不变量约束。
2.根据权利要求1所述的方法,其特征在于,更新所述计算机网络配置包括向所述计算机网络添加节点或从所述计算机网络移除节点。
3.根据权利要求1或2所述的方法,其特征在于,更新所述计算机网络配置包括修改所述初始配置。
4.根据权利要求3所述的方法,其特征在于,修改所述初始配置包括添加新前缀。
5.根据权利要求3所述的方法,其特征在于,修改所述初始配置包括升级接口。
6.根据权利要求1所述的方法,其特征在于,验证所述逻辑表示以确定所述配置变更是否由不变量约束包括使用可满足性模理论SAT/SMT解算器。
7.根据权利要求1至6中任一项所述的方法,其特征在于,分析所述程序以生成所述NOM包括确定所述程序的原子。
8.根据权利要求7所述的方法,其特征在于,确定所述程序的原子包括确定所述原子的依赖关系。
9.根据权利要求7或8所述的方法,其特征在于,确定所述程序的原子包括确定所述原子的操作顺序。
10.根据权利要求7至9中任一项所述的方法,其特征在于,确定所述程序的原子包括确定所述程序使用的物理接口。
11.根据权利要求7至10中任一项所述的方法,其特征在于,确定所述程序的原子包括确定所述程序使用的中继接口。
12.根据权利要求7至11中任一项所述的方法,其特征在于,确定所述程序的原子包括确定所述程序使用的路由信息。
13.一种用于更新计算机网络配置的系统,其特征在于,所述系统包括:
连接到所述计算机网络的一个或多个处理器,所述一个或多个处理器用于:
接收包括用于所述计算机网络配置的提议的更新的程序,在接收所述程序时的所述计算机网络配置为初始配置;
分析所述程序以生成网络对象模型NOM;
使用所述NOM针对所述提议的更新生成所述计算机网络的配置变更;
验证所述初始配置的表示,以确定所述配置变更是否由不变量约束;
使用所述NOM分析所述验证的结果,以确定所述配置变更如何导致与所述不变量相关联的违规,以及如何在测试所述初始配置的所述表示时检测所述违规;
使用所述分析的结果更新所述计算机网络配置;
所述一个或多个处理器还用于:
解析所述计算机网络的所述配置变更和所述初始配置以生成合成的网络配置;
将所述合成的网络配置转换为一阶逻辑表示;
验证所述一阶逻辑表示,以确定所述配置变更是否由不变量约束。
14.根据权利要求13所述的系统,其特征在于,所述一个或多个处理器还用于:
确定所述程序的原子以生成所述NOM;
执行依赖关系分析,包括确定所述原子内网络对象之间的关系。
15.根据权利要求13或14所述的系统,其特征在于,所述一个或多个处理器还用于计算对象变更集以生成所述NOM。
16.根据权利要求15所述的系统,其特征在于,所述一个或多个处理器还用于:
使用所述计算的对象变更集构建增量图;
对所述增量图应用拓扑排序以计算变更对象的顺序。
17.一种计算机可读介质,其特征在于,存储用于更新计算机网络配置的计算机指令,当一个或多个处理器执行所述计算机指令时,使所述一个或多个处理器执行以下步骤:
接收包括用于所述计算机网络配置的提议的更新的程序,在接收所述程序时的所述计算机网络配置为初始配置;
分析所述程序以生成网络对象模型NOM;
使用所述NOM针对所述提议的更新生成所述计算机网络的配置变更;
验证所述初始配置的表示,以确定所述配置变更是否由不变量约束;
使用所述NOM分析所述验证的结果,以确定所述配置变更如何导致与所述不变量相关联的违规,以及如何在测试所述初始配置的所述表示时检测所述违规;
使用所述分析的结果更新所述计算机网络配置。
18.根据权利要求17所述的计算机可读介质,其特征在于,更新所述计算机网络配置包括以下各项中的至少一项:向所述计算机网络添加节点、从所述计算机网络移除节点、或修改所述计算机网络配置;
其中,修改所述计算机网络配置包括添加新前缀或升级接口。
CN201980063143.8A 2018-10-03 2019-07-30 用于部署增量网络更新的系统 Active CN112805984B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862740471P 2018-10-03 2018-10-03
US62/740,471 2018-10-03
PCT/CN2019/098368 WO2020069647A1 (en) 2018-10-03 2019-07-30 System for deploying incremental network updates

Publications (2)

Publication Number Publication Date
CN112805984A CN112805984A (zh) 2021-05-14
CN112805984B true CN112805984B (zh) 2022-09-23

Family

ID=70054925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980063143.8A Active CN112805984B (zh) 2018-10-03 2019-07-30 用于部署增量网络更新的系统

Country Status (2)

Country Link
CN (1) CN112805984B (zh)
WO (1) WO2020069647A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113872784B (zh) * 2020-06-30 2022-12-06 华为技术有限公司 网络配置的验证方法和装置
CN114039834B (zh) * 2021-11-03 2024-01-05 中盈优创资讯科技有限公司 一种实现光网端到端故障一键诊断的处理方法及装置
WO2023249524A1 (en) * 2022-06-23 2023-12-28 Telefonaktiebolaget Lm Ericsson (Publ) Optimizing revert functionality of network device configuration events by a network management system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103999065A (zh) * 2011-12-21 2014-08-20 国际商业机器公司 网络设备配置管理
CN106101280A (zh) * 2016-08-18 2016-11-09 无锡华云数据技术服务有限公司 一种数据中心间的网络信息同步更新方法
CN106464530A (zh) * 2014-06-06 2017-02-22 微软技术许可有限责任公司 网络更新的动态调度
CN106464532A (zh) * 2014-06-06 2017-02-22 微软技术许可有限责任公司 网络状态管理服务
CN106533979A (zh) * 2016-11-30 2017-03-22 梁海燕 一种网络更新方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008521083A (ja) * 2004-11-16 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンフィギュレーションを提供する方法、サーバ、ソフトウェア、装置及び信号
US7693699B2 (en) * 2005-08-19 2010-04-06 Opnet Technologies, Inc. Incremental update of virtual devices in a modeled network
US20090282480A1 (en) * 2008-05-08 2009-11-12 Edward Lee Apparatus and Method for Monitoring Program Invariants to Identify Security Anomalies
CN102087629A (zh) * 2011-01-25 2011-06-08 南京航空航天大学 一种基于Agent嵌入式软件的不变量测试方法与工具
CN102427409A (zh) * 2012-01-31 2012-04-25 迈普通信技术股份有限公司 基于网络配置协议的配置数据提交方法及服务器
US9350629B2 (en) * 2012-08-22 2016-05-24 Oracle International Corporation System and method for ensuring internet protocol (IP) address and node name consistency in a middleware machine environment
US20160112252A1 (en) * 2014-10-15 2016-04-21 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
US10389580B2 (en) * 2016-10-28 2019-08-20 Western Digital Technologies, Inc. Distributed computing system configuration

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103999065A (zh) * 2011-12-21 2014-08-20 国际商业机器公司 网络设备配置管理
CN106464530A (zh) * 2014-06-06 2017-02-22 微软技术许可有限责任公司 网络更新的动态调度
CN106464532A (zh) * 2014-06-06 2017-02-22 微软技术许可有限责任公司 网络状态管理服务
CN106101280A (zh) * 2016-08-18 2016-11-09 无锡华云数据技术服务有限公司 一种数据中心间的网络信息同步更新方法
CN106533979A (zh) * 2016-11-30 2017-03-22 梁海燕 一种网络更新方法及装置

Also Published As

Publication number Publication date
WO2020069647A1 (en) 2020-04-09
CN112805984A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN110741603B (zh) 拓扑探测器
CN110692227B (zh) 识别网络意图形式对等性失败中的冲突规则
CN110521169A (zh) 用于服务链的策略保证
CN110785965B (zh) 对结构中配置的正确部署执行网络保证检查的系统和方法
CN110612706B (zh) 网络中服务质量配置的保证
CN110521170B (zh) 网络的静态网络策略分析
CN112805984B (zh) 用于部署增量网络更新的系统
US10904101B2 (en) Shim layer for extracting and prioritizing underlying rules for modeling network intents
CN112470431B (zh) 使用自动布尔学习的网络的模型的合成
US11303531B2 (en) Generation of counter examples for network intent formal equivalence failures
US10505816B2 (en) Semantic analysis to detect shadowing of rules in a model of network intents
CN110710161B (zh) 生成网络的设备级逻辑模型
CN110785964B (zh) 网络中第3层桥接域子网的验证
CN110754065B (zh) 网络的逻辑级和硬件级之间的网络验证
CN110612702A (zh) 针对不一致的意图规范检查
CN110710160B (zh) 生成用于网络策略分析的全网络逻辑模型的方法和系统
CN110785963B (zh) 从网络收集网络模型和节点信息
CN110741602B (zh) 响应于网络意图形式对等性失败的事件生成
CN111034123B (zh) 用于执行网络保证检查的系统、方法及计算机可读介质
Saha et al. NetGen: Synthesizing data-plane configurations for network policies
US10623271B2 (en) Intra-priority class ordering of rules corresponding to a model of network intents
CN111684439A (zh) 网络保证数据库版本兼容性
CN110800259B (zh) 跨以应用为中心的维度的分布式故障代码聚合
Himura et al. Static validation of network device configurations in virtualized multi-tenant datacenters
Tkachova et al. Method for OpenFlow protocol verification

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
GR01 Patent grant
GR01 Patent grant