ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

网络工程师就算没有真机,也可以在ensp模拟器上玩python编程自动化!

2021-04-12 14:58:17  阅读:339  来源: 互联网

标签:ensp 真机 python send 交换机 command ssh SW1 user


前面几期我们分享过利用Telnetlib、Netmiko模块来实现登录交换机修改配置,本期我们再介绍一个模块,叫Paramiko模块,这回我不打算用真机的,改用ensp模拟器试试看,这样大家也可以在没有真机的情况下,也能练练python自动化编程,体验一下,一旦成功了,相信你会对编程越来越感兴趣的。还有一点值得提醒的就是后续如果学更多编程知识,在没有测试机的情况下,不建议直接拿生产网来测试,也应该先用ensp等模拟器,多测试几遍,代码多推敲几遍,避免人为失误,导致网络故障,不然你的年终奖就要泡汤啦!图片图片图片



一、安装Paramiko模块


同样,由于Paramiko也是第三模块,所以我们需要在电脑上安装一下。在CMD,输入命令:pip3 install paramiko

图片


图片


然后进入python 解释器,输入:import paramiko

如果没有报错,就说明安装没问题啦!

图片


ok,接下来,我们来说搭个简单环境,以后再搭批量的。



二、搭建实验环境


1、用模拟器上桥接台式电脑的网卡:

图片

(看不清楚,可单击放大查看)


2、连线,配置交换机IP地址。

图片


<Huawei>sys

[Huawei]sys SW1

[SW1]

[SW1]vlan 10

[SW1-vlan10]qu

[SW1]

[SW1]int Vlanif 10

[SW1-Vlanif10]ip add 192.168.56.100 24

[Huawei-Vlanif10]undo shu

[SW1]int g0/0/1

[SW1-GigabitEthernet0/0/1]port link-type access

[SW1-GigabitEthernet0/0/1]port default  vlan  10

欢迎关注网络工程师阿龙原创文章。

测试一下 ensp上的交换机与台式电脑的连通性:


图片


图片


3、交换机上配置SSH


[SW1]dsa local-key-pair create 

Info: The key name will be: SW1_Host_DSA.

Info: The key modulus can be any one of the following : 512, 1024, 2048.

Info: If the key modulus is greater than 512, it may take a few minutes.

Please input the modulus [default=512]:2048

Info: Generating keys...


[SW1]user-interface  vty  0 4

[SW1-ui-vty0-4]authentication-mode aaa

[SW1-ui-vty0-4]protocol inbound ssh 

[SW1-ui-vty0-4]


[SW1]aaa

[SW1-aaa]local-user along password cipher along123

[SW1-aaa]local-user along privilege level 15

[SW1-aaa]local-user along service-type ssh

[SW1-aaa]


[SW1]ssh user  along authentication-type password

[SW1]ssh user along service-type stelnet

[SW1]stelnet server enable 



用CRT验证一下,是否可以登录了:

图片

图片

图片

图片

图片


ok,CRT都能正常ssh登录,那么待会我们写脚本登录方面也就没问题了。



三、Python脚本代码


我喜欢在Geany编辑器上写代码,想知道怎么安装的,也可以参考我之前的文章。




往期推荐



Python安装教程(推荐一款不错的Python编辑器)



import paramiko

import time


ip = "192.168.56.100"

user = "along"

pw = "along123"


#欢迎关注网络工程师阿龙

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname=ip, username=user , password=pw)



print("恭喜您成功登录到ensp模拟器上的交换机了!" , ip)


#连接成功后,调用invoke_shell()方法来唤醒shell,也就是华为系统命令行,同时把它赋值给command,方便后续调用。

command = ssh.invoke_shell()


#向设备发送命令,需要执行的命令。

command.send("system\n")

command.send("vlan 20\n")

command.send("quit \n")

command.send("int vlan 20 \n")

command.send("ip add 192.168.20.200 24 \n")

command.send("quit")

command.send("quit")


#欢迎关注网络工程师阿龙

#使用sleep函数,让脚步执行后休息2s,再回显内容。65535是回显多少个字符

time.sleep(2)

output = command.recv(65535)

print(output.decode("ascii"))


#配置完后,用close方法退出ssh   欢迎关注网络工程师阿龙

ssh.close()     


上述代码编写完后,在执行前,我们先看看交换机上,目前还没有vlanif 20的接口及ip地址:


图片


现在,我们先执行以下python脚本,待会你会发现,真的多出来了。

图片


图片

欢迎关注网络工程师阿龙原创文章。

脚本执行成功,我们再次登录ensp模拟器上的交换机,确认一下配置是否真的多这一条配置了?

图片


果然配置成功了吧!  是不是瞬间觉得编程很好玩?是不是觉得网络工程师玩编程没什么难度,so easy!


标签:ensp,真机,python,send,交换机,command,ssh,SW1,user
来源: https://blog.51cto.com/u_15127557/2701407

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有