0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过napalm-huawei-vrp模块对华为交换机信息进行分析(ENSP模拟器)

网络技术干货圈 来源:网络技术干货圈 2024-01-14 09:25 次阅读

NAPALM概述:

NAPALM作为python的第三方模块,其依赖于Netmiko,但在使用时不需要单独导入Netmiko。

NAPALM的主要作用是将show或者display显示的结果转换为有序的结构类型(方便使用python进行处理分析),类似于textfsm和ntc-templates;同时,NAPALM还可以对网络设备进行配置,保存等操作。

NAPALM的最大缺点是,目前仅支持国外的主流厂商:思科、Arista、Juniper,对国内的设备的操作系统并不支持。

napalm-huawei-vrp:

github地址:

https://github.com/napalm-automation-community/napalm-huawei-vrp

napalm-huwei-vrp模块作为NAPALM模块的补充,主要是增加了支持华为S系列园区网交换机驱动,支持S5700,S6700等的功能:

截止于2021年6月,本模块支持的功能如下:

  1. load_merge_candidate(): 加载给定的配置文件
  2. compare_config(): 比较候选配置(加载的配置)和当前运行配置,并显示不同点
  3. discard_config():删除加载的配置文件
  4. commit_config():执行加载的配置文件到设备
  5. get_facts(): 获取设备基础信息
  6. cli(): 发送任何命令到设备中
  7. get_lldp_neighbors(): 获取LLDP邻居信息
  8. get_config(): 获取配置信息
  9. is_alive(): 返回连接状态的标志
  10. ping(): 从设备中ping远端设备
  11. get_arp_table(): 获取设备APR表
  12. get_mac_address_table(): 获取设备MAC地址表
  13. get_interfaces(): 获取接口信息
  14. get_interfaces_ip(): 获取接口IP信息
  15. get_interfaces_counters(): 获取接口统计信息

其他功能正在逐步开发。

napalm-huawei-vrp安装:

pip3 install napalm 
pip3 install napalm-huawei-vrp

实验测试:

实验环境: ENSP,IP地址规划如下,通告cloud1,保证运行python代码的设备能够ping通交换机。
bdfcedf8-b270-11ee-8b88-92fbcf53809c.png

实验目的: 检查设备的连通性,如果可以SSH(netmiko)登陆设备,则将设备标准配置和当前配置进行对比,如果有改变,则记录更改的信息。

步骤一: SW1-SW5上已经配置完了SSH,其中SW2和SW4无法正常通信
交换机命令:

#创建秘钥
[sw2]dsalocal-key-paircreate

##配置SSH认证类型(密码/其他)
[sw2]sshuserprinauthentication-typepassword
[sw2]sshuserprinservice-typestelnet
[sw2]stelnetserverenable

##配置认证模式
[sw2]user-interfacevty04
[sw2-ui-vty0-4]authentication-modeaaa//配置认证模式
[sw2-ui-vty0-4]protocolinboundssh//允许ssh连接虚拟终端

##配置本地用户信息
[sw2]aaa
[sw2-aaa]local-userprinpasswordcipherHuawei@123
[sw2-aaa]local-userprinprivilegelevel15
[sw2-aaa]local-userprinservice-typessh

步骤二: 在脚本运行的同一目录下,保存需要检查的配置文件信息(可以仅保留自己需要检查的部分配置信息):
be0abfa0-b270-11ee-8b88-92fbcf53809c.png
步骤三: 修改设备当前运行的部分配置文件,做测试:

  1. SW1将设备名称修改为SW_NEW;
  2. 将SW3的Loopback0接口的IP地址undo掉;
  3. SW5配置保持不变。

步骤四: 编写napalm_huawei.py脚本:

fromnapalmimportget_network_driver
fromdatetimeimportdatetime
importtime

driver=get_network_driver('huawei_vrp')
device_ip=['192.168.0.11','192.168.0.22','192.168.0.33','192.168.0.44','192.168.0.55']
active_devices=[]

whileTrue:
#找到能够连接的设备
foripindevice_ip:
try:
SW=driver(ip,'prin','Huawei@123')
SW.open()
#如果没有异常,则将IP地址添加到active_devices列表中
active_devices.append(ip)
exceptExceptionase:
print(ip+'连接失败')

