Python(NetOps)前传-网络设备开局配置

背景

我们知道用Python在cli配置网络设备的前提是:

  • 网络设备与Python主机网络可达
  • 网络设备已开启并完成ssh相关配置

目标

本文已华为S5720S-52P-LI-AC交换机为例,完成:

  1. 完成网络设备开局配置;
  2. 用Python脚本验证ssh登录

配置

一、网络设备开局配置

如果之前配置杂乱,建议console登录之后首先在用户视图下用reset saved-configuration删除配置,然后重启设备,如未重启原配置仍然生效;如果是新设备可直接进行开局配置。

1、console线连接

2、默认账户登录

      交换机默认用户名admin    密码admin@huawei.com
      路由器默认用户名admin    密码Admin@huawei

3、配置设备名称(可选)

      #进入系统视图system view#重命名设备为XXXsysname xxx

4、配置时区时间(可选)

      #配置时区clock timezone Beijing add 08:00:00#配置时间clock datatime 19:00:00 2024-03-06#查看配置dis clock

5、配置管理接口及IP

执行ip address命令,配置设备管理IP地址,执行命令ip route-static,配置设备缺省网关。

  • 5.1、对于有管理网口的设备,在管理网口下配置管理IP地址
int gi 0/0/0
ip address 192.168.99.1 24     //设备管理IP
q
ip route-static 0.0.0.0 0.0.0.0 192.168.99.1     //设备缺省网关
  • 5.2、对于没有管理网口的设备,在vlanif接口下配置管理IP地址
sys
vlan 99
q
int vlanif 99
ip add 192.168.99.1 24   //设备管理IP
q
ip route-static 0.0.0.0 0 192.168.99.1    //设备缺省网关

由于本文是准备将Python主机直接与S5720交换机SSH连接,所以需要将其中某个接口配置到管理接口下

int gi 0/0/1
p l a       //全写是port link-type access
p d v 99     //全写是port default vlan 99

6、配置VTY

sys
user-int vty 0 4
authentication-mode aaa    //配置VTY用户认证方式为AAA认证
protocol inbound ssh    //VTY用户界面所支持的协议缺省为ssh
q

7、配置AAA

注意:一般情况下ssh用户很多都用admin,但是出于安全性考虑,最好设置为非系统默认用户

sys
aaa
local-user python password irreversible-cipher python@network
local-user python service-type ssh terminal
local-user python privilege level 15
q

8、创建SSH用户(可选)

sys
ssh user python
ssh user python authentication-type password
ssh user python service-type stelnet

由于VTY默认采用AAA里配置的用户且支持ssh,所以可以不用再创建SSH用户

9、开启SSH服务

stelnet server enable

二、用Python脚本验证ssh登录

1、通过paramiko模块ssh登录设备,并执行dis ip int b命令之后返回结果

2、代码 

import paramiko
import time
# 创建ssh客户端
ssh = paramiko.SSHClient()
# 自动添加主机密钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
ssh.connect('192.168.99.1',username='python',password='python@network')
# 参数说明:
# allow_agent:是否允许使用代理验证,默认为False
# look_for_keys:是否在本地寻找私钥文件,默认为False
# 执行命令
cli=ssh.invoke_shell()
cli.send('screen-length 0 temporary\n')
cli.send('dis ip int b\n')
time.sleep(3)
dis_cu = cli.recv(999999).decode()
print(dis_cu)
# stdin,stdout,stderr = client.exec_command('ls -l')
# print(stdout.read().decode())
# 关闭连接
# client.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724407.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统认识数据分析

数据分析的全貌 包括应用、观测和实验 观测 分为两部分观察和测量 观察 采集数据: 解析系统日志 : 产生日志、解析日志、得到数据 埋点获取新数据 :日志记录新信息、解析日志、得到新数据 通过传感器收集:例如天气数据收集 爬虫&…

Android工程师必备知识,2024Android面试

前言 职场的金九银十跳槽季火热进行中,不同的是,今年的竞争比往年会更加激烈一些,形式更加严峻一些。 对于求职者来说,面试是一道坎,很多人会恐惧面试,即使是工作很多年的老鸟,也可能存在面试…

STM32控制气泵和电磁阀实现

一、功能简介 使用STM32控制气泵和电磁阀的开和关,气泵和电磁阀的供电电压为12V。 二、实现过程 1、气泵和电磁阀的开和关均为开关量,实现控制方法有多种,比如继电器,但是继电器动作有噪声且体积较大,更好的方法为使…

Sqli-labs靶场第19关详解[Sqli-labs-less-19]自动化注入-SQLmap工具注入

Sqli-labs-Less-19 通过测试发现,在登录界面没有注入点,通过已知账号密码admin,admin进行登录发现: 返回了Referer ,设想如果在Referer 尝试加上注入语句(报错注入),测试是否会执行…

