网络自动化运维 Help

5-2 SNMP协议v3和snmpb客户端

恢复上节课状态

⏬下载工程,然后导入: eNSP工程-unit5-配置完snmpv1v2v3.zip

  • 协议:v1/v2/v3

  • 密码:write community: public 。read community: private (我这里跟一般习惯相比设置反了,注意客户端中的参数填写保持一致)

  • USM用户名:MyUser 用户验证sha admin123 传输des128 admin123

客户端2-安装snmpb

推荐这个软件,免费情况下可以用snmp v3版本。
安装snmpb v0.8(有年头了看下载站的最后更新时间是2009年)

安装包snmpb-0.8.exe

SNMP v2

MIB的几种操作:

  • GET取值

  • SET设置值

  • NextValue下一个值,用于遍历。

  • Trap消息推送

  1. 连接

    1. 输入服务器地址。

    2. 打开高级设置对话框,协议版本v1 v2 v3所有版本。展开左侧站点目录,输入团体名密码read community上面设置的是public 、write community设置的是private (与服务端设置的密码保持一致)。

    3. 点击go按钮进行连接。

      5 2snmpb 1

  2. GET实验:展开mib树iso.org.dod.internet.mgmt.mib-2/systems/sysName 。属性上鼠标右键GET请求查看结果。

    5 2snmpb 2
    5 2snmpb v2

  3. 观察mib树中其他属性,非常多。

  4. SET实验:展开mib树iso.org.dod.internet.mgmt.mib-2/systems/sysName 。属性上鼠标右键SET ,在对话框设置新主机名,然后在eNSP设备终端中可以看到设备名变化了。

    5 2snmpb set

  5. TRAP实验:

    5 2snmpb trap

SNMP v3

有两种认证方式USM基于用户验证和基于视图,下面为基于用户验证。

  1. snmpb客户端软件,打开 "菜单栏/options/Manage SNMP v3 USM Profile"。

  2. 对话框不能直接修改信息,要先空白处鼠标右键/new usm profile,然后输入用户认证加密方法、密码和信息加密方法、密码。

  3. 回到 高级设置对话框/服务器地址下的v3子设置,SecurityName关联刚才保存的"MyUser"用户(没有做上一步的话则是空白下拉列表),SecurityLevel设置为"AuthPriv"允许访问权限。

  4. 主界面 选择走SNMP v3协议。

  5. 再次发起Mib树中属性的GET请求,观察是否有值返回。

    5 2snmpb v3 1 usm
    5 2snmpb v3 usm

snmp库连snmp v3协议服务器

连接v2的例子见上节。

import Engine from snmp.security.usm.auth import HmacMd5, HmacSha from snmp.security.usm.priv import AesCfb128, DesCbc with Engine() as engine: engine.usm.addUser( "MyUser", authProtocol=HmacSha, # 用户认证。加密算法和密码根据实际情况调整 authSecret=b"admin123", privProtocol=DesCbc, # 信息传输。加密算法和密码根据实际情况调整 privSecret=b"admin123", ) localhost = engine.Manager("192.168.56.100") response = localhost.get("1.3.6.1.2.1.1.5.0") print(response)

协议没落原因

  • 各家厂商Mib结构不一样

  • DES加密算法被破解

  • 没有详细的实时流量统计

  • 性能问题

  • 需要在设备侧安装代理

  • 后面出现了更为先进的协议

参考

eNSP-SNMP配置+SnmpB的搭建

21 四月 2025