背景:
公司最近要做网络交换机自动化的优化,一共大概有 1100 网络交换机,其中华为大概有: 400 台,H3C
大概有 700 台,其中 V5
系列有 200 台,V7
系列有 500 台。
华为所有的交换机都开通了 SSH
并且支持 Netconf
,H3C
的 V7
系列交换机是支持 Netconf
,但是 V5
系列不支持Netconf
。
老的解决方案都是通过 SNMP
进行读配置,Telnet
进行写配置。
最近运维团队将所有的设备都开通了 SSH
功能,所以希望我们可以使用基于 SSH
协议,最好是使用 Netconf
的技术读写大部分设备,使用其他技术解决小部分设备。后续运维团队用一年的时间慢慢替换 H3C
的 V5
系列交换机,最终让所以交换机都只使用 Netconf
一种技术进行读写操作。
技术方案
针对设备读写的一般有:SNMP
、Telnet
、SSH
、Netconf
等几类相关技术。
基于 SSH
协议的有 Paramiko
、Netmiko
、Netconf
几个,Netconf
也需要设备支持,Python
中有处理 Netconf
的包: ncclient
。
基于 上述需求我们可以分为三步走:
第一步,因为所有设备现在都已支持 SSH
,所以可以全部抛弃 Telnet
方式。
第二步,华为的所有设备和 H3C
的 V7
系列设备使用 Netconf
读写配置。
H3C
的 V5
系列设备使用 SNMP
读设备配置,使用 SSH
写设备配置(SSH
速度很慢,使用 SNMP
可以提高速度)。