本次使用到的模拟器为ENSP,模拟的设备为CE交换机。
不同设备的配置文件信息不是一样的,不过大致代码思路和配置思路都可以此类推。
实验环境图如下:
//本次实验环境是在VXLAN集中式网关环境
首先设置Cloud云的网卡信息,添加一个UDP网卡和本地环回口网卡如下:
第一步增加UDP网卡:
第二步添加本地环回口网卡:
最后设置双向通道:
配置好Cloud的设置后,交换机与Cloud相连的端口VLANIF的IP地址信息也要配置好,与我们的Cloud映射的IP处于同网段,如下:
保证交换机与Cloud的网络可达性:
前置条件配置好后,现在可以开始对交换机进行相应的配置:
首先通过dir命令查看设备信息的所在文件名(每个设备的文件名可能不一致):
拥有了这些信息后, 就可以编写出我们配置信息的脚本(各位实验时可以将此命令cp进CE交换机)
脚本信息的配置大致内容为,开放设备的SSH连接服务,SFTP服务和创建AAA登录用户等等
以下为CE交换机的脚本配置信息:
user-interface vty 0 4
authentication-mode aaa
user privilege level 3
protocol inbound ssh
stelnet server enable
sftp server enable
snetconf server enable
ssh authorization-type default root
ssh user netconf
ssh user netconf authentication-type password
ssh user netconf service-type snetconf
ssh user python
ssh user python authentication-type password
ssh user python service-type sftp stelnet
ssh user python sftp-directory cfcard:
aaa
undo local-user policy security-enhance
local-user python password irreversible-cipher Huawei@123
local-user python service-type ssh
local-user python level 3
local-user netconf password irreversible-cipher abcd@123
local-user netconf service-type ssh
local-user netconf level 3
netconf
protocol inbound ssh port 830
这些命令都完整输入CE交换机后,设备就开放了远程访问控制的能力,此时我们就能够通过编写Python代码实现网络自动化。
以下为例:
以上代码能够简单实现网络设备运行状态的周期性(五分钟一次)的查询如OSPF邻居,LACP邻居信息以及可以对设备的配置信息进行备份性的下载保存至指定目录如下:
当然除了上述信息外,还能够提取到其他的运行状态嘛?
答案当然是可以的,只要是设备上能够查询到的信息,都能够通过编写相应Python代码一并输出,节省了网络运维人员一台台设备输入命令查询设备运行状态的时间,例如像VXLAN的隧道状态信息,EVPN的建立状态甚至包括设备运行的风扇,CPU状态等等,如下:
到此简单的网络自动化程序就已完成,如有需要可以通过下载附件解锁相关实验环境。