Net-SNMP

Last updated
Net-SNMP
Original author(s) Wes Hardaker
Developer(s) open source community
Stable release
5.9.4 / August 15, 2023;6 days ago (2023-08-15)
Repository
Written in C, Perl, Python
Operating system Most
Type Network Management
License BSD licenses
Website www.net-snmp.org

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.

Contents

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. [1] 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. [2]

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

ApplicationDescription
encode_keychangeProduce the KeyChange string for SNMPv3.
snmptranslateTranslate MIB OID names between numeric and textual forms.
snmpgetCommunicates with a network entity using SNMP GET requests.
snmpgetnextCommunicates with a network entity using SNMP GETNEXT requests.
snmpbulkgetCommunicates with a network entity using SNMP GETBULK requests.
snmpwalkRetrieve a subtree of management values using SNMP GETNEXT requests.
snmpbulkwalkRetrieve a subtree of management values using SNMP GETBULK requests.
snmpsetCommunicates with a network entity using SNMP SET requests.
snmptrapSends SNMP TRAP or INFORM notification messages.
snmpdAn SNMP agent that responds to SNMP requests for a given host.
snmptrapdAn SNMP daemon that listens for SNMP TRAPs or INFORMs and logs or acts upon them.
snmptestCommunicates with a network entity using SNMP requests.
snmpusmManipulates the SNMPv3 User-based-security user table
snmpvacmManipulates the SNMPv3 View-based-access-control-module configuration tables
snmpdfDisplays disk information like the unix df tool using information collected from SNMP
mib2cA MIB conversion utility that can translate MIB structures into other forms, such as C-code
tkmibA 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:

% snmpget-v2c-cdemopublictest.net-snmp.orgSNMPv2-MIB::sysUpTime.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (586731977) 67 days, 21:48:39.77

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):

$ snmpwalk-t5-Os-cdemopublic-v2ctest.net-snmp.orgsystem sysDescr.0 = STRING: Linux test.net-snmp.org 2.6.18-164.el5 #1 SMP Thu Sep 3 03:28:30 EDT 2009 x86_64sysObjectID.0 = OID: netSnmpAgentOIDs.10sysUpTimeInstance = Timeticks: (34198503) 3 days, 22:59:45.03sysContact.0 = STRING: Net-SNMP CoderssysName.0 = STRING: test.net-snmp.orgsysLocation.0 = STRING: Undisclosed

Related Research Articles

<span class="mw-page-title-main">BitchX</span> Free IRC client

BitchX is a free IRC client that has been regarded as the most popular ircII-based IRC client. The initial implementation, written by "Trench" and "HappyCrappy", was a script for the IrcII chat client. It was converted to a program in its own right by panasync. BitchX 1.1 final was released in 2004. It is written in C and is a TUI application utilizing ncurses. GTK+ toolkit support has been dropped. It works on all Unix-like operating systems, and is distributed under a BSD license. It was originally based on ircII-EPIC, and eventually it was merged into the EPIC IRC client. It supports IPv6, multiple servers and SSL, and a subset of UTF-8 with an unofficial patch.

Simple Network Management Protocol (SNMP) is an Internet Standard protocol for collecting and organizing information about managed devices on IP networks and for modifying that information to change device behaviour. Devices that typically support SNMP include cable modems, routers, switches, servers, workstations, printers, and more.

<span class="mw-page-title-main">Netwide Assembler</span> Assembler for the Intel x86 architecture

The Netwide Assembler (NASM) is an assembler and disassembler for the Intel x86 architecture. It can be used to write 16-bit, 32-bit (IA-32) and 64-bit (x86-64) programs. It is considered one of the most popular assemblers for Linux and x86 chips.

Zero-configuration networking (zeroconf) is a set of technologies that automatically creates a usable computer network based on the Internet Protocol Suite (TCP/IP) when computers or network peripherals are interconnected. It does not require manual operator intervention or special configuration servers. Without zeroconf, a network administrator must set up network services, such as Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS), or configure each computer's network settings manually.

In computing, a loadable kernel module (LKM) is an object file that contains code to extend the running kernel, or so-called base kernel, of an operating system. LKMs are typically used to add support for new hardware and/or filesystems, or for adding system calls. When the functionality provided by an LKM is no longer required, it can be unloaded in order to free memory and other resources.

