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

设备配置方法、网络设备、芯片及计算机可读存储介质

文献发布时间:2024-04-18 19:59:31


设备配置方法、网络设备、芯片及计算机可读存储介质

技术领域

本申请涉及通信领域,尤其涉及一种设备配置方法、网络设备、芯片及计算机可读存储介质。

背景技术

现有网络自动化运维技术一般是通过命令行接口(Comand Line Interface,CLI)对网络设备进行配置操作。由于网络设备厂商众多,品牌各异,且各厂商之间、品牌之间的管理配置方式不一致,即CLI配置命令不同,导致网络设备的维护难度大。

运维人员为了提升设备运维效率,一般会使用CLI模板技术,实现将配置数据批量复制到多台网络设备。而现有CLI模板之间相互独立,无法实现模板的层次化定制,运维效率仍然较低下。

发明内容

有鉴于此,有必要提供一种设备配置方法,解决现有技术中网络设备运维难度大,效率低下的问题。

本申请实施例第一方面公开了一种设备配置方法,包括:基于另一个下一代(YetAnother Next Generation,YANG)模型对配置模板进行解析,确定配置模板继承的父配置模板和/或聚合的子配置模板;若配置模板继承有父配置模板和/或聚合有子配置模板,基于配置模板及配置模板的父配置模板和/或子配置模板,转换得到生效配置模板,配置模板及配置模板的父配置模板和/或子配置模板均满足YANG模型的YANG语言规范;获取设备配置参数,及将设备配置参数与生效配置模板进行关联;将关联有设备配置参数的生效配置模板转换为配置报文;将配置报文发送至网络设备。

采用该技术方案,使用模板技术对网络设备进行网络配置,可以提升网络设备的运维效率,为网络设备灵活定制不同的网络配置参数,且配置模板遵守YANG模型的YANG语言规范,使得配置模板可以运用于基于YANG模型的网络设备配置中,配置模板之间可以具有模板继承关系和/或模板聚合关系,基于层次化的模板设计理念,配置模板的重用率高、易于维护,配置模板之间可以根据实际网络配置需求进行灵活组合,网络配置需求易于实现。

在一些实施例中,设备配置方法还包括:若配置模板未继承有父配置模板和聚合有子配置模板,基于配置模板转换得到所述生效配置模板。

采用该技术方案,若配置模板未继承有父配置模板和聚合有子配置模板,表明配置模板未继承其他配置模板的配置命令集或者引用其他配置模板的配置命令集,可以直接对配置模板进行转换得到生效配置模板。

在一些实施例中,在基于YANG模型对配置模板进行解析之前,包括:获取与配置模板关联的YANG模型。

采用该技术方案,通过使用与配置模板关联的YANG模型对配置模板进行解析,可避免出现使用不正确的YANG模型导致无法解析配置模板的情形。

在一些实施例中,获取与配置模板关联的YANG模型,包括:获取配置模板运用的设备类型或者设备型号;根据设备类型或者设备型号,确定与配置模板关联的YANG模型。

采用该技术方案,不同的设备类型或者设备型号可能对应不同的YANG模型,可以预先为配置模板设定其可运用的设备类型或者设备型号,进而可以通过获取配置模板运用的设备类型或者设备型号确定与配置模板关联的YANG模型。

在一些实施例中,基于配置模板及配置模板的父配置模板和/或子配置模板,转换得到生效配置模板,包括:基于YANG模型对配置模板及配置模板的父配置模板和/或子配置模板进行YANG语法校验,所述配置模板继承的父配置模板和/或聚合的子配置模板基于所述YANG模型的模型类型进行配置的;若配置模板及配置模板的父配置模板和/或子配置模板均校验通过,基于配置模板及父配置模板和/或子配置模板,转换得到生效配置模板。

采用该技术方案,基于YANG模型的模型类型配置模板的继承和/或聚合关系,且配置模板无需包含校验逻辑,由执行设备配置方法的设备自动基于YANG模型对配置模板进行校验,可以降低运维人员编写配置模板的门槛,及在配置模板及配置模板的父配置模板和/或子配置模板均校验通过时,再基于配置模板及父配置模板和/或子配置模板转换得到生效配置模板,避免转换得到的生效配置模板存在YANG语法错误。

在一些实施例中,将关联有设备配置参数的生效配置模板转换为配置报文,包括:基于YANG模型对关联有设备配置参数的生效配置模板进行YANG语义校验;若生效配置模板校验通过,将关联有设备配置参数的生效配置模板转换为所述配置报文。

采用该技术方案,基于YANG模型对生效配置模板进行YANG语义校验,实现检查生效配置模板是否存在YANG语义错误,在生效配置模板校验通过之后将关联有设备配置参数的生效配置模板转换为配置报文,减少后续可能出现的网络配置错误,提升网络设备运维效率。

在一些实施例中,生效配置模板包括变量,将关联有设备配置参数的生效配置模板转换为配置报文,包括:基于设备配置参数对生效配置模板中的变量进行赋值处理,得到配置报文。

采用该技术方案,配置模板包括一个或多个变量,基于配置模板转换得到生效配置模板亦包括一个或多个变量,通过对生效配置模板中的变量进行赋值处理,可得到配置报文。

