# Net-SNMP

Net-SNMP is a suite of software for using and deploying the SNMP protocol (v1, v2c and v3 and the AgentX subagent protocol). It supports IPv4, IPv6, IPX, AAL5, Unix domain sockets and other transports. It contains a generic client library, a suite of command line applications, a highly extensible SNMP agent, perl modules and python modules.

## Distribution

Net-SNMP is housed on SourceForge and is usually in the top 100 projects in the SourceForge ranking system. It was the March 2005 SourceForge Project of the Month. It is very widely distributed and comes included with many operating systems including most distributions of Linux, FreeBSD, OpenBSD, Solaris, and OS X. It is also available from the Net-SNMP web site.

## History

Steve Waldbusser of CMU started a freely available SNMP tool kit in 1992. The package was later abandoned by CMU and Wes Hardaker at UC Davis renamed it to UCD-SNMP and extended it to meet the network management needs of the Electrical Engineering department there. Eventually Mr. Hardaker left the university and realized that the project was now network wide and thus renamed it to Net-SNMP to reflect its distributed development.
The roots of the Net-SNMP project are long and a full description can be found on the Net-SNMP history page.

## SNMP Applications Included With Net-SNMP

| Application | Description |
| encode_keychange | Produce the KeyChange string for SNMPv3. |
| snmptranslate | Translate MIB OID names between numeric and textual forms. |
| snmpget | Communicates with a network entity using SNMP GET requests. |
| snmpgetnext | Communicates with a network entity using SNMP GETNEXT requests. |
| snmpbulkget | Communicates with a network entity using SNMP GETBULK requests. |
| snmpwalk | Retrieve a subtree of management values using SNMP GETNEXT requests. |
| snmpbulkwalk | Retrieve a subtree of management values using SNMP GETBULK requests. |
| snmpset | Communicates with a network entity using SNMP SET requests. |
| snmptrap | Sends SNMP TRAP or INFORM notification messages. |
| snmpd | An SNMP agent that responds to SNMP requests for a given host. |
| snmptrapd | An SNMP daemon that listens for SNMP TRAPs or INFORMs and logs or acts upon them. |
| snmptest | Communicates with a network entity using SNMP requests. |
| snmpusm | Manipulates the SNMPv3 User-based-security user table |
| snmpvacm | Manipulates the SNMPv3 View-based-access-control-module configuration tables |
| snmpdf | Displays disk information like the unix df tool using information collected from SNMP |
| mib2c | A MIB conversion utility that can translate MIB structures into other forms, such as C-code |
| tkmib | A perl/Tk interactive graphical MIB browser for SNMP. |

### Snmpget

The command snmpget uses the snmpget application to retrieve information associated with a specific object identifier (OID) from a target device.

#### Example

An example of snmpget usage (this will retrieve a specific OID 'sysUpTime' under the community string 'demopublic', with 'test.net-snmp.org' as the host name of the agent to query:

### Snmpwalk

The command snmpwalk uses the SNMP GETNEXT request to query a network for a tree of information.
An object identifier (OID) may be given on the command line. This OID specifies which portion of the object identifier space will be searched using GETNEXT requests. All variables in the subtree below the given OID are queried and their values presented to the user. If no OID argument is present, snmpwalk will search the subtree rooted at SNMPv2-SMI::mib-2 (including any MIB object values from other MIB modules, that are defined as lying within this subtree).

#### Example

An example of snmpwalk usage (this will retrieve all of the variables under the system OID):