如何更改 net-snmp 引擎 ID

如何更改 net-snmp 引擎 ID

我正在NET-SNMP 5.7.3使用Freebsd 12.1.我想engineIDsnmpset命令改变。

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,但手册页带有警告:如果您使用它们,“您应该知道您在做什么”。

相关内容