IT袋

当前位置:主页 > 经验教程 > 建站编程 >

Python实现网络自动化案例

Python实现网络自动化案例

时间:2024-01-19 13:40:03 来源:IT袋 作者:马勇
导读:Python实现网络自动化案例,为网友们解答Python实现网络自动化案例方面的介绍,具体内容如下: 前言: Python 可以用于编写自动化网络任务,例如自动化网络设备配置、网络监控、网络流量分析、远

Python实现网络自动化案例

为网友们解答Python实现网络自动化案例方面的介绍,具体内容如下:

前言:

Python 可以用于编写自动化网络任务,例如自动化网络设备配置、网络监控、网络流量分析、远程执行等。例如,使用 pysnmp、netmiko、paramiko等库可以轻松地实现这些任务。

通过Python可以得到设备输出的信息,进一步人为分析和处理。

今天IT袋网分享几个简单的自动化配置运维小实验:

  • 实验1:批量创建交换机loopback接口并配置IP地址
  • 实验2:批量创建VLAN,并加入成员端口
  • 实验3:批量查看设备版本,并输出保存至本地文件

【实验环境】

Python3版本

visual studio code代码编辑器

eNSP华为模拟器

【实验拓扑】

Python实现网络自动化案例

完成基本的IP配置后,测试电脑虚拟接口能正常ping通所有交换机:

Python实现网络自动化案例

   实验1:批量创建交换机loopback接口第一步:

首先启用所有交换机的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 admin password cipher 12356
[Huawei-aaa]local-user admin privilege level 15
[Huawei-aaa]local-user admin service-type ssh
[Huawei]stelnet server enable
[Huawei]ssh authentication-type default password

第二步:编写python脚本,使用paramiko模块(是python基于SSH用于远程服务器并执行相应的操作,需要安装在python路径下)

import paramiko #加载paramiko模块,提供python中的SSH服务
import time
ips = ["192.168.56.200","192.168.56.201","192.168.56.202","192.168.56.203","192.168.56.204","192.168.56.205","192.168.56.206"]
username = 'admin'
password = '123456'
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #默认情况下,Paramiko会拒绝任何未知的SSH public keys,使用此函数使其接收来自交换机提供的public keys。
for ip in ips:
    ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False) #ssh连接设备,密码错误则提示报错
    print('Successfully connect to ' + ip)
    commend = ssh_client.invoke_shell() #进入client命令窗口,输入ssh指令获取信息
    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(2) #稍等2秒,确保保存生效后能执行以下操作
    commend.send('dis ip int brief LoopBack 0\n') #显示修改结果
    time.sleep(2) #稍等2秒读取窗口回显,然后执行以下操作
    output= commend.recv(65535) #截取本次运行script后的所有输出记录,将其assign给output变量
    print(output.decode("ascii")) #字符ascii表示,如果不做编译就会显示\n,输出结果没有换行
    
    ssh_client.close

第三步:运行脚本,查看结果

Python实现网络自动化案例

OK,可以通过结果看到所有交换机的loopback 0接口已经创建,并配置了IP 1.1.1.1/24。大家也可以到eNSP里面挨个敲交换机的命令查看结果。

实验2:批量创建VLAN,并加入成员端口

第一步:首先启用所有交换机的SSH功能

第二步:编写python脚本,使用paramiko模块(是python基于SSH用于远程服务器并执行相应的操作,需要安装在python路径下)

import paramiko #加载paramiko模块,提供python中的SSH服务
import time
ips = ["192.168.56.200","192.168.56.201","192.168.56.202","192.168.56.203","192.168.56.204","192.168.56.205","192.168.56.206"]
username = 'admin'
password = '123456'
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #默认情况下,Paramiko会拒绝任何未知的SSH public keys,使用此函数使其接收来自交换机提供的public keys。
for ip in ips:
    ssh_client.connect(hostname=ip, username=username, password=password, look_for_keys=False) #ssh连接设备,密码错误则提示报错
    print('Successfully connect to ' + ip)
    commend = ssh_client.invoke_shell() #进入client命令窗口,输入ssh指令获取信息
    commend.send('sys\n')
    commend.send('vlan 10\n') #创建VLAN 10
    commend.send('port-group 1\n') #创建端口组1
    commend.send('group-member g0/0/21 g0/0/22\n') #将GigabitEthernet0/0/21和22扣加入该组
    commend.send('port link-type access\n')
    commend.send('port default vlan 10\n')
    commend.send('return\n')
    commend.send('save\n')
    commend.send('y\n')
    time.sleep(2) #稍等2秒,确保保存生效后能执行以下操作
    commend.send('dis vlan 10\n') #显示修改结果
    time.sleep(2) #稍等2秒读取窗口回显,然后执行以下操作
    output= commend.recv(65535) #截取本次运行script后的所有输出记录,将其assign给output变量
    print(output.decode("ascii")) #字符ascii表示,如果不做编译就会显示\n,输出结果没有换行
    
    ssh_client.close

第三步:运行脚本,查看结果

相关阅读

  • 什么是跨站脚本 XSS攻击?

    什么是跨站脚本 XSS攻击?

    为网友解答什么是跨站脚本的相关话题,下面为详细的介绍。 跨站脚本(Cross-Site Scripting,XSS)是一种常见的网络安全漏洞,攻击者利用该漏洞在受害者的网页中插入恶意脚本,从而能够获取

  • HTTP状态码深入解析:401 Unauthorized

    HTTP状态码深入解析:401 Unauthorized

    为大家介绍HTTP状态码深入解析的教程内容,接下来一起来看看吧。 在互联网通信中,HTTP状态码是用来表示服务器响应的一种方式。 当我们在浏览器中访问网页时,服务器会返回一个状态码,

  • dns服务器未响应怎么修复 分享dns未响应最简单的修复办法

    dns服务器未响应怎么修复 分享dns未响应最简单的修复办法

    今天为大家介绍dns服务器未响应怎么修复和分享dns未响应最简单的修复办法的教程内容,继续往下看吧! 很多人在浏览网页时,经常会遇到DNS服务器未响应的情况,那么什么是DNS服务器?DNS未

  • 个人网站备案流程 工信部个人网站备案过程讲解

    个人网站备案流程 工信部个人网站备案过程讲解

    您可能不了解个人网站备案流程和工信部个人网站备案过程讲解的IT小经验,继续往下看吧! 嗨,大家好,我是希留。 前面文章介绍了下使用https访问网站的相关配置,然后发现访问https时灵时