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 (rather than directly). The main issue to be aware of is that such requests will 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 support for SMUX is not included by default, and needs to be explicitly enabled by running:
--with-mib-modules=smux
before re-compiling the agent.
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.
AgentX support is 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.