CN112054921A - 一种网络验证的方法、装置、计算机存储介质及电子设备 - Google Patents

一种网络验证的方法、装置、计算机存储介质及电子设备 Download PDF

Info

Publication number
CN112054921A
CN112054921A CN202010783828.4A CN202010783828A CN112054921A CN 112054921 A CN112054921 A CN 112054921A CN 202010783828 A CN202010783828 A CN 202010783828A CN 112054921 A CN112054921 A CN 112054921A
Authority
CN
China
Prior art keywords
network
route
verified
verification
constraint
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.)
Granted
Application number
CN202010783828.4A
Other languages
English (en)
Other versions
CN112054921B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202010783828.4A priority Critical patent/CN112054921B/zh
Publication of CN112054921A publication Critical patent/CN112054921A/zh
Application granted granted Critical
Publication of CN112054921B publication Critical patent/CN112054921B/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/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本文公开一种网络验证的方法、装置、计算机存储介质及电子设备,本发明实施例在计算待验证网络中每一个设备在K‑failure场景下所有的路由后,确定每一个路由作为最优路由的约束条件,根据确定出的约束条件对待验证网络进行网络控制平面验证,通过路由计算和约束条件的计算,快速的考虑了K‑failure场景,实现了适用于大型网络的验证,为提升网络运维效率提供了技术支持。

Description

