A free package called HNMS, the NAS Hierarchical Network Management System, is now available. The software may be ftp'd from ftp.netcom.com in the directory pub/heyjude. (We're looking for other sites to pick this up, as netcom is pretty bogged down -- offers are welcome). ---------------------------------------------------------------------------- HNMS v2.0g2 This is the first public release of HNMS, the NAS Hierarchical Network Management System. HNMS may be used to monitor status and generate traffic statistics for a large, routed IP network. Graphical displays are provided for the X11 Window System and make use of the Motif widget set. HNMS is unique is that it can be used to graphically display routing information. The GUI provides compact representations of LANs, in which the status of every subnet, host, and IP address can be displayed in a small area. Netmask misconfigurations can be picked out immediately. It also correctly displays various WAN architectures, such as those which include multiple IP addresses per interface (or vice versa), or subnets which spread across multiple links. A custom version of HNMS was used to generate the live, three-dimensional representation of the cross-country ATM network at Supercomputing '93 in Portland, Oregon. Data collection is handled via SNMP, ICMP, and direct layer 2 monitoring. Distribution of network management information is done via HNMP, a new protocol which builds upon the simple, stateless client-server model used by SNMP. HNMP defines network objects, binds SNMP variables to them, and facilitates higher level management operations on them. The ASN.1 specification of HNMP is included in this package. Please note that there is also a release of HNMS that we are distributing through COSMIC, NASA's software technology transfer organization. COSMIC may (or may not) provide support for that distribution, but please do not ask them for any kind of support concerning this one. They will not be able to help you. This version of HNMS has been made available to you, by special dispensation, as FREE SOFTWARE under the GNU public licence ("copyleft"). It is distributed as is, with NO WARRANTY for its fitness for any purpose. If it is redistributed, you may not charge for it or any derivative work. Please see the file "COPYING" for details about all this. Full source code is provided. We encourage the Internet community to experiment with, build upon, use, port, learn from, add modules to, write scripts for, and expand this software package. There are some areas in which it can be improved, especially in the areas of generality and efficiency. We would like to see standardized displays for various types of networks and monitored objects, as well as customized displays for specific network hardware, and have them be freely available to everyone. The authors do not have the resources to maintain this software outside of NAS. Although we may continue to add enhancements, we are hoping that other(s) will take on the role of incorporating bug fixes and extensions to the code, and sending out new releases. We do welcome any suggestions or bug reports that you may have -- but there's no guarantee that we will be able to help you, or even have time to respond. We are working full time (and then some) on other projects. To reach us via email, mail to hnmsdev@nas.nasa.gov. This software has not been extensively tested. Neither the authors, nor NASA, nor anybody at all takes any responsibility for any damage that HNMS may cause, directly or indirectly, to your network, your users, or anything. That said, it works pretty well for us. Jude George Leslie Schlecht jude@nas.nasa.gov schlecht@nas.nasa.gov Any opinions expressed above are a figment of your imagination, and should not be taken to reflect the views of NAS, NASA, CSC, or anybody else. ---------------------------------------------------------------------------- TO BUILD, follow the instructions in the top-level Makefile. ------> Be forewarned that you will need to obtain the Motif libraries, ------> ISODE-7.0 (not 8.0) and tcpdump if they do not already exist on your system. FOR COMPLETE INSTRUCTIONS on installing and using HNMS, please read the file docs.ps. ---------------------------------------------------------------------------- Here are some quick-start instructions for the HNMS daemon, the graphical user interface, and the textual user interface. The binaries are called hnmsd, hnms, and hnmstool. INSTALLATION 1. Untar and build the HNMS distribution. Sources, docs, and auxiliary files are included. This version of HNMS has only been tested on the Silicon Graphics Iris under IRIX 4.0.5. It should work with little modification on SparcStations running SunOS 4.x. 1. Choose a directory to be the hnms "home", and copy the binaries and the background/ directory to that directory. 2. Set the $HNMS_HOME environment variable to be that directory. You may want to put this in your .login. 3. Make sure tcpdump is in your path. It's usually located in /usr/local/etc. The HNMS IO module uses tcpdump to discover new IP addresses. 4. Make the hnmsd (and tcpdump, if necessary) setuid root. The HNMS IO module, contained within hnmsd, needs root to access the ICMP socket. 5. Set the HNMS_PROMISCUOUS environment variable. We are just using this as a flag to tell the IO module that it's okay use promiscuous Ethernet monitoring. 6. Start hnmsd. RUNTIME -- GUI The GUI binary is called "hnms". If you are running it on a machine different from the server, set the HNMS_SERVER environment variable to have the server machine's name. Start the hnms program. Once the GUI's main window appears, choose "Open" from the "HNMP" menu at the top center of the window. A new window titled "Server" will pop up. In this window, type "public" in the Community field, and the hostname of the server machine in the Selection field. Then click the Connect button. At this point, you can start building diagrams. Choose "New --> Custom Status View" from the HNMS menu on the main window. An "EDIT" window will pop up. Type an asterisk in the Selection field, then click Add, then click the check mark at the top. You will see a display of all the hosts that the server currently knows about ("Processor" objects), along with their IP addresses ("Ipaddr" objects") and the subnets they are connected to ("Subnet objects). If you have just recently started up hnmsd, the objects will appear magenta while hnmsd is ramping up. This process takes three minutes. Afterwards they will change to green. When a reachable object becomes unreachable, it changes to yellow, then red. Feel free to experiment with the rest of the menu items. "Site" and "WAN" diagrams may be built in a manner similar to the "Custom". For WAN diagrams to be displayed properly, the sysLocation field of your hosts should be in the format . For example, "NASA Ames Research Center -122.5 37.1". RUNTIME -- PLAINTEXT You may also run hnmstool. This program takes commands on stdin and outputs results on stdout, so it can be used effectively from within shell scripts. For a demonstration, we will run it interactively. The hnmstool does not give a prompt. After starting it, wait a minute or two for it to get the list of HNMS objects from the server. for the HNMS daemon to pick up a good assortment of objects from the network. Then type list. You should see a list of objects scroll down the screen. Only hosts with SNMP agents responding to "public" will be shown. To pick up other hosts, type hint . For example: hint snafu.nas.nasa.gov foobar The next time you type list, you should see processor:snafu among the objects. To get data about an object, type subscribe "" @. For example: subscribe "processor:snafu" sysUpTime.0@15 This will give you a report of the value of the sysUpTime.0 variable every 15 seconds, if the variable changes. Since sysUpTime.0 constantly changes, you will get an update on stdout every 15 seconds.