CN113872784B - 网络配置的验证方法和装置 - Google Patents
网络配置的验证方法和装置 Download PDFInfo
- Publication number
- CN113872784B CN113872784B CN202010615579.8A CN202010615579A CN113872784B CN 113872784 B CN113872784 B CN 113872784B CN 202010615579 A CN202010615579 A CN 202010615579A CN 113872784 B CN113872784 B CN 113872784B
- Authority
- CN
- China
- Prior art keywords
- reachable
- network configuration
- interface
- forwarding
- path
- 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
Links
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/0866—Checking the 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
-
- 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/0889—Techniques to speed-up the configuration process
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种网络配置的验证方法和装置,涉及计算机网络通信领域,用于对网络设备进行增量网络配置时,减少验证网络配置的计算量。网络配置的验证方法,其特征在于,包括:比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,以得到转发策略发生变更的接口和/或转发路由发生变更的链路;获取第一可达点对;查找基础网络配置对应的关联表,以得到第二可达点对,并与第一可达点对进行比较,以对增量网络配置进行验证;其中,关联表指示网络中,路径经过的接口和/或链路与路径的可达点对的关联关系,第二可达点对指示接口和/或链路在基础网络配置下,所在路径的一对业务接入点。
Description
技术领域
本申请涉及计算机网络通信领域,尤其涉及一种网络配置的验证方法和装置。
背景技术
计算机网络已成为信息时代的基础设施,正确的网络配置是计算机网络正常运行的基础,因为计算机网络承载的业务经常发生变更,网络配置也在不断发生变更。业界提出了网络验证方法来保证网络配置的正确性,即无需在计算机网络中发送探测报文,而是借助数学模型来验证网络配置的正确性。具体来说,网络验证方法通过将网络配置与网络设备的转发行为转换成数学模型,并根据数学模型计算网络接口可达性,并与预期的可达意图进行对比,从而判断网络配置是否正确。
当对增量网络配置进行验证时,需要对比变更前网络配置对应的网络设备的接口之间可达性,以及,变更后网络配置对应的网络设备的接口之间可达性,得到发生变更的网络设备的接口之间可达性,并与预期的可达意图进行对比,从而判断增量网络配置是否正确。
增量网络配置往往只会影响部分网络设备的接口之间的可达性,如果针对增量网络配置,对全网的网络设备的接口重新计算相互之间可达性,将增加很大的计算量。
发明内容
本申请实施例提供一种网络配置的验证方法和装置,用于对网络设备进行增量网络配置时,减少验证增量网络配置的计算量。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种网络配置的验证方法,包括:比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,以得到转发策略发生变更的接口和/或转发路由发生变更的链路;获取第一可达点对,其中,第一可达点对指示接口和/或链路在增量网络配置下,所在的路径的一对业务接入点;查找基础网络配置对应的关联表,以得到第二可达点对,并与第一可达点对进行比较,以对增量网络配置进行验证;其中,关联表指示网络中,路径经过的接口和/或链路与路径的可达点对的关联关系,第二可达点对指示接口和/或链路在基础网络配置下,所在路径的一对业务接入点。
本申请实施例提供的网络配置的验证方法,通过比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,以得到转发策略发生变更的接口和/或转发路由发生变更的链路;获取第一可达点对,第一可达点对指示接口和/或链路在增量网络配置下,所在的路径的一对业务接入点;查找基础网络配置对应的关联表,以得到第二可达点对,并与第一可达点对进行比较,以对增量网络配置进行验证;其中,关联表指示网络中,路径经过的接口和/或链路与路径的可达点对的关联关系,第二可达点对指示接口和/或链路在基础网络配置下,所在路径的一对业务接入点。第一可达点对将增量网络配置可能影响到可达性的可达点对的搜索范围,缩小至与上述接口和/或链路相关;而第二可达点对是上述接口和/或链路在基础网络配置中涉及的可达点对。通过比较这两个可达点对,即可准确定位到具体哪些可达点对的可达性受到增量网络配置的影响,以及上述影响是否符合配置意图,从而实现对增量网络配置的验证。由于不必针对增量网络配置对全网的可达点对进行分析,只针对变更的接口和/或链路相关的可达点对进行分析,因此可以减少验证网络配置的计算量。另外,关联表中包括路径经过的接口与路径的可达点对的关联关系,相对于现有技术中网络设备与可达点对的关联关系,其关联粒度更细,减小了通过关联表查找可达点对的范围,因此可以减少对增量网络配置进行验证的工作量。
在一种可能的实施方式中,一条链路可以用该链路两端的接口的组合(例如接口对)来指示。
在一种可能的实施方式中,还包括:解析基础网络配置对应的可达矩阵,以得到关联表,其中,可达矩阵指用于表示网络中的业务接入点两两之间是否可达的矩阵。该关联表实现了接口和/或链路与可达点对之间的关联关系,相比于网络设备与可达点对之间的关联关系,其粒度更细,从而根据关联表查找可达点对时能缩小范围。
在一种可能的实施方式中,还包括:根据第一可达点对更新可达矩阵和关联表。可以将本次更新后的可达矩阵和关联表作为下次对增量网络配置进行验证的基础,不必重复计算。
在一种可能的实施方式中,解析基础网络配置对应的可达矩阵,以得到关联表,包括:针对可达矩阵中的每条可达路径,提取构成可达路径的各条跨设备链路的入接口和出接口,建立入接口和出接口与可达路径的可达点对的关联关系;如果入接口和出接口均不是业务接入点,则建立链路与可达路径的可达点对的关联关系。也就是说对于路径两端的入接口和出接口,以及路径中间的链路均建立了与可达点对的关联关系。
在一种可能的实施方式中,比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,以得到网络中转发策略发生变更的接口和/或转发路由发生变更的链路,包括:如果接口和/或链路只在基础网络配置或对应的转发表中存在,则将接口和/或链路加入删除列表,将接口标记为转发策略发生变更,将链路标记为转发路由发生变更;如果接口和/或链路只在增量网络配置或对应的转发表中存在,则将接口和/或链路加入增加列表,将接口标记为转发策略发生变更,将链路标记为转发路由发生变更;如果接口在基础网络配置和增量网络配置中的转发策略的报文空间不一致,则将接口加入修改列表,并标记为转发策略发生变更;如果链路在基础网络配置和增量网络配置中的转发路由的报文空间不一致,则将链路加入修改列表,并标记为转发路由发生变更。该实施方式将网络中转发策略发生变更的接口和/或转发路由发生变更的链路细分为增加、删除和变更这几种类型,帮助判断增量网络配置下发后对可达性的影响。
在一种可能的实施方式中,获取第一可达点对,包括:计算在增量网络配置下,经过接口和/或链路的第一路径;取第一路径两端的一对业务接入点作为第一可达点对。
在一种可能的实施方式中,计算在增量网络配置下,经过接口和/或链路的第一路径,包括:针对转发策略发生变更的接口,以接口作为起点,以接口在增量网络配置对应的转发策略的报文空间作为初始报文空间,以所有业务接入点为终点,在增量网络配置的转发图模型中正向遍历求解第一可达路径;针对转发路由发生变更的链路,以链路的起始接口作为起点,以链路在增量网络配置对应的转发路由的报文空间作为初始报文空间,以所有业务接入点为终点,在增量网络配置的转发图模型中正向遍历求解第一可达路径;从起点和初始报文空间开始,以所有业务接入点为终点,在转发图模型中反向遍历求解第二可达路径;取第一可达路径和第二可达路径的交集,如果第一可达路径的报文空间和第二可达路径的报文空间的交集不为空,则拼接第一可达路径和第二可达路径得到第一路径,并将交集的结果作为第一路径的报文空间。该实施方式保证了路径两端的业务接入点正向和反向均能通信。
第二方面,提供了一种网络配置的验证装置,包括:比较模块,用于比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,以得到转发策略发生变更的接口和/或转发路由发生变更的链路;获取模块,获取第一可达点对,其中,第一可达点对指示接口和/或链路在增量网络配置下,所在的路径的一对业务接入点;比较模块,还用于查找基础网络配置对应的关联表,以得到第二可达点对,并与第一可达点对进行比较,以对增量网络配置进行验证;其中,关联表指示网络中,路径经过的接口和/或链路与路径的可达点对的关联关系,第二可达点对指示接口和/或链路在基础网络配置下,所在路径的一对业务接入点。
在一种可能的实施方式中,还包括:解析模块,用于解析基础网络配置对应的可达矩阵,以得到关联表,其中,可达矩阵指用于表示网络中的业务接入点两两之间是否可达的矩阵。
在一种可能的实施方式中,还包括:更新模块,用于根据第一可达点对更新可达矩阵和关联表。
在一种可能的实施方式中,解析模块,具体用于:针对可达矩阵中的每条可达路径,提取构成可达路径的各条跨设备链路的入接口和出接口,建立入接口和出接口与可达路径的可达点对的关联关系;如果入接口和出接口均不是业务接入点,则建立链路与可达路径的可达点对的关联关系。
在一种可能的实施方式中,比较模块具体用于:如果接口和/或链路只在基础网络配置或对应的转发表中存在,则将接口和/或链路加入删除列表,将接口标记为转发策略发生变更,将链路标记为转发路由发生变更;如果接口和/或链路只在增量网络配置或对应的转发表中存在,则将接口和/或链路加入增加列表,将接口标记为转发策略发生变更,将链路标记为转发路由发生变更;如果接口在基础网络配置和增量网络配置中的转发策略的报文空间不一致,则将接口加入修改列表,并标记为转发策略发生变更;如果链路在基础网络配置和增量网络配置中的转发路由的报文空间不一致,则将链路加入修改列表,并标记为转发路由发生变更。
在一种可能的实施方式中,获取模块,具体用于:计算在增量网络配置下,经过接口和/或链路的第一路径;取第一路径两端的一对业务接入点作为第一可达点对。
在一种可能的实施方式中,获取模块,具体用于:针对转发策略发生变更的接口,以接口作为起点,以接口在增量网络配置对应的转发策略的报文空间作为初始报文空间,以所有业务接入点为终点,在增量网络配置的转发图模型中正向遍历求解第一可达路径;针对转发路由发生变更的链路,以链路的起始接口作为起点,以链路在增量网络配置对应的转发路由的报文空间作为初始报文空间,以所有业务接入点为终点,在增量网络配置的转发图模型中正向遍历求解第一可达路径;从起点和初始报文空间开始,以所有业务接入点为终点,在转发图模型中反向遍历求解第二可达路径;取第一可达路径和第二可达路径的交集,如果第一可达路径的报文空间和第二可达路径的报文空间的交集不为空,则拼接第一可达路径和第二可达路径得到第一路径,并将交集的结果作为第一路径的报文空间。
第三方面,提供了一种网络配置的验证装置,包括处理器,处理器与存储器相连,存储器用于存储计算机程序,处理器用于执行存储器中存储的计算机程序,以使得装置执行如第一方面及其任一项实施方式所述的方法。
第四方面,提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面及其任一项实施方式所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当指令在计算机或处理器上运行时,使得计算机或处理器执行如第一方面及任一项实施方式所述的方法。
关于第二方面至第五方面内容的技术效果参照第一方面及其任一实施方式的技术效果,在此不再重复。
附图说明
图1为本申请实施例提供的一种通信***的架构示意图;
图2为本申请实施例提供的一种网络配置的验证方法的流程示意图;
图3为本申请实施例提供的一种包括交换机的通信网络的架构示意图;
图4为本申请实施例提供的另一种网络配置的验证方法的流程示意图;
图5为本申请实施例提供的另一种包括交换机的通信网络的架构示意图;
图6为本申请实施例提供的又一种包括交换机的通信网络的架构示意图;
图7为本申请实施例提供的再一种包括交换机的通信网络的架构示意图;
图8为本申请实施例提供的一种建立网络配置的转发图模型的过程的示意图;
图9为本申请实施例提供的一种基础网络配置的转发图模型的示意图;
图10为本申请实施例提供的一种增量网络配置的转发图模型的示意图;
图11为本申请实施例提供的一种得到基础网络配置对应的可达矩阵的过程的示意图;
图12为本申请实施例提供的一种得到基础网络配置对应的关联表的过程的示意图;
图13为本申请实施例提供的又一种网络配置的验证方法的流程示意图;
图14为本申请实施例提供的一种得到转发策略发生变更的接口和/或转发路由发生变更的链路的过程的示意图;
图15为本申请实施例提供的一种得到第一路径的过程的示意图;
图16为本申请实施例提供的一种网络配置的验证装置的结构示意图;
图17为本申请实施例提供的另一种网络配置的验证装置的结构示意图。
具体实施方式
首先对本申请涉及的概念进行描述:
网络配置:指软件定义网络(software defined network,SDN)控制器为网络设备下发的与网络转发行为相关的配置。比如边界网关协议(border gateway protocol,BGP)以太网虚拟专用网络(ethernet virtual private network,EVPN)配置、ACL策略配置等。
基础网络配置:指SDN控制器下发新的网络配置之前,各网络设备已经存在的网络配置。
增量网络配置:指SDN控制器下发新的网络配置。
接口:由网络设备提供的本网络设备内部之间互相通信的端口,或者,用于与其他网络设备、虚拟机或互联网通信的端口。
业务接入点:网络设备提供的用于与部署业务的虚拟机连接,或者,用于与互联网连接的接口。通常位于路径的两端。
点对:全网中的任意两个业务接入点即构成点对,这两个业务接入点之间可能存在路径或者不存在路径。
链路:表示两个接口之间未经过其他接口而能够直接通信。这两个接口称为接口对。也就是说,一条链路可以用该链路两端的接口的组合来指示。
报文空间:一组报文的头部字段的集合,常见的报文的头部字段包括但不限于源互联网协议(internet protocol,IP)地址、目的IP地址、源端口、目的端口和协议类型。报文空间可以表示为space={(src_ip,dst_ip,src_port,dst_port,protocol)},即{(源IP地址,目的IP地址,源端口,目的端口,协议类型)}。
转发图模型:一种描述报文在网络中根据转发规则进行转发的链路的图模型,根据转发规则进行的转发包括根据访问控制列表(access control list,ACL)进行策略转发、根据转发信息基础(forwarding info base,FIB)转发表进行路由转发等。转发图模型包括点和边,点表示网络设备的接口,边表示两个接口之间的链路。边上还附加有报文空间,表示该边对应的链路能够转发的报文的集合。例如,网络拓扑上跨设备的两个接口之间存在链路,则在转发图模型中可以通过边将这两个接口对应的点连接在一起,边上附加的报文空间可以通过转发表计算得到;或者例如,同一网络设备内部,从某一个接口接收的报文根据转发表可以从另一个接口发出,则在转发图模型中也可以通过边将这两个接口对应的点连接在一起,边上附加的报文空间为这两个接口的转发策略的报文空间的交集。
路径:包括至少一条链路,具有共同接口的两条链路依次首尾连接即得到一条路径。对应至转发图模型中,即为具有共同点的边依次首尾连接。该路径对应的报文空间定义为构成该路径的各条链路对应的边上附加的报文空间的交集。
可达和不可达:根据报文转发规则两个业务接入点互相之间有至少一条报文空间不为空的路径,则这两个业务接入点即可达,否则不可达。
可达点对:点,在转发图模型中用于表示接口,点对,即一对点,也就是指示一对接口,可达点对,即这一对点之间是可达的,也就是这一对接口之间存在报文传输的路径,或者说,可以进行报文传输。可达点对可以理解为处于路径两端的一对业务接入点,包括起点和终点。
可达矩阵:表示网络中的业务接入点两两之间是否可达的矩阵。如果两个业务接入点可达(为可达点对),对应的矩阵项有值(例如Y),否则对应的矩阵项为空。
如图1所示,本申请实施例提供了一种通信***,可以指数据中心网络(datacenter network,DCN),该通信***包括:SDN控制器11和多个网络设备12。
用户可以通过SDN控制器11管理网络设备12,从网络设备12获取最新的网络配置,将增量网络配置下发到网络设备12上。用户还可以通过SDN控制器11改变网络设备的网络配置,以满足网络业务变更需求。例如,SDN控制器11提供网络拓扑的编辑接口和策略下发接口,使用户能够新增、删除逻辑设备,同时保证业务变更能正确映射到相应网络设备上的网络配置。此外,用户还可以通过SDN控制器11查询网络当前的网络配置和状态是否符合管控意图(比如网络中有无环路),即将下发的网络配置是否符合管控意图(例如某些网段之间能否互通),例如执行本申请实施例的网络配置的验证方法。
本申请实施例的可以用于对增量网络配置进行验证的场景,定期从网络设备或者***数据库获取基础网络配置,并且定期从网络设备或者***数据库获取网络物理链路拓扑(简称网络拓扑),接收用户下发的业务变更请求,生成相应网络设备上的增量网络配置,验证即将下发的增量网络配置是否符合管控意图。实现对增量网络配置快速进行全网影响分析的功能。
需要说明的是,在配置网络配置时不会修改网络拓扑,所以增量网络配置的网络拓扑等价于基础网络配置的网络拓扑。
如图2所示,现有技术中提供了一种网络配置的验证方法,包括:
S201、获取基础网络配置和网络拓扑,并得到对应的转发图模型。
S202、根据基础网络配置对应的转发图模型和业务特征,确定业务接入点对并计算可达矩阵。
假设有N个业务接入点,可达矩阵中包括N2个点对,在计算可达矩阵时将进行N2次计算。如果每次计算有一个起点与终点,按照深度优先搜索来计算可达路径,可能计算出可达路径,也可能计算出不可达路径。
另外,建立可达路径和不可达路径经过的网络设备与点对之间的关联关系,即这里的点对可能是不可达点对。
S203、获取增量网络配置,结合已获取的网络拓扑,得到增量网络配置的转发图模型。
S204、根据基础网络配置和增量网络配置得到网络中转发策略和/或转发路由发生变更的网络设备的列表。
S205、根据网络中转发策略和/或转发路由发生变更的网络设备的列表,查找网络设备与点对之间的关联关系,找出可能被影响的点对的列表,并在增量网络配置的转发图模型中重新计算点对的可达路径,与旧可达路径对比,确定该点对是新增可达点对、删除可达点对还是修改可达点对。
上述方案采用网络设备与点对的关联关系,存在如下不足:
(一)在计算可达矩阵时要针对N2个点对进行计算,一方面其计算量大,另一方面部分场景依然无法计算出新增的可达点对。
(二)关联的粒度太粗,存在重复计算。
第一个不足产生的原因是,因为需要存储不可达点对信息,所以只能针对N2个点对进行计算,计算量大。假如新增的可达点对由处于网络边缘的网络设备的增量网络配置引起,那么这个方法是可以找到新增的可达点对,但是如果新增的可达点对由处于网络中间的网络设备的增量网络配置变化引起,这个方法就无法针对这样的可达点对进行计算,因为不存在相应网络设备与点对的关联关系,从而存在遗漏的可能。
示例性的,如图3所示,网络设备包括边界叶子(Border Leaf)交换机BL1和BL2,还包括机架顶叶子(ToR Leaf)交换机L1-L4。A、B、C、D这些业务接入点分别是交换机L1、L2、L3、L4的接口。初始情况下,接口A至接口D不可达,那么交换机L1会存储点对(A,D)的不可达信息。如果修改了交换机L1的网络配置,使得接口A至接口D可达,通过查找交换机L1上的关联表,重新求解点对(A,D)是否可达时,是可以得到新增的点对(A,D)的可达信息。但是如果是修改了交换机BL2的网络配置,使得接口A至接口D可达,是无法得到新增的点对(A,D)的可达信息的,因为交换机BL2上没有存储该关联关系。
第二个不足产生的原因是以网络设备为粒度来关联可达点对时,一个网络设备往往包括多个接口,使得多条可达路径(即多个可达点对)会经过相同的网络设备。假如某一个接口的网络配置发生了变更,如果以网络设备为粒度会重新计算该网络设备涉及的所有可达点对的可达信息,因此存在重复计算。
示例性的,如图3所示,假设初始状态下,接口A至接口B可达,接口A至接口C可达,并且都经过交换机BL1,那么交换机BL1上会关联点对(A,B)和点对(A,C)。假设修改了接口A至接口C的路径上交换机BL1某个接口的网络配置,导致接口A至C不可达了,按照上述方案,会重新计算点对(A,B)和点对(A,C)是否可达,虽然可以找到点对(A,C)不再可达,但是同时会重新计算点对(A,B)是否可达,因此存在重复计算。
如图4所示,现有技术中提供了另一种网络配置的验证方法,包括:
S401、获取基础网络配置和网络拓扑,并得到对应的转发图模型。
S402、根据基础网络配置对应的转发图模型,计算可达矩阵;并存储经过转发图模型各节点的所有流信息(包括每条流的起始点、报文空间)。
S403、获取增量网络配置,结合已获取的网络拓扑,得到增量网络配置的转发图模型。
S404、根据基础网络配置和增量网络配置得到网络中转发策略和/或转发路由发生变更的接口的列表,并转换成转发图模型中发生变更的点与边的列表。
S405、根据转发图模型的网络中转发策略和/或转发路由发生变更的点和边的列表,计算增量可达信息。
如果是新增边且边的起点在基础网络配置对应的转发图模型中存在,则提取该边经过的所有流信息,在增量网络配置对应的转发图模型中,从该起点开始计算可达点对,得到的可达点对即为新增可达点对。
如果是删除边且边的起点在基础网络配置对应的转发图模型中存在,则提取该边经过的所有流信息,在基础网络配置对应的转发图模型中,从该起点开始计算可达点对,得到的可达点对即为删除可达点对。
如果是修改边,则提取起点经过的所有流信息,在基础网络配置对应的转发图模型和增量网络配置对应的转发图模型中从该起点分别计算可达点对,比较可达点对结果得出新增可达点对、删除可达点对和修改可达点对。
示例性的,如图5所示,假设初始状态下,接口A至接口B可达,接口A至接口C的流在交换机BL1被ACL策略阻断,接口A至接口D的流在接口A被ACL策略阻断。那么接口A就会存储{(A->B,f1),(A->C,f2),(A->D,f3)}的流信息,其中,f1、f2、f3为不同的报文头部空间;交换机BL1就会存储{(A->C,f2)}的流信息。假设增量网络配置修改了接口A的ACL策略,允许f3通过,那么提取出(A->D,f3)就可以计算出接口A至接口D的可达流。假设增量网络配置修改了交换机BL1的ACL策略,那么提取出(A->C,f2)就可以计算出接口A至接口C的可达流。通过存储完整的流信息(包括可达与不可达),就可以规避上一个方案中存在遗漏的缺点。
但是该方案也存在下列缺陷:
(一)因为没有存储交换机与可达点对的关联关系,如果增量网络配置为删除边或修改边的情况,就需要重新计算基础网络配置的转发图模型中的可达点对。
(二)转发图模型中每个点都要存储经过的流信息,包括最终可达的及最终不可达的流,存储量大;而且一条流将会在经过路径的全部点上都存储,存在重复存储的问题。
下面示例性的对基础网络配置和增量网络配置进行说明:
示例性的,在如图6所示的DCN中,包括A、B、C、D四个接口,分别属于不同业务的网段,用于下挂承载业务的虚拟机,如表1所示,接口A属于虚拟私有云(virtual privatecloud,VPC)对应的虚拟路由转发(virtual routing forwarding,VRF)VRF1,网段为20.1.0.0/24,属于ToR Leaf交换机L1;接口B属于VPC VRF1,网段为20.1.1.0/24,属于ToRLeaf交换机L2;接口C属于VPC VRF2,网段为20.2.0.0/24,属于ToR Leaf交换机L3;接口D属于VPC VRF3,网段为20.2.1.0/24,属于ToR Leaf交换机L4。该DCN中还包括Border Leaf交换机BL1,负责跨VPC通信及与外界互联网(Internet)互通。
示例性的,其基础网络配置如下:在交换机L1~L4、BL1上分别导入边界网关协议(border gateway protocol,BGP)以太网虚拟专用网络(ethernet virtual privatenetwork,EVPN)配置,可以互相建立虚拟扩展局域网(virtual extensible local areanetwork,VXLAN)隧道,每个交换机用于建立隧道的虚拟隧道端点(virtual tunnel endpoint,VTEP)IP如表2所示。在初始状态下,属于同一个VPC的网段是互通的,即接口A与接口B能互通。此外,在交换机BL1配置了接口A与接口C的跨VPC互通静态路由:
ip route-static vpn-instance VRF2 20.1.0.0 255.255.255.0VRF1;
ip route-static vpn-instance VRF1 20.2.0.0 255.255.255.0VRF2。
将上述静态路由配置导入BGP EVPN配置,接口A与接口C即能互通。
基础网络配置下发之后,交换机BL1上的转发表如表3所示,交换机L1上的转发表如表4所示,交换机L2上的转发表如表5所示,交换机L3上的转发表如表6所示,其中出接口为其他VRF,表示需要跳转到其他VRF进一步匹配出接口与下一跳IP;出接口为VXLAN,表示即将进入VXLAN隧道,隧道的源IP地址为本地VTEP IP,目的IP地址为下一跳IP。接口A与接口B直接通过二者之间的隧道进行通信,接口A与接口C必须经过交换机BL1中转进行通信。
表1
接口 | 所属VPC | 配置的网段 |
A | VRF1 | 20.1.0.0/24 |
B | VRF1 | 20.1.1.0/24 |
C | VRF2 | 20.2.0.0/24 |
D | VRF3 | 20.2.1.0/24 |
表2
交换机 | VTEP IP |
L1 | 1.1.1.1 |
L2 | 2.2.2.2 |
L3 | 3.3.3.3 |
L4 | 4.4.4.4 |
BL1 | 11.11.11.11 |
表3
表4
表5
表6
示例性的,如图7所示,对图6所示的DCN进行增量网络配置,将业务从接口C迁移到接口D,同时下发ACL阻断接口A与接口B的通信。在交换机BL1配置接口A与接口D的跨VPC互通静态路由:
ip route-static vpn-instance VRF3 20.1.1.0 255.255.255.0 VRF1;
ip route-static vpn-instance VRF1 20.2.1.0 255.255.255.0 VRF3。
将上述静态路由配置导入BGP EVPN,接口A与接口D即能互通。并删除接口A与接口C的跨VPC互通静态路由:
ip route-static vpn-instance VRF2 20.1.0.0 255.255.255.0 VRF1;
ip route-static vpn-instance VRF1 20.2.0.0 255.255.255.0 VRF2。
同时在接口A入方向上配置ACL访问策略,禁止接口A下挂的虚拟机访问接口B下挂的20.1.1.10虚拟机。其中ACL访问策略可以通过模块化服务质量命令行(modular QoScommand line,MQC)实现:
此外,在接口A的配置中会增加如下一条命令,其中inbound表示入方向:
traffic-policy p1 inbound
增量网络配置下发之后,交换机BL1上的转发表如表7所示,交换机L1上的转发表如表8所示,交换机L4上的转发表如表9所示。
表7
表8
表9
本申请实施例提供了一种网络配置的验证方法,对于初次对增量网络配置进行验证时,基于基础网络配置可以建立对应的转发图模型,并得到基础网络配置对应的可达矩阵,通过解析基础网络配置对应的可达矩阵,可以得到基础网络配置对应的关联表,该关联表指示网络中,路径经过的接口和/或链路与该路径的可达点对的关联关系。对于非初次对增量网络配置进行验证时,可以利用已有的基础网络配置对应的关联表。
然后,通过比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,可以得到转发策略发生变更的接口和/或转发路由发生变更的链路。再得到上述接口和/或链路在增量网络配置下所在的路径的第一可达点对,并通过查找上述关联表得到上述接口和/或链路在基础网络配置下所在的路径的第二可达对。第一可达点对将增量网络配置可能影响到可达性的可达点对的搜索范围,缩小至与上述接口和/或链路相关;而第二可达点对是上述接口和/或链路在基础网络配置中涉及的可达点对。通过比较这两个可达点对,即可准确定位到具体哪些可达点对的可达性受到增量网络配置的影响,以及上述影响是否符合配置意图,从而实现对增量网络配置的验证。
针对基础网络配置和增量网络配置可以分别建立对应的转发图模型,关于转发图模型见前面描述,在此不再重复。如图8所示,本申请实施例提供的网络配置的验证方法中,建立网络配置的转发图模型的过程包括:
S801、将网络配置文件转换为网络配置模型。
网络配置文件包括各个网络设备上的配置文件,每个网络设备上的配置文件定义了所使用的协议以及协议的具体配置,比如BGP EVPN配置、静态路由配置、ACL策略配置等。转换后的网络配置模型包括各个网络设备上的配置模型,每个网络设备上的配置模型定义了所使用的协议对象以及协议的属性。转换的过程就是将配置文本转换成内部存储的配置模型。
针对图6所示的DCN,以交换机BL1配置的静态路由为例,转换的过程会建立两个静态路由对象,其中:ip route-static vpn-instance VRF2 20.1.0.0 255.255.255.0VRF1转换出来的一个静态路由对象包括如下属性:所属VPC为VRF2,目的网段为20.1.0.0/24,出接口为VRF1,下一跳IP为默认值NULL。
BGP EVPN配置、ACL策略配置等配置模型也能相应建立。
S802、根据网络配置模型、网络拓扑文件生成网络配置对应的转发表。
根据网络配置模型中定义的各个协议对象,结合网络拓扑,按照协议运行的流程,发布路由通告,选择最优路由,最终路由收敛形成每个网络设备上的转发表。协议(比如BGP协议)运行的流程属于领域公开知识,在这里不再详细阐述。
S803、根据网络配置模型、转发表和网络拓扑生成网络配置的转发图模型。
如前文所述的,转发图模型包括点和边,点表示网络设备的接口,边用于连接两个接口。根据转发表中描述的路由转发行为,即转发表项的出接口与下一跳IP(可以找到对应的跨设备接口),可以通过边将跨设备的两个接口连接在一起。属于同一个出接口的所有转发规则代表的报文空间将会被聚合在一起表示,每个转发规则代表的报文空间将会按照最长前缀匹配原则来计算。
根据配置模型中描述的策略转发行为,可以通过边将同一网络设备的两个接口连接在一起。假如入接口配置了一个ACL策略,属于同一个ACL策略的所有策略规则代表的报文空间将会被聚合在一起表示,每个策略规则代表的报文空间将会按照配置的优先级原则来计算。此外,如果出接口也配置了一个ACL策略,那么这条边对应的转发策略报文空间为入接口与出接口的ACL策略的报文空间的交集。
例如,I1接口入方向的报文可以从I2接口出方向转发出去,I1接口上针对入方向配置了ACL策略来只允许部分报文通过,其报文空间表示为space1,I2接口上正对出方向配置了ACL策略来只允许部分报文通过,其报文空间表示为space2,那么I1接口与I2接口之间的边的报文空间表示为space1&space2。
为了方便计算,报文空间可以用布尔表达式表示,或者,用二元决策图(binarydecision diagram,BDD)数据结构来表示。
此外,ACL策略只是一种转发策略行为,微分段或者策略路由等也属于转发策略。
针对图6所示的DCN,得到的基础网络配置的转发图模型如图9所示,示例性的,(L1,VXLAN)->(L2,VXLAN)这条边的报文空间可以表示为:{(*,20.1.1.0/24,*,*,*)},其中*表示全空间,比如源IP地址为*,表示0.0.0.0/0,因为表4中代表从交换机L1到交换机L2的VXLAN隧道的转发表项只有第二项;(L1,A)->(L1,VXLAN)这条边的报文空间为{(*,*,*,*,*)},因为A接口与VXLAN接口没有配置任何的转发策略,默认全部报文可通过。针对图7所示的DCN,得到的增量网络配置的转发图模型如图10所示,其删除了交换机L3相关部分,新增了交换机L4相关部分。边的报文空间与基础网络配置的转发图模型类似,比如(BL1,VXLAN)->(L4,VXLAN)这条边的报文空间可以表示为:{(*,20.2.1.0/24,*,*,*)},因为表7中代表从交换机BL到交换机L4的VXLAN隧道的转发表项只有第三项;(L1,A)->(L1,VXLAN)这条边的报文空间更新为:{(*,*,*,*,*)-(*,20.1.1.10/32,*,*,*)},因为A接口上配置了一个阻断访问20.1.1.10虚拟机的ACL转发策略。
针对基础网络配置的转发图模型,可以得到基础网络配置对应的可达矩阵,关于可达矩阵见前面描述,在此不再重复。如图11所示,本申请实施例提供的网络配置的验证方法中,得到基础网络配置对应的可达矩阵的过程包括:
S1101、将接口识别为业务接入点,并将全部业务接入点作为求解可达路径的起点。
可以根据业务特性,比如ToR Leaf交换机上所有的桥接域(bridge-domain)接口,或者,根据SDN控制器上逻辑交换机(logic switch)对应的出接口,Border Leaf交换机上出接口等业务信息,将一些接口识别为业务接入点。
S1102、选取一个未计算的起点,将所有接入点作为终点,在转发图模型中遍历所有可达路径,填入可达矩阵的对应位置。
一种遍历方法是深度优先搜索算法,例如,任取一个业务接入点作为起点,转发图模型中的报文空间为全空间,按照深度优先进行搜索,直到到达某个接入点(即终点),此时标记一条可达路径;或者报文空间交集运算结果为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边。
针对图6中示例,最终建立的可达矩阵如表10所示。
表10
A | B | C | D | |
A | Y | Y | Y | |
B | Y | Y | ||
C | Y | Y | ||
D | Y |
矩阵中有值(Y)表示二者可达,无值表示不可达。可达矩阵的每一可达项对应以下可达信息:可达路径和可达报文空间,可以表示为:{(path_i,space_i)},其中i∈[0,n),n为可达路径个数。path_i由一系列链路组成,即path_i可表示为{link_j},其中j∈[0,l),l为链路个数。space_i可表示为{(src_ip,dst_ip,src_port,dst_port,protocol)_k},即{(源IP地址,目的IP地址,源端口,目的端口,协议类型)_k},其中k∈[0,t),t为五元组个数。
例如表10中,可达项(A,B)的值为Y,表示从接口A至接口B是可达的。可达项(A,B)对应的第一条可达路径path_0可表示为:{start->(L1,A)->(L1,VXLAN)->(L2,VXLAN)->(L2,B)->end}。其中的start->(L1,A)表示链路“从交换机L1的接口A接收”,是接口入方向,(L1,VXLAN)->(L2,VXLAN)表示链路“从交换机L1至交换机L2的隧道”,(L2,B)->end表示链路“从交换机L2的接口B发出”,是接口出方向。可达项(A,B)对应的第一个可达报文空间space_0可表示为:{(*,20.1.1.0/24,*,*,*)},其中*表示全空间,比如源IP为*,表示0.0.0.0/0。
通过解析基础网络配置对应的可达矩阵,可以得到基础网络配置对应的关联表。
可达矩阵中每一矩阵项都代表两个业务接入点之间的路径是否可达,可达点对为处于路径两端的一对业务接入点。而每条路径都可以包括至少一条链路,每条链路的两端分别是入接口和出接口,入接口与出接口属于不同的网络设备,入接口和出接口构成一对接口对,这些接口和接口对都是该路径所经过的,因此可以建立关联表,该关联表指示网络中,路径经过的接口和/或链路与该路径的可达点对的关联关系。并且该关联表体现的是在基础网络配置下,接口和/或链路与可达点对之间的关联关系。
具体的,如图12所示,本申请实施例提供的网络配置的验证方法中,解析基础网络配置对应的可达矩阵,得到基础网络配置对应的关联表的过程包括:
S1201、针对可达矩阵中的每条可达路径,提取构成可达路径的各条跨设备链路的入接口和出接口,建立入接口和出接口与可达路径的可达点对的关联关系。
其中,start->(L1,A),(L2,B)->end属于特殊的跨设备链路,且只记录接口(L1,A)、接口(L2,B)的关联关系。
示例性的,以接口A至接口B的可达信息为例,建立的入接口与可达路径的可达点对关联关系以及出接口与可达路径的可达点对的关联关系如表11所示
S1202、如果上述入接口和出接口均不是业务接入点,则建立该链路与可达路径的可达点对的关联关系。
示例性的,以接口A至接口B的可达信息为例,建立的链路与可达路径的可达点对的关联关系如表11所示:
表11
针对所有可达信息建立的关联关系如表12所示:
表12
如图13所示,本申请实施例提供的网络配置的验证方法中,具体的对网络配置进行验证的过程包括:
S1301、比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,以得到网络中转发策略发生变更的接口和/或转发路由发生变更的链路。
具体的,如图14所示,针对每个接口和/或链路,步骤S1301包括:
S13011、如果某一接口和/或链路只在基础网络配置或对应的转发表中存在,则将该接口和/或链路加入删除(DEL)列表,将该接口标记为转发策略发生变更,将该链路标记为转发路由发生变更。
删除列表包括增量网络配置或对应的转发表相对于基础网络配置或对应的转发表删除的接口和/或链路。
S13012、如果某一接口和/或链路只在增量网络配置或对应的转发表中存在,则将该接口和/或链路加入增加(ADD)列表,将该接口标记为转发策略发生变更,将该链路标记为转发路由发生变更。
增加列表包括增量网络配置或对应的转发表相对于基础网络配置或对应的转发表增加的接口和/或链路。
S13013、如果某一接口在基础网络配置和增量网络配置中的转发策略的报文空间不一致,则将该接口加入修改(MOD)列表,并标记为转发策略发生变更。
S13014、如果某一链路在基础网络配置和增量网络配置中的转发路由的报文空间不一致,则将该链路加入修改(MOD)列表,并标记为转发路由发生变更。
修改列表包括增量网络配置相对于基础网络配置改变的接口和/或链路。
示例性的,针对图6和图7中示例,通过比较交换机BL1的增量前后的转发表(即表3与表7),可以发现新增链路(BL1,VXLAN,L4,VXLAN),删除链路(BL1,VXLAN,L3,VXLAN)。通过比较交换机L1的增量前后的转发表(即表4与表8),可以发现链路(L1,VXLAN,BL1,VXLAN)的转发路由的报文空间发生修改,从{(*,20.2.0.0/24,*,*,*)}变更为{(*,20.2.1.0/24,*,*,*)};通过比较交换机L1的增量前后的网络配置,可以发现(L1,A)接口入方向的转发策略的报文空间发生修改.
最终,增量网络配置下发之后,转发策略发生变更的接口和/或转发路由发生变更的链路包括:
增加(ADD)列表:(BL1,VXLAN,L4,VXLAN)、(L4,VXLAN,BL1,VXLAN)。
删除(DEL)列表:(BL1,VXLAN,L3,VXLAN)、(L3,VXLAN,BL1,VXLAN)。
修改(MOD)列表:(L1,VXLAN,BL1,VXLAN)、(L1,A)接口入方向。
S1302、获取第一可达点对。
第一可达点对指示网络中转发策略发生变更的接口和/或转发路由发生变更的链路在增量网络配置下,所在的路径两端的一对业务接入点。
具体的,可以计算在增量网络配置下,经过转发策略发生变更的接口和/或转发路由发生变更的链路的第一路径;取第一路径两端的一对业务接入点作为第一可达点对。如图15所示,得到第一路径的过程包括:
S13021、针对转发策略发生变更的接口,以该接口作为起点,以该接口在增量网络配置对应的转发策略的报文空间作为初始报文空间,以所有业务接入点为终点,在增量网络配置的转发图模型中正向遍历求解第一可达路径。
示例性的,针对图7中示例,对于接口(L1,A),以接口(L1,A)为起点,以该接口在增量网络配置对应的转发策略的报文空间作为初始报文空间,使用与步骤S1101相同的深度优先搜索算法,直到到达某个接入点(即终点),此时标记一条可达路径,或者,直到报文空间交集为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边,最终找到的第一可达路径为:
(L1,A)->(L1,VXLAN)->(L2,VXLAN)->(L2,B)->end,报文空间为:{(*,20.1.1.0/24,*,*,*)-(*,20.1.1.10/32,*,*,*)}。
(L1,A)->(L1,VXLAN)->(BL1,VXLAN)->(L4,VXLAN)->(L4,D)->end,报文空间为{(*,20.2.1.0/24,*,*,*)}。
S13022、针对转发路由发生变更的链路,以该链路的起始接口作为起点,以该链路在增量网络配置对应的转发路由的报文空间作为初始报文空间,以所有业务接入点为终点,在增量网络配置的转发图模型中正向遍历求解第一可达路径。
转发路由的报文空间可以指转发表中的报文空间。
示例性的,针对图7中示例,对于链路(BL1,VXLAN,L4,VXLAN),以该链路的起始接口(BL1,VXLAN)为起点,以该链路在增量网络配置对应的转发表中的报文空间为初始报文空间,以所有业务接入点为终点,使用与步骤S1101相同的深度优先搜索算法,直到到达某个接入点(即终点),此时标记一条可达路径,或者,直到报文空间交集为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边,最终找到的第一可达路径为:
(BL1,VXLAN)->(L4,VXLAN);(L4,D)->end,报文空间为:{(*,20.2.1.0/24,*,*,*)}。
对于链路(L4,VXLAN,BL1,VXLAN),以该链路的起始接口(L4,VXLAN)为起点,以该链路在增量网络配置对应的转发表中的报文空间为初始报文空间,使用与步骤S1101相同的深度优先搜索算法,直到到达某个接入点(即终点),此时标记一条可达路径,或者,直到报文空间交集为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边,最终找到的第一可达路径为:
(L4,VXLAN)->(BL1,VXLAN)->(L1,VXLAN)->(L1,A)->end,报文空间为:{(*,20.1.0.0/24,*,*,*)}。
对于链路(L1,VXLAN,BL1,VXLAN),以该链路的起始接口(L1,VXLAN)为起点,以该链路在增量网络配置对应的转发表中的报文空间为初始报文空间,使用与步骤S1101相同的深度优先搜索算法,直到到达某个接入点(即终点),此时标记一条可达路径,或者,直到报文空间交集为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边,最终找到的第一可达路径为:
(L1,VXLAN)->(BL1,VXLAN)->(L4,VXLAN)->(L4,D)->end,报文空间为:{(*,20.2.1.0/24,*,*,*)}。
S13023、从起点和初始报文空间开始,以所有业务接入点为终点,在增量网络配置的转发图模型中反向遍历求解第二可达路径。
示例性的,针对图7中示例,对于接口(L1,A),以接口(L1,A)为起点,以该接口在增量网络配置对应的转发策略的报文空间作为初始报文空间,使用与步骤S1101相同的深度优先搜索算法,在转发图模型中反向遍历求解,直到到达某个接入点(即终点),此时标记一条可达路径,或者,直到报文空间交集为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边,最终找到的第二可达路径为:
start->(L1,A),报文空间为{(*,*,*,*,*)-(*,20.1.1.10/32,*,*,*)}。
对于链路(BL1,VXLAN,L4,VXLAN),以该链路的起始接口(BL1,VXLAN)为起点,以该链路在增量网络配置对应的转发表中的报文空间为初始报文空间,使用与步骤S1101相同的深度优先搜索算法,在转发图模型中反向遍历求解,直到到达某个接入点(即终点),此时标记一条可达路径,或者,直到报文空间交集为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边,最终找到的第二可达路径为:
start->(L1,A)->(L1,VXLAN)->(BL1,VXLAN),报文空间为{(*,20.2.1.0/24,*,*,*)}。
对于链路(L4,VXLAN,BL1,VXLAN),以该链路的起始接口(L4,VXLAN)为起点,以该链路在增量网络配置对应的转发表中的报文空间为初始报文空间,使用与步骤S1101相同的深度优先搜索算法,在转发图模型中反向遍历求解,直到到达某个接入点(即终点),此时标记一条可达路径,或者,直到报文空间交集为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边,最终找到的第二可达路径为:
start->(L4,D)->(L4,VXLAN),报文空间为{(*,20.1.0.0/24,*,*,*)}。
对于链路(L1,VXLAN,BL1,VXLAN),以该链路的起始接口(L1,VXLAN)为起点,以该链路在增量网络配置对应的转发表中的报文空间为初始报文空间,使用与步骤S1101相同的深度优先搜索算法,在转发图模型中反向遍历求解,直到到达某个接入点(即终点),此时标记一条可达路径,或者,直到报文空间交集为空。然后搜索下一条可达路径,直到遍历完转发图模型的所有边,最终找到的第二可达路径为:
start->(L1,A)->(L1,VXLAN),报文空间为{(*,20.2.1.0/24,*,*,*)}。
S13024、取第一可达路径和第二可达路径的交集,如果第一可达路径的报文空间和第二可达路径的报文空间的交集不为空,则拼接第一可达路径和第二可达路径得到第一路径,并将交集的结果作为该第一路径的报文空间。
示例性的,针对图7中示例,对于接口(L1,A),第一路径为:
start->(L1,A)->(L1,VXLAN)->(L2,VXLAN)->(L2,B)->end,报文空间为:{(*,20.1.1.0/24,*,*,*)-(*,20.1.1.10/32,*,*,*)}。
start->(L1,A)->(L1,VXLAN)->(BL1,VXLAN)->(L4,VXLAN)->(L4,D)->end,报文空间为{(*,20.2.1.0/24,*,*,*)}。
对于链路(BL1,VXLAN,L4,VXLAN),第一路径为:
start->(L1,A)->(L1,VXLAN)->(BL1,VXLAN)->(L4,VXLAN)->(L4,D)->end,报文空间为{(*,20.2.1.0/24,*,*,*)}。
对于链路(L4,VXLAN,BL1,VXLAN),第一路径为:
start->(L4,D)->(L4,VXLAN)->(BL1,VXLAN)->(L1,VXLAN)->(L1,A)->end,报文空间为{(*,20.1.0.0/24,*,*,*)}。
对于链路(L1,VXLAN,BL1,VXLAN),第一路径为:
start->(L1,A)->(L1,VXLAN)->(BL1,VXLAN)->(L4,VXLAN)->(L4,D)->end,报文空间为:{(*,20.2.1.0/24,*,*,*)}。
需要说明的是,上述转发策略发生变更的接口和/或转发路由发生变更的链路可以是前文所述的增加(ADD)列表和修改(MOD)列表中的接口和/或链路,因为对于删除(DEL)列表中的接口和/或链路在增量网络配置中已经不存在了,所以得不到可达路径。
取各条第一路径两端的一对业务接入点得到第一可达点对包括(A,B)、(A,D)、(D,A)。另外,还可以得到第一可达点对的链路列表以及对应的报文空间。
S1303、查找基础网络配置对应的关联表,以得到第二可达点对,并与第一可达点对进行比较,以对增量网络配置进行验证。
第二可达点对指示网络中转发策略发生变更的接口和/或转发路由发生变更的链路在基础网络配置下,所在路径两端的一对业务接入点。
示例性的,对于删除(DEL)列表中的接口和/或链路(BL1,VXLAN,L2,VXLAN),查找关联表可以得到对应的第二可达点对:(A,C)、(C,A)。对于修改(MOD)列表中的接口和/或链路(L1,VXLAN,BL1,VXLAN)、(L1,A)接口入方向,查找关联表可以得到对应的第二可达点对:(A,C)、{(A,B),(A,C)}。这些可达点对进行合并之后最终可以得到第二可达点对包括(A,B)、(A,C)。
将第二可达点对(A,B)、(A,C)与第一可达点对(A,B)、(A,D)、(D,A)进行比较,可以得到:
删除的可达点对:(A,C)、(C,A)。
修改的可达点对:(A,B)。其报文空间从{(*,20.1.1.0/24,*,*,*)}变为{(*,20.1.1.0/24-20.1.1.10,*,*,*)}。
新增的可达点对:(A,D)。其中,该可达点对对应的新增路径为:start->(L1,A)->(L1,VXLAN)->(BL1,VXLAN)->(L4,VXLAN)->(L4,D)->end。该可达点对对应的新增报文空间为{(*,20.2.1.0/24,*,*,*)}。
新增的可达点对:(D,A)。其中,该可达点对对应的新增路径为:start->(L4,D)->(L4,VXLAN)->(BL1,VXLAN)->(L1,VXLAN)->(L1,A)->end。该可达点对对应的新增报文空间为{(*,20.1.0.0/24,*,*,*)}。
通过以上分析,可以对增量网络配置进行验证,即验证上述可达点对与增量网络配置下发后所预期的可达性是否一致。
另外,还可以根据第一可达点对和第二可达点对更新可达矩阵和关联表,相当于将本次增量网络配置作为下一次增量网络配置的基础网络配置,这样就不必重复计算可达矩阵和关联表。
对于根据第一可达点对和第二可达点对更新可达矩阵来说,删除与删除列表对应的矩阵项,增加与增加列表对应的矩阵项,修改与修改列表对应的矩阵项的可达信息。
对于根据第一可达点对和第二可达点对更新关联表来说,删除关联表中与删除列表对应的关联关系,增加与增加列表对应的关联关系,修改与修改列表对应的关联关系。
示例性的,根据第一可达点对和第二可达点对更新可达矩阵如表13所示:例如,新增了可达点对(D,A),将可达矩阵对应的矩阵项修改为Y。
表13
A | B | C | D | |
A | Y | Y | Y | |
B | Y | Y | ||
C | Y | |||
D | Y | Y |
示例性的,根据第一可达点对和第二可达点对更新关联表如表14所示:例如,接口入方向,新增了接口(L4,D)与可达点对(D,A)的关联,删除了(L3,C)与可达点对(C,A)的关联。
表14
本申请实施例提供的网络配置的验证方法,通过比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,以得到转发策略发生变更的接口和/或转发路由发生变更的链路;获取第一可达点对,第一可达点对指示接口和/或链路在增量网络配置下,所在的路径的一对业务接入点;查找基础网络配置对应的关联表,以得到第二可达点对,并与第一可达点对进行比较,以对增量网络配置进行验证;其中,关联表指示网络中,路径经过的接口和/或链路与路径的可达点对的关联关系,第二可达点对指示接口和/或链路在基础网络配置下,所在路径的一对业务接入点。第一可达点对将增量网络配置可能影响到可达性的可达点对的搜索范围,缩小至与上述接口和/或链路相关;而第二可达点对是上述接口和/或链路在基础网络配置中涉及的可达点对。通过比较这两个可达点对,即可准确定位到具体哪些可达点对的可达性受到增量网络配置的影响,以及上述影响是否符合配置意图,从而实现对增量网络配置的验证。由于不必针对增量网络配置对全网的可达点对进行分析,只针对变更的接口和/或链路相关的可达点对进行分析,因此可以减少验证网络配置的计算量。
图13的网络配置的验证方法与图2的网络配置的验证方法相比:
首先,可以解决关联表无法找到新增的可达点对的问题。在图6和图7的示例中,对于新增的可达点对(A,D),图2是无法建立任何关联关系的,因为不存在从接口A至接口D的可达路径。而图13的方案是通过求第一路径的方式来得到新增的可达点对,因此可以找到可达点对(A,D),不存在遗漏的问题。
其次,可以解决关联粒度太粗带来的重复计算问题。在图6和图7的示例中,如果采用图2的方案(以网络设备为粒度进行关联),那么交换机L1会关联可达点对(A,B)和(A,C),当接口A的转发策略发生变更时,会认为交换机L1发生了变更,所以会重新计算点对(A,B)、(A,C)、(B,A)、(C,A)两两之间的可达性。其中点对(B,A)的可达性没有任何变化,本无需计算。如果交换机L1上承载了更多的可达点对,那么重复计算问题更严重。而图13的方案是基于变更接口及链路来求第一路径,而不是基于网络设备的粒度进行关联,避免了对点对(B,A)的可达性的重复计算。
图13的网络配置的验证方法与图4的网络配置的验证方法相比:可以解决全流存储带来的重复计算与大存储开销问题。
在图6和图7的示例中,如果采用图4的方案(全流存储),而没有建立关联表,每个接口存储可能经过的流,比如接口A会存储流对象:
A->B,(*,20.1.0.0/24,*,*,*)
A->C,(*,20.2.0.0/24,*,*,*)
A->D,(*,20.2.1.0/24,*,*,*)
当接口A的转发策略发生变更时,一方面基于基础网络配置的转发图模型求解这三条流的可达情况,最终会求出接口A至接口B可达以及接口A至接口C可达,另一方面基于增量网络配置的转发图模型求解这三条流的可达情况,最终会求出接口A至接口B可达以及接口A至接口D可达,从而对比得出转发策略发生变更的接口。在这个过程中,基于基础网络配置的转发图模型求解属于重复计算。
此外,每个接口需要存储所有可能经过的流,包括最终无法到达的流,比如接口A存储接口A至接口D的流,还存储具体的流信息。图13的方案针对每个接口只用存储关联的可达点对,不必存储不可达点对,减少了存储开销。另外,因为在复杂场景下(比如配置了转发策略只允许部分报文通过时),流信息需要显示地表达出报文空间,因此包括IP与端口(Port)的各种组合,而图13的方案不必存储具体的流信息,减少了存储开销。
本申请实施例提供的方案除可以用于对增量网络配置进行验证的场景,还可以应用于对增量数据面进行验证的场景。在对增量数据面进行验证的场景中,转发表不是通过对基础网络配置进行协议仿真得到,而是通过抓取网络设备的转发表而得到。对数据面进行验证的场景更适合事后验证,即网络配置下发到网络设备并生效之后,抓取网络设备实际生成的转发表,结合抓取的网络配置信息,验证网络状态是否满足运行意图。
本申请实施例还提供了一种网络配置的验证装置,该装置用于实现上述各种方法。该网络配置的验证装置可以为上述方法实施例中的SDN控制器,或者包含上述SDN控制器的装置,或者为SDN控制器内的芯片或功能模块。
可以理解的是,该网络配置的验证装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法实施例对网络配置的验证装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以网络配置的验证装置为上述方法实施例中的SDN控制器为例。图16示出了一种网络配置的验证装置160的结构示意图。该网络配置的验证装置160包括比较模块1601、获取模块1602、解析模块1603,可选的,还包括更新模块1604。比较模块1601可以执行图13中的步骤S1301,图14中的步骤S13011-S13014。获取模块1602可以执行图13中的步骤S1302,图15中的步骤S13021-S13024。解析模块1603可以执行图12中的步骤S1201-S1202,图13中的步骤S1303。
示例性的,比较模块1601,用于比较基础网络配置与增量网络配置,以及,比较基础网络配置对应的转发表与增量网络配置对应的转发表,以得到转发策略发生变更的接口和/或转发路由发生变更的链路;获取模块1602,获取第一可达点对,其中,第一可达点对指示接口和/或链路在增量网络配置下,所在的路径的一对业务接入点;比较模块1601,还用于查找基础网络配置对应的关联表,以得到第二可达点对,并与第一可达点对进行比较,以对增量网络配置进行验证;其中,关联表指示网络中,路径经过的接口和/或链路与路径的可达点对的关联关系,第二可达点对指示接口和/或链路在基础网络配置下,所在路径的一对业务接入点。
在一种可能的实施方式中,还包括:解析模块1603,用于解析基础网络配置对应的可达矩阵,以得到关联表,其中,可达矩阵指用于表示网络中的业务接入点两两之间是否可达的矩阵。
在一种可能的实施方式中,还包括:更新模块1604,用于根据第一可达点对更新可达矩阵和关联表。
在一种可能的实施方式中,解析模块1603,具体用于:针对可达矩阵中的每条可达路径,提取构成可达路径的各条跨设备链路的入接口和出接口,建立入接口和出接口与可达路径的可达点对的关联关系;如果入接口和出接口均不是业务接入点,则建立链路与可达路径的可达点对的关联关系。
在一种可能的实施方式中,比较模块1601具体用于:如果接口和/或链路只在基础网络配置或对应的转发表中存在,则将接口和/或链路加入删除列表,将接口标记为转发策略发生变更,将链路标记为转发路由发生变更;如果接口和/或链路只在增量网络配置或对应的转发表中存在,则将接口和/或链路加入增加列表,将接口标记为转发策略发生变更,将链路标记为转发路由发生变更;如果接口在基础网络配置和增量网络配置中的转发策略的报文空间不一致,则将接口加入修改列表,并标记为转发策略发生变更;如果链路在基础网络配置和增量网络配置中的转发路由的报文空间不一致,则将链路加入修改列表,并标记为转发路由发生变更。
在一种可能的实施方式中,获取模块1602,具体用于:计算在增量网络配置下,经过接口和/或链路的第一路径;取第一路径两端的一对业务接入点作为第一可达点对。
在一种可能的实施方式中,获取模块1602,具体用于:针对转发策略发生变更的接口,以接口作为起点,以接口在增量网络配置对应的转发策略的报文空间作为初始报文空间,以所有业务接入点为终点,在增量网络配置的转发图模型中正向遍历求解第一可达路径;针对转发路由发生变更的链路,以链路的起始接口作为起点,以链路在增量网络配置对应的转发路由的报文空间作为初始报文空间,以所有业务接入点为终点,在增量网络配置的转发图模型中正向遍历求解第一可达路径;从起点和初始报文空间开始,以所有业务接入点为终点,在转发图模型中反向遍历求解第二可达路径;取第一可达路径和第二可达路径的交集,如果第一可达路径的报文空间和第二可达路径的报文空间的交集不为空,则拼接第一可达路径和第二可达路径得到第一路径,并将交集的结果作为第一路径的报文空间。
在本实施例中,该网络配置的验证装置160以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。
具体的,图8中的各模块的功能/实现过程可以通过终端设备中的处理器调用存储器中存储的计算机执行指令来实现。
由于本实施例提供的网络配置的验证装置160可执行上述方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
如图17所示,本申请实施例还提供了一种网络配置的验证装置,该网络配置的验证装置170包括处理器1701、存储器1702和网络接口1703,处理器1701、存储器1702和网络接口1703耦合,当处理器1701执行存储器1702中的计算机程序或指令时,图12-图15中对应的方法被执行。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机或处理器上运行时,使得计算机或处理器执行图12-图15中对应的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当指令在计算机或处理器上运行时,使得计算机或处理器执行图12-图15中对应的方法。
本申请实施例提供了一种芯片***,该芯片***包括处理器,用于网络配置的验证装置执行图12-图15中对应的方法。
在一种可能的设计中,该芯片***还包括存储器,该存储器,用于保存必要的程序指令和数据。该芯片***,可以包括芯片,集成电路,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
其中,本申请提供的网络配置的验证装置、芯片、计算机存储介质、计算机程序产品或芯片***均用于执行上文所述的方法,因此,其所能达到的有益效果可参考上文所提供的实施方式中的有益效果,此处不再赘述。
本申请实施例涉及的处理器可以是一个芯片。例如,可以是现场可编程门阵列(field programmable gate array,FPGA),可以是专用集成芯片(application specificintegrated circuit,ASIC),还可以是***芯片(system on chip,SoC),还可以是中央处理器(central processor unit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(microcontroller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。
本申请实施例涉及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种网络配置的验证方法,其特征在于,包括:
针对基础网络配置对应的可达矩阵中的每条可达路径,提取构成所述可达路径的各条跨设备链路的入接口和出接口,在所述基础网络配置对应的关联表中建立所述入接口和所述出接口与所述可达路径的可达点对的关联关系;所述可达矩阵指用于表示网络中的业务接入点两两之间是否可达的矩阵;
如果所述入接口和所述出接口均不是业务接入点,则在所述基础网络配置对应的关联表中建立所述链路与所述可达路径的可达点对的关联关系,所述链路以所述入接口和所述出接口的组合指示;
比较所述基础网络配置与增量网络配置,以及,比较所述基础网络配置对应的转发表与所述增量网络配置对应的转发表,以得到网络中转发策略发生变更的接口和/或转发路由发生变更的链路;
获取第一可达点对,其中,所述第一可达点对指示所述接口和/或所述链路在所述增量网络配置下,所在的路径的一对业务接入点;
查找所述基础网络配置对应的关联表,以得到第二可达点对,并与所述第一可达点对进行比较,以对所述增量网络配置进行验证;其中,所述第二可达点对指示所述接口和/或链路在所述基础网络配置下,所在路径的一对业务接入点。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据所述第一可达点对更新所述可达矩阵和所述关联表。
3.根据权利要求1或2所述的方法,其特征在于,所述比较所述基础网络配置与增量网络配置,以及,比较所述基础网络配置对应的转发表与所述增量网络配置对应的转发表,以得到网络中转发策略发生变更的接口和/或转发路由发生变更的链路,包括:
如果所述接口和/或所述链路只在所述基础网络配置或对应的转发表中存在,则将所述接口和/或链路加入删除列表,将所述接口标记为转发策略发生变更,将所述链路标记为转发路由发生变更;
如果所述接口和/或所述链路只在所述增量网络配置或对应的转发表中存在,则将所述接口和/或所述链路加入增加列表,将所述接口标记为转发策略发生变更,将所述链路标记为转发路由发生变更;
如果所述接口在所述基础网络配置和所述增量网络配置中的转发策略的报文空间不一致,则将所述接口加入修改列表,并标记为转发策略发生变更;
如果所述链路在所述基础网络配置和所述增量网络配置中的转发路由的报文空间不一致,则将所述链路加入所述修改列表,并标记为转发路由发生变更。
4.根据权利要求1或2所述的方法,其特征在于,所述获取第一可达点对,包括:
计算在所述增量网络配置下,经过所述接口和/或链路的第一路径;
取所述第一路径两端的一对业务接入点作为所述第一可达点对。
5.根据权利要求4所述的方法,其特征在于,所述计算在所述增量网络配置下,经过所述接口和/或链路的第一路径,包括:
针对转发策略发生变更的接口,以所述接口作为起点,以所述接口在所述增量网络配置对应的转发策略的报文空间作为初始报文空间,以所有业务接入点为终点,在所述增量网络配置的转发图模型中正向遍历求解第一可达路径;
针对转发路由发生变更的链路,以所述链路的起始接口作为起点,以所述链路在所述增量网络配置对应的转发路由的报文空间作为初始报文空间,以所有业务接入点为终点,在所述增量网络配置的转发图模型中正向遍历求解所述第一可达路径;
从所述起点和所述初始报文空间开始,以所有业务接入点为终点,在所述转发图模型中反向遍历求解第二可达路径;
取所述第一可达路径和所述第二可达路径的交集,如果所述第一可达路径的报文空间和所述第二可达路径的报文空间的交集不为空,则拼接所述第一可达路径和所述第二可达路径得到所述第一路径,并将交集的结果作为所述第一路径的报文空间。
6.一种网络配置的验证装置,其特征在于,包括:
解析模块,用于针对基础网络配置对应的可达矩阵中的每条可达路径,提取构成所述可达路径的各条跨设备链路的入接口和出接口,在所述基础网络配置对应的关联表中建立所述入接口和所述出接口与所述可达路径的可达点对的关联关系;所述可达矩阵指用于表示网络中的业务接入点两两之间是否可达的矩阵;
如果所述入接口和所述出接口均不是业务接入点,则在所述基础网络配置对应的关联表中建立所述链路与所述可达路径的可达点对的关联关系,所述链路以所述入接口和所述出接口的组合指示;
比较模块,用于比较所述基础网络配置与增量网络配置,以及,比较所述基础网络配置对应的转发表与所述增量网络配置对应的转发表,以得到转发策略发生变更的接口和/或转发路由发生变更的链路;
获取模块,获取第一可达点对,其中,所述第一可达点对指示所述接口和/或所述链路在所述增量网络配置下,所在的路径的一对业务接入点;
所述比较模块,还用于查找所述基础网络配置对应的关联表,以得到第二可达点对,并与所述第一可达点对进行比较,以对所述增量网络配置进行验证;其中,所述第二可达点对指示所述接口和/或链路在所述基础网络配置下,所在路径的一对业务接入点。
7.根据权利要求6所述的装置,其特征在于,还包括:
更新模块,用于根据所述第一可达点对更新所述可达矩阵和所述关联表。
8.根据权利要求6或7所述的装置,其特征在于,所述比较模块具体用于:
如果所述接口和/或所述链路只在所述基础网络配置或对应的转发表中存在,则将所述接口和/或链路加入删除列表,将所述接口标记为转发策略发生变更,将所述链路标记为转发路由发生变更;
如果所述接口和/或所述链路只在所述增量网络配置或对应的转发表中存在,则将所述接口和/或所述链路加入增加列表,将所述接口标记为转发策略发生变更,将所述链路标记为转发路由发生变更;
如果所述接口在所述基础网络配置和所述增量网络配置中的转发策略的报文空间不一致,则将所述接口加入修改列表,并标记为转发策略发生变更;
如果所述链路在所述基础网络配置和所述增量网络配置中的转发路由的报文空间不一致,则将所述链路加入所述修改列表,并标记为转发路由发生变更。
9.根据权利要求6或7所述的装置,其特征在于,所述获取模块,具体用于:
计算在所述增量网络配置下,经过所述接口和/或链路的第一路径;
取所述第一路径两端的一对业务接入点作为所述第一可达点对。
10.根据权利要求9所述的装置,其特征在于,所述获取模块,具体用于:
针对转发策略发生变更的接口,以所述接口作为起点,以所述接口在所述增量网络配置对应的转发策略的报文空间作为初始报文空间,以所有业务接入点为终点,在所述增量网络配置的转发图模型中正向遍历求解第一可达路径;
针对转发路由发生变更的链路,以所述链路的起始接口作为起点,以所述链路在所述增量网络配置对应的转发路由的报文空间作为初始报文空间,以所有业务接入点为终点,在所述增量网络配置的转发图模型中正向遍历求解所述第一可达路径;
从所述起点和所述初始报文空间开始,以所有业务接入点为终点,在所述转发图模型中反向遍历求解第二可达路径;
取所述第一可达路径和所述第二可达路径的交集,如果所述第一可达路径的报文空间和所述第二可达路径的报文空间的交集不为空,则拼接所述第一可达路径和所述第二可达路径得到所述第一路径,并将交集的结果作为所述第一路径的报文空间。
11.一种网络配置的验证装置,其特征在于,包括:
存储器,用于存储计算机程序;
与所述存储器相连的处理器,用于通过调用所述存储器中存储的计算机程序以使得所述装置执行如权利要求1至5任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1至5任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010615579.8A CN113872784B (zh) | 2020-06-30 | 2020-06-30 | 网络配置的验证方法和装置 |
PCT/CN2021/103512 WO2022002123A1 (zh) | 2020-06-30 | 2021-06-30 | 网络配置的验证方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010615579.8A CN113872784B (zh) | 2020-06-30 | 2020-06-30 | 网络配置的验证方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113872784A CN113872784A (zh) | 2021-12-31 |
CN113872784B true CN113872784B (zh) | 2022-12-06 |
Family
ID=78981432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010615579.8A Active CN113872784B (zh) | 2020-06-30 | 2020-06-30 | 网络配置的验证方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113872784B (zh) |
WO (1) | WO2022002123A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115442297B (zh) * | 2022-09-06 | 2023-08-22 | 中电云数智科技有限公司 | 一种基于bgp实现eip智能接入的***和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272393A (zh) * | 2008-05-14 | 2008-09-24 | 杭州华三通信技术有限公司 | 基于链路状态路由协议的路由计算方法和网络节点 |
CN103218497A (zh) * | 2013-04-24 | 2013-07-24 | 南京大学 | 基于增量线性规划的动态***在线增量式快速验证***及方法 |
WO2020069647A1 (en) * | 2018-10-03 | 2020-04-09 | Huawei Technologies Co., Ltd. | System for deploying incremental network updates |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8887266B2 (en) * | 2010-01-08 | 2014-11-11 | Board Of Trustees Of Michigan State University | Method for computing network reachability |
US10057166B2 (en) * | 2016-09-13 | 2018-08-21 | Fujitsu Limited | Network verification |
CN106656792B (zh) * | 2016-11-30 | 2019-06-28 | 中国人民解放军国防科学技术大学 | 一种基于sdn架构的bgp路由可信验证方法 |
US20180375730A1 (en) * | 2017-06-23 | 2018-12-27 | Infinera Corporation | Technique for verification of newtork state after device upgrades |
CN109768874B (zh) * | 2017-11-10 | 2020-10-16 | 华为技术有限公司 | 一种网络中配置变更的方法及装置 |
US20190238410A1 (en) * | 2018-01-31 | 2019-08-01 | Hewlett Packard Enterprise Development Lp | Verifying network intents |
US10938667B2 (en) * | 2018-12-20 | 2021-03-02 | Hewlett Packard Enterprise Development Lp | Incremental intent checking for stateful networks |
-
2020
- 2020-06-30 CN CN202010615579.8A patent/CN113872784B/zh active Active
-
2021
- 2021-06-30 WO PCT/CN2021/103512 patent/WO2022002123A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101272393A (zh) * | 2008-05-14 | 2008-09-24 | 杭州华三通信技术有限公司 | 基于链路状态路由协议的路由计算方法和网络节点 |
CN103218497A (zh) * | 2013-04-24 | 2013-07-24 | 南京大学 | 基于增量线性规划的动态***在线增量式快速验证***及方法 |
WO2020069647A1 (en) * | 2018-10-03 | 2020-04-09 | Huawei Technologies Co., Ltd. | System for deploying incremental network updates |
Also Published As
Publication number | Publication date |
---|---|
CN113872784A (zh) | 2021-12-31 |
WO2022002123A1 (zh) | 2022-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11611504B2 (en) | Planning and managing network probes using centralized controller | |
CN110521169B (zh) | 用于服务链的策略保证 | |
US10200279B1 (en) | Tracer of traffic trajectories in data center networks | |
US9438512B2 (en) | Stacking metadata contexts for service chains | |
US10069764B2 (en) | Ruled-based network traffic interception and distribution scheme | |
US9736263B2 (en) | Temporal caching for ICN | |
US10142183B2 (en) | Snapshotting and instantiating a virtual topology | |
US10355971B2 (en) | System and method for data path validation and verification | |
US20200267056A1 (en) | Transforming data based on a virtual topology | |
US10819573B2 (en) | Hierarchical coherency for network function virtualization | |
US11855893B2 (en) | Tag-based cross-region segment management | |
US11799755B2 (en) | Metadata-based cross-region segment routing | |
KR101841026B1 (ko) | 최적 경로 설정을 위한 서비스 기능 체이닝 네트워크 시스템 | |
US20220358108A1 (en) | Historical graph database | |
CN113872784B (zh) | 网络配置的验证方法和装置 | |
CN107294746B (zh) | 一种部署业务的方法及设备 | |
US11991211B1 (en) | Symmetric cross-region network data flow management | |
US11936558B1 (en) | Dynamic evaluation and implementation of network mutations | |
CN115622935A (zh) | 基于网络的路径处理方法、***和存储介质 | |
CN108512771A (zh) | 一种数据流负载分担的方法和设备 | |
US20170012869A1 (en) | Forwarding table management in computer networks | |
CN111478808A (zh) | 协助配置更新验证的方法、***、电子设备及存储介质 | |
US12021902B1 (en) | Network configuration analysis and management | |
WO2023207048A1 (zh) | 一种网络意图挖掘方法、装置及相关设备 | |
Ziri et al. | Service chaining implementation in network function virtualization with software defined networking |
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 |