一种网络验证的方法、装置、计算机存储介质及电子设备
技术领域
本文涉及但不限于计算机网络技术,尤指一种网络验证的方法、装置、计算机存储介质及电子设备。
背景技术
随着计算机网络规模的不断扩大,无论是设备的数量、所使用的协议类型,还是配置的复杂程度都在持续上升。对于大型网络的维护人员而言,人工发现并定位当前网络可能存在的问题,或在引入新设备、变更原有设备配置之后,保证网络按照预期正确且稳定地运行,均是比较困难的。
网络控制平面验证是一种帮助维护人员快速发现网络配置问题的技术。配置网络运行所需满足的网络属性(如从设备A到设备B的流量可达)后,通过维护人员将网络拓扑信息和设备配置信息输入加载网络控制平面验证算法的工具,可以快速确定网络属性是否满足预期,减少维护人员对网络属性的分析,从而缩短维护人员发现网络故障的时间,提升网络运维的效率。
以下就相关技术中的网络控制平面验证算法进行简要介绍:
1、Batfish算法:通过控制平面模型生成数据平面模型;利用数据平面模型对网络属性进行验证。当存在复数的网络环境时,需要针对不同的网络环境生成相应的数据平面模型,然后确定网络属性在复数的网络环境下是否满足预期。简言之,Batfish算法是仿真(Simulate)算法与已有数据平面验证算法的结合。
2、ARC算法(网络控制平面验证的一种图算法):将网络转化为一张带权的有向图;将每个点拆分为入点和出点,然后根据协议的管理距离(AD) 值,对每条边赋权,以确定生成的有向图在协议本身的优先顺序与原网络一致;利用已有的图算法确定可达性和K-failure(在网络任意不超过K条链路故障的情况下,指定设备的可达性是否满足)等属性是否满足预期。
3、Minesweeper算法:核心是对网络进行编码,包括:建立一套完整的符号体系;描述网络各个阶段的行为,利用符号体系描述网络属性成立所需要满足的逻辑表达式;将逻辑表达式输入约束求解器Z3中,求解逻辑表达式是否始终满足,若不满足将给出反例,反例标识网络属性无法满足预期。
对大型网络采用上述网络控制平面验证算法进行网络属性是否满足预期的判断,分别存在以下问题:如果存在复数环境,Batfish算法需要生成相同数量的数据平面模型,以进行数据平面验证。当需要确定网络有小于或等于k 条链路发生故障时,判断网络属性是否满足预期的效率会急转直下,也就是说,如果网络中一共存在m条链路,那么小于或等于k条链路发生故障的情况有
Figure BDA0002621192080000021
种,而在大型网络中,链路数量成千上万,判断效率过低会导致Batfish算法无法使用。ARC算法的判断效率基本满足要求,但ARC算法将网络简化为加权有向图,弱化了对网络的描述能力,许多复杂的协议策略无法得到体现,降低了判断结果的可靠性。Minesweeper算法的描述能力基本满足要求,由于其编码了边故障的情况,因此验证k-failure 属性时花费时间不会呈指数型增长;但通过选取一小部分网络进行验证可以发现,Minesweeper算法单次验证时间特别长,一般需要耗费数小时的时间;另外,Minesweeper算法在网络规模较大、配置较复杂时,因为Minesweeper将网络所有的策略都编码进了一个庞大的逻辑表达式,然后依靠约束求解器Z3 去求解,其本身验证效率就比较低。而可满足性模理论(SMT,Satisfiability ModuloTheories)的求解本身是一个非决定性多项式时间完全(NPC, NP-Complete)问题,不论如何优化,都无法避免其在理论上随逻辑表达式的规模指数增长;即Minesweeper算法也很难在大型网络中应用。
综上,相关技术中的网络控制平面验证算法,无法适用于大型网络。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供一种网络验证的方法、装置、计算机存储介质及电子设备,能够实现大型网络的K-failure场景下的网络控制平面验证。
本发明实施例提供了一种网络验证的方法,包括:
计算待验证网络中每一个设备在K-failure场景下所有的路由;
分别确定计算出的每一个路由作为最优路由的约束条件;
根据确定出的约束条件,对待验证网络进行网络控制平面验证;
其中,所述约束条件中包括:所述待验证网络的链路通断信息。
在一种示例性实例中,所述计算验证网络中每一个设备在K-failure场景下所有的路由,包括:
按照设备在所述待验证网络中宣告边界网关协议BGP更新消息的先后顺序,及所述BGP更新消息从初始设备到目的设备的宣告结果,计算每一个设备在所述K-failure场景下的路由。
在一种示例性实例中,所述确定每一个路由作为最优路由的约束条件包括:
对计算出的所述待验证网络中每一个设备在所述K-failure场景下的每一个路由,分别作为当前路由进行以下处理:
按照路由的优先级排序,确定未能接收到优先级排序在前的路由但接收到当前路由的条件,将确定的该条件确定为当前路由作为最优路由的所述约束条件。
在一种示例性实例中,所述对对待验证网络进行网络控制平面验证,包括:
将确定的每一个所述路由作为最优路由的约束条件编码为第一逻辑表达式;
通过约束求解器对编码获得的所述第一逻辑表达式进行求解,以实现对所述待验证网络的控制平面的属性的验证;
其中,所述网络控制平面的验证包括:路由可达性验证。
在一种示例性实例中,所述对待验证网络进行网络控制平面验证之后,所述方法还包括:
根据确定的每一个所述路由作为最优路由的约束条件,生成所述待验证网络的数据平面;
将报文发送到目的设备的约束条件编码为第二逻辑表达式;
通过约束求解器对编码获得的所述第二逻辑表达式进行求解,以实现对生成的待验证网络的所述数据平面的网络属性的验证;
其中,所述数据平面的网络属性包括:报文可达性。
另一方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述网络验证的方法。
再一方面,本发明实施例还提供一种电子设备,包括:存储器和处理器,所述存储器中保存有计算机程序;其中,
处理器被配置为执行存储器中的计算机程序;
所述计算机程序被所述处理器执行时实现如上述网络验证的方法。
还一方面,本发明实施例还提供一种网络验证的装置,包括:计算单元、确定单元和验证单元;其中,
计算单元设置为:计算待验证网络中每一个设备在K-failure场景下所有的路由;
确定单元设置为:分别确定计算出的每一个路由作为最优路由的约束条件;
验证单元设置为:根据确定出的约束条件,对待验证网络进行网络控制平面验证;
其中,所述约束条件中包括:所述待验证网络的链路通断信息。
在一种示例性实例中,所述计算单元是设置为:
按照设备在所述待验证网络中宣告边界网关协议BGP更新消息的先后顺序,及所述BGP更新消息从初始设备到目的设备的宣告结果,计算每一个设备在所述K-failure场景下的路由。
在一种示例性实例中,所述确定单元是设置为:
对计算出的所述待验证网络中每一个设备在所述K-failure场景下的每一个路由,分别作为当前路由进行以下处理:
按照路由的优先级排序,确定未能接收到优先级排序在前的路由但接收到当前路由的条件,将确定的该条件确定为当前路由作为最优路由的所述约束条件。
在一种示例性实例中,所述验证单元是设置为:
将确定的每一个所述路由作为最优路由的约束条件编码为第一逻辑表达式;
通过约束求解器对编码获得的所述第一逻辑表达式进行求解,以实现对所述待验证网络的控制平面的属性的验证;
其中,所述待验证网络的控制平面的验证包括:路由可达性验证。
本发明实施例通过计算待验证网络中每一个设备在K-failure场景下所有的路由后,分别确定计算出的每一个路由作为最优路由的约束条件,实现了 K-failure场景下的待验证网络的网路控制平面验证,验证适用于大型网络,为提升网络运维效率提供了技术支持。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例网络验证的方法的流程图;
图2为本发明实施例网络验证的装置的结构框图;
图3为本发明应用示例BGP更新消息的示意图;
图4为本发明应用示例网络组成示意图;
图5为本发明应用示例仿真过程中BGP消息的处理流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实施例网络验证的方法的流程图,如图1所示,包括:
步骤101、计算待验证网络中每一个设备在K-failure场景下所有的路由。
在一种示例性实例中,计算待验证网络中每一个设备在K-failure场景下所有的路由,包括:
按照设备宣告边界网关协议(BGP)更新(update)消息的先后顺序,及 BGP更新消息从初始设备到目的设备的宣告结果,计算每一个设备在K-failure 场景下的路由。
需要说明的是,宣告BGP更新消息的先后顺序,可以BGP更新消息的队列的维护进行确定,在维护BGP更新消息队列时,对队列中保存的待处理的 BGP更新消息,每次取队首的BGP更新消息进行处理,新生成的BGP更新消息添加到队列尾部。将BGP更新消息进行宣告时,通过模拟其在路由器中进行存储、选路及转发,将新计算出的路由通过BGP更新消息宣告到相邻的出方向设备,在待验证网络中各设备完成的BGP消息的宣告,即BGP更新消息从初始设备到目的设备的宣告结果。
本发明实施例,设备接收到相邻的入方向设备宣告的BGP更新消息时,如果满足设备上针对路由的接收策略和发送策略,会向相邻的出方向设备宣告BGP更新消息;根据待验证网络中从初始设备到目的设备的BGP更新消息宣告结果,通过用于仿真的计算模型,对BGP消息宣告的先后顺序及宣告结果进行仿真,可以确定每一个设备在K-failure场景下的路由。
在一种示例性实例中,本发明实施例计算获得的路由,可以存储于计算模型中预先设定的与各设备对应的路由信息库(RIB)中。
步骤102、分别确定计算出的每一个路由作为最优路由的约束条件。
在一种示例性实例中,确定每一个路由作为最优路由的约束条件包括:
对计算出的待验证网络中每一个设备在K-failure场景下的每一个路由,分别作为当前路由进行以下处理:
按照路由的优先级排序,确定未能接收到优先级排序在前的路由但接收到当前路由的条件,将确定的该条件确定为当前路由作为最优路由的约束条件。
在一种示例性实例中,未能接收到优先级排序在前的路由的条件,可以通过对优先级排序在前的路由被接收的条件进行取反后获得。换句话说:当前路由作为最优路由的约束条件可以包括:对每一个优先级排序在前的路由被接收的条件进行取反处理后,将取反处理的结果与当前路由被接收的条件取交集,将通过取交集确定的条件确定为当前路由作为最优路由的约束条件。
在一种示例性实例中,本发明实施例中的约束条件中包括:待验证网络的链路通断信息;
在一种示例性实例中,网络的链路通断信息包括:设备将从相邻的入方向设备收到BGP更新消息,宣告到相邻的出方向设备时,当前设备到出方向设备的链路通断信息。
步骤103、根据确定出的约束条件,对待验证网络进行网络控制平面验证。
在一种示例性实例中,对待验证网络进行网络控制平面验证,包括:
将确定的每一个路由作为最优路由的约束条件编码为第一逻辑表达式;
通过约束求解器对编码获得的第一逻辑表达式进行求解,以实现网络控制平面验证。
需要说明的是,本发明实施例可以参照相关技术将约束条件编码为第一逻辑表达式;通过约束求解器对编码后的第一逻辑表达式的求解,可以基于约束求解器本身的运算功能实现。本发明实施例通过编码第一逻辑表达式,可以快速的考虑K-failure场景下每一个路由作为最优路由的约束条件,从而快速的实现网络控制平面的验证。
在一种示例性实例中,本发明实施例网络控制平面验证包括:路由可达性验证。
在一种示例性实例中,对待验证网络进行网络控制平面验证之后,本发明实施例方法还包括:
根据确定的每一个路由作为最优路由的约束条件,生成待验证网络的数据平面;
将报文发送到目的设备的约束条件编码为第二逻辑表达式;
通过约束求解器对编码获得的第二逻辑表达式进行求解,以实现对生成的待验证网络的数据平面的网络属性的验证。
需要说明的是,本发明实施例可以参照相关技术,实施数据平面的生成;第二逻辑表达式的编码也可以参照相关技术实现。
在一种示例性实例中,数据平面的网络属性包括:报文可达性。
本发明实施例在计算待验证网络中每一个设备在K-failure场景下所有的路由后,确定每一个路由作为最优路由的约束条件,根据确定出的约束条件对待验证网络进行网络控制平面验证,通过路由计算和约束条件的计算,快速的考虑了K-failure场景,实现了适用于大型网络的验证,为提升网络运维效率提供了技术支持。
图2为本发明实施例网络验证的装置的结构框图,如图2所示,包括:计算单元、确定单元和验证单元;其中,
计算单元设置为:计算待验证网络中每一个设备在K-failure场景下所有的路由;
确定单元设置为:分别确定计算出的每一个路由作为最优路由的约束条件;
验证单元设置为:根据确定出的约束条件,对待验证网络进行网络控制平面验证;
其中,约束条件中包括:待验证网络的链路通断信息。
本发明实施例在计算待验证网络中每一个设备在K-failure场景下所有的路由后,确定每一个路由作为最优路由的约束条件,根据确定出的约束条件对待验证网络进行网络控制平面验证,通过路由计算和约束条件的计算,快速的考虑了K-failure场景,实现了适用于大型网络的验证,为提升网络运维效率提供了技术支持。
在一种示例性实例中,计算单元是设置为:
按照设备在待验证网络中宣告边界网关协议BGP更新消息的先后顺序,及BGP更新消息从初始设备到目的设备的宣告结果,计算每一个设备在 K-failure场景下的路由。
在一种示例性实例中,确定单元是设置为:
对计算出的待验证网络中每一个设备在K-failure场景下的每一个路由,分别作为当前路由进行以下处理:
按照路由的优先级排序,确定未能接收到优先级排序在前的路由但接收到当前路由的条件,将确定的该条件确定为当前路由作为最优路由的约束条件。
在一种示例性实例中,验证单元是设置为:
将确定的每一个路由作为最优路由的约束条件编码为第一逻辑表达式;
通过约束求解器对编码获得的第一逻辑表达式进行求解,以实现对待验证网络的控制平面的属性的验证;
其中,待验证网络的控制平面的验证包括:路由可达性验证。
在一种示例性实例中,验证单元还设置为:
根据确定的每一个路由作为最优路由的约束条件,生成待验证网络的数据平面;
将报文发送到目的设备的约束条件编码为第二逻辑表达式;
通过约束求解器对编码获得的第二逻辑表达式进行求解,以实现对生成的待验证网络的数据平面的网络属性的验证;
其中,数据平面的网络属性包括:报文可达性。
应用示例
本应用示例进行网络验证的方法,能在大型网络中,高效地对考虑链路故障的网络属性进行验证。
本应用示例对于边界网关协议(BGP),以维护一个BGP更新消息的队列作为示例进行仿真运算,队列中保存待处理的BGP更新消息,每次取队首的BGP更新消息进行处理,模拟其在路由器中进行存储、选路及转发,将新计算出的路由通过BGP更新消息宣告到相邻的出方向设备;这里,需要说明的是,新计算出的路由通过生成的BGP更新消息宣告到相邻的出方向设备之前,该BGP更新消息一般添加到队列尾部;循环处理直到队列为空为止;接收到BGP更新消息的设备,根据接收到的BGP更新消息计算路由后,在BGP 更新消息队列中根据计算的路由生成BGP更新消息。图3为本发明应用示例 BGP更新消息的示意图,如图3所示,将第一设备BGP更新消息的队列中包含的路由(左斜线填充)发送到相邻的第二设备后,添加到第二设备的BGP 更新消息的队列中(右斜线填充)。
对于仿真运算,当网络链路复杂时(例如、k条链路发生故障),需要对每个链路情况分别进行仿真,导致验证效率急剧下降。因此,本应用示例在仿真过程中,对BGP更新时链路通断情况进行了编码,通过编码确定所有可将BGP消息由初始设备宣告到网络中的其他设备的链路通断条件;其中,其他设备包括:中间设备和目的设备。编码的原则在于:满足实现BGP update 消息宣告所需的条件;例如、BGP update消息要从设备A宣告到设备B(目的设备),需要设备A与设备B之间的链路处于连通状态。而由于BGP协议本身的性质,设备的路由器在收到其他设备宣告的BGP更新消息时,会根据AS Path长度(BGP协议属性之一,存储路由传播过程中经过的自治区域编号列表)、MED值(Multi-Exit Discriminators,BGP协议属性之一,用于选择多个出口情况下的最优路由)、本地优先值(Local Preference)等根据BGP 协议的标准规定(见RFC4271)选出一条最优的路由向外宣告,当由于链路故障导致最优路由没能到达目的设备,那么次优路由就会被宣告出去;即各个路由在网络中进行宣告会受到各种链路通断的约束,在满足特定条件时,这些路由就能传播到相应设备,本应用示例是确定路由能被宣告到各个设备上的条件约束。
图4为本发明应用示例网络组成示意图,如图4所示,网络中包含四个节点;其中,设备A(RouterA)管理子网N,假设设备A通过BGP协议向设备B、C、D宣告前缀(Prefix)为N的路由(数据包匹配上前缀后,会根据匹配上的最长前缀对应路由确定下一跳)。本应用示例使用一个BGP更新消息来描述其宣告结果。如m1=(N,100,A,a1)表示这个BGP更新消息所要宣告的前缀为N,AS Path为100,其消息来源为设备A,及约束条件为 a1(这个约束条件代表a1为true,即链路(Link)1处于连通状态时,表达式的值为true,也即这个BGP更新消息能被正常宣告)。模拟仿真时,设备 D在链路发生故障时能否接收BGP更新消息是本应用示例关注的内容;图5 为本发明应用示例仿真过程中BGP消息的处理流程图,如图5所示,包括:
步骤501、设备A向设备C宣告一条BGP更新消息;由于设备A与设备 C之间链路为Link 1,因此约束条件从原始的true变为a1,同时由于BGP协议本身的性质,AS Path中添加了A的AS编号100。
步骤502、设备A向设备B宣告一条BGP更新消息;参照步骤501,约束条件变为a2,ASPath变为100。
步骤503、设备B向设备C宣告一条BGP更新消息;约束条件进一步添加了Link 3应处于连通状态,变为a2^a3,同时AS Path加上B的AS编号变为100-200。
步骤504、设备C收到来自设备A和设备B的BGP更新消息;根据BGP 协议本身的选路规则,BGP协议此时会挑选出AS Path更短的一条路由作为最优路由宣告给其他邻居设备(设备D),本应用示例最优路由为来源于A 的路由。本应用示例,假设来自设备A的路由为r1,来自设备B的路由为r2,在一种示例性实例中,本应用示例参照相关技术,将两条路由放入设备C的路由信息库(RIB),并且根据路由的优先级进行排序;一般的,排序在路由信息库最上面的路由为最优路由。
步骤505、对设备C中存储的路由,分别确定每一个路由作为最优路由的约束条件;这里,设备C中存储的路由包括:按照设备宣告BGP更新消息的先后顺序,及BGP更新消息从初始设备到目的设备的宣告结果,计算出的设备C在K-failure场景下的路由。通过分析发现,并不是所有情况下,设备 C都会宣告从设备A收到的路由,例如、链路1发生故障时,放入设备C的 RIB的最优路由r1无法被设备C接收。通过分析发现,r1无法被接收的条件是其能被收到的条件取反;本应用示例将r1的条件取反得到
Figure BDA0002621192080000121
然后与r2能被接收到的条件取交,就确定了r2作为最优路由被发出的条件,即确定r2作为最优路由的约束条件。
步骤506、根据设备C存储的最优路由和除最优路由以外其他路由作为最优路由的约束条件,由设备C向设备D发出对应于各路由作为最优路由时的BGP更新消息;本应用示例发出的BGP更新消息m4和m5。m4和m5 根据BGP协议,在原有的AS Path中添加了C的AS号300,m4的接收条件为a1^a4,即链路1和链路4均为连通状态,而m5的约束条件为
Figure BDA0002621192080000122
步骤507、设备D将接收来自设备C的两条路由存储到RIB中。(BGP 更新消息是指,该设备通过更新消息告诉邻居BGP路由需要进行更新,更新消息中包含路由生成需要的信息,因此邻居接收到更新消息之后,就能方便地更新本设备的路由信息)。
本应用示例,初始节点接收原始路由,根据原始路由修改路由属性;将修改的路由属性转换为BGP更新消息,宣告给其他设备;中间节点或目的节点根据入方向的路由策略判断是否接收BGP更新消息,并根据接收的BGP 更新消息进行路由属性的修改;将接收到的BGP更新消息转换为路由,存入计算模型的路由表中,确定该路由作为最优路由的约束,再向根据出方向的路由策略向其他邻居宣告BGP更新消息。在所有的BGP更新消息都无法再更新设备路由表时,完成可达性验证。
通过上述处理,本应用示例设备D上根据确定的每一个路由作为最优路由的约束条件,接收到来自设备C的BGP更新消息,以及各路由能被接收的约束条件;当需要确定设备D是否在任意链路发生故障时都能收到路由时,仅需要将m4和m5的约束条件求并集后,利用约束求解器(如Z3)进行求解该表达式在最多k个变量为false时是否永真即可。如应用示例中设备D,其收到路由的约束条件为
Figure BDA0002621192080000131
在k=1时,不难找到反例为a4=false。
根据确定的每一个路由作为最优路由的约束条件,对待验证网络的控制平面进行验证之后,本应用示例还包括:
根据确定的每一个路由作为最优路由的约束条件,生成待验证网络的数据平面;
根据生成的数据平面确定待验证网络的网络属性是否满足预期。
通过步骤501~507,本应用示例描述了控制平面的路由传播过程,那么数据平面做报文转发的仿真和编码与上述过程是类似的,只是“反向”进行。在数据平面,本应用示例从设备D发送一个目的IP指向N的报文,本应用示例用一个二元组来描述当前报文的状态,如图p1=[N,a1^a4],N代表目的IP 指向N,a1^a4则代表着当前报文的转发条件。
本应用示例数据平面的仿真依然是通过队列进行,假设原始报文为p0=[N,True]。在控制平面仿真时,本应用示例设备D中存储了带约束条件的两条路由,即求解控制平面时存储的r3与r4,根据这两条路由,本应用示例从设备D 上发出了两个带约束条件的报文p1与p2。这里存在着约束条件计算的问题,虽然看上去报文p1与报文p2被直接赋值了r3与r4的约束条件,其实不然,在待验证网络中,设备可能会收到多条路由,但转发时,设备会根据路由协议的优选规则、管理距离(AD)与最长前缀匹配等原则匹配上一条最优路由进行转发,也即只有对应路由存在且作为最优路由被选中的时候,对应报文才能被发出。本应用示例假设报文p2的约束条件的原始表达为
Figure BDA0002621192080000132
Figure BDA0002621192080000133
(代表r3未被接收且r4存在的条件)。经过化简后为
Figure BDA0002621192080000134
本应用示例报文p1与报文p2经过链路4,其约束条件与a4取并集后,变成报文p3与报文p4。设备C收到报文p3与报文p4。设备C根据在前存储的路由进行报文转发;在应用示例为了防止重复说明,省略了从设备C向设备 B转发报文的情况,只陈述设备C向设备A转发的报文。报文p3与报文p4通过链路4,发送到设备A的报文与a1求并集后得到报文p5与报文p6,报文 p5被设备A接收的约束条件为:((a1^a4)^a4)^a1;报文p6被设备A接收的约束条件为:
Figure BDA0002621192080000141
由于报文p6被接收的约束条件永远为False
Figure BDA0002621192080000142
因此报文p6不被发出,而报文p5被成功转发至设备A。设备A收到报文p5,本应用示例仿真结束。
本应用示例设备A成功收集到了从设备D发送过来的报文p5,而其条件代表了设备D经由设备C和设备A可达目的地的链路条件为a1^a4
本应用示例控制平面的验证通过仿真对链路通断进行编码,在仿真过程中,不停的根据设备宣告路由的先后顺序,确定并编码各设备存储的各路由作为最优路由的约束条件;对于控制平面,路由被宣告的约束条件可以包括:路由接收条件=上个设备路由发出条件^经过链路连通条件;路由发出条件=比当前路由所有更优路由均无法接收的条件^当前路由的接收条件。对于数据平面,报文接收的约束条件包括:报文接收条件=上个报文发出条件^经过链路连通条件;报文发出条件=对应路由存在条件^比对应路由更优路由不存在条件^当前报文的接收条件。本应用示例仿真运算后,通过在目的设备上收集所有路由或报文的接收约束条件,将其取并,并求解该逻辑表达式是否永真,从而实现在K-failure的情况下是否永远满足可达性的验证。
通过仿真发现,常规的Minesweeper、Batfish对于由100台左右的设备组成的网络,进行可达性验证所需时间就大于24小时;而采用本发明实施例方法进行可达性验证时,所需耗时小于1个小时;通过对比可以发现,本发明实施例设计实现了适用于大型网络的网络验证方法,为提升网络运维效率提供了技术支持。
本应用示例验证方法提升了对不同规模的网络的进行验证的效率;在大型网络中,全量验证时长为可接受时长。本应用示例根据对计算出的待验证网络中各设备的路由,分别确定每一个路由作为最优路由的约束条件;根据确定的每一个路由作为最优路由的约束条件进行验证仿真;相较于Batfish,只需单次仿真,减少了仿真的成本;相较于Minesweeper,本应用示例仅编码确定的每一个路由作为最优路由的约束条件,其他路由选择、传播、数据转发和网络策略(如BGP出入口策略、ACL访问控制列表等)都由仿真来完成,因此其逻辑表达式的大小也相较Minesweeper更小、更简单;因此,本应用示例提升了全量验证的验证效率。
本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述网络验证的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

