一、网络配置概述
设备配置特性涉及设备配置、配置框架、适配框架、网元适配、离线配置5个组件,依赖网元管理、南向协议等组件:
设备配置:主要包括业务适配包和时间段模板、安全提议模板、ACL、URL过滤模板、Radius服务器模板、Portal服务器模板、免认证规则模板、设备管理员账号密码模板、配置资源等几个模块,是业务层的设备配置组件。
配置框架:主要包括配置框架、配置模板、配置结果三个模块。配置框架是配置主要业务流程,配置模板提供配置存储,配置结果提供各特性配置的结果状态管理。
适配框架:主要包括适配框架、自动生成报文两个模块。适配框架是报文适配主要流程逻辑,自动生成报文提供报文生成的公共接口。
网元适配:包括网元适配包和网元配置模型两个模块。网元配置模型提供业务层和网元层的配置的YANG模型,用于配置存储和报文生成;网元适配包提供各型号各版本设备的配置适配逻辑,支持各特性配置报文的生成。
离线配置:包括netconf-proxy和device-model两个模块。netconf-proxy提供离线配置的统一接口,支持设备在线及离线的配置任务管理逻辑;device-model提供离线配置全量报文的存储。
整体流程如图一所示。
系统初始化时,分别加载网元适配包和业务适配包。
业务下发时,调用业务适配包,将前台UI数据转换为北向业务模型,存储数据库后将配置结果刷新为正在下发。然后调用适配框架配置下发的routedrpc接口。
适配框架将通过网元适配包生成报文,并调用离线配置进行报文下发处理。
离线配置判断设备在线状态及同步情况。如果设备在线且离线配置已同步且状态为可下发,则直接下发到设备,下发成功后将此报文合并到全量报文并存储;如果设备不在线或离线配置未同步完成或状态为不可下发,则不能下发设备,直接将此报文保存到增量报文表,然后合并到全量报文并存储。
设备注册控制器时,需要离线配置判断设备版本情况及是否重启。如果版本未配置,则上发版本不匹配通知,离线配置不做其他处理;如果版本已配置且变更,需要清空配置并重新下发所有配置(与设备加入设备组的处理相似);如果版本已配置且未变更且非重启,则逐一下发增量edit-config报文,做离线配置同步;如果版本已配置且未变更且重启,则通过copy-config下发当前全量报文,做离线配置同步。
二、配置重下发
云管理场景有三种情况会触发配置的重下发:失败配置的重新部署、设备加入设备组、设备版本变更。
[if !supportLists]1、 [endif]失败配置重新部署时,配置结果模块读取设备下所有下发失败的配置,调用失败配置对应的业务适配包,重新将失败配置下发给设备。
[if !supportLists]2、 [endif]设备加入设备组时,配置框架会先将离线配置的设备状态设置成offline,此时所有的配置下发都将会只存储到离线配置库中,而不下发给设备,然后下发配置清除报文(config节点为空的copy-config报文)将离线配置中的配置清空。离线配置清空后,配置框架读取该设备所有的单设备粒度配置和新加入设备组的设备组粒度配置,并调用特性handler下发配置报文至离线配置,所有特性下发完毕后,配置框架调用离线配置接口下发全部配置(全量配置的copy-config报文)至设备,全量报文下发完成后,将离线配置的设备状态设置为online。
[if !supportLists]3、 [endif]设备版本变更,离线配置会上报设备版本变更通知到配置框架,配置框架重新调用特性handler下发配置,流程与设备加入设备组一致。
流程说明
报文类型
[if !supportLists]1) [endif]get-config
直接调用离线配置库(devicemodel-impl bundle),从离线配置库获取匹配的配置
[if !supportLists]2) [endif]edit-config
创建OnlineConfigTask任务,将任务加入到队列中,等待执行
[if !supportLists]3) [endif]copy-config
创建OnlineCopyConfigTask任务,将任务加入到队列中,等待执行
[if !supportLists]4) [endif]其他报文类型
其他报文类型在离线配置层不做处理,直接透传给Netconf-plugin层与设备交互
触发类型
[if !supportLists]1) [endif]正常流程触发(业务部署、信息获取等由业务主动触发)
按照报文类型的不同,进行不同的处理,见上节
[if !supportLists]2) [endif]设备注册触发(设备第一次上线、设备重启、网络中断重新连接)
创建OfflineConfigTask任务,将任务加入到队列中,等待执行