Currently we manually document the connections to the ports of our switches. Of course, maintenance is a chore, and the documentation is out of date as soon as you save it.
Are there any tools for querying switches, preferably via SNMP, that can tell you what is connected on the other end?
For the record, we use primarily HP ProCurve switches.
Netdisco is the answer.
Website: http://netdisco.org/
I have used GLPI (http://glpi-project.org/spip.php?lang=en) which I liked, spreadsheets (which are cumbersome but effective), and I have been looking at IP Plan (http://iptrack.sourceforge.net/) which seems nearly abandoned.
Since I'm going to be getting another admin soon (YAY), I'm going to go back to GLPI.
Also, I label each of the cables going to the switch with a Brother p-touch labeler. It's pretty cheap, but it's better than nothing.
NetDisco is quite a big cannon. For a simpler script, look at switchmap. It walks the switches' MAC tables, ARP tables, CDP et al to generate static web pages. These nicely summarize the port assignments.
I'm a BIG fan of NST's Managed Switch Port Mapping Tool www.netscantools.com/spmapmain.html
It's not free, but is very useful in troubleshooting as well as documenting networks. It uses SNMP and ARP to give you the MAC and IP address (and will do DNS lookups as well) of all the devices connected to each port on a given switch.
Big thumbs up for this tool!
You could become well versed at NMAP and use that as your updated network mapper. Though I think that would prove to be too cumbersome. I stick to the label maker and my primary tool for this situation.
OpenNMS features layer2 discovery through SNMP collection (as I'm sure do other similar tools).
OpenNMS will pull in MAC, VLAN and STP information from managed devices, and use this to build up a l2 topology, which it can then map. (Native mapping currently only works for IE, but the next stable release - 1.8 - I think will have better mapping support). You can see which nodes are connected to a given node on a per-port basis.
Alternatively, if you're comfortable writing something yourself, snimpy provides an excellent programmatic interface to SNMP, bypassing a lot of the overhead of programming for SNMP. I've used it recently to generate a live summary of vlans per port, something our switches didn't report cleanly.
I have written a Perl program that runs on Linux/FreeBSD to track all devices on your Cisco network (IOS/NX-OS/ASA). It uses SSH/Telnet (no SNMP) to connect to the devices, and stores all the data in a MySQL database. It's highly modular, is geared towards medium and large networks, includes an GUI and CLI interface, and has a library that can be used by other programs. There are many features, so just check the webpage:
http://netdbtracking.sourceforge.net/