Claims (11)

1.一种网络验证的方法,包括:
计算待验证网络中每一个设备在K-failure场景下所有的路由;
分别确定计算出的每一个路由作为最优路由的约束条件;
根据确定出的约束条件,对待验证网络进行网络控制平面验证;
其中,所述约束条件中包括:所述待验证网络的链路通断信息。
2.根据权利要求1所述的方法,其特征在于,所述计算验证网络中每一个设备在K-failure场景下所有的路由,包括:
按照设备在所述待验证网络中宣告边界网关协议BGP更新消息的先后顺序,及所述BGP更新消息从初始设备到目的设备的宣告结果,计算每一个设备在所述K-failure场景下的路由。
3.根据权利要求1所述的方法,其特征在于,所述确定每一个路由作为最优路由的约束条件包括:
对计算出的所述待验证网络中每一个设备在所述K-failure场景下的每一个路由,分别作为当前路由进行以下处理:
按照路由的优先级排序,确定未能接收到优先级排序在前的路由但接收到当前路由的条件,将确定的该条件确定为当前路由作为最优路由的所述约束条件。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述对待验证网络进行网络控制平面验证,包括:
将确定的每一个所述路由作为最优路由的约束条件编码为第一逻辑表达式;
通过约束求解器对编码获得的所述第一逻辑表达式进行求解,以实现对所述待验证网络的控制平面的属性的验证;
其中,所述网络控制平面的验证包括:路由可达性验证。
5.根据权利要求1~3任一项所述的方法,其特征在于,所述对待验证网络进行网络控制平面验证之后,所述方法还包括:
根据确定的每一个所述路由作为最优路由的约束条件,生成所述待验证网络的数据平面;
将报文发送到目的设备的约束条件编码为第二逻辑表达式;
通过约束求解器对编码获得的所述第二逻辑表达式进行求解,以实现对生成的待验证网络的所述数据平面的网络属性的验证;
其中,所述数据平面的网络属性包括:报文可达性。
6.一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~5中任一项所述的网络验证的方法。
7.一种电子设备,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取执行权利要求1~5中任一项所述的网络验证的方法。
8.一种网络验证的装置,包括:计算单元、确定单元和验证单元;其中,
计算单元设置为:计算待验证网络中每一个设备在K-failure场景下所有的路由;
确定单元设置为:分别确定计算出的每一个路由作为最优路由的约束条件;
验证单元设置为:根据确定出的约束条件,对待验证网络进行网络控制平面验证;
其中,所述约束条件中包括:所述待验证网络的链路通断信息。
9.根据权利要求8所述的装置,其特征在于,所述计算单元是设置为:
按照设备在所述待验证网络中宣告边界网关协议BGP更新消息的先后顺序,及所述BGP更新消息从初始设备到目的设备的宣告结果,计算每一个设备在所述K-failure场景下的路由。
10.根据权利要求8所述的装置,其特征在于,所述确定单元是设置为:
对计算出的所述待验证网络中每一个设备在所述K-failure场景下的每一个路由,分别作为当前路由进行以下处理:
按照路由的优先级排序,确定未能接收到优先级排序在前的路由但接收到当前路由的条件,将确定的该条件确定为当前路由作为最优路由的所述约束条件。
11.根据权利要求8~10任一项所述的装置,其特征在于,所述验证单元是设置为:
将确定的每一个所述路由作为最优路由的约束条件编码为第一逻辑表达式;
通过约束求解器对编码获得的所述第一逻辑表达式进行求解,以实现对所述待验证网络的控制平面的属性的验证;
其中,所述待验证网络的控制平面的验证包括:路由可达性验证。
CN202010783828.4A 2020-08-06 2020-08-06 一种网络验证的方法、装置、计算机存储介质及电子设备 Active CN112054921B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010783828.4A CN112054921B (zh) 2020-08-06 2020-08-06 一种网络验证的方法、装置、计算机存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010783828.4A CN112054921B (zh) 2020-08-06 2020-08-06 一种网络验证的方法、装置、计算机存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN112054921A true CN112054921A (zh) 2020-12-08
CN112054921B CN112054921B (zh) 2021-09-03

