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 Paramiko 模块实现SSH 登录单个交换机(192.168.56.2/24),配置LoopBack0地址:1.1.1.1/32。配置完成后,保存退出。
实验步骤
- 配置交换机管理地址,并测试与主机虚拟网卡连通性
[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
- 配置三层交换机开启 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
- 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()
查看运行结果
在交换机上查看
也可以在交换机上debuggiing ip packet可以看到日志
标签:eNSP,Python,send,commend,Huawei,交换机,ssh 来源: https://blog.csdn.net/weixin_51045259/article/details/115100759