Python脚本登入多台华为设备-网络编程与自动化-Python telnetlib库的常用方法(2)

2023-05-16

 

 1 实验要求 :

    通过本实验,读者将掌握Python telnetlib库的常用方法。通过python脚本自动化登入多台设备并导出当前设备配置文件。

2 实验组网:

3 配置思路及步骤

 要完成通过python脚本自动化登入设备。

1  首先完成设备Telnet预配置:配置Telnet密码,开启Telnet功能和允许Telnet登录。

1.1 配置AR1,LSW1,AC1设备的IP地址通过云实现主机与AR1互通

//AR1地址配置
<AR1>undo terminal monitor   
<AR1>system-view             
[AR1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 192.168.100.2 24
 
//LSW1地址配置
[LSW1]int vlan 1
[LSW1-Vlanif1]ip add 192.168.100.3 24

//AC1
[AC1]int vlan 1
[AC1-Vlanif1]ip add 192.168.100.4 24        

//FW1,很多时候这个登入都困难!
//初始账户和密码
Username:admin
Password:Admin@123
The password needs to be changed. Change now? [Y/N]: y     //要是重新更改密码
Please enter old password: Admin@123
Please enter new password: Admin@1234
Please confirm new password: Admin@1234
//登入成功!
<USG6000V1>undo terminal  monitor    //关闭提示
<USG6000V1>system-view               //进入系统视图
[USG6000V1]sysname FW1               //更改设备名称
//配置IP地址
[FW1]int g1/0/0
[FW1-GigabitEthernet1/0/0]ip add 192.168.100.5 24             

1.2 查看到如下vianif下已有IP地址,表示地址配置成功!

//使用该命令自行查看
display ip interface brief 

 1.3 查看主机能否ping通设备

 不然发现配置完地址后其它三台设备都能ping通,唯有防火墙ping不通。

 抓取AR1的g0/0/0接口进行报文分析:

 先是网卡发出ARP解析包广播问谁是192.168.100.2请回复(request):

 然后是192.168.100.2的网口回复(reply)192.168.100.2 is at 00:e0:fc:d6:1c:c3

知道地址后发ICMP包进行单播(ping)请求(request):

收到请求进行回复(reply)

 进行抓取FW1的g1/0/0的报文分析为啥ping不通

查看报文数据不难发现只要192.168.100.1一直在发requestq请求报文并未受到任何回复,这样就不难想到防火墙的的各区域通过规则:

 防火墙一共有四个区域:

 trust(安全区域):85

 untrust (非安全区域) :5

 dmz (非军事区) :50

 local (本地区域):100  (防火墙所以的接口都是在本地区域)

数字越大安全等级越高也就越受信任,默认高等级可以访问低等级,但低等级访问高等级就得网络安全人员给定相应的权限。

所以我们就得到:从192.168.100.1 到 192.168.100.2,192.168.100.2可以收到请求但不能回复,因为回复报文要经过本地区域(100)发送出去报文也就是从低等级到高等级需要配置相应的权限才能回复。

  1  将特定的接口加入到信任区域。   

[FW1]firewall zone trust 
[FW1-zone-trust]add int g1/0/0

  2  配置安全策略。

[FW1]security-policy           //进入
[FW1-policy-security]rule name telnet_alow  //为该策略取名
[FW1-policy-security-rule-telnet_alow]source-zone trust  //源区域
[FW1-policy-security-rule-telnet_alow]destination-zone local  //目的区域
[FW1-policy-security-rule-telnet_alow]action permit    //动作指定

 配置完后再次抓包发现已经有回复了说明安全策略配置完成并指定允许

  但最终发现还是ping不通,这就是因为防火墙接口下的ping服务没有开启(防火墙的接口下有很多的服务需要手动开启)

 3 开启ping操作服务

[FW1-GigabitEthernet1/0/0]service-manage ping permit 

  最终已ping成功!说明192.168.100.1已经可以成功的访问192.168.100.5

抓包也看到已经有ping包回复了!

1.4 配置Telnet密码,开启Telnet功能和允许Telnet登录

[AR1]user-interface vty 0 4   //进入vty
[AR1-ui-vty0-4]protocol inbound telnet //开启telnet,默认已经开启
[AR1-ui-vty0-4]authentication-mode ?   //查看认证模式
[AR1-ui-vty0-4]authentication-mode aaa   //选择aaa认证,相对更安全
[AR1]aaa      //到本地数据库创建3a用户
[AR1-aaa]local-user AR1 password cipher huawei@123
[AR1-aaa]local-user AR1 service-type ?            //查看服务类型,为创建的账户开启相应的服务
[AR1-aaa]local-user AR1 service-type telnet       //选择telnet服务
[AR1-aaa]local-user AR1 privilege level 15        //给账户提供最高权限15


[LSW1]user-interface vty 0 4
[LSW1-ui-vty0-4]protocol inbound telnet 
[LSW1-ui-vty0-4]authentication-mode aaa 
[LSW1-aaa]local-user LSW1 password cipher LSW1@123
[LSW1-aaa]local-user LSW1 service-type ?            //查看服务类型,为创建的账户开启相应的服务
[LSW1-aaa]local-user LSW1 service-type telnet       //选择telnet服务
[LSW1-aaa]local-user LSW1 privilege level 15        //给账户提供最高权限15


[AC1]user-interface vty 0 4 
[AC1-ui-vty0-4]protocol inbound  telnet 
[AC1-ui-vty0-4]authentication-mode aaa 
[AC1-ui-vty0-4]aaa
[AC1-aaa]local-user ac1 password cipher AC1@1234567
[AC1-aaa] local-user ac1 privilege level 15
[AC1-aaa]local-user ac1 service-type telnet

[FW1]user-interface vty 0 4
[FW1-ui-vty0-4]authentication-mode aaa 
[FW1-ui-vty0-4]protocol inbound telnet
[FW1-ui-vty0-4]aaa
[FW1-aaa]manager-user FW1
[FW1-aaa]password cipher Admin@1234
[FW1-aaa]level 15
[FW1-aaa]service-type telnet
[FW1]telnet server enable       //启动服务
[FW1-GigabitEthernet1/0/0]service-manage telnet permit //接口下开启服务不要忘了

1.5 查看是否配置正确:默认有一个admin账户,huawei账户时我们新建的并配置了相关配置。新建的账户用来登入设备。

dis th //自行查看

1.6 再次查看telnet服务是否开启,enable确认已经开启。

display telnet server status  //自行分别查看

 1.7 主机通过cmd/CRT/Xshell登入测试是否能登入成功

 如若出现以下问题是因为主机的telnet服务还未开启,查看上一篇文章解决

华为-python-网络编程与自动化-Python telnetlib库的常用方法(1)_A.丫三岁的博客-CSDN博客

分别使用cmd登入设备测试telnet登入是否正常

  cmd登入交换机LSW1时竟然被拒接???这能解决吗

 但Xshell7 能正常连接???难道端口冲突?

 登入AC1时cmd和Xshell 7 又都已经连接不上了也就是都ping 不通了,但又换了个软件CRT时竟然又可以登上??难道...........

现在怎么说呢?配置和连接其实都是没什么问题的,只是...............

防火墙在CRT登入成功!初始配置完成!

 好像明白了什么.....................................................先进入下一步............

4 python脚本代码的编写

  (部分代码详解可以看上一篇文章)

华为-python-网络编程与自动化-Python telnetlib库的常用方法(1)_A.丫三岁的博客-CSDN博客华为-python-网络编程与自动化-Python telnetlib库的常用方法配置Telnet密码,开启Telnet功能和允许Telnet登录现以上问题是因为主机的telnet服务还未开启,我们只需 python脚本代码的编写https://blog.csdn.net/weixin_49070591/article/details/123966584

import telnetlib
import time
import os
import datetime


HostFile = "userinfo.txt"


for user in open(HostFile, "r").readlines():
    # print(user)
    host = user.strip().split(":")[0]
    # print(host)
    username = user.strip().split(":")[1]
    password = user.strip().split(":")[2]

    tn = telnetlib.Telnet(host)

    # 输入用户名和密码登入设备
    tn.read_until(b"Username:")
    tn.write(username.encode("ascii") + b"\n")
    tn.read_until(b"Password:")
    tn.write(password.encode("ascii") + b"\n")

    # 执行命令
    # 滚动显示
    tn.write(b"screen-length 0 temporary \n")
    tn.write(b"dis cu \n")
    time.sleep(2)
    dis = tn.read_very_eager().decode()

    # 创建文件夹
    date = datetime.datetime.now().strftime("%Y-%m-%d")
    if not os.path.exists("%s" % date):
        os.mkdir("%s" % date)

    # sys_name = dis.split("<")[1].split(">")[0]
    time_now = datetime.datetime.now().strftime("%H.%M")
    dis_cu = open("C:/Users/zhang/Desktop/huawei/%s-%s-%s.txt" % (date, host, time_now), "w")
    dis_cu.write(dis)
    dis_cu.close()
    tn.close()
    print("%s设备保存成功!" % host)
else:
    print("所有设备配置文件配置成功!")

 4.1 运行显示登入及查看配置显示成功!

 查看保存的桌面文件

 查看文件里面的内容

 均上配置文件保存成功!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python脚本登入多台华为设备-网络编程与自动化-Python telnetlib库的常用方法(2) 的相关文章

  • gradle-wrapper.properties中各属性的含义

    gradle wrapper properties中各属性的含义 2017 02 13 00 02 57 爱博客大伯 阅读数 19202更多 分类专栏 xff1a android gradle 版权声明 xff1a 本文为博主原创文章 xf
  • 【Uni-App】用 uView 组件库中的u-picker 实现地区的 省-市-区 三级联动&确认&回显

    目录 一 xff1a 准备工作二 xff1a json文件数据例1例2 三 xff1a 先做个按钮做弹窗显示四 xff1a 使用组件五 xff1a 用到的变量六 xff1a 初始化数据七 xff1a 数据变更时的方法八 xff1a 点击确认
  • 【面试题】京东面试查漏补缺

    目录 一 xff1a 笔试题1 如何获取URL中的参数方法一方法二 2 怎么平铺多维数组方法一方法二 xff1a 递归方法三 xff1a flat 和 flatMap 二 xff1a 面试题1 promise相关问题2 vue nextTi
  • 【Vue3】element-plus中el-tree的递归处理赋值回显问题

    目录 一 xff1a 先获取所有权限tree二 xff1a 在获取所有该角色能有的权限tree三 xff1a 递归处理勾选tree节点 由于项目是从0 1开始构建的 rbac都需要重新构建对接 所以涉及到了权限管理和菜单管理 一级菜单包含多
  • Python基础知识作业2

    5 43 10 x 5 13 y 1 a 43 b x 43 9 5 x 43 12 43 x y 2 从控制台输入用户的月薪 xff0c 进行运算计算出年薪 打印输出用户的年薪 monthin 61 input 34 请输入月收入 xff
  • windows Server设置密码永不过期,取消密码复杂度,修改密码

    1 设置密码永不过期 快速打开计算机管理的方式 win 43 R 打开运行 xff0c 输入 compmgmt msc xff0c 回车搞定 xff01 2 取消密码复杂度 服务器管理器 61 工具 61 本地安全策略 61 账户策略 61
  • 线程池等待所有线程执行完的几种方法

    线程池等待所有线程执行完的几种方法 CountDownLatch span class token keyword private span span class token keyword final span span class to
  • 修改主机MAC地址

    如何修改主机MAC地址 一 打开网络控制中心二 打开网络适配器配置三 找到你需要修改MAC地址的网络控制器 xff0c 右键属性打开配置四 高级 xff0c 找到 locally Administered Address 或 网络地址 xf
  • 华为虚拟化FusionCompute知识点总结

    目录 2 Fusion Compute功能 xff1a 3 Fusion Compute特性 xff1a 4 热迁移与HA的区别 xff1a 5 Fusion Compute 有哪几个网络平面 xff1a 6 OpenStack xff1a
  • ubuntu升级后出错且无法恢复请联系管理员(A problem has occurred and the system can‘t recover,please contact the admini

    ubuntu虚拟机系统升级后出错且无法恢复请联系管理员 xff08 A problem has occurred and the system can t recover please contact the admini xff09 遇到
  • 什么是计算机网络

    计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台及外部设备 xff0c 通过通信路连接起来 xff0c 在网络操作系统 xff0c 网络管理软件及网络通信协议的管理和协调下 xff0c 实现资源共享和信息传递的计算机系统 网络通
  • Delphi之东进模拟语音卡(D160A)可复用源码

    Delphi之东进模拟语音卡 D160A 可复用源码 作者 xff1a 成晓旭 Blog xff1a http blog csdn net cxxsoft 声明 xff1a 欢迎转载 xff0c 请保证文章的完整性 设计简介 xff1a 1
  • 创建数据库表及修改删除数据表字段

    创建数据库表 例 xff1a 目标 xff1a 创建一个school数据库 创建学生表 xff08 列 xff0c 字段 xff09 使用SQL语句创建 要求 xff1a 学号int 姓名varchar 密码varchar 生日dateti
  • 使用IDEA连接数据库

    1 要先导入jar包才能连接成功 2 在IDEA右侧点击 3 连接 4 连接成功后选择数据库 连接不上的话 xff0c 可以看一下下面这里 xff0c 配置对应的mysql版本 双击数据库 修改后点击提交 编写SQL语句工作台 编写语句
  • pojo层、dao层、service层、controller层的作用

    pojo层 xff08 model xff09 实体层 数据库在项目中的类model是模型的意思 xff0c 与entity domain pojo类似 xff0c 是存放实体的类 类中定义了多个类属性 xff0c 并与数据库表的字段保持一
  • 使用JPofiler工具分析OOM原因

    在一个项目中 xff0c 突然出现了OOM故障 xff0c 那么该如何排除 能够看到代码第几行出错 xff1a 内存快照分析工具 xff0c MAT xff0c Jprofiler Dubug xff0c 一行行代码分析 xff01 MAT
  • lambda表达式,函数式接口,链式编程,Stream流式计算

    新时代的程序员 xff1a lambda表达式 xff0c 函数式接口 xff0c 链式编程 xff0c Stream流式计算 函数式接口 函数式接口 xff1a 只有一个方法的接口 简化编程模型 xff0c 在新版本框架底层中大量应用 x
  • ForkJoin

    什么是ForkJoin ForkJoin在JDK1 7 xff0c 并行执行任务 xff01 提高效率 xff0c 大数据量 xff01 大数据 xff1a Map Reduce xff08 把大任务拆分为小任务 xff09 ForkJoi
  • 异步回调

    Future Future设计的初衷 xff1a 对将来的某个事件的结果进行建模 没有返回值的runAsync异步回调 import java util concurrent CompletableFuture import java ut
  • 记录安卓,IOS安装kali的办法

    纯做记录 xff0c 不要用此技术做违法的事情 xff0c 仅供研究 xff0c 概不负责 一年前的小日记 xff0c 照抄过来记录一下 现在安卓有一个ZeroTermux更好用 xff0c 可以傻瓜式安装kali xff0c 三星S10完

随机推荐

  • Java 案例大全(详细)一

    一直在更新 案例汇总比身高判断奇偶数考试评价春夏秋冬正反输出数据求和1逢七过不死神兔百钱买百鸡输出所有时间珠穆朗玛峰求和2猜数字数组直接操作比较最大值获取最小值数组内容相同查找元素反转元素评委打分用户登录遍历字符串统计字符次数字符串的拼接1
  • 一次完整的http请求过程

    浏览器输入一个URL回车后 xff0c 会发生什么呢 一 http请求的完整过程简述 1 域名解析 xff1a 使用DNS协议进行域名解析 2 建立连接 xff1a 发起TCP三次握手 3 发起http请求 xff1a 建立TCP连接成功后
  • 《上海滩》命运的真实

    上海滩 命运的真实 小时候 xff0c 家里没电视 xff0c 像80年周润华版 上海滩 这样的经典 xff0c 通常也会很难一集不漏地看全 当然 xff0c 那个时候也看不懂那个冯程程的漂亮 许文强的帅气 xff0c 更看不懂冯敬尧的强横
  • C语言实现温度转换

    例1 xff1a 有人用温度计测量出用华氏温度98 F xff0c 现在要求用C语言实现把它转换为以摄氏法表示的温度 解题思路 xff1a 这个问题的算法很简单 xff0c 关键在于找到二者之间的转化公式 xff0c 摄氏度等于九分之五乘以
  • Java的集合类有哪些?

    集合 Java的集合主要有两种 xff0c 一种是单列集合Collection xff0c 一种是双列集合Map Collection Collection是单列集合包含List和Set List List包含ArrayList LinkL
  • 《SSM医疗管理系统》计算机毕业设计|Java毕设项目|医疗管理|医疗服务|医疗系统|

    SSM医疗管理系统 项目含有源码 文档 配套开发软件 软件安装教程 项目发布教程 技术路线 xff1a 该项目采用技术jsp SpringMVC Spring Mybatis tomcat服务器 mysql数据库 开发工具eclipse 主
  • 【笔记】lamp架构框图

    一 lamp架构 1 lamp基础结构 2 分布式lamp架构 3 实际运用 二 OSI七层和TCP IP五层关系 这部分具体可以参考网址 1 OSI七层 OSI xff08 Open System Interconnect xff09 x
  • SpringBoot( 扩展篇 ==> 使用枚举完成前后端数据传输规范

    本章导学 xff1a Result类设计enum设计controller层设计service与mapper层设计 在我们平时的开发中 xff0c 后端响应回给前端的请求一般都需要规范成统一的格式 xff0c 比如下图的这种格式 xff0c
  • AD软件学习

    AD软件学习 基本快捷键 电气画线 xff1a crtl 43 W放大缩小 xff1a 鼠标滚轮 crtl 43 鼠标右键旋转 xff1a space空格键1D 2D 3D切换 xff1a 数字键1 2 3清除 xff1a T 43 M测量
  • Ubuntu 2004 鼠标可以移动但是点击无响应 排查流程

    今天工作机遇到了这个问题 xff0c 就记录一下 解决方案看这里 span class token function sudo span span class token function apt span span class token
  • SSM项目的pom,springmvc,spring,mybatis配置文件

    1 pom配置文件 一个基本上完整的pom文件 xff0c 集成了常见的spring springmvc mybatis的依赖 xff0c 同时增加了json 分页 文件上传依赖 xff0c 作为一个ssm的初学者 xff0c 使用此pom
  • 再见 Pycharm,这款开箱即用的轻量级神器你值得拥有

    文 豆豆 来源 xff1a Python 技术 ID pythonall 如果你问我最好用的 IDE 是什么 xff0c 那我肯定会毫不犹豫的告诉你 Pycharm 毕竟 jetbrains 出品必属精品 但对于很多初学者来讲 xff0c
  • Springmvc pom.xml

    lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt project xmlns 61 34 http maven apache org POM 4 0 0 34 xmlns x
  • 中国房价不可能下降的19个理由

    中国房价不可能下降的19 个理由 2014 年01月26日 根据 腾讯房产 资料整理 在 腾讯房产 频道看到的 xff0c 所谓专家解释说的房价不可能下降有N 个无以辩驳理由 虽然少数内容缺乏数据依据 xff0c 但总体来看 xff0c 分
  • Spring MVC学习 | 注解配置Spring MVC&总结

    文章目录 一 注解配置Spring MVC1 1 初始化类1 2 Spring MVC配置类1 3 完整配置过程 二 总结2 1 常用组件2 2 执行流程 学习视频 x1f3a5 xff1a https www bilibili com v
  • oepncv实现——图像去水印

    功能简介 xff1a 通过拖动鼠标实现指定区域水印或是斑点的去除 实现原理 xff1a 利用opencv鼠标操作setMouseCallback函数框选 xff08 左上到右下 xff09 需要处理的区域 xff0c 按下鼠标开始选中 xf
  • Windows系统远程连接Linux系统操作

    远程连接服务器管理时 xff0c 系统不同可分为两种 xff1a 一是Linux系统和Mac系统或者Linux系统之间连接 xff1b 二是Windows系统连接到Linux系统 第一种情况下 xff1a 在Linux系统和Mac系统下可以
  • Markdown教程

    Markdown 是一种轻量级标记语言 xff0c 它允许人们使用易读易写的纯文本格式编写文档 Markdown 语言在 span class token number 2004 span 由约翰 格鲁伯 xff08 英语 xff1a Jo
  • 给一个图的所有边集求所有的最大连通子图

    数据结构如下 struct Road int node 1 int node 2 极大连通图 struct ConnectedGroup std vector lt Road gt roads void FindMaxConnectedGr
  • Python脚本登入多台华为设备-网络编程与自动化-Python telnetlib库的常用方法(2)

    1 实验要求 通过本实验 xff0c 读者将掌握Python telnetlib库的常用方法 通过python脚本自动化登入多台设备并导出当前设备配置文件 2 实验组网 xff1a 3 配置思路及步骤 要完成通过python脚本自动化登入设