论文阅读笔记 | Limited-Reference Image Quality Assessment: Paradigms and Discussions

文章目录 文章题目发表年限期刊/会议名称动机主要思想或方法架构实验结果 文章链接:https://dl.acm.org/doi/10.1145/3581783.3613436 文章题目 Limited-Reference Image Quality Assessment: Paradigms and Discussions 发表年限 2023 期刊/会议名称 MM’23: …

1688商品详情数据(商品属性,价格,sku等)1688API接口开发系列

1688(阿里巴巴批发网)提供了API接口供开发者使用,以便能够获取商品详情数据,包括商品属性、价格、SKU等信息。在使用1688的API接口之前,你需要完成以下几个步骤: 请求文档,API接口接入Anzexi58…

java网络编程 01 IP,端口,域名,TCP/UDP, InetAddress

01.IP 要想让网络中的计算机能够互相通信,必须为计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,而IP地址就是这个标识号,也就是设备的标识。 ip地址组成: ip地址分类:…

Jacob使用教程--通过宏来寻找变量名

说明: 这里做个随比,参考资料请见前面的系列文章 问题展示: 对于一个操作,当我们不知道怎么利用jacob写代码时,而且网上也找不到,可以按照如下操作: 比如,我们要删除 word中的文本框 我们根本不知道文本框,这个变量叫什么,在Microsoft文档哪个父目录下面, 可以通过…

配置与管理防火墙

配置与管理防火墙 1,概念:设置在不同网络或网络安全域之间的一系列部件的组合。 2,功能:保护内网中易手攻击的服务;控制内外网之间网络系统的访问;隐藏内网的IP地址及结构的细节,提高网络保护…

VSCode 隐藏侧边栏文件或文件夹

开发时有些文件根部就会动,可能是运行的环境或者缓存,可能是其他的文件。 但是又不能删除,影响开发的观感,那么怎么在侧边栏栏隐藏文件呢 搜索的时候想要加快速度,怎么屏蔽某些文件呢 隐藏侧栏显示文件或屏蔽搜索范围…

每周一练--[NewStarCTF 2023 公开赛道]Final

很明显又是ThinkPHP的漏洞,上周还做过类似的。 先看看是哪一个版本的。 得到版号后,去找找payload。 (post)public/index.php?scaptcha (data) _method__construct&filter[]system&methodget&server[REQUEST_METHOD]ls -al 这其…

静态住宅代理IP使用指南,你需要测试的5件事

静态住宅代理IP,是一种在网络通信过程中提供固定IP地址的代理服务。与动态代理IP相比,静态代理IP提供的是持久且不变的IP地址。这种稳定性使得静态代理IP在需要长期稳定网络身份的场景中,如跨境电商/社媒养号、网络监控、品牌保护、长期数据爬…

java常用数据结构面试题,docker教程学习

前言 JVM对实际简单开发的来说关联的还是不多,一般工作个一两年(当然不包括爱学习的及专门做性能优化的什么的),很少有人能很好的去学习及理解什么是JVM,以及弄清楚JVM的工作原理,其实我个人认为这块还是非…

Java+SpringBoot,打造社区疫情信息新生态

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

真空展|2024上海国际真空技术及设备展览会

2024上海国际真空技术及设备展览会 2024 Shanghai International Exhibition of vacuum technology and equipment 时 间:2024年7月13-15日 地 点:上海新国际博览中心 承办单位:上海昶文展览服务有限公司 展会简…

Pytorch 复习总结 6

Pytorch 复习总结,仅供笔者使用,参考教材: 《动手学深度学习》Stanford University: Practical Machine Learning 本文主要内容为:Pytorch 计算机视觉。 本文先介绍了计算机视觉中两种常见的改进模型泛化性能的方法&#xff1a…

关于 selinux 规则

1. 查看selinux状态 SELinux的状态: enforcing:强制,每个受限的进程都必然受限 permissive:允许,每个受限的进程违规操作不会被禁止,但会被记录于审计日志 disabled:禁用 相关命令&#xf…

flutter_gen依赖

flutter_gen 5.4.0 flutter项目内终端: dart pub global activate flutter_gen export PATH“ P A T H " : " PATH":" PATH":"HOME/.pub-cache/bin” fluttergen

薪资18K需要什么水平?来看看97年测试工程师的面试全过程…

我的情况 大概介绍一下个人情况,男,本科,三年多测试工作经验,懂python,会写脚本,会selenium,会性能,然而到今天都没有收到一份offer!从年后就开始准备简历,年…

python基础——基础语法

文章目录 一、基础知识1、字面量2、常用值类型3、注释4、输入输出5、数据类型转换6、其他 二、字符串拓展1、字符串定义2、字符串拼接3、字符串格式化4、格式化精度控制 三、条件/循环语句1、if2、while3、for循环 四、函数1、函数定义2、函数说明文档3、global关键字 五、数据…