在一些实施例中,将关联有设备配置参数的生效配置模板转换为配置报文,包括:获取网络设备支持的网络配置协议;将关联有设备配置参数的生效配置模板转换为配置报文,配置报文的格式基于网络配置协议确定。

采用该技术方案,下发给网络设备的配置报文的格式基于网络设备支持的网络配置协议进行确定,使得网络设备可以基于配置报文进行相应的网络配置。

在一些实施例中,配置报文的格式包括基于JavaScript语言的对象简谱(JavaScript Object Notation,JSON)格式或者可扩展标记语言(Extensive MarkupLanguage,XML)格式。

采用该技术方案,配置报文的格式可以包括JSON格式或者XML格式,例如对于支持RESTCONF协议的网络设备,下发的配置报文可以是JSON格式或者XML格式,对于支持NETCONF协议的网络设备,下发的配置报文可以是XML格式。

在一些实施例中,设备配置方法还包括:响应于配置模板的创建指令,开启模板创建界面,模板创建界面包括多个配置项;基于多个配置项的内容生成配置模板。

采用该技术方案,运维人员可以使用模板创建界面创建配置模板,例如对模板创建界面中的配置项进行内容填写或者内容选择,配置模板创建简单、方便,可以降低运维人员编写配置模板的门槛。

本申请实施例第二方面公开了一种设备配置方法,应用于第一网络设备与第二网络设备,设备配置方法包括:第一网络设备基于YANG模型对多个配置模板进行解析,得到生效配置模板,多个配置模板之间包括模板继承关系和/或模板聚合关系,多个配置模板均满足YANG模型的YANG语言规范;第一网络设备获取设备配置参数,及将设备配置参数与生效配置模板进行关联;第一网络设备将关联有设备配置参数的生效配置模板转换为配置报文;第一网络设备将配置报文发送至第二网络设备;第二网络设备基于配置报文进行相应的网络配置。

采用该技术方案,使用模板技术对第二网络设备进行网络配置,可以提升第二网络设备的运维效率,为第二网络设备灵活定制不同的网络配置参数,且配置模板遵守YANG模型的YANG语言规范,使得配置模板可以运用于基于YANG模型的网络设备配置中,配置模板之间可以具有模板继承关系和/或模板聚合关系,基于层次化的模板设计理念,配置模板的重用率高、易于维护,配置模板之间可以根据实际网络配置需求进行灵活组合,网络配置需求易于实现。

在一些实施例中,在第一网络设备基于YANG模型对多个配置模板进行解析之前,包括:第一网络设备获取与多个配置模板关联的YANG模型。

采用该技术方案,第一网络设备通过使用与配置模板关联的YANG模型对配置模板进行解析,可避免出现使用不正确的YANG模型导致无法解析配置模板的情形。

在一些实施例中,第一网络设备获取与多个配置模板关联的YANG模型,包括:第一网络设备获取多个配置模板运用的设备类型或者设备型号;第一网络设备根据设备类型或者设备型号,确定与多个配置模板关联的YANG模型。

采用该技术方案,不同的设备类型或者设备型号可能对应不同的YANG模型,可以预先为配置模板设定其可运用的设备类型或者设备型号,进而第一网络设备可以通过获取配置模板运用的设备类型或者设备型号确定与配置模板关联的YANG模型。

在一些实施例中,第一网络设备基于YANG模型对多个配置模板进行解析,得到生效配置模板,包括:第一网络设备基于YANG模型对多个配置模板中的每个配置模板进行YANG语法校验与模板继承关系和/或模板聚合关系解析,所述模板继承关系和/或所述模板聚合关系解析基于所述YANG模型的模型类型进行配置的;若每个配置模板均校验通过,第一网络设备基于解析结果将多个配置模板转换为所述生效配置模板。

采用该技术方案,基于YANG模型的模型类型配置模板的继承和/或聚合关系,且配置模板无需包含校验逻辑,由第一网络设备自动基于YANG模型对配置模板进行校验,可以降低运维人员编写配置模板的门槛,及在多个配置模板均校验通过时,再基于多个配置模板转换得到生效配置模板,避免转换得到的生效配置模板存在YANG语法错误。

在一些实施例中,第一网络设备将关联有所述设备配置参数的生效配置模板转换为配置报文,包括:第一网络设备基于YANG模型对关联有设备配置参数的生效配置模板进行YANG语义校验;若生效配置模板校验通过,第一网络设备将关联有设备配置参数的生效配置模板转换为配置报文。

采用该技术方案,第一网络设备基于YANG模型对生效配置模板进行YANG语义校验,实现检查生效配置模板是否存在YANG语义错误,在生效配置模板校验通过之后将关联有设备配置参数的生效配置模板转换为配置报文,减少后续可能出现的网络配置错误,提升第二网络设备运维效率。

在一些实施例中,生效配置模板包括变量,第一网络设备将关联有设备配置参数的生效配置模板转换为配置报文,包括:第一网络设备基于设备配置参数对生效配置模板中的变量进行赋值处理,得到配置报文。

采用该技术方案,配置模板包括一个或多个变量,基于配置模板转换得到生效配置模板亦包括一个或多个变量,第一网络设备通过对生效配置模板中的变量进行赋值处理,可得到配置报文。