#查看配置有无更改,如果有更改,记录更改设备的IP地址,更改时间,更改的内容到记事本中
foripinactive_devices:
SW=driver(ip,'prin','Huawei@123')
SW.open()
#加载需要对比的文件
SW.load_merge_candidate(filename='napalm_config_'+ip+'.cfg')
#对加载的配置文件和当前运行配置进行比较
differences=SW.compare_config()
iflen(differences)>0:
#打印出给出标准配置对比当前运行配置有变动的地方
print(ip+':'+differences)
#获取当前时间的字符串
now=datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
#将检查配置文件写入记事本中
withopen('change_config','a')asf:
f.write(now+'
	'+ip+':
	'+differences+'
')
#如果配置了下面一条代码,则将设备的配置信息按照提供的配置文件进行还原
#SW.commit_config()
else:
print(ip+':'+'配置没有修改')
SW.discard_config()
#每隔一小时运行一次脚本
time.sleep(3600)


测试结果:
pycharm运行结果:
be1258fa-b270-11ee-8b88-92fbcf53809c.png

文本记录信息:
be295730-b270-11ee-8b88-92fbcf53809c.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 华为
    +关注

    关注

    216

    文章

    34530

    浏览量

    252593
  • 交换机
    +关注

    关注

    21

    文章

    2656

    浏览量

    99989
  • 模拟器
    +关注

    关注

    2

    文章

    881

    浏览量

    43346

原文标题:通过napalm-huawei-vrp模块对华为交换机信息进行分析(ENSP模拟器)

文章出处:【微信号:网络技术干货圈,微信公众号:网络技术干货圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    交换机的工作原理是什么?3类交换机故障详解

    )的工作原理交换机和网桥一样,是工作在链路层的联网设备,它的各个端口都具有桥接功能,每个端口可以连接一个LAN或一台高性能网站或服务,能够通过自学习来了解每个端口的设备连接情况。所有端口由专用处理
    的头像 发表于 11-05 10:12 401次阅读

    如何配置华为eNSP模拟器设备路由的ssh登录

    本博文主要讲解了如何配置华为eNSP模拟器设备路由的ssh登录,以便自动化应用可以更好的控制管理相关网络设备。
    的头像 发表于 10-25 09:31 1268次阅读
    如何配置<b class='flag-5'>华为</b><b class='flag-5'>eNSP</b><b class='flag-5'>模拟器</b>设备路由<b class='flag-5'>器</b>的ssh登录

    反射内存交换机与普通交换机的区别

    反射内存交换机与普通交换机在以下几个方面存在明显区别:工作原理和机制:反射内存交换机基于反射内存技术,通过硬件实现数据的快速同步和共享。当一个节点写入数据时,数据会迅速被广播到其他所有
    的头像 发表于 09-05 09:57 669次阅读
    反射内存<b class='flag-5'>交换机</b>与普通<b class='flag-5'>交换机</b>的区别

    华为交换机常用命令大全

    华为作为全球领先的信息与通信解决方案供应商,其交换机产品在全球市场占据了重要位置。华为交换机以高性能、高可靠性和丰富的功能著称,广泛应用于企
    的头像 发表于 08-13 16:38 864次阅读

    华为交换机的各种接口模式

    华为交换机接口模式种类繁多,功能强大,能够满足不同网络环境下的需求。本文将详细介绍华为交换机的各种接口模式,包括以太网接口、光纤接口、堆叠接口、管理接口等,并深入
    的头像 发表于 08-12 18:04 1758次阅读

    使用Python脚本备份华为交换机的配置信息

    在现代网络管理中,备份交换机的配置信息是一项至关重要的任务。备份可以确保在交换机发生故障或配置错误时,能够迅速恢复到之前的工作状态。本文将详细介绍如何使用Python脚本备份华为
    的头像 发表于 08-12 17:50 641次阅读
    使用Python脚本备份<b class='flag-5'>华为</b><b class='flag-5'>交换机</b>的配置<b class='flag-5'>信息</b>

    网管型交换机和非网管型交换机的区别

    管理软件进行配置和管理。它通常具有更多的功能和更高的性能,可以满足大型网络的需求。 非网管型交换机(Unmanaged Switch)是一种没有网络管理功能的交换机,不能通过软件
    的头像 发表于 08-05 15:41 2925次阅读

    园区交换机 VS 数据中心交换机

    园区交换机和数据中心交换机交换机领域的两大类别,很多人都很熟悉。但是,这两者之间的区别并不是很清楚。在本文中,我们将对园区交换机和数据中心交换机
    的头像 发表于 06-24 15:33 673次阅读
    园区<b class='flag-5'>交换机</b> VS 数据中心<b class='flag-5'>交换机</b>

    交换机的基本分类

      交换机作为网络通讯中的核心设备之一,其在网络架构中起着至关重要的作用。随着信息技术的飞速发展,交换机也在不断演进和革新,以满足日益复杂的网络需求。本文将对交换机的分类及其特点
    的头像 发表于 06-06 11:06 2271次阅读

    带光口的交换机和插光模块交换机有什么区别?

    带光口的交换机和插光模块交换机在功能上有一定的相似性,但它们在设计、用途和性能方面存在一些关键的区别。
    的头像 发表于 05-28 14:59 2561次阅读

    工业交换机如何进行网络诊断

    工业交换机在网络中扮演着重要角色,其稳定运行对于整个工业网络的正常运转至关重要。当工业交换机出现网络故障时,网络诊断就显得尤为重要。网络诊断是通过对工业交换机的状态
    的头像 发表于 04-09 17:42 472次阅读
    工业<b class='flag-5'>交换机</b>如何<b class='flag-5'>进行</b>网络诊断

    华为olt端口通过乘光网络GPON stick sfp与MlkroTik交换机的连接

    华为交换机
    乘光网络
    发布于 :2024年03月22日 17:52:48

    24口配线架和交换机怎么跳线

    24口配线架和交换机的跳线方法如下: 将超5类或者6类线缆前端的信息点线缆拉到设备间后,首先进入配线架,将线打在配线架的模块上。 使用跳线(RJ45接口)连接配线架与交换机。 网线直接
    的头像 发表于 03-06 11:04 2767次阅读

    交换机的作用与功能 交换机的基本配置

    交换机(Switch)是计算机网络中常见的一种数据通信设备,它用于在局域网(LAN)内的不同设备之间进行数据的转发和交换交换机通过学习和转
    的头像 发表于 02-04 09:17 1.7w次阅读

    华为交换机如何查看端口信息和光模块信息

    华为交换机查看端口状态和光模块信息的方法和详细的操作步骤如下
    的头像 发表于 01-30 13:54 1.1w次阅读
    <b class='flag-5'>华为</b><b class='flag-5'>交换机</b>如何查看端口<b class='flag-5'>信息</b>和光<b class='flag-5'>模块</b><b class='flag-5'>信息</b>?