Family

ID=73602166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010783828.4A Active CN112054921B (zh) 2020-08-06 2020-08-06 一种网络验证的方法、装置、计算机存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112054921B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299057A1 (en) * 2009-05-22 2010-11-25 Clarion Co., Ltd. Method and apparatus for verifying route in route verification system
CN102098596A (zh) * 2011-03-11 2011-06-15 中国联合网络通信集团有限公司 光网络中路由建立方法及装置
CN103346968A (zh) * 2011-09-23 2013-10-09 阿瓦雅公司 用于路由组播数据的方法和装置
KR20140092689A (ko) * 2013-01-16 2014-07-24 한국전자통신연구원 다 계층 네트워크에서 확장성 있는 레이블 관리를 위한 네트워크 관리장치 및 그 방법
CN109492272A (zh) * 2018-10-22 2019-03-19 暨南大学 一种可重构定时网络条件事件***的建模与验证方法及***
CN110022271A (zh) * 2019-04-16 2019-07-16 中国人民解放军国防科技大学 软件定义网络中分布式控制平面的鲁棒性验证方法及装置
CN110311828A (zh) * 2019-08-14 2019-10-08 清华大学 一种网络验证的方法、装置、计算机存储介质及电子设备
CN111478808A (zh) * 2020-04-02 2020-07-31 清华大学 协助配置更新验证的方法、***、电子设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299057A1 (en) * 2009-05-22 2010-11-25 Clarion Co., Ltd. Method and apparatus for verifying route in route verification system
CN102098596A (zh) * 2011-03-11 2011-06-15 中国联合网络通信集团有限公司 光网络中路由建立方法及装置
CN103346968A (zh) * 2011-09-23 2013-10-09 阿瓦雅公司 用于路由组播数据的方法和装置
KR20140092689A (ko) * 2013-01-16 2014-07-24 한국전자통신연구원 다 계층 네트워크에서 확장성 있는 레이블 관리를 위한 네트워크 관리장치 및 그 방법
CN109492272A (zh) * 2018-10-22 2019-03-19 暨南大学 一种可重构定时网络条件事件***的建模与验证方法及***
CN110022271A (zh) * 2019-04-16 2019-07-16 中国人民解放军国防科技大学 软件定义网络中分布式控制平面的鲁棒性验证方法及装置
CN110311828A (zh) * 2019-08-14 2019-10-08 清华大学 一种网络验证的方法、装置、计算机存储介质及电子设备
CN111478808A (zh) * 2020-04-02 2020-07-31 清华大学 协助配置更新验证的方法、***、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAIJUN GENG, HAN ZHANG, XINGANG SHI, ZHILIANG WANG, XIA YIN ECT: "A Hybrid Link Protection Scheme for Ensuring", 《JOURNAL OF COMMUNICATIONS AND NETWORKS》 *
耿海军, 施新刚, 王之梁, 尹 霞, 胡治国: "基于最小路径交叉度的域内路由保护方案", 《软件学报》 *