在一些实施例中,第一网络设备将关联有设备配置参数的生效配置模板转换为配置报文,包括:第一网络设备获取第二网络设备支持的网络配置协议;第一网络设备将关联有设备配置参数的生效配置模板转换为所述配置报文,配置报文的格式基于网络配置协议确定。

采用该技术方案,第一网络设备下发给第二网络设备的配置报文的格式基于第二网络设备支持的网络配置协议进行确定,使得第二网络设备后续可以基于配置报文进行相应的网络配置。

在一些实施例中,配置报文的格式包括JSON格式或者XML格式,第一网络设备包括控制器,第二网络设备包括交换机、路由器、转发器中的一个。

采用该技术方案,控制器下发给交换机,或者路由器,或者转发器的配置报文的格式可以包括JSON格式或者XML格式,例如对于支持RESTCONF协议的网络设备,下发的配置报文可以是JSON格式或者XML格式,对于支持NETCONF协议的网络设备,下发的配置报文可以是XML格式。

在一些实施例中,设备配置方法还包括:第一网络设备响应于配置模板的创建指令,开启模板创建界面,模板创建界面包括多个配置项;第一网络设备基于多个配置项的内容生成配置模板。

采用该技术方案,运维人员可以使用模板创建界面创建配置模板,例如对模板创建界面中的配置项进行内容填写或者内容选择,配置模板创建简单、方便,可以降低运维人员编写配置模板的门槛。

第三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储了计算机指令,当计算机指令在网络设备的处理器上运行时,使得网络设备执行如第一方面所述的设备配置方法。

第四方面,本申请实施例提供一种网络设备,网络设备包括处理器和存储器,存储器用于存储指令,处理器用于调用存储器中的指令,使得网络设备执行如第一方面所述的设备配置方法。

第五方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面所述的设备配置方法。

第六方面,提供一种装置,所述装置具有实现上述第一方面所提供的方法中设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。

可以理解地,上述提供的第三方面所述的计算机可读存储介质,第四方面所述的网络设备,第五方面所述的计算机程序产品,第六方面所述的装置均与上述第一方面的方法对应,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

附图说明

图1为本申请一实施例提供的设备配置方法的应用场景示意图;

图2为本申请一实施例提供的控制设备的架构示意图;

图3a为本申请一实施例提供的模板引擎的架构示意图;

图3b为本申请一实施例提供的基于模板引擎转换得到配置报文的流程示意图;

图3c为本申请一实施例提供的多个配置模板的展示示意图;

图3d为本申请一实施例提供的模板引擎的嵌套调用示意图;

图4为本申请一实施例提供的设备配置方法的流程示意图;

图5为本申请一实施例提供的用于进行配置模板创建的用户界面示意图;

图6为本申请一实施例提供的多个配置模板的关联关系示意图;

图7为本申请一实施例提供的设备配置方法的流程示意图;

图8为本申请一实施例提供的控制设备的示意图。

具体实施方式

需要说明的是,本申请中“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。本申请的说明书和权利要求书及附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不是用于描述特定的顺序或先后次序。

在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

为了便于理解,示例性的给出了部分与本申请实施例相关概念的说明以供参考。

NETCONF:网络配置协议,是由互联网工程任务组(Internet Engineering TaskForce,IETF)开发并标准化的网络管理协议,NETCONF提供了安装、操作和删除网络设备配置的机制。

REST:表述性状态传递,是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计称为RESTful。

RESTCONF:REST配置协议,是另一个IETF标准,在RESTful接口的基础上实现了一些NETCONF功能,是通过超文本传输协议(HyperText Transfer Protocol,HTTP)/超文本传输安全协议(Hyper Text Transfer Protocol over SecureSocket Layer,HTTPS)使用可扩展标记语言(Extensive Markup Language,XML)或基于JavaScript语言的对象简谱(JavaScript Object Notation)JSON消息的NETCONF,但它缺少了几个关键的NETCONF组件,包括多个数据存储、提交或回滚以及配置锁定。

YANG(Yet Another Next Generation)模型,又称“另一个下一代模型”,是一种数据建模语言,用于定义通过网络配置协议NETCONF、RESTCONF等网络管理协议发送的数据。YANG数据建模语言由互联网工程任务组(Internet Engineering Task Force,IETF)中的NETMOD工作组维护,并在2010年10月作为RFC 6020发布。

YANG模型将数据的层次结构模块化为一棵树,树中每个节点都有名称(即,节点名称),并有一个值(即,节点值),还可以有一个子节点集。YANG模型中的模块(Module)可以定义节点的层次结构,可用于基于NETCONF的操作。并且,随着其定义,以及从别处引入或包含的定义,一个模块是独立且可编译的。当模块包括多个节点时,多个节点之间可以存在层级关系。这里,多个节点的层级关系是指多个节点在树中的关系,父(parent)节点、子(child)节点等术语可以用于描述节点之间的层级关系。例如,假设节点1可以为节点2的父节点,节点2可以作为节点3的父节点,则节点1可以为节点2的上一级节点,节点2可以为节点3的上一级节点。换言之,节点2可以为节点1的下一级节点,节点3可以为节点2的下一级节点。

如图1所示,为本申请实施例提供的一种设备配置方法的应用场景示意图。该应用场景中可以包括:控制设备10和网络设备20。其中,控制设备10可以基于YANG模型向网络设备20发送配置报文。

控制设备10可以与业务平台30连接,业务平台30可以向控制设备10发送指令,以对网络设备20进行网络配置。网络设备20可以与终端设备40连接。终端设备40可以通过网络设备20接入网络。

控制设备10可以是控制器,例如软件定义网络(software-defined networking,SDN)控制器,或者其他运行网元管理系统(element management system,EMS)的设备。网络设备20可以是交换机、路由器、转发器等。业务平台30可以是用户管理系统、大数据分析平台、网管系统等。终端设备40可以是用户驻地设备(customer-premises equipment,CPE)、智能手机、多媒体设备、流媒体设备、个人电脑、平板电脑、掌上电脑、移动互联网设备(mobile Internetdevices,MID)、穿戴式智能设备等。

控制设备10上与网络设备20之间的接口可以记为南向接口,控制设备10上与业务平台30之间的接口可以记为北向接口。南向接口是用于提供对其他厂家网元的管理功能,即向下提供的接口。北向接口是用于提供给其他厂家或运营商进行接入和管理的接口,即向上提供的接口。

参照图2所示,为本申请一实施例提供的控制设备的架构示意图。

控制设备10包括北向接口101、南向接口102、模板引擎103及YANG模型104。模板引擎103是指可基于YANG模型104对配置模板与设备配置参数进行解析与转换得到配置报文的程序。例如,模板引擎103可以通过北向接口101接收运维人员(或者用户)创建的配置模板及运维人员输入的设备配置参数,模板引擎103调用YANG模型104对配置模板进行解析得到生效配置模板,及基于解析得到的生效配置模板与设备配置参数转换得到配置报文。配置报文可以通过南向接口下发至网络设备20,使得网络设备20可以基于配置报文进行相应的网络配置。

配置模板可以是指用于对网络设备进行网络配置的模板,配置模板可以根据预设模板语法进行创建,配置模板中可以包括一个或多个变量,运维人员可以根据实际网络配置需求为变量进行赋值,例如,为变量输入对应的设备配置参数。配置模板之间可以包括模板继承关系和/或模板聚合关系,模板继承关系可以是指某个配置模板是另一个配置模板的父配置模板,配置模板可以继承父配置模板的配置命令集,配置命令集可以是指由多个网络配置命令组成的集合。模板聚合关系可以是指某个配置模板可以有一个或者多个子配置模板,配置模板可以引用子配置模板的配置命令集。模板引擎103调用YANG模型104对配置模板进行解析,可以是指模板引擎103调用YANG模型104确定配置模板是否存在父配置模板和/或子配置模板,从而可以基于配置模板及其父配置模板和/或子配置模板转换得到生效配置模板。模板引擎103基于解析得到的生效配置模板与设备配置参数转换得到配置报文,可以是通过将设备配置参数赋值至生效配置模板中的变量(变量来源于配置模板),从而得到配置报文。

例如,运维人员可以在控制设备10上创建配置模板及输入设备配置参数,例如,控制设备10支持以图形化界面或者代码文本框编写形式创建配置模板,模板引擎103执行配置模板的解析与转换,得到配置报文,控制设备10再将配置报文下发至网络设备20。运维人员也可以在其他设备上创建配置模板,配置模板及设备配置参数以插件形式加载至控制设备10,模板引擎103执行配置模板的解析与转换,得到配置报文,控制设备10再将配置报文下发至网络设备20。

如图3a所示,模板引擎103可以包括模板转换单元1031与模板执行单元1032。在生成与配置模板a对应的配置报文c时,可以将配置模板a及其关联的配置模板(例如配置模板a的父配置模板和/或子配置模板)传至模板转换单元1031,模板转换单元1031可以基于YANG模型对输入的配置模板进行YANG语法校验与解析,得到与配置模板a对应的生效配置模板b。生效配置模板b及设备配置参数可以传至模板执行单元1032,模板执行单元1032可以基于YANG模型对输入的生效配置模板b进行YANG语义校验与转换,得到与配置模板a对应的配置报文c。

如图3b所示,为本申请一实施例基于模板引擎将配置模板转换成配置报文的流程示意图。

S31,创建配置模板。

在一些实施例中,运维人员使用模板技术对网络设备进行网络配置,可以提升网络设备的运维效率,为网络设备灵活定制不同的网络配置参数。配置模板的模板语法可以预先定义。

运维人员可以根据实际网络配置需求创建一个或多个配置模板,配置模板之间可以具有模板继承关系和/或模板聚合关系,基于层次化的模板设计理念,配置模板的重用率高,灵活性好,易于实现、维护及扩展,可进一步降低网络设备的维护工作量。

在一些实施例中,配置模板可以以文本格式方式进行显示,例如配置模板以JSON格式进行显示。配置模板也可以通过模型驱动方式生成界面进行显示。如图3c所示,为多个配置模板的显示示意图,左边部分显示各个配置模板以及配置模板之间的继承关系和/或聚合关系,下层的配置模板继承上层的配置模板。例如,配置模板为租户模板与公共模板,租户模板包括i区模板及ii区模板,i区模板包括i_1模板及i_2模板(i_1模板与i_2模板继承i区模板),i_1模板包括i_11模板及i_12模板,i_11模板继承i_1模板,i_12模板继承i_1模板且聚合公共子模板1,公共模板包括公共子模板1、公开子模板2。中间部分显示当前选择的某个配置模板包含的特性清单(例如包括账号管理、时区、登录限定、运维监控、网络可靠性、安全策略等),右边部分是当前选中的某个特性包含的内容(例如账号管理包含用户名、用户角色、服务类型、用户密码等)。

S32,模板转换单元1031对配置模板进行校验与解析,得到与配置模板对应的生效配置模板。

在一些实施例中,模板转换单元1031在对配置模板进行解析之前,可以先对配置模板进行校验,以确认配置模板是否符合规范。对配置模板进行校验可以包括对配置模板进行YANG语法校验与模板语法校验,校验结果可以通过人机交互界面进行展示。如果存在语法错误,可以输出提示以提醒运维人员对配置模板进行修改,当配置模板校验通过之后,再对配置模板进行解析,确定配置模板是否存在父配置模板和/或子配置模板,从而可以基于配置模板及其父配置模板和/或子配置模板转换得到生效配置模板。

S33,模板执行单元1032获取设备配置参数,及基于设备配置参数与生效配置模板转换得到与配置模板对应的配置报文。

在一些实施例中,模板执行单元1032可以通过北向接口获取运维人员输入的设备配置参数。模板执行单元1032在对生效配置模板进行转换之前,可以先对生效配置模板进行YANG语义校验,以确认生效配置模板是否符合规范。语义校验结果可以通过人机交互界面进行展示。如果存在语义错误,可以输出提示以提醒运维人员对配置模板或者生效配置模板进行修改,当生效配置模板校验通过之后,再将设备配置参数写入生效配置模板中的变量,实现得到与配置模板对应的配置报文。

如图3d所示,模板引擎可以被嵌套调用,即某个模板引擎的输出可以作为下一个模板引擎的输入,再次作为设备配置参数应用在其他配置模板上,处于末端的模板引擎输出的配置报文下发至网络设备进行网络配置。例如,模板引擎E1用于生成业务级别的配置报文,模板引擎E2用于生成设备级别的配置报文,模板引擎E1的输入包括配置模板T1及设备配置参数p1,模板引擎E2的输入包括模板引擎E1的输出及配置模板T2,模板引擎E2基于模板引擎E1的输出及配置模板T2生成配置报文。

参照图4所示,为本申请一实施例提供的一种设备配置方法的流程示意图。本申请提供的设备配置方法,例如可以通过如下S401~S405实现。

S401,第一网络设备基于YANG模型对多个配置模板进行解析,得到生效配置模板。

在一些实施例中,多个配置模板之间可以包括模板继承关系和/或模板聚合关系。多个配置模板可以用于对多个不同层级的网络设备集进行网络配置,每个网络设备集可以包括一个或多个网络设备。每个网络设备集所需的网络配置参数可以来源于一个或多个配置模板。网络设备集之间可以包含共有的网络设备,或者分别包含不同的网络设备。

例如,多个配置模板用于为多个网络设备集进行网络配置,多个网络设备集之间存在层级关系,基于模板继承关系和/或模板聚合关系可以方便地对多个网络设备集进行运维管理。一个网络系统NS1包括N个第二网络设备,第一网络设备用于对网络系统NS1进行运维管理,N为大于1的正整数。第一网络设备可以是控制器,第二网络设备可以是路由器、交换机、转发器等设备。例如,第一网络设备对应图1所示的控制设备10、第二网络设备对应图1所示的网络设备20。N个第二网络设备可以归属于第一网络设备集,N个第二网络设备中的M个第二网络设备归属于第二网络设备集,N个第二网络设备中的另外P个第二网络设备归属于第三网络设备集,M个第二网络设备中的Q个网络设备归属于第四网络设备集。M、P、Q均为大于1的正整数,且M+P=N,Q小于M。本实施例中对网络设备集的划分并不作限定,可以根据实际运维需求对网络系统NS1中的第二网络设备进行网络设备集划分。例如,可以按照第二网络设备所分布的地区、或者所归属的网络节点进行网络设备集的划分。

举例而言,多个配置模板包括配置模板T1、配置模板T2及配置模板T3,配置模板T2继承了配置模板T1的配置命令集,配置模板T3继承了配置模板T2的配置命令集。例如,将部署在A省中的第二网络设备归属于第一网络设备集,并设定在A省中的第二网络设备获取配置模板T1的配置命令集进行网络参数配置;将部署在A省B市中的第二网络设备归属于第二网络设备集,并设定在A省B市中的第二网络设备获取配置模板T2的配置命令集进行网络参数配置;将部署在A省B市C县中的第二网络设备归属于第三网络设备集,并设定在A省B市C县中的第二网络设备获取配置模板T3的配置命令集进行网络参数配置。当配置模板T1的配置命令被修改时,可以实现联动修改配置模板T2与配置模板T3。

