Template:FAQ:Agent 08
All three are protocols that can be used to make two or more agents appear as one to the querying application. In each case, one agent takes the role of "master", and delegates requests to one of the others as and where this is appropriate. The differences between them mainly relate to how data is represented, and the mechanisms for communication between master and subagents.
SMUX and proxy SNMP both essentially use the standard SNMP packet format. The main difference is that a proxy SNMP subagent need not be aware that it is acting in such a role. It typically listens on a non-standard port, and simply receives requests as usual, forwarded from the master agent. The main issue to be aware of is that such requests will usually appear to come from the local host, and this may affect how the access control mechanisms need to be set up.
SMUX uses a similar packet format, but the subagent "registers" with
the master agent, providing a suitable password. The Net-SNMP (and UCD)
agent includes the possibility of acting as a SMUX master agent, but the
suite does not include a subagent API. Note that the SMUX protocol has
essentially been superceded by AgentX, but is still provided in order to
support existing SMUX subagents. However the core developers have little
experience (and even less interest!) in this code, so assistance with
SMUX-related problems is likely to be somewhat limited.
See the file 'agent/mibgroup/README.smux'
for details.
AgentX uses a more compact (and simpler) packet format, with a richer
range of administrative commands, and provides a more flexible and reliable
extension mechanism. The Net-SNMP agent can be used in both master and
subagent roles, and the agent library can also be used to embed an AgentX
subagent within another application.
See the file 'README.agentx'
for details.
Note that support for SMUX is not configured in by default. You will need to run configure with the option
--with-mib-modules=smux
Starting from release 4.2.1, AgentX support is now included by default, but needs to be explicitly activated in the master agent. Do this by adding the line
master agentx
to the snmpd.conf
file before starting the agent. Note that there are
a number of known problems with the AgentX support in the 4.x line, and
this should not be used on production systems. The 5.0 AgentX support
has been significantly improved, and production use is less foolhardy.
See README.agentx
for details.