Also Published As

Publication number Publication date
CN112054921B (zh) 2021-09-03

Similar Documents

Publication Publication Date Title
US10574567B2 (en) Modeling a border gateway protocol network
CN102027712B (zh) 确定网络中的故障路由器的***、方法和程序
US8681662B2 (en) Self-forming network
CN100542111C (zh) 基于共享风险链路群组信息确定网络路由选择信息的方法和装置
CN110113259B (zh) 路径状态通知方法、路径切换方法、转发设备及***
Matsuo et al. Accelerated ants routing in dynamic networks
EP3338416B1 (en) Reducing flooding of link state changes in networks
US8923113B2 (en) Optimizations in multi-destination tree calculations for layer 2 link state protocols
US20030140165A1 (en) Calculation of layered routes in a distributed manner
CN112104552B (zh) 处理报文的方法、装置及计算机存储介质
EP1519520B1 (en) Management node device, node device, network configuration management system, network configuration management method, node device control method, management node device control method
EP1762053B1 (en) Method and system for network topology updating using topology perturbation
CN110311828B (zh) 一种网络验证的方法、装置、计算机存储介质及电子设备
CN112532408A (zh) 提取故障传播条件的方法、装置及存储介质
US7152113B2 (en) Efficient system and method of node and link insertion for deadlock-free routing on arbitrary topologies
CN107547374B (zh) 一种聚合路由处理方法和装置
CN106789664B (zh) 一种路由聚合方法及装置
CN112054921B (zh) 一种网络验证的方法、装置、计算机存储介质及电子设备
CN114430894A (zh) 通过扫描规则引擎最小化生产中断
CN113810274A (zh) 一种路由处理方法及相关设备
EP1673901B1 (en) Method and apparatus for generating routing information in a data communications network
CN109995657B (zh) 一种流量转发的方法及装置
Kandavanam et al. A hybrid genetic algorithm/variable neighborhood search approach to maximizing residual bandwidth of links for route planning
CN107070787B (zh) 一种默认路由撤销方法和装置
CN118101606B (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
GR01 Patent grant
GR01 Patent grant