A management information base (MIB) is a database used for managing the entities in a communication network. Most often associated with the Simple Network Management Protocol (SNMP), the term is also used more generically in contexts such as in OSI/ISO Network management model. While intended to refer to the complete collection of management information available on an entity, it is often used to refer to a particular subset, more correctly referred to as MIB-module.

<span class="mw-page-title-main">Multi Router Traffic Grapher</span>

The Multi Router Traffic Grapher (MRTG) is free software for monitoring and measuring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form.

<span class="mw-page-title-main">XORP</span> Internet Protocol routing software

XORP is an open-source Internet Protocol routing software suite originally designed at the International Computer Science Institute in Berkeley, California. The name is derived from eXtensible Open Router Platform. It supports OSPF, BGP, RIP, PIM, IGMP, OLSR.

The proc filesystem (procfs) is a special filesystem in Unix-like operating systems that presents information about processes and other system information in a hierarchical file-like structure, providing a more convenient and standardized method for dynamically accessing process data held in the kernel than traditional tracing methods or direct access to kernel memory. Typically, it is mapped to a mount point named /proc at boot time. The proc file system acts as an interface to internal data structures about running processes in the kernel. In Linux, it can also be used to obtain information about the kernel and to change certain kernel parameters at runtime (sysctl).

The Desktop Management Interface (DMI) generates a standard framework for managing and tracking components in a desktop, notebook or server computer, by abstracting these components from the software that manages them. The development of DMI, 2.0 version June 24, 1998, marked the first move by the Distributed Management Task Force (DMTF) into desktop-management standards. Before the introduction of DMI, no standardized source of information could provide details about components in a personal computer.

<span class="mw-page-title-main">NDISwrapper</span> Driver wrapper for Windows devices used on Linux

NDISwrapper is a free software driver wrapper that enables the use of Windows XP network device drivers on Linux operating systems. NDISwrapper works by implementing the Windows kernel and NDIS APIs and dynamically linking Windows network drivers to this implementation. As a result, it only works on systems based on the instruction set architectures supported by Windows, namely IA-32 and x86-64.

sysctl Unix-like software that manages kernel attributes

sysctl is a software utility of some Unix-like operating systems that reads and modifies the attributes of the system kernel such as its version number, maximum limits, and security settings. It is available both as a system call for compiled programs, and an administrator command for interactive use and scripting. Linux additionally exposes sysctl as a virtual file system.

<span class="mw-page-title-main">Comparison of open-source wireless drivers</span>

Wireless network cards for computers require control software to make them function. This is a list of the status of some open-source drivers for 802.11 wireless network cards.

cmus Console audio player

cmus is a small and fast console audio player for Unix-like operating systems. cmus is distributed under the terms of the GPL-2.0-or-later and is operated exclusively through a text-based user interface, built with ncurses.

In the context of free and open-source software, proprietary software only available as a binary executable is referred to as a blob or binary blob. The term usually refers to a device driver module loaded into the kernel of an open-source operating system, and is sometimes also applied to code running outside the kernel, such as system firmware images, microcode updates, or userland programs. The term blob was first used in database management systems to describe a collection of binary data stored as a single entity.

The TCP window scale option is an option to increase the receive window size allowed in Transmission Control Protocol above its former maximum value of 65,535 bytes. This TCP option, along with several others, is defined in RFC 7323 which deals with long fat networks (LFNs).

OTP is a collection of useful middleware, libraries, and tools written in the Erlang programming language. It is an integral part of the open-source distribution of Erlang. The name OTP was originally an acronym for Open Telecom Platform, which was a branding attempt before Ericsson released Erlang/OTP as open source. However neither Erlang nor OTP is specific to telecom applications.

<span class="mw-page-title-main">Shinken (software)</span> Network monitoring software

Shinken is an open source computer system and network monitoring software application compatible with Nagios. It watches hosts and services, gathers performance data and alerts users when error conditions occur and again when the conditions clear.

NicheStack is a closed source IPv4 network layer and application implementation for operating systems, written in ANSI "C" and is one of three available from InterNiche Technologies, Inc., designed for use in embedded systems. Its transport layer implementation has historical roots in BSD and the IP layer was derived from a Carnegie Mellon University (CMU) implementation.

OpenLMI provides a common management infrastructure for Linux systems. Available operations include configuration of various operating system parameters and services, hardware components configuration, and monitoring of system resources. Services provided by OpenLMI can be accessed both locally and remotely, using multiple programming languages and standardized APIs.

References