我正在NET-SNMP 5.7.3
使用Freebsd 12.1
.我想engineID
用snmpset
命令改变。
snmpd配置文件
rwcommunity private
我输入这个命令:
snmpset -v 2c -c private localhost e x 800000020109840301
错误是:
Error in packet.
Reason: notWritable (That object does not support modification)
Failed object: SNMPv2-SMI::enterprises
我也使用了这个命令:
snmpset -v 2c -c private localhost 1.3.6.1.6.3.10.2.1.1 x 800000020109840301
但这有上述错误。
我该如何解决这个问题?
答案1
答案是:
snmpd配置文件
engineID a
对于测试:
snmpget -v 2c -c public localhost .1.3.6.1.6.3.10.2.1.1.0
SNMP-FRAMEWORK-MIB::snmpEngineID.0 = Hex-STRING: 80 00 1F 88 04 61
每个 engineID 都以 开头 080001F
。它不能用 snmpset 更改。它应该在配置文件中设置。
答案2
从 net-snmpsnmpd.conf
手册页:
SNMPv3 协议定义了唯一标识代理的“engineID”。该字符串必须始终保持一致,并且不应更改或与其他代理的 engineID 冲突。曾经。
在内部,Net-SNMP 默认情况下会创建一个基于当前系统时间和随机数的唯一 engineID。这对于大多数用户来说应该足够了,除非您将我们的代理嵌入到设备中,这些数字在设备初始启动时的框之间不会有所不同。
EngineID 既用作从设备中选择信息的“上下文”,又具有 USM 的 SNMPv3 使用它在其用户表中为用户创建唯一的条目。
换句话说,更改引擎 ID 会使所有现有 SNMPv3 用户条目和信息请求的“上下文”失效,因此更改它是一件大事。更改引擎 ID 时,根据我的经验,您必须重新创建任何现有的 SNMPv3 用户,否则他们的 SNMPv3 密码将停止工作。 (换句话说,引擎 ID 似乎是由 SNMPv3 密码哈希算法使用的。)
我希望snmpd
更改引擎 ID 时必须重新启动。
该错误消息告诉您无法使用 SNMP 更改 Net-SNMP 引擎 ID。
然而,你能engineID
通过使用文件中的、engineIDType
和/或engineIDNic
设置来更改引擎 ID snmpd.conf
,但手册页带有警告:如果您使用它们,“您应该知道您在做什么”。