平台工具
- 实验平台:WIN10
- 使用工具:eNSP、python (可以用pyCharm进行编辑)
实验拓扑
书中使用了 192.168.2.0/24 网段,而我换成 192.168.11.0/24 网段。我自己的电脑(Win10 已安装 python 3.8.2)设置一块虚拟网卡 Loopback0 地址为 192.168.11.2/24,桥接到云彩,与实验拓扑拉通组网。
本次实验只需要用到 PC ,透明交换机SW1(启动即可,无需配置)、L3S1(Python 第三方库 paramiko 要操控的设备。),其它 L3S*设备 未启动,后续实验再使用。
《网络工程师的Python之路》实验1 基于 eNSP 拓扑
实验目的
- 用 Python Paramiko 模块实现 SSH 登陆单个交换机L3S1(192.168.11.11),为其 LoopBack0 端口配置IP地址 1.1.1.1 /32。配置完成后对设备进行配置保存,并退出。
实验前检查
- 检查网络连通性(PC ping 测 192.168.11.11),打开 cmd,执行 ping 192.168.11.11。
- 检查 win10 的 arp 表项,打开 cmd ,执行 arp -a ,找到 接口: 192.168.11.2 --- 0x12 查看表项
- 交换机 L3S1上查看接口 vlanif 1 的 MAC 地址,与 win10 中 arp 表项里的 MAC 对应得上
L3S1配置
sysname L3SW2 aaa 明文密钥 123 local-user python password cipher 123 interface Vlanif1 stelnet server enable ssh authentication-type default password user-interface con 0 |
Python 代码
import paramiko import time ip = "192.168.11.11" username = "python" password = "123" ssh_client = paramiko.SSHClient() ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh_client.connect(hostname=ip,username=username,password=password,look_for_keys=False) print("Sucessfully connected to ",ip) command = ssh_client.invoke_shell() command.send("sys\n") command.send("interface LoopBack 0\n") command.send("ip address 1.1.1.1 255.255.255.255\n") command.send("return\n") command.send("save\n") command.send("y\n") time.sleep(3) command.send("display this\n") time.sleep(1) output = command.recv(65535) print(output.decode("ascii")) ssh_client.close() |
实验中观察
- 开启调测(实验中可观察),执行代码过程中,可以 debug 到交互包
实验结果检查
- 脚本跑完后,可以到L3S1 上查看 LoopBack 0 口的 IP 地址是否已经正确的配置上了。