I'm using NET-SNMP 5.7.3 on Freebsd 12.1. I want to chane engineID with snmpset command.


rwcommunity private

I enter this command:

snmpset -v 2c -c private localhost e x 800000020109840301

The error is:

Error in packet.
Reason: notWritable (That object does not support modification)
Failed object: SNMPv2-SMI::enterprises

I used this command too:

snmpset -v 2c -c private localhost x 800000020109840301

but this has the above error.

How can I solve the problem?

2 Answers 2


From the net-snmp snmpd.conf man page:

The SNMPv3 protocol defines "engineIDs" that uniquely identify an agent. The string must be consistent through time and should not change or conflict with another agent's engineID. Ever.

Internally, Net-SNMP by default creates a unique engineID that is based off of the current system time and a random number. This should be sufficient for most users unless you're embedding our agent in a device where these numbers won't vary between boxes on the devices initial boot.

EngineIDs are used both as a "context" for selecting information from the device and SNMPv3 with USM uses it to create unique entries for users in its user table.

In other words, changing the engine ID invalidates all existing SNMPv3 user entries and the "context" for information requests, so changing it is a big deal. When changing the engine ID, it has been my experience that you must recreate any existing SNMPv3 users, or else their SNMPv3 passwords stop working. (In other words, the engine ID seems to be used by the SNMPv3 password hashing algorithm.)

I would expect that restarting snmpd would be mandatory when changing the engine ID.

The error message tells you that you cannot change the Net-SNMP engine ID using SNMP.

However, you can change the engine ID by using the engineID, engineIDType and/or engineIDNic settings in the snmpd.conf file, but the man page carries a warning that "you should know what you're doing" if you use them.

  • Thanks for your reply. The -e and -E are the options that change the snmp engineId, as described in snmpd man. How can I use them?
    – F.M
    Jan 1, 2020 at 5:31
  • I don't know: my man snmpd does not mention those options at all. Instead, my man snmpd.conf suggests that you could add a line engineID 800000020109840301 to your snmpd.conf file to get what you want. Perhaps Debian 10's net-snmpd 5.7.3+dfsg-5 has been compiled with slightly different options from FreeBSD's one?
    – telcoM
    Jan 1, 2020 at 11:48

The answer is:


engineID a

For test:

snmpget -v 2c -c public localhost  .   

SNMP-FRAMEWORK-MIB::snmpEngineID.0 = Hex-STRING: 80 00 1F 88 04 61

Every enginID begins with 080001F. It can't change with snmpset. it should set in config file.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.