.TH SNMPD 8 "30 Jun 2010" VVERSIONINFO "Net-SNMP"
.SH NAME
snmpd - daemon to respond to SNMP request packets.
.SH SYNOPSIS
.B snmpd
[OPTIONS] [LISTENING ADDRESSES]
.SH DESCRIPTION
.B snmpd
is an SNMP agent which binds to a port and awaits requests from
SNMP management software.  Upon receiving a request, it processes the
request(s), collects the requested information and/or performs the
requested operation(s) and returns the information to the sender.
.SH OPTIONS
.TP 8
.B -a
Log the source addresses of incoming requests.
.TP
.B -A
Append to the log file rather than truncating it.
.TP
.B "-c" \fIFILE
Read 
.I FILE
as a configuration file
(or a comma-separated list of configuration files).  Note that the loaded
file will only understand snmpd.conf tokens, unless the configuration type
is specified in the file as described in the snmp_config man page under
SWITCHING CONFIGURATION TYPES IN MID-FILE.
.TP
.B -C
Do not read any configuration files except the ones optionally specified by the 
.B -c 
option.
Note that this behaviour also covers the persistent configuration files.
This may result in dynamically-assigned values being reset following an
agent restart, unless the relevant persistent config files are
explicitly loaded using the
.B -c 
option.
.TP
.B -d
Dump (in hexadecimal) the sent and received SNMP packets.
.TP
.B -D\fI[TOKEN[,...]]
Turn on debugging output for the given
.IR "TOKEN" "(s)."
Without any tokens specified, it defaults to printing all the tokens
(which is equivalent to the keyword "ALL").
You might want to try
.IR ALL
for extremely verbose output.  Note: You can not put a space between
the -D flag and the listed TOKENs.
.TP
.B -f
Do not fork() from the calling shell.
.TP
.B -g \fIGID
Change to the numerical group ID
.I GID
after opening listening sockets.
.TP
.B -h, --help
Display a brief usage message and then exit.
.TP
.B -H
Display a list of configuration file directives understood by the
agent and then exit.
.TP
.B -I \fI[-]INITLIST
Specifies which modules should (or should not) be initialized
when the agent starts up.  If the comma-separated
.I INITLIST
is preceded
with a '-', it is the list of modules that should \fInot\fR be started.
Otherwise this is the list of the \fIonly\fR modules that should be started.