每个配置模板可以由运维人员根据网络设备集的实际网络配置需求进行创建,每个配置模板均满足YANG模型的YANG语言规范,进而使得每个配置模板可以支持基于YANG模型的继承和聚合语法、支持YANG语义、YANG语法校验等。基于YANG模型的继承可以是指某个配置模板可以通过感知YANG模型(感知自身及父配置模板与YANG模型的关联关系)实现继承父配置模板的配置命令集。基于YANG的聚合可以是指某个配置模板T3可以通过感知YANG模型(感知自身及子配置模板与YANG模型的关联关系)实现引用子配置模板的配置命令集。可以基于YANG模型的模型类型配置模板的继承和/或聚合关系,YANG模型的模型类型可以是指在YANG模型中所定义的模型的类型,例如可以通过list、container等定义YANG模型的模型类型。

在一些实施例中,可以预先将多个配置模板与YANG模型进行关联。第一网络设备可以包括多个YANG模型,每个YANG模型可以对应不同的网络设备类型或者不同型号的网络设备,可以预先建立YANG模型与设备类型或者设备型号的关联关系,通过设定配置模板所运用的设备类型或者设备型号,实现将配置模板与YANG模型进行关联。

在一些实施例中,运维人员可以通过多种方式创建配置模板,并设定配置模板之间的关联关系,例如通过继承或聚合语法,使得多个配置模板中的第一配置模板可以继承或者聚合多个配置模板中的第二配置模板。本申请各个实施例中对配置模板的创建方式不作限定。例如,运维人员可以通过代码编写的方式创建配置模板,或者运维人员可以通过模板创建界面创建配置模板。每个配置模板可以包括一个或者多个配置命令。模板创建界面可以是基于YANG模型驱动生成的界面,模板创建界面可以包括多个配置项,配置项可以支持运维人员进行内容输入或者内容选择,进而可以基于多个配置项的内容生成配置模板。第一网络设备还可以通过北向接口接收其他网络设备或者服务器发送的配置模板。

如图5所述,第一网络设备可以响应于配置模板的创建指令,开启用于进行配置模板创建的UI,可以在UI中为配置模块创建多个配置实例,每个配置实例可以包括多个属性项,例如多个属性项可以包括配置实例编号(vlan-id)、配置实例名称(name)、配置实例描述(description)等。本申请对配置实例包含的属性项不作限定,可以根据实际应用需求进行设定。

在一些实施例中,第一网络设备在对一个或多个第二网络设备进行网络配置之前,第一网络设备可以预先存储有YANG模型,YANG模型可以是其他网络设备或者服务器发送给第一网络设备的,例如,第一网络设备可以通过北向接口接收YANG模型。

例如,YANG模型包括如下代码信息:

上述YANG模型定义通过vlan来标识配置实例,“list vlan”表示可以有多个vlan的模型,即通过“list vlan”定义了YANG模型的模型类型是vlan的模型。key"vlan-id"表示一个vlan是基于vlan-id进行唯一标识,“leaf vlan-id”、“leaf name”、“leafdescription”表示vlan具有三个属性项,分别是vlan-id、name、description。

假设多个配置模板包括配置模板T1、配置模板T2、配置模板T3、配置模板T4。运维人员期望在G国部署的第二网络设备都获取配置模板T1的配置命令集,在G国A省部署的第二网络设备都获取配置模板T2的配置命令集;在G国A省B市部署的第二网络设备都获取配置模板T3的配置命令集。根据上述需求,可以设定配置模板T2继承配置模板T1的配置命令集,配置模板T3继承配置模板T2的配置命令集。同时假设为了简化配置模板T3的代码量,配置模板T3引用配置模板T4的配置命令集,即可以设定配置模板T3聚合配置模板T4。配置模板T1、配置模板T2、配置模板T3、配置模板T4之间的关系可以如图6所示。

假设配置模板T1包括如下代码信息:

配置模板T1定义了配置实例vlan10,其中属性项name的字段是可变的,以变量形式定义为{{vlan_0_name}},后续可以由运维人员进行具体指定。

假设配置模板T2包括如下代码信息:

配置模板T2通过关键字“z:extends”表示继承,也可以有其他语法形式来表示继承,本申请对此不作限定。配置模板T2继承了配置模板T1,并且新增了配置实例vlan20、vlanif10和vlanif20。配置模板T2需要感知YANG模型实现继承配置模板T1,如果不感知YANG模型,配置模板T2中的vlan20将覆盖配置模板T1中的vlan10,通过感知YANG模型确定可定义多个vlan,每个vlan基于vlan-id进行标识,实现配置模板T2继承配置模板T1。

假设配置模板T4包括如下代码信息:

配置模板T4定义了静态路由10.1.1.0和配置实例vlanif30。

假设配置模板T3包括如下代码信息:

/>

配置模板T3继承了配置模板T2,且聚合配置模板T4,通过关键字“z:include”表示聚合,也可以有其他语法形式来表示继承,本申请对此不作限定。聚合关系也需感知YANG模型,由于配置模板T4存在配置实例vlanif30,配置模板T2存在配置实例vlanif20,通过感知YANG模型,确定在配置模板T3中,是新增了实例vlanif30,而不是覆盖vlanif20。

