我们遇到了 SNMPv3 停止接受我们的瞻博网络 EX 系列交换机上的 SNMP 请求的问题。在看似随机的情况下,瞻博网络节点拒绝 SNMP 身份验证凭据。
这就是我们最终得到的:
rj@MHN00525SYS01:~$ snmpwalk -v 3 -a SHA -A "PASS" -l authPriv -x AES -X "PASS"
-u "username" mhn00416an01 iso.3.6.1.2.1.1.1.0
snmpwalk: Unknown user name
rj@MHN00525SYS01:~$
我们的设备正在工作,但随后就停止了。用户名正确并加载到系统中。
rj@MHN00416AN01# run show snmp v3 users
Engine ID: 80 00 0a 4c 04 31 33 <...snip...>
User Auth/Priv Storage Status
username sha/aes128 nonvolatile active
处理了一段时间后,我们最终决定进行调查。在系统停止接受请求之前,我看到了这个条目:
Nov 6 09:44:32 MHN00416AN01 mgd[7996]: UI_COMMIT: User 'rj' requested 'commit'
operation (comment: none)
Nov 6 09:44:35 MHN00416AN01 snmpd[1260]: LIBJSNMP_NS_LOG_ERR: ERR: snmpd: send_trap: USM
unknown security name (no such user exists) (plaintext scopedPDU header type 00: s/b 30)
Nov 6 09:44:35 MHN00416AN01 snmpd[1260]: SNMPD_ENGINE_ID_CHANGED: Warning: Local
engine ID has changed. Passwords for all the users under [edit snmp v3 usm local-engine]
need to be reconfigured.
我发现只需重新输入用户名/密码即可恢复对设备的访问。
rj@MHN00416AN01# set snmp v3 usm local-engine user username
authentication-sha authentication-password PASS
{master:0}[edit]
rj@MHN00416AN01# set snmp v3 usm local-engine user username
privacy-aes128 privacy-password PASS
一次commit
操作后,我们可以再次访问它。
rj@MHN00525SYS01:~$ snmpwalk -v 3 -a SHA -A "PASS" -l authPriv -x AES -X "PASS"
-u "username" mhn00416an01 iso.3.6.1.2.1.1.1.0
iso.3.6.1.2.1.1.1.0 = STRING: "Juniper Networks, Inc. ex3300-48p Ethernet Switch, kernel
JUNOS 12.3R3.4, Build date: 2013-06-14 02:21:01 UTC Copyright (c) 1996-2013 Juniper
Networks, Inc."
rj@MHN00525SYS01:~$
这个问题发生在大量不同的设备上。型号包括版本 12.3 上的 EX2200-c、EX3300、EX4200 和 EX4550。
为什么会发生这种情况,我怎样才能让它停止?