网络设备的配置方法、装置、控制器及计算机存储介质与流程

文档序号:16582407发布日期:2019-01-14 18:05阅读:201来源:国知局
网络设备的配置方法、装置、控制器及计算机存储介质与流程

本发明涉及通信技术领域,特别涉及一种网络设备的配置方法、装置、控制器及计算机存储介质。



背景技术:

(openconfig,oc)协议是遵从标准网络配置(networkconfiguration,netconf)协议实现的,而netconf协议是一种基于可扩展标记语言(extensivemarkuplanguage,xml)的网络管理协议,netconf协议规定了对网络设备进行配置和管理的方法。

请参见图1,图1为现有技术的网络配置的系统架构图。目前基于oc协议的控制器可能会连接多个网络设备,例如,交换机或者路由器等,控制器可以通过发送配置消息的方式,实现对与其连接的网络设备进行配置。目前,控制器在对网络设备进行配置时,控制器需要针对网络设备支持的每个子节点分别发送一条配置消息,以实现网络设备的配置。而每个网络设备的支持的子节点有多个,如果针对每一个子节点,控制器都要发送一个配置消息,那么,控制器发送的配置消息较多,从而导致对网络设备进行配置的效率低下。



技术实现要素:

本发明实施例提供一种网络设备的配置方法、装置、控制器及计算机存储介质,用于提高网络设备的配置效率。

第一方面,提供了一种网络设备的配置方法,应用在控制器中,该方法包括:

根据所述网络设备支持的至少一个子节点对应的各个父节点聚合所述至少一个子节点,所述各个父节点对应的配置参数用于配置所述网络设备对应的功能组件;

生成与所述各个父节点对应的配置消息;

将与所述各个父节点对应的配置消息发送给所述网络设备,以使所述网络设备根据与所述各个父节点对应的配置信息配置对应的功能组件。

在本发明实施例中,控制器将网络设备能够支持的多个子节点进行聚合,再为聚合后的多个子节点对应的各个父节点生成配置消息,并将配置消息发送给网络设备。由于生成的一个配置消息对应一个父节点,而一个父节点对应多个子节点,因此,控制器发送一个配置消息,就可以实现配置网络设备的至少两个子节点,那么配置网络设备的全部子节点,发送的配置消息较少,从而提高网络配置的效率。

可选的,根据所述网络设备支持的至少一个子节点对应的各个父节点聚合所述至少一个子节点,包括:

接收来自所述网络设备的支持能力信息,其中,所述支持能力信息用于指示所述网络设备支持的至少一个子节点;

确定所述至少一个子节点对应的各个父节点;

将所述至少一个子节点中对应同一个父节点的子节点进行聚合。

可选的,生成与所述各个父节点对应的配置消息,包括:

分别建立与所述各个父节点对应的配置数据表,其中,所述配置数据表用于指示对应父节点包括的所有子节点的配置参数;

基于建立的配置数据表分别生成与所述各个父节点对应的配置消息,其中,每个配置消息携带对应父节点包括的子节点的配置参数。

上述两种可选的方式中,控制器可以将一个父节点对应的多个子节点进行聚合,在为聚合后的父节点建立配置数据表,该配置数据表中携带了多个子节点的配置参数,从而实现能够生成各个父节点对应的配置信息。

可选的,分别建立与所述各个父节点对应的配置数据表,包括:

获取所述各个父节点包括的所有子节点的配置参数;

对获取的配置参数进行格式转化,获得转化后的配置参数,其中,所述获取的配置参数的格式为xml格式,所述转化后的配置参数的格式为json格式;

根据所述转化后的配置参数建立所述配置数据表。

在本发明实施例中,控制器采用js对象表示(javascriptobjectnotation,json)格式的配置参数,由于json格式的配置参数的传输不用逐个读取,相较于目前网络设备的配置参数是基于xml格式的,而通常控制器需要加载整个xml文档来构造层次结构,消耗大,同时控制器对节点发送配置消息或者读取网络设备的配置信息都是逐个读取来说,可以降低网络传输、进程传输的消耗。

第二方面,提供了一种网络设备的配置装置,应用在控制器中,该配置装置包括:

聚合单元,根据所述网络设备支持的至少一个子节点对应的各个父节点聚合所述至少一个子节点,所述各个父节点对应的配置参数用于配置所述网络设备对应的功能组件;

