如何将本地CLI配置文件转换为YANG XML?netconf-console2是否支持该操作
结论
你设想的netconf-console2 --file localConf.cf直接转换本地CLI配置的操作不具备可行性。
netconf-console2本质是个轻量NETCONF协议客户端,本身没有内置CLI配置解析、YANG模型映射的逻辑。你平时用它拉取到的YANG XML格式配置,转换动作完全是在被连接的路由器上完成的:设备收到get-config RPC请求后,会把自身运行的配置按照已加载的YANG模型序列化成XML返回,netconf-console2只负责把设备返回的内容原样输出,本身不做任何格式转换。
它的--file参数实际作用是读取本地存储的NETCONF XML/RPC格式请求报文,发送给已连接的设备执行,根本不支持识别原生CLI配置做格式转换。
可替代的实现方案
- 厂商官方转换工具
从你贴的配置样例里的vbond、site-id、system-ip字段判断,这是思科SD-WAN(原Viptela)的系统配置,这类场景优先用厂商官方能力:vManage管理平台自带CLI配置导入功能,上传本地CLI配置后可以直接导出对应YANG XML格式的配置;官方发布的cisco-sdwan Python SDK也附带配置解析模块,支持批量完成CLI到YANG XML的映射转换,字段匹配准确率100%,不会出现映射偏差。 - Pyang搭配厂商插件转换
如果是其他厂商的设备配置,可以先获取和设备版本完全匹配的全量YANG模型集,搭配对应厂商提供的Pyang CLI解析插件使用:加载YANG模型和插件后,工具可以逐行解析CLI配置的层级、字段值,映射到对应YANG节点后输出标准XML。目前Juniper Junos、华为VRP、思科IOS-XE等主流网络操作系统都有公开的对应Pyang插件可用。 - 仿真设备拉取方案
这是准确率最高的通用方案,不用自己折腾模型映射:在本地用EVE-NG、GNS3或者厂商官方仿真器(比如思科CML、华为eNSP)运行对应型号、对应固件版本的设备镜像,把本地CLI配置导入仿真设备正常启动后,再用netconf-console2连接仿真设备执行拉取命令,就能拿到和真实物理设备输出完全一致的YANG XML配置。
拉取命令和连接物理设备没有区别:netconf-console2 --host=本地仿真设备管理IP -u 登录用户名 -p 登录密码 --port 830 --get-config > 转换后的yang_config.xml
内容的提问来源于stack exchange,提问作者Eduardo A EDUARDO Fernandez Di
相关产品推荐
相关产品推荐

