网络自动化运维 Help

5-3 (课外)本章补充资料

安装MG-soft MibBrowser

  1. 安装MibBrowser 软件来自mg-soft
    ⏬下载地址: 安装包mgMibBrowser-2024a普通版.zip

解压缩后从x64.exe开始安装。
向导中问license许可证位置选择
本地用户名信息随便填写。
安装完成后桌面生成文件夹,里面众多快捷方式入口是MibBroser。

M gsoft mib browser1 x64
M gsoft mib browser2
M gsoft mib browser3
M gsoft mib browser4

  1. 连接 快速连接,输入服务器地址。点击地址栏后的小按钮,或点击菜单栏/View/SNMP Protocol Preference,进入到协议设置对话框(少截一张图)。 选择协议v2c,弹窗让激活选try 30 day freecontinue ,如果无法选中v2c协议则试用已过期,只能放弃。
    输入团体名、密码等信息。 关掉协议设置对话框。点击连接。

    M gsoft mib browser5 continue
    M gsoft mib browser6 snmp protocol v2

  2. 记录OID 连接成功后看到设备的mib信息树,可以展开查看个项目OID和具体值。

    M gsoft mib browser7

其它获取OID方式

其它获取OID的途径。如果不用Mib查看软件,也可以直接从设备厂商的文档中搜索
华为官网文档-S300, S500, S1700, S2700, S5700, S6700 V200R021C00, C01 MIB参考

或从网络博文查找。

接口别名:1.3.6.1.2.1.31.1.1.1.18 接口当前操作状态:1.3.6.1.2.1.2.2.1.8 接口当前操作状态:1.3.6.1.2.1.2.2.1.7 接口发送错报数:1.3.6.1.2.1.2.2.1.14 接口发送字节数:1.3.6.1.2.1.31.1.1.1.10 接口接收错报数:1.3.6.1.2.1.2.2.1.20 接口收到的字节数:1.3.6.1.2.1.31.1.1.1.6 网络接口数目:1.3.6.1.2.1.2.1.0 网络接口信息描述:1.3.6.1.2.1.2.2.1.2 系统基本信息:1.3.6.1.2.1.1.1.0 获取独特oid设备型号查库确定型号类型:1.3.6.1.2.1.1.2 读取设备名称:1.3.6.1.2.1.1.5 读取接口带宽:1.3.6.1.2.1.31.1.1.1.15 设备运行时间:1.3.6.1.6.3.10.2.1.3.0 单位为S

pysnmp库

pysnmp(课本上)库经测试库版本和代码已经大幅度变化,代码方法名变化、包路径变化和开始异步写法。代码对应的是4.x版本,现在已经是8.x版本,后面的都是async的。

# 在pysnmp 4.x和8.x版本上未成功,看源代码新版本已经删除了同步写法必须用异步? from pysnmp.hlapi import * # This line is okay, but it's better to import individually from pysnmp.hlapi import getCmd, SnmpEngine, UsmUserData, UdpTransportTarget, ContextData, ObjectType, ObjectIdentity from pysnmp.smi import builder, view # Import for MIB access if needed # Import necessary constants explicitly: from pysnmp.hlapi import usmHMACMD5AuthProtocol, usmAesCfb128Protocol # SNMP目标设备信息 ip = '192.168.56.100' # 路由器IP地址 port = 161 # SNMP端口号 # SNMP v3 用户信息 username = 'R1' # 用户名 auth_protocol = usmHMACMD5AuthProtocol # 认证协议 auth_key = 'Huawei12#$' # 认证密码 priv_protocol = usmAesCfb128Protocol # 加密协议 priv_key = 'Huawei12#$' # 加密密码 # 创建SNMP引擎 snmp_engine = SnmpEngine() # 创建USM用户 usm_user = UsmUserData(username, authKey=auth_key, privKey=priv_key, authProtocol=auth_protocol, privProtocol=priv_protocol) # 创建传输目标 transport_target = UdpTransportTarget((ip, port)) # 创建上下文数据 context_data = ContextData() # 定义要获取的MIB对象 oid = ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)) # 例如,获取系统描述 # 发送SNMP请求 g = getCmd(snmp_engine, usm_user, transport_target, context_data, oid) # 处理SNMP响应 errorIndication, errorStatus, errorIndex, varBinds = next(g) if errorIndication: print(f'Error: {errorIndication}') elif errorStatus: print(f'Error: {errorStatus.prettyPrint()}') else: for varBind in varBinds: print(f'{varBind[0]} = {varBind[1]}') # 关闭SNMP引擎 snmp_engine.closeCmdGen()

参考链接

华为S300, S500, S1700, S2700, S5700, S6700 V200R021C00, C01 MIB参考

SNMP协议的没落

在寻找客户端时,笔者发现开源客户端大多在2010年之前,仅有的两家还在更新的公司也都软件收费且没有人盗版。
SNMP协议比较复杂,不同的MIB模型,OID的数字无法记忆。

后续出现的NETCONF、Telemetry、RESTCONF提供了更便捷的体验。

25 三月 2025