生成单元,用于生成与所述各个父节点对应的配置消息;

发送单元,用于将与所述各个父节点对应的配置消息发送给所述网络设备,以使所述网络设备根据与所述各个父节点对应的配置信息配置对应的功能组件。

可选的,聚合单元具体用于:

接收来自所述网络设备的支持能力信息,其中,所述支持能力信息用于指示所述网络设备支持的至少一个子节点;

确定所述至少一个子节点对应的各个父节点;

将所述至少一个子节点中对应同一个父节点的子节点进行聚合。

可选的,所述生成单元具体用于:

分别建立与所述各个父节点对应的配置数据表,其中,所述配置数据表用于指示对应父节点包括的所有子节点的配置参数;

基于建立的配置数据表分别生成与所述各个父节点对应的配置消息,其中,每个配置消息携带对应父节点包括的子节点的配置参数。

可选的,所述生成单元具体用于:

获取所述各个父节点包括的所有子节点的配置参数;

对获取的配置参数进行格式转化,获得转化后的配置参数,其中,所述获取的配置参数的格式为xml格式,所述转化后的配置参数的格式为json格式;

根据所述转化后的配置参数建立所述配置数据表。

第三方面,提供一种控制器,用于配置网络设备,该控制器包括:

至少一个处理器,以及

与所述至少一个处理器连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如第一方面任一项所述的方法。

第四方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。

在本发明实施例中,控制器将网络设备能够支持的多个子节点进行聚合,再为聚合后的多个子节点对应的各个父节点生成配置消息,并将配置消息发送给网络设备。由于生成的一个配置消息对应一个父节点,而一个父节点对应多个子节点,因此,控制器发送一个配置消息,就可以实现配置网络设备的至少两个子节点,那么配置网络设备的全部子节点,发送的配置消息较少,从而提高网络配置的效率。

附图说明

图1是现有技术提供的网络设备配置的系统架构图;

图2是本发明实施例提供的网络设备的配置方法的流程示意图;

图3为本发明实施例提供的网络设备的配置装置的一种结构示意图;

图4为本发明实施例提供的控制器的一种结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

目前基于oc协议的控制器配置一个网络设备需要发送的配置消息较多,导致对网络设备进行配置和管理的效率低下。

鉴于此,本发明实施例提供了一种网络设备的配置方法,在该方法中,控制器将网络设备能够支持的多个子节点进行聚合,再为聚合后的多个子节点对应的各个父节点生成配置消息,并将配置消息发送给网络设备。由于生成一个配置消息对应一个父节点,而一个父节点对应多个子节点,因此,控制器发送一个配置消息,就可以实现配置网络设备的至少两个子节点,那么配置网络设备的全部子节点,发送的配置消息较少,从而提高网络配置的效率

两个网络设备的配置不同,可以认为是两个网络设备支持的命令不同,也可以认为是两个网络设备支持的命令相同,但是命令携带的配置参数不同。一个网络设备支持多种命令可以认为是一个网络设备支持多个子节点。

下面结合附图介绍本发明实施例提供的技术方案。

请参见图2,本发明一实施例提供一种网络设备的配置方法,该方法可以由控制器执行,用于配置网络设备,例如交换机或者路由器等。该方法的流程描述如下:

s201、根据网络设备支持的至少一个子节点对应的各个父节点聚合至少一个子节点,各个父节点对应的配置参数用于配置网络设备对应的功能组件;

s202、生成与各个父节点对应的配置消息;

s203、将与各个父节点对应的配置消息发送给网络设备,以使网络设备根据与各个父节点对应的配置信息配置对应的功能组件。

在本发明实施例中,一台控制器同时连接多个网络设备,这多个网络设备的配置可能都不同。不同的控制器能够支持的服务能力也可能有所不同,例如,有的控制器可能支持多种配置操作,例如,创建操作、追加操作、替换操作等。有的控制器可能支持较少的配置操作,例如,只支持删除操作等。而不同的网络设备支持的子节点(命令)也可能不同。控制器在对网络设备进行配置时,只能基于控制器自身能够支持的配置操作,及网络设备自身支持的节点。有可能一种配置操作只能对应一个子节点,也有可能一种配置操作对应多个子节点。同样地,一个子节点可能只对应一种配置操作,也可能对应多种配置操作。如果一种配置操作跟一个子节点不对应,那么即使控制器支持这种配置操作,网络设备支持这个子节点,那么控制器也无法配置网络设备的这个子节点。

