本文档介绍如何在华为交换机上配置 SNMPv3 Trap,并使用 tcpdump 进行抓包验证,确保 Trap 报文能够正常发出。
一、适用场景
- 设备:华为交换机(V200R 系列及兼容版本)
- 目标:配置 SNMPv3(认证+加密),使交换机能够向网管系统发送 Trap 告警
- 验证方式:通过 tcpdump 抓包确认 Trap 报文是否正常发出
二、完整配置步骤
2.1 清空现有 SNMP 配置(如需从零开始)
<HUAWEI>system-view[HUAWEI]undo snmp-agent2.2 按顺序执行配置命令
# 1. 开启 SNMP 代理[HUAWEI]snmp-agent# 2. 设置版本为纯 v3(禁用 v1/v2c)[HUAWEI]snmp-agent sys-info version v3# 3. 创建 MIB 视图(用于控制可访问的节点范围)[HUAWEI]snmp-agent mib-view included iso-view iso# 4. 创建 v3 组(⚠️ 关键:必须指定 notify-view)[HUAWEI]snmp-agent group v3 admin-group privacy notify-view iso-view read-view iso-view write-view iso-view# 5. 创建 v3 用户(交互式设置密码)[HUAWEI]snmp-agent usm-user v3 user01[HUAWEI]snmp-agent usm-user v3 user01 group admin-group# 设置认证协议和密码(推荐 SHA)[HUAWEI]snmp-agent usm-user v3 user01 authentication-mode sha# 系统提示输入认证密码(8-64位),输入后回车确认# 设置加密协议和密码(推荐 AES128)[HUAWEI]snmp-agent usm-user v3 user01 privacy-mode aes128# 系统提示输入加密密码(8-64位),输入后回车确认# 6. 配置 Trap 目标主机[HUAWEI]snmp-agent target-hosttrapaddress udp-domain192.168.30.132 params securityname user01 v3 privacy# 7. 全局开启 Trap 功能[HUAWEI]snmp-agenttrapenable2.3 配置要点说明
| 步骤 | 关键参数 | 说明 |
|---|---|---|
| 版本设置 | version v3 | 仅启用 v3,禁用不安全的 v1/v2c |
| Group | notify-view | 必配,控制 Trap 能发送哪些 MIB 节点,缺失将导致 Trap 被丢弃 |
| 认证协议 | sha | 比 md5 更安全 |
| 加密协议 | aes128 | 比 des56 更安全,推荐使用 |
| Target-host | v3 privacy | 指定使用 v3 且认证加密 |
三、验证配置
3.1 查看配置是否生效
# 查看 SNMP 版本display snmp-agent sys-info version# 查看目标主机display snmp-agent target-host# 查看 v3 用户display snmp-agent usm-user# 查看 group 配置(确认 notify-view 是否存在)display snmp-agent group# 查看 MIB 视图display snmp-agent mib-view3.2 预期结果
display snmp-agent sys-info version:Polling 和 Trap 均只显示 SNMPv3 enabledisplay snmp-agent target-host:只有一条记录,Version 为 v3,Level 为 Privacydisplay snmp-agent usm-user:显示用户存在,状态为 active,认证和加密协议已配置
四、触发 Trap 事件
4.1 通过拔插网线触发链路状态变化
找一个空闲的物理口(如 GigabitEthernet0/0/3):
# 确认端口未被 shutdowninterface GigabitEthernet0/0/3 display this|includeshutdown确认端口正常后,插入网线(另一端接笔记本或测试设备),等待 3 秒,然后拔出。
4.2 检查事件是否产生
# 查看 trapbuffer 是否有链路日志display trapbuffer# 查看 SNMP 统计(关键是 Trap-PDU sent)display snmp-agent statistics|include Trap-PDU如果 Trap-PDU sent 计数增加,说明交换机已尝试发送 Trap。
五、使用 tcpdump 抓包验证
5.1 在网管侧执行抓包
登录到目标主机(Trap 接收端,如 192.168.30.132),执行以下命令:
# 实时查看是否有 SNMP 报文发向本机 162 端口sudotcpdump-iany-n-vvport162# 如需保存为 pcap 文件供后续分析sudotcpdump-iany-n-vvport162-wsnmp_trap.pcap5.2 正常结果(纯 v3)
成功配置后,抓包应显示类似内容(具体输出可能因加密而无法完全解析,但头部会明确显示 SNMPv3):
IP 192.168.30.232.55470 > 192.168.30.132.snmptrap: { SNMPv3 { User=user01 } ... }关键特征:
✅ 报文头部明确显示 SNMPv3
✅ 没有 SNMPv2c 或 C=“xxxxx”(团体字)字段
✅ 报文内容为密文,无法直接读取 OID(加密生效)
5.3 异常结果排查
| 抓包结果 | 可能原因 | 解决方案 |
|---|---|---|
| 无任何报文 | 交换机未尝试发送 Trap | 检查 group 是否配置 notify-view;检查 snmp-agent trap enable 是否开启 |
| 出现 SNMPv2c C=“xxx” | 仍有 v2c 通道未删除 | 执行undo snmp-agent target-host ... v2c删除 |
| 有 SNMPv3 报文但网管无响应 | 认证/加密密码不匹配 | 核对网管侧密码与交换机完全一致 |
六、常见故障:notify-view 缺失导致 Trap 发不出
6.1 问题现象
✅display trapbuffer有链路日志(事件已产生)
❌display snmp-agent statistics中 Trap-PDU sent 不增加
❌ tcpdump 无任何报文
6.2 问题配置
snmp-agent group v3 admin-group privacy这条命令缺少notify-view参数。
6.3 原理说明
| Group 参数 | 作用 | 对 Trap 的影响 |
|---|---|---|
| read-view | 控制 Get/GetNext 可读的 MIB 节点 | 不影响 Trap |
| write-view | 控制 Set 可写的 MIB 节点 | 不影响 Trap |
| notify-view | 控制 Trap 可发送的 MIB 节点 | 未配置则 Trap 被丢弃 |
在华为交换机中,read-view 和 write-view 有默认值(ViewDefault),但 notify-view 没有默认值,必须手动指定。
6.4 修复方法
system-view undo snmp-agent group v3 admin-group privacy snmp-agent group v3 admin-group privacy notify-view ViewDefault read-view ViewDefault write-view ViewDefault quit save修复后,重新拔插网线触发事件,Trap-PDU sent 计数应增加,tcpdump 能抓到 SNMPv3 报文。
七、附录
A. 常用诊断命令速查
# 查看 SNMP 统计(Trap-PDU sent 是关键指标)display snmp-agent statistics|include Trap-PDU# 查看 trapbuffer 日志display trapbuffer# 清空 trapbuffer(测试用)reset trapbuffer# 查看目标主机配置display snmp-agent target-host# 查看 v3 用户详情display snmp-agent usm-user# 查看 group 配置display snmp-agent group# 查看 MIB 视图display snmp-agent mib-view# 查看端口状态display interface briefB. 查看 v3 用户的认证与加密方式
display snmp-agent usm-user输出示例:
User name: user01 Engine ID: 800007DB0350464A79E60D active Authentication Protocol: sha# 认证方式Privacy Protocol: aes128# 加密方式Group name: admin-group- Authentication Protocol:认证协议(sha / md5 / 无)
- Privacy Protocol:加密协议(aes128 / des56 / aes256 / 无)
C. tcpdump 常用选项
# 基本用法tcpdump-iany-n-vvport162# 指定网卡(如 eth0)tcpdump-ieth0-n-vvport162# 只抓取来自交换机的包(以 IP 过滤)tcpdump-iany-n-vvsrchost192.168.30.232 and port162# 保存为 pcap 文件tcpdump-iany-n-vvport162-w/tmp/trap.pcap# 读取 pcap 文件分析tcpdump-n-vv-r/tmp/trap.pcapD. 支持的认证与加密协议(华为交换机)
| 认证协议 | 加密协议 |
|---|---|
| md5 | des56 |
| sha | aes128 |
| sha2-256(部分新版本) | aes192 / aes256(部分新版本) |