配置模板T3通过代码"description":"This is vlan 10"复写了配置模板T1中的配置实例vlan10,把description的字段改成了This is vlan 10。配置模板T3继承配置模板T2(配置模板T2继承了配置模板T1)时感知YANG模型vlan-id是key,使得配置模板T3中的vlan10的description的字段覆盖了配置模板T1中的vlan 10的description的字段。配置模板T3通过“//z:template-tag=delete”语法,删除了配置实例vlanif10(继承自配置模板T2),删除操作也需感知YANG模型,感知这个语法操作是对一个配置实例的删除。

当将配置模板T1、配置模板T2、配置模板T3、配置模板T4加载到模板引擎,由模板引擎进行继承和聚合关系的解析,生成与配置模板T3对应的生效配置模板。模板引擎在解析过程中可以基于YANG模型对每个配置模板进行语法校验。比如YANG模型定义了vlan-id范围是1-4094,模板引擎会检查每个配置模板中的vlan-id的范围是否在1-4094之内。

由于配置模板T3继承了配置模板T2,且聚合配置模板T4,配置模板T2继承了配置模板T1,当需要生成与配置模板T3对应的生效配置模板F1时,需要将配置模板T1、配置模板T2、配置模板T3、配置模板T4输入至模板引擎,经由模板引擎进行解析与转换得到生效配置模板F1,生效配置模板F1包括如下代码信息:

/>

在生效配置模板F1中,配置实例vlan10继承自配置模板T1,并且由配置模板T3复写了description的字段,配置实例vlan20、vlanif20继承自配置模板T2,配置实例vlanif30和静态路由10.1.1.0聚合自配置模板T4。

可以理解的,当需要生成与配置模板T1对应的生效配置模板F2时,由于配置模板T1未继承或者聚合其他配置模板,可以只将配置模板T1输入至模板引擎,经由模板引擎进行解析与转换得到生效配置模板F2。当需要生成与配置模板T2对应的生效配置模板F3时,由于配置模板T2继承了配置模板T1,将配置模板T1、配置模板T2输入至模板引擎,经由模板引擎进行解析与转换得到生效配置模板F3。

S402,第一网络设备获取设备配置参数,及将设备配置参数与生效配置模板进行关联。

在一些实施例中,设备配置参数可以由运维人员进行输入,例如生效配置模板F1中的变量{{vlan_0_name}}、{{vlan_1_name}}、{{vlan_1_description}}、{{interfaceConfig_1_description}}、{{interfaceConfig_2_description}}为需要运维人员输入的设备配置参数。第一网络设备可以通过北向接口接收设备配置参数,及将设备配置参数与生效配置模板F1进行关联,便于后续对生效配置模板F1中的变量进行赋值。例如,当对生效配置模板F1进行参数配置时,模板引擎可以将北向接口接收到的设备配置参数与生效配置模板F1进行关联。将设备配置参数与生效配置模板F1进行关联可以是指将设备配置参数与生效配置模板F1中的变量进行关联。例如,运维人员输入的多个设备配置参数与变量{{vlan_0_name}}、{{vlan_1_name}}、{{vlan_1_description}}、{{interfaceConfig_1_description}}、{{interfaceConfig_2_description}}进行关联,运维人员可以在人机交互接界面为生效配置模板F1中的每个变量进行赋值,来实现设备配置参数与生效配置模板F1进行关联。

例如,运维人员输入的设备配置参数“vlan10”与变量{{vlan_0_name}}关联,设备配置参数“vlan20”与变量{{vlan_1_name}}关联,设备配置参数“This is vlan 20”与变量{{vlan_1_description}}关联,设备配置参数“vlanif20”与变量{{interfaceConfig_1_description}}关联,设备配置参数“vlanif30”与变量{{interfaceConfig_2_description}}关联。

S403,第一网络设备将关联有设备配置参数的生效配置模板转换为配置报文。

在一些实施例中,设备配置参数与生效配置模板关联之后,第一网络设备可以通过模板引擎将关联有设备配置参数的生效配置模板转换为配置报文。

例如,第一网络设备可以通过模板引擎将关联有设备配置参数的生效配置模板F1转换为配置报文M1。配置报文M1包括如下代码信息:

模板引擎在将关联有设备配置参数的生效配置模板F1转换为配置报文M1的过程中,可以对生效配置模板F1进行YANG语义校验,语义校验结果可以通过人机交互界面进行输出。

当生效配置模板F2关联有运维人员输入的设备配置参数时,同样可以对关联有设备配置参数的生效配置模板F2进行转换,得到配置报文M2。当生效配置模板F3关联有运维人员输入的设备配置参数时,同样可以对关联有设备配置参数的生效配置模板F3进行转换,得到配置报文M3。

S404,第一网络设备将配置报文发送至第二网络设备。

当转换得到配置报文之后,第一网络设备可以将配置报文发送至对应的第二网络设备。例如,配置报文M1是与配置模板T3对应的,配置报文M1可以发送至在G国A省B市部署的第二网络设备,以进行网络配置。配置报文M2是与配置模板T1对应的,配置报文M2可以发送至在G国部署的第二网络设备,以进行网络配置。配置报文M3是与配置模板T2对应的,配置报文M3可以发送至在G国A省部署的第二网络设备,以进行网络配置。

S405,第二网络设备基于配置报文进行相应的网络配置。

