如何更改 net-snmp engineID
我正在
NET-SNMP 5.7.3
使用Freebsd 12.1
. 我想engineID
用snmpset
命令改變。snmpd.conf
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
但這有上述錯誤。
我該如何解決這個問題?
答案是:
snmpd.conf
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
每個 enginID 都以
080001F
. 它不能用 snmpset 改變。它應該在配置文件中設置。
從 net-snmp
snmpd.conf
手冊頁:SNMPv3 協議定義了唯一標識代理的“engineID”。該字元串必須始終保持一致,並且不應更改或與另一個代理的引擎 ID 衝突。曾經。
預設情況下,Net-SNMP 在內部創建一個基於目前系統時間和隨機數的唯一引擎 ID。對於大多數使用者來說,這應該足夠了,除非您將我們的代理嵌入到設備中,在設備初始啟動時這些數字不會因框而異。
EngineID 既用作從設備中選擇資訊的“上下文”,又使用帶有 USM 的 SNMPv3 使用它在其使用者表中為使用者創建唯一條目。
換句話說,更改引擎 ID 會使所有現有的 SNMPv3 使用者條目和資訊請求的“上下文”無效,因此更改它是一件大事。更改引擎 ID 時,根據我的經驗,您必須重新創建任何現有的 SNMPv3 使用者,否則他們的 SNMPv3 密碼將停止工作。(換句話說,引擎 ID 似乎被 SNMPv3 密碼散列算法使用。)
我希望
snmpd
在更改引擎 ID 時重新啟動是強制性的。錯誤消息告訴您不能使用 SNMP 更改 Net-SNMP 引擎 ID。
但是,您可以
engineID
通過使用文件中的,engineIDType
和/或engineIDNic
設置來更改引擎 IDsnmpd.conf
,但是如果您使用它們,手冊頁會顯示“您應該知道自己在做什麼”的警告。