Python登录eNSP交换机

哈喽,大家好,我是一个还在学习的菜鸟。一直想学习Python实现网络自动化运维,最近看到《网络工程师的Python之路》这本书及相关的一些资料,于是开始跟着学习,做实验。

书是出自知乎,弈心/网络行者,对了他还对书中部分知识进行视频讲解,在bilibili,知乎也有专栏。

《网络工程师的Python之路》中的实验是基于Linux系统、(Cisco设备)、GNS3模拟器完成。我尝试用 eNSP 模拟器和Pycharm(Python 3.8.5)完成,做实验,仅作为学习记录,以便复习。

之前就搜集了很久没办法在eNSP上实现来,最后准备了些时间,又看到了些视频,现在终于可以开始了,实践只是完成了一小点。

实验拓扑

云彩桥接到本机环回接口:192.168.1.1/24
三层交换机IP:192.168.1.2/24
Python登录eNSP交换机

实验要求

使用Python Paramiko 模块实现SSH 登录单个交换机(192.168.56.2/24),配置LoopBack0地址:1.1.1.1/32。配置完成后,保存退出。

实验步骤

  1. 配置交换机管理地址,并测试与主机虚拟网卡连通性
[Huawei]vlan 10
[Huawei]int vlan 10
[Huawei-Vlanif10]ip add 192.168.1.2 24
[Huawei-GigabitEthernet0/0/1]port link-type access 
[Huawei-GigabitEthernet0/0/1]port default vlan 10

Python登录eNSP交换机
Python登录eNSP交换机

  1. 配置三层交换机开启 SSH 服务端,配置 SSH 账号密码。
[Huawei]user-interface vty 0 4
[Huawei-ui-vty0-4]authentication-mode aaa
[Huawei-ui-vty0-4]protocol inbound ssh
[Huawei-aaa]local-user python password cipher 123
[Huawei-aaa]local-user python privilege level 3
[Huawei-aaa]local-user python service-type ssh 
[Huawei]stelnet server enable 
[Huawei]ssh authentication-type default password 
  1. Python写代码
import paramiko
import time

ip = '192.168.56.2'
username = 'python'
password = '123'

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) //默认情况下,Paramiko会拒绝任何未知的SSH public keys,使用此函数使其接收来自交换机提供的public keys。
ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False)
print('Successfully connect to ' + ip)

commend = ssh_client.invoke_shell()
commend.send('sys\n')
commend.send('interface LoopBack 0\n')
commend.send('ip add 1.1.1.1 255.255.255.255\n')
commend.send('return\n')
commend.send('save\n')
commend.send('y\n')

time.sleep(3) //稍等3秒,然后执行以下操作
output = commend.recv(65535) //截取本次运行script后的所有输出记录,将其assign给output变量
print(output.decode("ascii"))

ssh_client.close()

查看运行结果
Python登录eNSP交换机
在交换机上查看
Python登录eNSP交换机
也可以在交换机上debuggiing ip packet可以看到日志

上一篇:虚拟局域网VLAN的概述与VLAN的划分


下一篇:OSPF(多区域)