因此,控制器在对这多个网络设备进行配置时,可以向网络设备发送服务能力信息,其中,服务能力信息可以用于指示控制器支持的配置操作,也就是控制器的服务能力。网络设备接收来自控制器的服务能力信息后,可以向控制器反馈自身的支持能力信息,其中,支持能力信息可以用于指示网络设备支持的至少一个子节点。控制器接收来自网络设备反馈的支持能力信息后,可以根据接收的支持能力信息确定网络设备能够支持的子节点。

如果控制器确定了网络设备能够支持的子节点为一个,那么控制器可以生成一个配置消息,该配置消息可以用于配置网络设备支持的这个子节点。而如果控制器确定网络设备能够支持的子节点为多个,控制器可以对多个子节点进行聚合,具体地,控制器可以确定网络设备支持的多个子节点对应的各个父节点聚合多个子节点,将多个子节点中对应同一个父节点的子节点进行聚合。在本发明实施例中,父节点可能是一个,也可能是多个。

控制器聚合了多个子节点之后,可以针对聚合后的每个父子节点生成一个配置消息。该配置消息携带每个父节点包括的所有子节点对应的配置参数,可以用于配置每个父节点包括的所有子节点,也就是配置网络设备对应的功能组件。每个父节点包括的所有子节点都可以通过该配置消息进行配置,这样控制器就可以发送一个配置消息,实现配置至少两个子节点,即使每个网络设备的配置都不同,配置控制器连接的网络设备时,控制器发送的配置消息也较少,从而提高网络配置的效率。

在本发明实施例中,控制器生成配置消息时可以针对每个父节点生成一个配置消息。控制器每生成一个配置消息可以为配置消息添加一个标识(id)。可能的实施方式中,控制器可以按照id递增的方式为每个配置消息添加id。具体地,控制器可以分别建立与各个父节点对应的配置数据表,该配置数据表可以用于指示对应父节点包括的子节点的配置参数。该配置数据表的数据结构可能包括用于指示父节点的索引标识,以通过该索引标识可以找到对应的父节点下的子节点的配置参数。每个父节点包括的子节点成员和/或子节点格式,例如子节点类型和子节点的访问权限等。

控制器在生成配置消息时,可以基于建立的配置数据表分别生成与各个父节点对应的配置消息,其中,每个配置消息携带对应父节点包括的子节点的配置参数。具体地,控制器可以为配置数据表的每个数据结构的成员,例如子节点成员,子节点格式等设置初始值。在控制器与网络设备建立起连接后,控制器可以获取网络设备的子节点信息,例如子节点成员、子节点格式、配置参数等,并根据获取的子节点信息更新配置数据表的数据结构成员。

控制器对网络设备进行配置,是将配置参数发送给网络设备,从而网络设备可以将配置参数写入以实现配置的目的。由于目前网络设备的配置参数是基于xml格式的,而通常控制器需要加载整个xml文档来构造层次结构,消耗大,同时控制器对子节点发送配置消息或者读取网络设备的配置信息都是逐个读取,在大数据场景下xml解析时间过长从而降低传输效率和设备性能。

鉴于此,在本发明实施例中,控制器采用json格式的配置参数,由于json格式的配置参数的传输不用逐个读取,可以降低网络传输、进程传输的消耗。

具体地,控制器可以先初始化json格式,保存配置操作或者配置消息的id等,控制器还可以获取网络设备的每个父节点包括的子节点的配置参数,此时控制器获得的配置参数是xml格式的。控制器可以检查获取的xml格式的配置参数的完整性,也就是确定获取的配置参数对于一个父节点是否是完整的,如果获取的配置参数不是完整的,那么控制器可以重新获取配置参数。如果获取的配置参数是完整的,控制器可以对获取的配置参数进行格式转化,以将配置参数转化成js格式,再根据json格式的配置参数建立配置数据表。

为了便于理解,下面就具体实例介绍控制器如何生成配置消息。

在本发明实施例中,控制器可以创建配置数据表,如表1所示。该配置数据表可以包括表名、表索引标识、子节点类型、配置数据、输出格式等。

表1