在一些实施例中,第二网络设备在接收到配置报文之后,可以基于配置报文进行相应的网络配置。例如,第二网络设备可以对配置报文进行解析,得到一个或多个配置命令行,并执行一个或多个配置命令行。

参照图7所示,为本申请一实施例提供一种设备配置方法的流程示意图。本申请提供的设备配置方法,例如可以通过如下S701~S706实现。本申请提供的设备配置方法可以应用于图1所示的控制设备10。

S701,基于YANG模型对配置模板进行解析,确定配置模板继承的父配置模板和/或聚合的子配置模板。

在一些实施例中,YANG模型定义了配置模板需满足的YANG语言规范。在对配置模板进行解析时,可以先确定配置模板关联的YANG模型,利用与配置模板关联的YANG模型对配置模板进行解析,避免出现无法解析配置模板的情形。例如,不同的设备类型或者设备型号可以对应不同的YANG模型,可以通过设定配置模板运用的设备类型或者设备型号,来将配置模板与YANG模型进行关联,进而可以通过获取配置模板运用的设备类型或者设备型号,确定与配置模板关联的YANG模型。

S702,当配置模板未继承有父配置模板和聚合有子配置模板时,基于配置模板转换得到生效配置模板。

S703,当配置模板继承有父配置模板和/或聚合有子配置模板时,基于配置模板及配置模板的父配置模板和/或子配置模板,转换得到生效配置模板。

在一些实施例中,当配置模板未继承有父配置模板和聚合有子配置模板时,表明配置模板未继承其他配置模板的配置命令集或者引用其他配置模板的配置命令集,可以对配置模板进行校验(如YANG语法与模板语法校验)与转换得到生效配置模板。

当配置模板继承有父配置模板和/或聚合有子配置模板时,表明配置模板继承其他配置模板的配置命令集和/或引用其他配置模板的配置命令集,可以对配置模板以及配置模板的父配置模板和/或子配置模板进行校验(如YANG语法与模板语法校验)。当配置模板以及配置模板的父配置模板和/或所述子配置模板均校验通过时,对配置模板及配置模板的父配置模板和/或子配置模板进行转换得到生效配置模板。

S704,获取设备配置参数,及将设备配置参数与生效配置模板进行关联。

在一些实施例中,设备配置参数可以由运维人员根据实际配置需求进行输入,配置模板中包括一个或多个变量,基于配置模板转换得到的生效配置模板同样包括一个或多个变量。将设备配置参数与生效配置模板进行关联可以是指将设备配置参数与对应的变量进行关联,使得后续可以对生效配置模板中的变量进行赋值处理,得到配置报文。

S705,将关联有设备配置参数的生效配置模板转换为配置报文。

在一些实施例中,在将关联有设备配置参数的生效配置模板转换为配置报文的过程中,可以基于YANG模型对生效配置模板进行YANG语义校验,确定生效配置模板是否满足YANG语义规范,避免后续下发给网络设备20的配置报文无法被网络设备20所解析。当生效配置模板校验通过时,将关联有设备配置参数的生效配置模板转换为配置报文。例如,可以基于设备配置参数对生效配置模板中的变量进行赋值处理,得到配置报文。

S706,将配置报文发送至网络设备20。

在一些实施例中,当转档得到配置报文之后,可以将配置报文发送至网络设备20,使得网络设备20可以基于配置报文进行相应的网络配置。

在一些实施例中,配置报文的格式可以包括JSON格式或者XML格式。可以通过获取网络设备20支持的网络配置协议,基于网络配置协议确定配置报文的格式。例如对于支持RESTCONF协议的网络设备,下发的配置报文可以是JSON格式或者XML格式,对于支持NETCONF协议的网络设备,下发的配置报文可以是XML格式。

参考图8,为本申请一实施例提供的控制设备10的硬件结构示意图。如图8所示,控制设备10可以包括处理器1001、存储器1002及通信接口1003。存储器1002可用于存储一个或多个计算机程序1004。一个或多个计算机程序1004被配置为被处理器1001执行。一个或多个计算机程序1004包括指令,上述指令可以用于实现在控制设备10中执行如图7所述的设备配置方法。

可以理解的是,本实施例示意的结构并不构成对控制设备10的具体限定。在另一些实施例中,控制设备10可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。

处理器1001可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器1001还可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gatearray,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。处理器1001可以是指一个处理器,也可以包括多个处理器。

存储器1002可以包括易失性存储器,例如随机存取存储器(random-accessmemory,RAM);存储器也可以包括非易失性存储器,例如只读存储器(read-only memory,ROM),快闪存储器(英文:flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器1002还可以包括上述种类的存储器的组合。

通信接口1003可用于与网络设备20通信。例如,通信接口1003可以包括南向接口和北向接口。

本实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机指令,当所述计算机指令在网络设备上运行时,使得网络设备执行上述相关方法步骤实现上述实施例中的设备配置方法。

本实施例还提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的设备配置方法。

另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,所述装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的设备配置方法。

其中,本实施例提供的控制设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应所述理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例是示意性的,例如,所述模块或单元的划分,为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的全部或部分可以以软件产品的形式体现出来,所述软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。

技术分类

06120116521415