The following tags have been assigned:
The following projects are related:
This project was done while I was an RTA Coordinator with Student Affairs IT at the University of Montana, Missoula.
Student Affairs IT (SAIT) is responsible for managing and maintaining the network infrastructure within all of the on-campus residence halls and the off-campus Lewis and Clark Village (LCV) apartments for student housing. In particular, using the Talos web application I also created, our staff had the ability to enable or disable specific network ports on the hundreds of network switches throughout these buildings based on associations with specific room numbers and port locations within those rooms. This was necessary to remotely handle activating specific ports when students paid for internet access (for example, enabling an interface connected to a network jack in the student's living room of their apartment in addition to the already active port in their bedroom) or for disabling a port in situations where network access needed to be blocked (for example, malfunctioning hardware or malicious software disrupting other network devices).
Unfortunately, at the time I was creating the Talos system, a bit of spot-checking of the documentation available at the time for mapping associations between interfaces on each switch to an actual room number and port location within that room revealed that much of the existing documentation was outdated, inaccurate, or simply did not exist. We, therefore, needed a way to quickly gather this information - most importantly the switch IP address and interface number associated with each location - for thousands of different locations throughout these buildings.
After a bit of research I identified a possible solution to this problem. The Cisco Discovery Protocol (CDP) is a proprietary Data Link Layer network protocol developed by Cisco Systems and is used to share information between directly connected Cisco equipment. As Cisco was the vendor for all of the switches which would require this documentation I was confident I would be able to make use of this already established protocol to extract the data we desired. By default, Cisco equipment, including network switches, is designed to emit a CDP announcements to the multicast destination address 01000CCCCCCC every sixty seconds. With access to manage a switch this frequency is also user configurable.
After spending some quality time with the CDP packet documentation from Cisco and a copy of Wireshark, I developed this software which is responsible for monitoring all network traffic on a specified network adapter and identifying any relevant CDP information it receives. This information is then displayed to the user in a GUI and optionally automatically copied to the clipboard in a format allowing it to be pasted directly into an excel spreadsheet during the documentation process. Using the information received in these CDP announcements it is possible to determine - at the most basic level - the FQDN of the switch, the IP address of the switch, the model of the switch, the version of the software running on the switch, and the interface on the switch that the device running my software is connected to.
Now, with this software running on any laptop one of our staff members could easily and quickly visit each network jack throughout these buildings, manually document the room number and port location with that room, and use this software to automatically generate the remainder of the needed information simply by plugging the laptop into an Ethernet cable attached to that network jack.