表1中,“xml数据子节点原型”用于表示子节点的配置参数的存储路径,“xml数据”用于表示子节点的配置数据,“子节点格式”用于表示子节点类型,访问权限,输出格式等。

控制器利用创建的配置数据表实现子节点的配置参数聚合,将xml格式的数据聚合成json格式的数据,以实现不同的配置数据通过一个配置消息发送。每个父节点单独做一张配置数据表进行存储,可以降低网络传输、进程传输的消耗。

首先,控制器可以初始化配置数据表,例如初始化配置数据表包括的表索引,子节点类型,子节点格式等。当控制器与网络设备建立连接后,控制器可以获取网络设备的子节点信息,例如子节点类型,子节点格式、子节点的配置参数等,控制器可以根据获取的子节点信息更新配置数据表。控制器紧接着将获取的xml格式的配置参数转化为json格式的配置参数。

控制器首先按递增的形式生成消息id,id初始值默认为1,将生成的会话id作为message-id字段的映射值存储在json字符串的键值对中。控制器获取xml中的操作类型,例如创建(create),追加(merge),替换(replace),删除(delete)等,例如:<axc:operation="create">1</a>,取出xc:operation属性的参数值作为operation字段的映射值存储在json字符串的键值对中。控制器将xml中存在参数值的node子节点名提取出来,例如<key>value</key>,将node子节点名与其参数值以<key,value>的形式保存,如表2所示。

表2

表2中,xml数据子节点原型:a{i}.bn用于表示将n个子节点聚合至第i个子节点。xml数据:<b2>value2</b2>用于表示将第2个子节点的配置参数转化成json格式的配置参数。子节点格式:规定了输出格式如表2示意的一种输出格式。

在本发明实施例中,一个父节点下可以有n个子节点,其中一个父节点也可以是另一个父节点的子节点。这样,控制器就可以将复杂且冗余庞大的xml数据格式以<key,value>的形式将大量的子节点的配置参数聚合在一起,将表2中{}部分的配置数据看成是一个value值,“a”看作是一个key值,从而简化了数据结构,一条配置消息可以实现多个子节点的配置参数的参数,从而提高了网络配置的效率。

通过如表2的形式聚合多个子节点的配置参数,9个网络子节点合并成1个网络子节点的读取耗时是单个网络子节点的1.1倍,也就是配置性能提升约8.1倍。n个网络子节点性能提升为n/1.1,n越大效果越明显,n的上限取决于配置数据表可传输内容长度。

以配置bgp实例为例,如果控制器准备向网络设备发送如下三条cli命令:

第一条:irouterbgp1

第二条:neighbor2.2.2.2remote-as2

第三条:neighborpg1remote-as100

以上第一条和第二条cli命令以传统xml格式封装数据信息如下,按照<key,value>的方式将以上xml转json字段存储于配置数据表中,如表3所示。

表3

控制器从配置数据表转化完成的信息中提取其中的ruijiebgpjsoncontent字段信息。使用传统的xml传输配置信息时,子节点名称必须要以<nodename></nodename>这种形式成对存在,往往为了传递一个参数值,外层需要包装多层父节点,导致数据大量冗余,在大量配置参数需要发送给网络设备时,易造成带宽拥塞。而本发明实施例中,将bgp闭包中global、neighbor、peer-group聚合为bgp的参数值,以<key,value>形式存储在data中,即使大量配置参数需要发送给网络设备,发送的配置消息的数量较少,从而提高了网络配置的效率。

控制器对接网络设备,每个网络设备的配置都不同,针对每一个网络设备,oc在标准的netconf控制器都要发送一个配置消息,通过xml读取互联网数据中心(internetdatacenter,idc)万台路由器(theonionrouter,tor)的信息管理库(managementinformationbase,mib)信息约8分钟,效率较低。本发明实施例通过netconf用json数据格式进行封装,读取设备信息性能提升到微秒级,解决了网络设备进行配置和管理的效率低下问题。

控制器将生成的配置消息发送给网络设备,如果网络设备收到配置消息后会向控制器反馈响应消息,以告知控制器成功收到配置消息。控制器在确定配置消息发送成功后,可以开启定时器,在定时器周期内,如果有新的配置消息需要发送,则刷新定时器周期,以尽量保证网络设备的配置参数是最近的配置。可能的实施方式中,定时器可以有一个最长周期,如果超过最长周期后控制器不再继续刷新,在定时器到期后会启用配置保存功能,保存配置参数。

