供应商不可知的网络自动化

网络工程 自动化 网络配置
2021-07-30 17:02:16

我正在尝试使用 python 更改来自不同供应商的交换机配置。到目前为止,我使用Netmiko. 虽然这些可以完成工作但需要特定于设备的命令,这很麻烦。目前,ncclient在 python 中使用(Netconf) 可以稍微简化这个过程,但仍然必须明确提及设备特定的参数。例如,xml要更改 FS 交换机的主机名:

<config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
    <system xmlns="urn:fs:params:xml:ns:yang:system">
        <hostname>device-hostname</hostname>
    </system>
</config>

目前我无法访问任何其他支持 Netconf 的设备,但通过查看 Cisco IOS 上的不同示例:

<config>
    <native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native">
        <hostname>device-hostname</hostname>
    </native>
</config>

和 JunOS:

<configuration xmlns="http://xml.juniper.net/xnm/1.1/xnm">
    <system>
        <host-name>device-hostname</host-name>
    </system>
</configuration>

我看到特定供应商(或操作系统)的设置不同。

是否有通用的解决方案,或者我每次集成新设备时都必须修改源代码吗?基本上我想要实现的是通过使用任何供应商的单一格式(模板)来更改一些基本的设备和交换机接口级别配置。

我对网络和自动化的东西很陌生,所以任何类型的提示或建议都会有所帮助。TIA。

1个回答

是否有通用的解决方案,或者我每次集成新设备时都必须修改源代码吗?基本上我想要实现的是通过使用任何供应商的单一格式(模板)来更改一些基本的设备和交换机接口级别配置。

不,没有这样的事情。网络设备管理解决方案,如 HPNA、Ansible 等,都有设备特定的模块。你会发现,即使是同一个厂商、不同的设备,有时甚至是同一个设备的不同操作系统版本,也会使用不同的命令。