The roots of the Net-SNMP project go all the way back to 1992, and Carnegie-Mellon University. The Network Group group at CMU (led by Steve Waldbusser) developed an implementation of a relatively new network management protocol - SNMP. This suite included a library, a selection of simple management commands, and an "agent" (which reported most of the standard management information, as defined in RFC 1213). The code was made publicly available, and used by a number of people (including several commercial companies).
One of these people that picked up on the CMU-SNMP suite was an overworked system administrator at the University of California, Davis - Wes Hardaker. He extended the agent to provide more information about his local systems (a private precursor to the Host Resources MIB) and to flag certain error situations. He also added a simple way for the agent to run additional scripts and report the results, turning it into an extensible agent. In 1995, this code was also made publicly available (as ucd-snmp v3.0), and the UCD project was born.
One of the people that picked up on the UCD-SNMP suite was another overworked system administrator at the University of Liverpool - Dave Shield. He was looking for a way to monitor the local print system (which was itself also overloaded), and detect incipient backlogs before they got out of control. He submitted various patches to Wes to improve the behaviour on HP-UX systems, with an eye to replacing the vendor-supplied agent, but soon got distracted into working on the UCD-SNMP code in its own right.
At about the same time, the UCD suite was picked up by yet another overworked system administrator from Denmark - Niels Baggesen. He also submitted a number of patches to Wes, improving the behaviour under Solaris, and generally working on the solidity and stability of the code. Eventually Wes got fed up of applying a stream of patches, and opened the CVS code base up to both Dave and Niels, together with Joe Marzot (who had been developing a Perl interface to the SNMP library) and Mike Slifcak (who had been working on a thread-safe API, among other things). UCD-SNMP had become a fully-fledged collaborative Open Source project.
Over the years, the UCD code was used by an ever-increasing number of people - many of whom submitted patches or suggested improvements (both large and small). Niels moved jobs, but continued to work on the code. Dave stayed put at Liverpool, and continued to work on the code. Wes even moved to Europe, and then back to the US, but continued to work on the code.
In 1998, the IETF engaged Wes to develop a reference implentation of the long-awaited SNMPv3 specifications - which were finally in the process of being agreed (after a long, and not entirely trouble-free gestation). This work was initially done in parallel to the ongoing maintenance of the public UCD v3 code, but eventually was merged back into the main development tree. This SNMPv3-capable suite (which also saw the first support for AgentX, and dropped the now obsolete SNMPv2p) was released as ucd-snmp v4.0 in August 1999.
Although the initial work had been started at UC Davis, and the project still bore the name, the links with this institution were growing increasingly tenuous. Wes no longer worked there, and most of the other core developers had never even seen the place!
Eventually in late 2000, the project changed its name to Net-SNMP and relocated to SourceForge - allowing the administrative support tasks to be more widely shared (rather than Wes having to do it all!) At the same time, the code saw a major restructuring of the agent framework, with a much more flexible MIB module API, and a number of "helpers". This was probably the most visible example of an ongoing general modularisation of much of the code including a network transport layer, pluggable SNMPv3 access control and security models, and trap handling.
The result of all this activity was released in April 2002 as net-snmp v5.0, and was the subject of an article in the Simple Times later that year, describing some of the recent changes.
Even prior to the v5 release, and increasingly since, the Net-SNMP suite has been picked up by more and more people, on an ever-widening variety of systems. The support for Microsoft Windows has improved dramatically, due to the efforts of a large number of coders - not least Mike Slifcak, Robert Story (who joined the core developers shortly before the v5 release), and the two latest recruits - Alex Burger and Andy Smith.
At the same time, the code has been ported to a number of different embedded systems including µCLinux based systems, as well as being adopted as part of the default distribution of most Linux and BSD-based systems. Also, a number of separately developed packages have appeared which build upon the Net-SNMP framework - either higher-level management applications, or to provide an API wrapper for other programming languages. Such independent packages are the most reliable indication of the success of the Net-SNMP project (which has consistently been in the top 2% of project activity on SourceForge for almost the whole time it has been based there).
And what of the future?
The rate of development of the project shows no sign of slackening - quite the reverse. The level of traffic on the mailing lists has climbed ever higher, and the number of people actively offering code to the project has never been higher.
The latest release (v5.2.1 at the time of this writing) has seen the introduction of a "network information abstraction layer", to improve the clarity and portability of the original MIB-2 modules (which has included some of the oldest code in the project - and it's shown!)
A similar idea is being investigated for the system hardware information, pulling together the Host Resources and private 'ucdavis' modules (and updating them in the light of practical experience). And there is a long list of other ideas for developing the code.
In the slightly longer term, it's likely that the underlying SNMP library will receive similar treatment to that seen with the v5 agent. The most probable distinguishing feature of an eventual v6 release will be a re-structured (and properly modularised) SNMP library, allowing much greater flexibility in how it can be configured and used.
But predicting the future is notoriously unreliable, and it is quite possible that the Net-SNMP project will develop in ways none of us have yet thought of. But it seems extremely unlikely that it will disappear any time soon.
Watch this space....
Last modified: Thursday, 26-May-2011 23:21:31 UTC
For questions regarding web content and site functionality, please write to the net-snmp-users mail list.