H3C交换机SNMP网管识别配置实例
以 H3C S5570S 和 Comware V7 为例,配置只读 SNMPv3 账号、设备识别信息和 IPv4/IPv6 来源限制,让网管系统安全识别交换机。
本文以 H3C S5570S 系列和 Comware V7 为主要示例,只适用于本人拥有或已经明确授权管理的交换机。文中的地址、账号、密码、ACL 编号和设备位置都是示例,使用时要换成现场实际规划。
一、现场场景
交换机已经可以通过 SSH 管理,接下来要把它加入公司的网管系统。网管系统需要读取设备名称、型号、运行时间和端口状态,但不能修改交换机配置。
出于安全性要求,我会使用带认证和加密的 SNMPv3,并且只允许指定网管服务器访问。SNMPv1 和 SNMPv2c 使用团体名,安全性较低,新配置不再使用。
本次使用下面的示例:
| 项目 | 示例值 |
|---|---|
| 交换机 | HQ-Access-01 |
| 管理 VLAN | 100 |
| 交换机 IPv4 | 192.168.100.2 |
| 交换机 IPv6 | 2001:db8:100::2 |
| 网管服务器 IPv4 | 192.168.100.20 |
| 网管服务器 IPv6 | 2001:db8:100::20 |
| SNMPv3 用户 | nms_hq01 |
| SNMPv3 组 | NMS_ReadOnly |
| IPv4 ACL | 2010 |
| IPv6 ACL | 2011 |
| 设备位置 | HQ_3F_Network_Room_Rack_A03 |
| 联系人 | Network_Team_Ext_8001 |
示例中的 IP 地址不能直接用于生产网络。SNMPv3 用户名、两个密码、联系人和设备位置也要换成公司批准的信息。
二、配置目标
- 让交换机只使用 SNMPv3 接受网管查询;
- 创建一个只读的 SNMPv3 用户;
- 使用认证和加密保护 SNMP 数据;
- 只允许指定网管服务器通过 IPv4 或 IPv6 访问;
- 让网管平台正确显示设备名称、位置和联系人;
- 在网管平台完成真实采集验证。
三、配置前检查
先确认交换机与网管服务器双向可达:
# 查看设备版本,确认本文命令适用。
<HQ-Access-01> display version
# 测试网管服务器的 IPv4 地址。
<HQ-Access-01> ping 192.168.100.20
# 测试网管服务器的 IPv6 地址。
<HQ-Access-01> ping ipv6 2001:db8:100::20
再检查交换机是否已经配置过 SNMP:
# 查看当前允许的 SNMP 版本、联系人和设备位置。
<HQ-Access-01> display snmp-agent sys-info
# 查看已有 SNMPv3 组和用户,避免覆盖现有网管配置。
<HQ-Access-01> display snmp-agent group
<HQ-Access-01> display snmp-agent usm-user
# 查看 SNMPv1/v2c 团体名。旧设备可能仍然依靠它接入网管。
<HQ-Access-01> display snmp-agent community
# 检查准备使用的 ACL 编号是否已经被占用。
<HQ-Access-01> display acl 2010
<HQ-Access-01> display acl ipv6 2011
如果现有网管仍使用 SNMPv1 或 SNMPv2c,要先在网管平台增加 SNMPv3 参数并完成测试,再停用旧版本。直接删除旧团体名可能让现有监控全部中断。
网管服务器还要放行发往交换机的 SNMP 查询。默认目的端口是 UDP 161,中间防火墙和管理网 ACL 也必须允许这条通信。
四、Comware V7 配置实例
1. 配置设备识别信息
设备名称使用交换机当前的 sysname。本文前面的配置已经把它设置为 HQ-Access-01,这里不重复修改,只补充设备位置和联系人:
<HQ-Access-01> system-view
# 填写机房、机柜等位置,网管发现设备后可以直接显示。
[HQ-Access-01] snmp-agent sys-info location HQ_3F_Network_Room_Rack_A03
# 填写维护团队或值班联系方式,不建议写个人私人信息。
[HQ-Access-01] snmp-agent sys-info contact Network_Team_Ext_8001
[HQ-Access-01] return
位置描述要与资产表一致。只写“机房”或“办公室”,设备多了以后仍然无法定位。
2. 限制网管服务器来源
先创建 IPv4 和 IPv6 ACL。ACL 必须先有允许规则,再交给 SNMP 使用;引用不存在或没有规则的 ACL 时,SNMP 访问不会受到预期限制。
<HQ-Access-01> system-view
# IPv4 ACL 2010 只允许网管服务器 192.168.100.20。
[HQ-Access-01] acl basic 2010
[HQ-Access-01-acl-ipv4-basic-2010] description Permit_IPv4_SNMP_NMS
[HQ-Access-01-acl-ipv4-basic-2010] rule 5 permit source 192.168.100.20 0
[HQ-Access-01-acl-ipv4-basic-2010] rule 100 deny source any
[HQ-Access-01-acl-ipv4-basic-2010] quit
# IPv6 ACL 2011 只允许网管服务器 2001:db8:100::20。
[HQ-Access-01] acl ipv6 basic 2011
[HQ-Access-01-acl-ipv6-basic-2011] description Permit_IPv6_SNMP_NMS
[HQ-Access-01-acl-ipv6-basic-2011] rule 5 permit source 2001:db8:100::20 128
[HQ-Access-01-acl-ipv6-basic-2011] rule 100 deny source any
[HQ-Access-01-acl-ipv6-basic-2011] quit
[HQ-Access-01] return
应用前检查地址和规则动作:
<HQ-Access-01> display acl 2010
<HQ-Access-01> display acl ipv6 2011
3. 创建只读 SNMPv3 用户并绑定 ACL
这里使用 privacy 级别,表示同时进行身份认证和数据加密。组没有配置写视图,因此网管用户只能读取信息,不能通过 SNMP 修改交换机。
<HQ-Access-01> system-view
# 创建只读 SNMPv3 组,并要求认证和加密。
# 未配置 write-view,因此该组没有写权限。
[HQ-Access-01] snmp-agent group v3 NMS_ReadOnly privacy
# 创建 SNMPv3 用户,使用 SHA 认证和 AES128 加密。
# IPv4/IPv6 ACL 直接绑定到该用户,只允许指定网管服务器使用它。
# 两个密码都是占位文字,输入前必须替换,而且不能使用相同密码。
[HQ-Access-01] snmp-agent usm-user v3 nms_hq01 NMS_ReadOnly simple authentication-mode sha AuthPassword_Replace_Before_Input privacy-mode aes128 PrivPassword_Replace_Before_Input acl 2010 acl ipv6 2011
[HQ-Access-01] return
这条用户命令虽然较长,但必须作为一条命令输入,不能在 authentication-mode 或 privacy-mode 中间回车。
认证密码和加密密码要分别保存在公司的密码管理工具中。不要把真实密码写入文章、工单截图或普通聊天记录。
4. 开启 SNMPv3
确认 ACL、组和用户都正确后,再启用 SNMP Agent:
<HQ-Access-01> system-view
# 只启用 SNMPv3。
[HQ-Access-01] snmp-agent sys-info version v3
# 开启 SNMP Agent。
[HQ-Access-01] snmp-agent
[HQ-Access-01] return
在旧设备上执行 snmp-agent sys-info version v3,不一定会自动删除以前启用的 v1 或 v2c。先完成 SNMPv3 验证,再执行下面的命令停用旧版本:
<HQ-Access-01> system-view
# SNMPv3 已经验证正常后,停用明文团体名使用的 v1 和 v2c。
[HQ-Access-01] undo snmp-agent sys-info version v1 v2c
[HQ-Access-01] return
如果配置中还留有旧团体名,应根据变更前记录逐条清理。不能在不知道团体名用途时直接删除。
五、Comware V5 配置
本文参考的 H3C S5500 Comware V5 Release 2208 同样支持 SNMPv3、SHA 认证、AES128 加密,以及把 IPv4/IPv6 ACL 绑定到 SNMPv3 用户。主要差异在 ACL 的创建命令和部分视图名称。
<HQ-Access-01> system-view
# 配置设备位置和维护联系人。
[HQ-Access-01] snmp-agent sys-info location HQ_3F_Network_Room_Rack_A03
[HQ-Access-01] snmp-agent sys-info contact Network_Team_Ext_8001
# V5 创建 IPv4 ACL 的写法。
[HQ-Access-01] acl number 2010 match-order config
[HQ-Access-01-acl-basic-2010] rule 5 permit source 192.168.100.20 0
[HQ-Access-01-acl-basic-2010] rule 100 deny source any
[HQ-Access-01-acl-basic-2010] quit
# V5 Release 2208 创建 IPv6 ACL 的写法。
[HQ-Access-01] acl ipv6 number 2011 match-order config
[HQ-Access-01-acl6-basic-2011] rule 5 permit source 2001:db8:100::20 128
[HQ-Access-01-acl6-basic-2011] rule 100 deny source any
[HQ-Access-01-acl6-basic-2011] quit
# 创建要求认证和加密的只读 SNMPv3 组。
[HQ-Access-01] snmp-agent group v3 NMS_ReadOnly privacy
# V5 使用 SHA 和 AES128,并把 IPv4/IPv6 ACL 绑定到该用户。
# 两个密码必须替换为不同的实际强密码。
[HQ-Access-01] snmp-agent usm-user v3 nms_hq01 NMS_ReadOnly simple authentication-mode sha AuthPassword_Replace_Before_Input privacy-mode aes128 PrivPassword_Replace_Before_Input acl 2010 acl ipv6 2011
# 启用 SNMPv3 和 SNMP Agent。
[HQ-Access-01] snmp-agent sys-info version v3
[HQ-Access-01] snmp-agent
[HQ-Access-01] return
这条 V5 用户命令同样是一整条命令。更早的 V5 软件可能没有 simple 或 acl ipv6 参数,不能把 Release 2208 的双栈配置当成所有 V5 版本都支持。若设备不支持 IPv6 ACL,就不要开放 IPv6 SNMP,只保留受 IPv4 ACL 限制的管理路径。
六、验证方法
1. 在交换机上检查配置
# 查看启用的 SNMP 版本、位置和联系人。
<HQ-Access-01> display snmp-agent sys-info
# 查看 SNMPv3 组,确认安全级别为 privacy,且没有写视图。
<HQ-Access-01> display snmp-agent group
# 查看 SNMPv3 用户是否存在。
<HQ-Access-01> display snmp-agent usm-user
# 查看 ACL 和规则匹配次数。
<HQ-Access-01> display acl 2010
<HQ-Access-01> display acl ipv6 2011
# 查看 SNMP 报文收发和错误统计。
<HQ-Access-01> display snmp-agent statistics
display 命令不会显示可以直接还原的真实密码。验证重点是用户、组、安全级别和 ACL 是否存在。
2. 在网管平台添加设备
在网管系统中填写以下内容:
| 网管参数 | 本文示例 |
|---|---|
| 设备地址 | 192.168.100.2 或 2001:db8:100::2 |
| SNMP 版本 | SNMPv3 |
| 安全级别 | 认证并加密,常显示为 authPriv |
| 用户名 | nms_hq01 |
| 认证算法 | SHA |
| 认证密码 | 配置时使用的实际认证密码 |
| 加密算法 | AES128 或平台中的 AES |
| 加密密码 | 配置时使用的实际加密密码 |
| 端口 | 161/UDP |
不同网管平台的字段名称可能不同,但版本、用户名、算法和两个密码必须与交换机一致。
保存后执行一次“测试凭据”“立即采集”或同类操作。不能只看到设备添加成功就结束,还要确认平台能读到:
- 设备名称为
HQ-Access-01; - 型号和系统描述符合现场设备;
- 设备运行时间可以正常刷新;
- 端口列表和端口状态能够采集;
- 设备位置和联系人与配置一致。
3. 验证来源限制
分别从允许和未允许的主机发起采集:
- 网管服务器通过 IPv4 查询,应成功;
- 网管服务器通过 IPv6 查询,应成功;
- 未加入 ACL 的电脑即使知道用户名和密码,也应无法采集;
- 使用错误密码测试一次,应认证失败;
- SNMPv1 或 SNMPv2c 查询应失败。
如果平台只支持 IPv4,就验证 IPv4 采集,并确认交换机的 IPv6 SNMP 仍受 ACL 限制。不要因为平台暂时不用 IPv6,就把 IPv6 管理入口留给所有地址。
全部验证正常后保存配置:
# 保存前检查当前配置,确认没有误改其他 SNMP 参数。
<HQ-Access-01> display current-configuration
# 保存配置。
<HQ-Access-01> save force
七、常见问题与处理
1. 网管平台提示认证失败
先核对 SNMP 版本、用户名、认证算法、加密算法和两个密码。网管平台要选择与交换机一致的 SHA,不能看到名称相近就选择 SHA-256。
2. IPv4 能采集,IPv6 不能采集
检查网管服务器和交换机的 IPv6 地址、网关及路由,再确认 SNMPv3 用户已经绑定 acl ipv6 2011。中间防火墙也要允许 IPv6 UDP 161。
3. ACL 配置了但限制没有生效
确认 ACL 中已经存在规则,并检查 SNMPv3 用户命令中是否同时绑定了 acl 2010 和 acl ipv6 2011。还要核对允许规则填写的是网管服务器实际发出的源地址。
4. 设备添加成功,但没有端口数据
检查用户所属组是否有读权限,并确认平台使用的是只读查询。本文没有配置写视图,这是正常的安全限制,不影响读取常用设备和端口信息。
5. 改成 SNMPv3 后旧监控中断
通常是网管平台仍在使用旧团体名。先恢复变更前配置,让监控恢复,再在平台和交换机两端同时迁移到 SNMPv3,不能只改其中一端。
八、回退方法
已有 SNMP 配置时,应恢复变更前记录的版本、用户、ACL 和团体名。下面只适用于删除本文新增加的 V7 示例配置:
<HQ-Access-01> system-view
# 关闭 SNMP Agent,删除期间网管平台将无法采集设备。
[HQ-Access-01] undo snmp-agent
# 删除本文创建的 SNMPv3 用户和组。
[HQ-Access-01] undo snmp-agent usm-user v3 nms_hq01 local
[HQ-Access-01] undo snmp-agent group v3 NMS_ReadOnly privacy
# 恢复默认位置和联系人。
[HQ-Access-01] undo snmp-agent sys-info location
[HQ-Access-01] undo snmp-agent sys-info contact
# 仅在 ACL 没有被其他功能使用时删除。
[HQ-Access-01] undo acl basic 2010
[HQ-Access-01] undo acl ipv6 basic 2011
[HQ-Access-01] return
如果只是网管参数填错,不需要删除交换机上的全部 SNMP 配置。先修正平台的用户名、算法或密码,再重新测试。
九、小结
网管平台能发现设备,不等于 SNMP 已经配置安全。SNMPv3 要同时核对用户名、认证、加密和只读权限,还要用 IPv4/IPv6 ACL 把访问来源限制为指定网管服务器。
配置完成后,我会在平台上实际读取设备名称、运行时间和端口状态,再从未允许的电脑做一次失败测试。允许的能采集、未允许的不能采集,才算验证完整。
十、完整配置汇总
下面汇总本文 Comware V7 示例。执行前必须替换网管地址、用户名、两个密码、位置、联系人和 ACL 编号,并确认现场没有同名用户或同号 ACL。
<HQ-Access-01> system-view
# 配置网管平台显示的设备位置和维护联系人。
[HQ-Access-01] snmp-agent sys-info location HQ_3F_Network_Room_Rack_A03
[HQ-Access-01] snmp-agent sys-info contact Network_Team_Ext_8001
# IPv4 ACL:只允许网管服务器 192.168.100.20。
[HQ-Access-01] acl basic 2010
[HQ-Access-01-acl-ipv4-basic-2010] description Permit_IPv4_SNMP_NMS
[HQ-Access-01-acl-ipv4-basic-2010] rule 5 permit source 192.168.100.20 0
[HQ-Access-01-acl-ipv4-basic-2010] rule 100 deny source any
[HQ-Access-01-acl-ipv4-basic-2010] quit
# IPv6 ACL:只允许网管服务器 2001:db8:100::20。
[HQ-Access-01] acl ipv6 basic 2011
[HQ-Access-01-acl-ipv6-basic-2011] description Permit_IPv6_SNMP_NMS
[HQ-Access-01-acl-ipv6-basic-2011] rule 5 permit source 2001:db8:100::20 128
[HQ-Access-01-acl-ipv6-basic-2011] rule 100 deny source any
[HQ-Access-01-acl-ipv6-basic-2011] quit
# 创建只读 SNMPv3 组和用户,要求认证及加密。
[HQ-Access-01] snmp-agent group v3 NMS_ReadOnly privacy
# 下一条是一整条命令;两个占位密码必须替换且不能相同。
# IPv4/IPv6 ACL 直接绑定到该用户。
[HQ-Access-01] snmp-agent usm-user v3 nms_hq01 NMS_ReadOnly simple authentication-mode sha AuthPassword_Replace_Before_Input privacy-mode aes128 PrivPassword_Replace_Before_Input acl 2010 acl ipv6 2011
# 只启用 SNMPv3,再开启 Agent。
[HQ-Access-01] snmp-agent sys-info version v3
[HQ-Access-01] snmp-agent
[HQ-Access-01] return
# 检查组、用户、系统信息、ACL 和收发统计。
<HQ-Access-01> display snmp-agent group
<HQ-Access-01> display snmp-agent usm-user
<HQ-Access-01> display snmp-agent sys-info
<HQ-Access-01> display acl 2010
<HQ-Access-01> display acl ipv6 2011
<HQ-Access-01> display snmp-agent statistics
# 网管平台完成 IPv4/IPv6 采集和未授权来源测试后保存。
<HQ-Access-01> save force