To get a list of compiled modules, run the agent with the arguments
.I "-Dmib_init -H"
(assuming debugging support has been compiled in).
.TP
.B -L[efos]
Specify where logging output should be directed (standard error or output,
to a file or via syslog).  See LOGGING OPTIONS in snmpcmd(5) for details.
.TP
.BR -m " \fIMIBLIST"
Specifies a colon separated list of MIB modules to load for this
application.  This overrides the environment variable MIBS.
See \fIsnmpcmd(1)\fR for details.
.TP
.BR -M " \fIDIRLIST"
Specifies a colon separated list of directories to search for MIBs.
This overrides the environment variable MIBDIRS.
See \fIsnmpcmd(1)\fR for details.
.TP
.B -n \fINAME
Set an alternative application name (which will affect the
configuration files loaded).
By default this will be \fIsnmpd\fR, regardless of the name
of the actual binary.
.TP
.B -p \fIFILE
Save the process ID of the daemon in
.IR FILE "."
.TP 
.B -q
Print simpler output for easier automated parsing.
.TP
.B -r
Do not require root access to run the daemon.  Specifically, do not exit
if files only accessible to root (such as /dev/kmem etc.) cannot be
opened.
.TP
.B -u \fIUID
Change to the user ID
.I UID
(which can be given in numerical or textual form) after opening
listening sockets.
.TP
.B -U
Instructs the agent to not remove its pid file (see the
.B -p
option) on shutdown. Overrides the leave_pidfile token in the
.I snmpd.conf
file, see
.I snmpd.conf(5).
.TP
.B -v, --version
Print version information for the agent and then exit.
.TP
.B -V
Symbolically dump SNMP transactions.
.TP
.B -x \fIADDRESS
Listens for AgentX connections on the specified address
rather than the default AGENTX_SOCKET.
The address can either be a Unix domain socket path,
or the address of a network interface.  The format is the same as the
format of listening addresses described below.
.TP
.B -X
Run as an AgentX subagent rather than as an SNMP master agent.
.TP
.BI -- "name"="value"
Allows to specify any token ("name") supported in the
.I snmpd.conf
file and sets its value to "value". Overrides the corresponding token in the
.I snmpd.conf
file. See
.I snmpd.conf(5)
for the full list of tokens.
.SH LISTENING ADDRESSES
By default,
.B snmpd
listens for incoming SNMP requests on UDP port 161 on all IPv4 interfaces.
However, it is possible to modify this behaviour by specifying one or more
listening addresses as arguments to \fBsnmpd\fR.
A listening address takes the form:
.IP
[<transport-specifier>:]<transport-address>
.PP
At its simplest, a listening address may consist only of a port
number, in which case
.B snmpd
listens on that UDP port on all IPv4 interfaces.  Otherwise, the
<transport-address> part of the specification is parsed according to
the following table:
.RS 4
.TP 28
.BR "<transport-specifier>"
.BR "<transport-address> format"
.IP "udp \fI(default)\fR" 28
hostname[:port]
.I or
IPv4-address[:port]
.IP "tcp" 28
hostname[:port]
.I or
IPv4-address[:port]
.IP "unix" 28
pathname
.IP "ipx" 28
[network]:node[/port]
.TP 28 
.IR "" "aal5pvc " or " pvc"
[interface.][VPI.]VCI
.TP 28
.IR "" "udp6 " or " udpv6 " or " udpipv6"
hostname[:port]
.I or
IPv6-address[:port]
.TP 28
.IR "" "tcp6 " or " tcpv6 " or " tcpipv6"
hostname[:port]
.I or
IPv6-address[:port]
.TP 28
.IR "" "ssh"
hostname:port
.TP 28
.IR "" "dtlsudp"
hostname:port
.RE
.PP
Note that <transport-specifier> strings are case-insensitive so that,
for example, "tcp" and "TCP" are equivalent.  Here are some examples,
along with their interpretation:
.TP 24
.IR "127.0.0.1:161"
listen on UDP port 161, but only on the loopback interface.  This
prevents
.B snmpd
being queried remotely.  The  port specification ":161" is
not strictly necessary since that is the default SNMP port.
.TP 24
.IR "TCP:1161"
listen on TCP port 1161 on all IPv4 interfaces.
.TP 24
.IR "ipx:/40000"
listen on IPX port 40000 on all IPX interfaces.
.TP 24
.IR "unix:/tmp/local-agent"
listen on the Unix domain socket \fI/tmp/local-agent\fR.
.TP 24
.IR "/tmp/local-agent"
is identical to the previous specification, since the Unix domain is
assumed if the first character of the <transport-address> is '/'.
.TP 24
.IR "PVC:161"
listen on the AAL5 permanent virtual circuit with VPI=0 and VCI=161
(decimal) on the first ATM adapter in the machine.
.TP 24
.IR "udp6:10161"
listen on port 10161 on all IPv6 interfaces.
.TP 24
.IR "ssh:127.0.0.1:22"
Allows connections from the snmp subsystem on the ssh server on port
22.  The details of using SNMP over SSH are defined below.
.TP 24
.IR "dtlsudp:127.0.0.1:9161"
Listen for connections over DTLS on UDP port 9161.  The snmp.conf file
must have the
.IR serverCert,
configuration tokens defined.
.PP
Note that not all the transport domains listed above will always be
available; for instance, hosts with no IPv6 support will not be able
to use udp6 transport addresses, and attempts to do so will result in
the error "Error opening specified endpoint".  Likewise, since AAL5
PVC support is only currently available on Linux, it will fail with
the same error on other platforms.
.SH Transport Specific Notes
.RS 0
.TP 8
ssh
The SSH transport, on the server side, is actually just a unix
named pipe that can be connected to via a ssh subsystem configured in
the main ssh server.  The pipe location (configurable with the
sshtosnmpsocket token in snmp.conf) is
.I /var/net-snmp/sshtosnmp.
Packets should be submitted to it via the sshtosnmp application, which
also sends the user ID as well when starting the connection.  The TSM
security model should be used when packets should process it.
.IP
The
.I sshtosnmp
command knows how to connect to this pipe and talk to
it.  It should be configured in the
.IR "OpenSSH sshd"
configuration file (which is normally
.IR "/etc/ssh/sshd_config"
using the following configuration line:
.TP 8
.IP
Subsystem snmp /usr/local/bin/sshtosnmp
.IP
The
.I sshtosnmp
command will need read/write access to the 
.I /var/net-snmp/sshtosnmp
pipe.  Although it should be fairly safe to grant access to the
average user since it still requires modifications to the ACM settings
before the user can perform operations, paranoid administrators may
want to make the /var/net-snmp directory accessible only by users in a
particular group.  Use the
.I sshtosnmpsocketperms
snmp.conf configure option to set the permissions, owner and group of
the created socket.
.IP
Access control can be granted to the user "foo" using the following
style of simple snmpd.conf settings:
.TP 8
.IP
rouser -s tsm foo authpriv
.IP
Note that "authpriv" is acceptable assuming as SSH protects everything
that way (assuming you have a non-insane setup).
snmpd has no notion of how SSH has actually protected a packet and
thus the snmp agent assumes all packets passed through the SSH
transport have been protected at the authpriv level.
.TP 8
dtlsudp
The DTLS protocol, which is based off of TLS, requires both client and
server certificates to establish the connection and authenticate both
sides.  In order to do this, the client will need to configure the
snmp.conf file
with the
.IR clientCert
configuration tokens.  The server will need to configure the snmp.conf
file with the
.IR serverCert
configuration tokens defined.
.IP
Access control setup is similar to the ssh transport as the TSM
security model should be used to protect the packet.
.RE
.SH CONFIGURATION FILES
.PP
.B snmpd
checks for the existence of and parses the following files:
.TP 6
.B SYSCONFDIR/snmp/snmp.conf
Common configuration for the agent and applications. See
.I snmp.conf(5)
for details.
.TP
.B SYSCONFDIR/snmp/snmpd.conf
.TP
.B SYSCONFDIR/snmp/snmpd.local.conf
Agent-specific configuration.  See
.I snmpd.conf(5)
for details.  These files are optional and may be used to configure
access control, trap generation, subagent protocols and much else
besides.
.IP
In addition to these two configuration files in SYSCONFDIR/snmp, the
agent will read any files with the names
.I snmpd.conf
and
.I snmpd.local.conf
in a colon separated path specified in the
SNMPCONFPATH environment variable.
.TP
.B DATADIR/snmp/mibs/
The agent will also load all files in this directory as MIBs.  It will
not, however, load any file that begins with a '.' or descend into
subdirectories.
.SH SEE ALSO
(in recommended reading order)
.PP
snmp_config(5),
snmp.conf(5),
snmpd.conf(5)
.\" Local Variables:
.\"  mode: nroff
.\" End:
