基于网络配置协议的配置数据提交方法及服务器 技术领域 本发明涉及数据通信领域的网络配置管理技术, 尤其涉及一种利用网络配置协议 实现目标网络设备配置数据提交的方法及一种网络配置协议服务器。
背景技术 如 图 1 所 示, 为 现 有 技 术 中 基 于 网 络 配 置 (Network Configuration, 简称 NETCONF) 协议的配置管理框架示意图, NETCONF 配置管理框架在逻辑结构上分为 4 个层次, 包括 : 网络管理实体、 网络管理代理, NETCONF 服务器和应用模块, 其中 :
网络管理实体, 运行在网络管理的客户端, 为不同的网络管理协议和操作提供用 户界面, 接收网络管理员用户的业务操作, 并将业务操作转换为各自网络管理协议和操作 所对应的业务配置下发到对应的目标网络设备。同时, 接收来自于目标网络设备的响应和 通知信息并将其转换为用户易于理解的方式呈现给用户。在基于 NETCONF 协议的配置管 理框架中, 会面向不同类型的网络管理实体 ( 简称网管实体 ), 除了 NETCONF 协议网络管理 实体外, 还有非 NETCONF 协议网络管理实体, 如: 命令行接口 (CLI) 协议、 简单网络管理协 议 (SNMP)、 网页 (WEB) 等 ; NETCONF 协议网络管理实体和这些非 NETCONF 协议网络管理实体 会同时存在于目标网络设备的网络管理环境中, 因此, 就需要对各种网络管理实体所提交 的配置数据进行管理和维护 ; 对于非 NETCONF 协议网络管理实体来说, 在网络管理实体与 NETCONF 服务器之间需要一个网络管理代理来转换, 它们的配置数据以各个网络管理实体 自己的方式提交网络管理代理, 然后由网络管理代理转换为 NETCONF 协议操作后再下发到 NETCONF 服务器, 同样的, NETCONF 服务器响应的 NETCONF 协议报文也需要有网络管理代理 转换为其对应的网络管理实体的协议报文或格式, 再有网络管理代理转发给网络管理实体
客户端 ;
网络管理代理, 运行在目标网络设备上, 相当于非 NETCONF 协议网络管理实体的 适配层, 不同的非 NETCONF 协议网络管理实体的网络管理代理不同, 简称为非 NETCONF 协议 网络管理代理 ; 每个非 NETCONF 协议网络管理代理用于将对应的非 NETCONF 协议网络管理 实体所下发的业务配置转换为 NETCONF 协议的配置操作, 然后下发给 NETCONF 服务器 ; 同时 接收来自于 NETCONF 服务器的响应报文和通知信息, 并将其转换为网络管理代理所对应的 非 NETCONF 协议报文或响应信息, 发送给其对应的非 NETCONF 协议网络管理实体 ;
NETCONF 服务器, 接收来自于 NETCONF 协议网络管理实体或其它非 NETCONF 协议 网络管理代理的业务配置请求, 在经过配置数据库数据校验后, 更新当前配置数据库, 通过 NETCONF 协议的被管理对象 (ManagementObject, 简称 MO) 下发给目标网络设备上的应用模 块; NETCONF 协议的被管理对象接收来自于应用模块的配置响应或事件通知后, 将响应信 息或通知信息封装为 NETCONF 协议的响应报文或通知报文发送给 NETCONF 协议网络管理实 体或其它非 NETCONF 协议网络管理代理 ;
应用模块, 运行在目标网络设备上, 接收来自于 NETCONF 服务器的业务配置请求, 更新业务配置参数, 将配置结果返回给 NETCONF 服务器。在 NETCONF 协 议 中, 为 NETCONF 服 务 器 定 义 了 三 种 类 型 的 配 置 数 据 库 : 运行 (running)、 候选 (candidate) 和启动 (startup), 其中 :
运行配置数据库 : 是指目标网络设备当前活跃的完整的配置 ;
候选配置数据库 : 在不影响目标网络设备当前配置的前提下可以进行配置的目标 网络设备数据库, 在配置完成后, 可以通过提交 (commit) 操作来提交并使配置生效 ;
启动配置数据库 : 用于存放目标网络设备启动的初始配置参数。
在图 1 所示的 NETCONF 配置管理框架中, 有客户提出利用候选配置数据库和提交 操作实现配置数据批量提交的需求, 即业界通常所讲的二阶段配置提交, 并且要求可以实 现对配置数据设置配置检查点、 配置数据记录和配置回滚等操作, 通过这些批量配置数据 操作减少各个网络管理实体、 网络管理代理、 NETCONF 服务器以及应用模块之间的交互, 从 而提高配置操作执行的效率和性能。然而, 在 NETCONF 协议中规定一个 NETCONF 服务器只 有一个候选配置数据库, 为了保证配置数据的一致性和安全性, 当一个客户端在修改这个 候选配置数据库之前必须对候选配置数据库进行加锁, 这样多个客户端同时对其进行操作 时就会导致出现资源的竞争问题, 不能够实现基于客户端的配置数据二阶段提交功能, 同 时也不利于统一实现配置数据的回滚、 查询等管理操作。
由上可见, 现有基于 NETCONF 的配置管理技术中, 要区分各种网络管理实体提交 的配置数据, 就必须在各自的网络管理代理中完成, 缺乏统一的处理机制, 同时也带来了资 源竞争问题, 降低了目标网络设备的配置效率和用户的操作体验。 发明内容
有鉴于此, 本发明提供一种基于网络配置协议的配置数据提交方法及网络配置服 务器, 以实现统一的基于网络管理实体的配置数据提交管理操作。
为解决上述技术问题, 本发明的技术方案是这样实现的 :
一种基于网络配置协议的配置数据提交方法, 包括如下步骤 :
A、 在网络配置 NETCONF 服务器中, 为每个非 NETCONF 协议网络管理实体对应的网 络管理代理、 以及 NETCONF 协议分别创建一个独立的候选配置数据库 ;
B、 NETCONF 协议或者任一非 NETCONF 协议网络管理代理接收到客户端的业务配置 请求后, 通过 NETCONF 服务器更新其对应的候选配置数据库 ;
C、 NETCONF 服务器提交更新后的候选配置数据库中的配置数据到运行配置数据库 中;
D、 NETCONF 服务器中的被管理对象将运行配置数据库中的配置数据提交到目标网 络设备的应用模块中。
较佳地, 所述方法还包括 :
E、 NETCONF 服务器根据应用模块返回的配置成功消息, 记录本次配置提交操作以 及操作的配置数据。
较佳地, 步骤 B 包括 :
B1、 每个非 NETCONF 协议网络管理代理或者 NETCONF 协议接收客户端的业务配置 请求 ;
B2、 所述非 NETCONF 协议网络管理代理或者 NETCONF 协议将业务配置数据封装为 NETCONF 协议的编辑配置 edit-config 操作, 目标为对应的候选配置数据库, 下发到 NETCONF 服务器 ;
B3、 NETCONF 服务器接收所述 edit-config 操作, 根据 edit-config 操作中的参数 更新其对应的目标候选配置数据库。
较佳地, 步骤 C 包括 :
C1、 NETCONF 服务器首先对该更新后的候选配置数据库中的配置数据进行校验, 校 验成功后, 提交目标网络设备的应用模块进行校验 ;
C2、 目标网络设备的应用模块校验成功后, 返回确认消息给 NETCONF 服务器 ;
C3、 NETCONF 服务器使用该候选配置数据库中的数据更新运行配置数据库。
较佳地, 步骤 C3 中, 更新运行配置数据库, 是指 NETCONF 服务器通过提交 commit 操作将该候选配置数据库中的配置数据应用到当前运行配置数据库中。
较佳地, 在步骤 B 和 C 之间, 还包括 :
所述更新后的候选配置数据库对应的 NETCONF 协议或非 NETCONF 协议网络管理代 理, 向 NETCONF 服务器下发针对运行配置数据库的加锁操作 ;
在 NETCONF 服务器针对运行配置数据库的加锁操作执行成功后, 所述 NETCONF 协 议或非 NETCONF 协议网络管理代理下发提交 commit 操作到 NETCONF 服务器。 本发明实施例还提供一种基于网络配置协议的服务器, 包括 :
创建模块, 用于为 NETCONF 协议以及目标网络设备中的每个非 NETCONF 协议网络 管理代理分别创建一个独立的候选配置数据库 ;
更新模块, 用于接收 NETCONF 协议或者任一非 NETCONF 协议网络管理代理的编辑 配置 edit-config 操作, 根据 edit-config 操作中的参数更新其对应的候选配置数据库 ;
提交模块, 用于将某一更新后的候选配置数据库的配置数据, 通过提交 commit 操 作应用到运行配置数据库 ;
应用模块, 将运行配置数据库中的配置数据提交到目标网络设备的应用模块中。
较佳地, 所述服务器还包括 :
校验模块, 用于在提交模块将某一更新后的候选配置数据库的配置数据提交到运 行配置数据库之前, 对所述更新后的候选配置数据库的配置数据进行校验。
较佳地, 所述服务器进一步包括 :
加解锁模块, 用于接收 NETCONF 协议或者任一非 NETCONF 协议网络管理代理的加 锁 lock 操作或者解锁 unlock 操作。
较佳地, 所述服务器进一步包括 :
记录模块, 用于从目标网络设备的应用模块接收到返回的配置成功消息后, 记录 本次配置提交操作以及操作的配置数据。
综上所述, 本发明具体实现时各网络管理实体可以独立的修改其对应的候选配置 数据库, 从而可以实现基于客户端的二次提交功能, 在 NETCONF 服务器中可以方便的记录 每一个客户端所做的配置提交操作, 利于统一实现配置提交的回滚、 查询等管理操作。
附图说明
图 1 为现有技术中基于 NETCONF 协议配置管理框架逻辑示意图 ;图 2 为本发明实施例中 NETCONF 协议配置管理框架逻辑示意图 ; 图 3 为本发明实施例 1 基于网络配置协议的配置数据提交方法流程图 ; 图 4 为本发明实施例 1 基于网络配置协议的配置数据提交方法流程图。具体实施方式
为使本发明的目的、 技术方案及优点更加清楚明白, 以下参照附图并举实施例, 对 本发明所述方案作进一步地详细说明。
在现有的 NETCONF 协议中, 规定了一个 NETCONF 服务器只有一个候选配置数据库, 这样, 当多个网络管理实体在操作候选数据库时, 会存在资源竞争问题, 同时, 如果一个网 络管理实体修改候选配置数据库后没有及时提交配置, 另一个网络管理实体又继续修改候 选配置数据库, 会导致配置数据和配置逻辑的混乱, 也不利于配置提交的统一管理。因此, 本发明通过在 NETCONF 服务器中为每一个连接到 NETCONF 服务器的网络管理实体分别创建 一个独立的候选配置数据库, 这样每个网络管理实体独立的操作它所对应的候选配置数据 库, 互不影响。
参见图 2, 为本发明实施例中基于 NETCONF 协议配置管理框架逻辑示意图, 本发明 基于 NETCONF 协议配置管理框架包括 : 网管理管理实体, 包括 NETCONF 协议网络管理实体 200 和三个非 NETCONF 协议 网络管理实体 : 第一非 NETCONF 协议网络管理实体 201、 第二非 NETCONF 协议网络管理实 体 202 以及第三非 NETCONF 协议网络管理实体 203。NETCONF 协议网络管理实体 200 接 收到网络管理员用户通过客户端提交的配置数据时, 将用户的配置数据封装为编辑配置 (edit-config) 操作, 目标为候选配置数据库, 下发到 NETCONF 服务器。任一非 NETCONF 协 议网络管理实体接收到网络管理员用户通过客户端提交的配置数据后, 下发到其对应的非 NETCONF 协议网络管理代理。
网络管理代理, 包括第一非 NETCONF 协议网络管理代理 211、 第二非 NETCONF 协议 网络管理代理 212 以及第三非 NETCONF 协议网络管理代理 213, 分别和第一非 NETCONF 协议 网络管理实体 201、 第二非 NETCONF 协议网络管理实体 202 以及第三非 NETCONF 协议网络 管理实体 203 一一对应。网络管理代理通过其对应的网络管理实体接收到用户的配置数据 时, 将用户的配置数据封装为编辑配置 (edit-config) 操作, 目标为候选配置数据库, 下发 到 NETCONF 服务器。
NETCONF 服务器 400, 用于为每一个连接的非 NETCONF 协议网络管理代理以及 NETCONF 协议分别建立一个独立的候选配置数据库 ; 并用于解析非 NETCONF 协议网络管理 代理以及 NETCONF 协议下发的 edit-config 操作请求, 得到其操作的目标数据库为候选配 置数据库, 则将其转换为该 NETCONF 协议或非 NETCONF 协议网络管理代理所对应的候选配 置数据库 ( 比如 : NETCONF 协议候选配置数据库 (NETCONF-candidate)500、 第一非 NETCONF 协议候选配置数据库 501、 第二非 NETCONF 协议候选配置数据库 502 以及第三非 NETCONF 协议候选配置数据库 503 等 ), NETCONF 服务器将用户的配置数据编辑完成后更新对应的 候选配置数据库, 然后在接收到该非 NETCONF 协议网络管理代理或者 NETCONF 协议下发的 commit 操作后, 将其对应的候选配置数据库中配置数据提交到 running 配置数据库 504, 并 通过 NETCONF 协议的被管理对象下发到目标网络设备中对应的应用模块。
由于被管理对象 601 与目标网络设备中对应的应用模块 701 的具体实现及其二者 之间的交互属于现有技术, 本处不再赘述。
参见图 3, 为本发明实施例 1 中基于网络配置协议的配置数据提交方法流程图, 具 体步骤为 :
步骤 301、 在网络配置 NETCONF 服务器中, 为每个非 NETCONF 协议网络管理实体对 应的网络管理代理、 以及 NETCONF 协议分别创建一个独立的候选配置数据库。
本步骤中为 NETCONF 协议建立了 NETCONF 协议配置数据库, 为每个非 NETCONF 协议网络管理实体对应的网络管理代理即 NETCONF 协议网络管理代理分别建立对应的非 NETCONF 协议网络管理代理配置数据库。
步骤 302、 NETCONF 协议或者任一非 NETCONF 协议网络管理代理接收到客户端的业 务配置请求后, 通过 NETCONF 服务器更新其对应的候选配置数据库。
本步骤中, 网络管理员用户通过客户端向 NETCONF 协议或者非 NETCONF 协议网络 管理实体提交配置数据。
NETCONF 协议网络管理实体接收到网络管理员用户通过客户端提交的配置数据 时, 将用户的配置数据封装为编辑配置 (edit-config) 操作, 目标为该 NETCONF 协议对应的 候选配置数据库, 下发到 NETCONF 服务器。 非 NETCONF 协议网络管理实体接收到网络管理员用户通过客户端提交的配置数 据后, 下发到其对应的非 NETCONF 协议网络管理代理。网络管理代理通过其对应的网络 管理实体接收到用户的配置数据时, 将用户的配置数据封装为编辑配置 (edit-config) 操 作, 目标为该非 NETCONF 协议网络管理代理对应的候选配置数据库, 下发到 NETCONF 服务 器。
NETCONF 服 务 器 解 析 非 NETCONF 协 议 网 络 管 理 代 理 以 及 NETCONF 协 议 下 发 的 edit-config 操作请求, 得到其操作的目标数据库为候选配置数据库, 则将其转换为该 NETCONF 协议或非 NETCONF 协议网络管理代理所对应的候选配置数据库, 然后将用户的配 置数据编辑完成后更新对应的候选配置数据库。
步骤 303、 NETCONF 服务器提交更新后的候选配置数据库中的配置数据到运行配 置数据库中。
本步骤中, 在 NETCONF 服务器更新 NETCONF 协议或非 NETCONF 协议网络管理代理 所对应的候选配置数据库后, 会向 NETCONF 协议或非 NETCONF 协议网络管理代理返回确 认。这样, NETCONF 协议或非 NETCONF 协议网络管理代理首先下发锁定 lock 操作, 用于锁 定 running 配置数据库, 然后再下发 commit 操作。在 NETCONF 服务器接收到该非 NETCONF 协议网络管理代理或者 NETCONF 协议下发的 commit 操作后, 经过对候选配置数据库中的数 据进行校验后, 将执行其对应的候选配置数据库中配置数据提交到 running 配置数据库, 并通过 NETCONF 协议的被管理对象下发到目标网络设备中对应的应用模块。
步骤 304、 NETCONF 服务器中的被管理对象将运行配置数据库中的配置数据提交 到目标网络设备中对应的应用模块中。
参见图 4, 为本发明实施例 2 中基于网络配置协议的配置数据提交方法流程图, 具 体步骤为 :
步骤 401、 NETCONF 服务器为每个非 NETCONF 协议网络管理实体对应的网络管理代
理、 以及 NETCONF 协议分别创建一个独立的候选配置数据库 ;
步骤 402、 NETCONF 协议网络管理实体或任一非 NETCONF 协议网络管理代理接收到 用户的配置数据后, 将配置数据封装为 NETCONF 协议的 edit-config 操作, 目标为候选配置 数据库下发到 NETCONF 服务器 ;
步骤 403、 NETCONF 服务器接收到 edit-config 操作后, 检查目标为候选配置数据 库, 则将目标重定向为该 NETCONF 协议网络管理实体或非 NETCONF 协议网络管理代理对应 的候选配置数据库, 并根据下发的配置数据对该候选配置数据库进行更新 ;
步骤 404、 NETCONF 服务器更新候选配置数据库后, 向该 NETCONF 协议网络管理实 体或非 NETCONF 协议网络管理代理响应由 rpc-reply 报文携带的 OK 消息 ;
步 骤 405、 该 NETCONF 协 议 网 络 管 理 实 体 或 非 NETCONF 协 议 网 络 管 理 代 理 向 NETCONF 服务器下发加锁 lock 操作, 目标为运行 running 配置数据库, 即对 running 配置数 据库进行加锁操作 ;
步骤 406、 在没有其它网络管理实体或非 NETCONF 协议网络管理实体的网络管理 代理对 running 配置数据库加锁的情况下, NETCONF 服务器以 OK 消息作为响应, 返回给 NETCONF 协议网络管理实体或非 NETCONF 协议网络管理代理 ;
步 骤 407、 NETCONF 协 议 或 非 NETCONF 协 议 网 络 管 理 代 理 下 发 commit 操 作 到 NETCONF 服务器 ;
步骤 408、 NETCONF 服务器首先对该 NETCONF 协议或非 NETCONF 协议网络管理代理 对应的候选配置数据库中的配置数据进行校验, 校验成功后, 提交目标网络设备中对应的 应用模块进行校验 ;
步骤 409、 目标网络设备中对应的应用模块校验成功后, 返回 OK 给 NETCONF 服务 器;
步骤 410、 NETCONF 服务器使用该 NETCONF 协议或非 NETCONF 协议网络管理代理对 应的候选配置数据库中的配置数据更新 running 配置数据库, 即执行 commit 操作 ;
步骤 411、 NETCONF 服务器中的被管理对象将 running 配置数据库中的配置数据提 交到目标网络设备中对应的应用模块 ;
步骤 412、 目标网络设备中对应的应用模块更新配置后, 响应配置结果返回给 NETCONF 服务器 ;
步骤 413、 在 NETCONF 服务器中记录本次配置提交操作以及操作的配置数据, 用于 配置提交的统一管理 ;
步骤 414、 NETCONF 服务器将配置结果封装为 NETCONF 协议的 rpc-reply 返回给 NETCONF 协议或非 NETCONF 协议网络管理代理 ;
步骤 415、 NETCONF 协议接收到 NETCONF 服务器返回的 rpc-reply 后, 下发 unlock 操作, 目标为 running 配置数据库 ;
步骤 416、 NETCONF 服务器解锁 running 配置数据库后, 响应 OK。
本发明实施例提供一种基于上述方法的 NETCONF 协议服务器, 简称 NETCONF 服务 器, 包括 :
创建模块, 用于为 NETCONF 协议以及目标网络设备中的每个非 NETCONF 协议网络 管理代理分别创建一个独立的候选配置数据库 ;更新模块, 用于接收 NETCONF 协议或者任一非 NETCONF 协议网络管理代理的编辑 配置 edit-config 操作, 根据 edit-config 操作中的参数更新其对应的候选配置数据库 ;
提交模块, 用于将某一更新后的候选配置数据库的配置数据, 通过提交 commit 操 作应用到运行配置数据库 ;
应用模块, 将运行配置数据库中的配置数据提交到目标网络设备的应用模块中。
较佳地, 所述服务器还包括 :
校验模块, 用于在提交模块将某一更新后的候选配置数据库的配置数据提交到运 行配置数据库之前, 对所述更新后的候选配置数据库的配置数据进行校验。
较佳地, 所述服务器进一步包括 :
加解锁模块, 用于接收 NETCONF 协议或者任一非 NETCONF 协议网络管理代理的加 锁 lock 操作或者解锁 unlock 操作。
较佳地, 所述服务器进一步包括 :
记录模块, 用于从目标网络设备的应用模块接收到返回的配置成功消息后, 记录 本次配置提交操作以及操作的配置数据。
以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保护范围。 凡在 本发明的精神和原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。