综上所述,在本发明实施例中,控制器将网络设备能够支持的多个子节点进行聚合,再为聚合后的多个子节点对应的各个父节点生成配置消息,并将配置消息发送给网络设备。由于生成的一个配置消息对应一个父节点,而一个父节点对应多个子节点,因此,控制器发送一个配置消息,就可以实现配置网络设备的至少两个子节点,那么配置网络设备的全部子节点,发送的配置消息较少,从而提高网络配置的效率。

每个新聚合父节点单独做一张配置数据表进行存储,使得网络设备较快地获取配置参数,甚至获取能够达到微秒级读取的效果。同时,本发明实施例通过json聚合使得netconf实现对配置数据的创建、删除、更新与获取都在微秒级内完成,从而降低网络传输、进程传输的消耗。

下面结合说明书附图介绍本发明实施例提供的设备

请参见图3,基于图2所示的实施例的同一发明构思,本发明一实施例提供一种网络设备的配置装置,应用在控制器中,该配置装置用于配置网络设备,例如可以配置交换机或者路由器等上游设备。该配置装置包括聚合单元301、生成单元302和发送单元303。其中:聚合单元301用于根据网络设备支持的至少一个子节点对应的各个父节点聚合至少一个子节点,各个父节点对应的配置参数用于配置网络设备对应的功能组件。生成单元302用于生成与各个父节点对应的配置消息。发送单元303用于将与各个父节点对应的配置消息发送给网络设备,以使网络设备根据与各个父节点对应的配置信息配置对应的功能组件。

可选的,聚合单元301具体用于:

接收来自网络设备的支持能力信息,其中,支持能力信息用于指示网络设备支持的至少一个子节点;

确定至少一个子节点对应的各个父节点;

将至少一个子节点中对应同一个父节点的子节点进行聚合。

可选的,生成单元302具体用于:

分别建立与各个父节点对应的配置数据表,其中,配置数据表用于指示对应父节点包括的所有子节点的配置参数;

基于建立的配置数据表分别生成与各个父节点对应的配置消息,其中,每个配置消息携带对应父节点包括的子节点的配置参数。

可选的,生成单元302具体用于:

获取各个父节点包括的所有子节点的配置参数;

对获取的配置参数进行格式转化,获得转化后的配置参数,其中,获取的配置参数的格式为xml格式,转化后的配置参数的格式为json格式;

根据转化后的配置参数建立配置数据表。

该网络设备的配置装置可以用于执行本发明实施例提供的网络设备的配置方法,因此,对于该网络设备的配置装置的各功能模块所能够实现的功能等可参考本发明提供的网络设备的配置方法的实施例描述,不多赘述。

请参见图4,基于同一发明构思,本发明一实施例提供一种控制器,用于配置网络设备,该控制器包括:至少一个处理器401,处理器401用于执行存储器中存储的计算机程序时实现本发明实施例提供的如图2所示的网络设备的配置方法的步骤。

可选的,处理器401具体可以是中央处理器、特定应用集成电路(英文:applicationspecificintegratedcircuit,简称:asic),可以是一个或多个用于控制程序执行的集成电路。

可选的,该控制器还包括与至少一个处理器连接的存储器402,存储器402可以包括只读存储器(英文:readonlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)和磁盘存储器。存储器402用于存储处理器401运行时所需的数据,即存储有可被至少一个处理器401执行的指令,至少一个处理器401通过执行存储器402存储的指令,执行本发明实施例提供的网络设备的配置方法。其中,存储器402的数量为一个或多个。其中,存储器402在图4中一并示出,但需要知道的是存储器402不是必选的功能模块,因此在图4中以虚线示出。

其中,聚合单元301、生成单元302和发送单元303所对应的实体设备均可以是前述的处理器401。该控制器可以用于执行本发明实施例提供的网络设备的配置方法所示的实施例所提供的方法。因此关于该设备中各功能模块所能够实现的功能,可参考本发明提供的网络配置方法所示的实施例中的相应描述,不多赘述。

本发明实施例还提供一种计算机存储介质,其中,计算机存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如图2所示的网络设备的配置方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

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

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

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

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(universalserialbusflashdisk)、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1