Oct 012009
 

Quick update today! User Christianha, pointed out to me that the port_report tool was not matching any MAC address he passed. The reason for this is because he was passing the MAC address in uppercase. As per his suggestion, I fixed line 348 so that before it returns the mac, it willl make the MAC lower case. Then I just realized something…. I reverted line 348 back to way it was and changed line 676 instead..

It was if nmac == cmac:
Now it is  re.search(nmac, cmac, re.IGNORECASE):

I felt this was the safer option..

Thank you Christianha for pointing the issues out..

LD Port Report == Download

Sep 182009
 
We are happy to announce the release of Port Report 1.12. In this release, we can now follow CDP Neighbors while using the –report or -r options. Before when you used the –report option, the script will report on just that one switch. Now if you pass the –follow or -f option with the –report or -r option, port_report will follow the CDP neighbors and create multiple CSV files.
Release notes are below…. If you want to see an example of the Port Report output and how to run it, please check this link
Revision 1.12 09/18/09

  • The report option of the script can now follow cdp neighbors using the –follow option or -f.
    When you run the command below it will create ONE CSV file per cdp neighbor it scanned.
    I was able to scan from my core Switch down to the last neighbor in the line ( 44 Neighbors in just under 20 minutes. )
    Which equaled to a little over 4K Mac Addresses
    For instance…port_report.py -d 192.168.101.1 -c public -r -f

Continue reading “LD Port Report 1.12 update aka the Host and MAC Reporting tool” »

Sep 152009
 
We are happy to announce the release of Port Report 1.11. In this release, we have fixed quite a few bugs that were in the previous release. Included in this release is the ability to follow EtherChannel aka PortChannel Ports using the Port Agreggation Protocol.
Release notes are below…. If you want to see an example of the Port Report output and how to run it, please check this link
LD Port Report == Download
Revision 1.11 09/13/09

  • More code clean up and another increase in speed.
  • Also port_report can now follow EtherChannel
  • Fixed issue, where the matching of the cdp neighbor was not matching correctly
  • Added better verbosity
  • Added Sanity Checking for cdp neighbors

Revision 1.10 09/09/09

  • Code Clean up and a slight increase in speed ( by a few seconds ) during the search by mac or ip

Revision 1.9
Code changes and Added CDP Support

  • Detect CDP Neighbors during the scan for MAC Addresses or IP Addresses

Revision 1.8
Here is a quick update…..

  • I just add dns reverse lookups to the output of this script.

Revision 1.7
Adds support to the following devices..

  1. Cisco
    • Catalyst 6509 w/ Supervisor 720 running IOS
    • Catalyst 3560
    • Catalyst 3550 (SMI)
    • Cisco CIGESM series Chassis Blades
    • Cisco Catalyst 2960
  2. Foundry
    • Foundry Server Iron
  3. Nortel
    • Nortel Passport 8600
    • Nortel 5520 Ethernet Routing Switch
  4. HP
    • HP Procurve 5406xl

 

Revision 1.6
New additions to this revision ….

  • Support for HP Procurve Switches, ( Tested on the newer versions of HP )
  • combined switch_report.py in port_report.py.
  • Added –verbose flag

Previous Releases….

  • Search by MAC or IP or PORT

 

LD Port Reporter == Download

May 092009
 

I’m really excited to introduce Port Report Update 1.9  aka the Switch Port Mapper Tool. We’ve done quite a few code modifications to the previous release of Port Report. The most important feature we just finish adding to Port Report, is to detect CDP Neighbors during the scan for MAC Addresses or IP Addresses. We are still adding features as the days pass, so please stay tuned….

Revision 1.9
Code changes and Added CDP support..

  • Detect CDP Neighbors during the scan for MAC Addresses or IP Addresses

You can download the script http://www.linuxdynasty.org/Port-Report-Project/
{quickdown:39}

Continue reading “Linux Dynasty Switch Port Mapper Tool Update 1.9” »

May 052009
 

The Port Report Project is essentially a Switch Port Mapper Tool or a Switch Port Mapping Tool like a few other commercial products out there, except The Port Report Project is free. Right now there is no GUI or WEB interface for the project but it is in the works.

This project started off as being a simple 150 line script that did something quite simple… Its only purpose was to find MAC Addresses on a switch. Then I was asked could you also search by IP, so I added that. Now I was asked to search by Port, so I added that. Well you get where this is all going…. My goal now is to build the equivalent of other commercial port mapping tools, but Open Source….

On this page I will be keeping all the updates to this Project, so please keep checking back every now and again for updates.
You can get any revision of the Port Report tool here http://www.linuxdynasty.org/Port-Report-Project/
{quickdown:39}

Any issues with the LD Port Report Project, please discuss here in the forums
This script requires, Pysnmp and Pyasn1. If you have python-setuptools, you can install it by running this..
easy_install pysnmp, easy_install pyasn1

Three things you will need for this script to work..

  1. Pysnmp
  2. Pyasn1
  3. SNMP Access to the switch you want to talk too and its community string.
To make your life easier you should do the following
  1. install python-setuptools
  2. then run easy_install pysnmp
  3. and easy_install pyasn1
  4. or you can download the 2 modules manually.
    pysnmp and pyasn1
  5. then unzip the 2 files and in each directory run python setup.py install

I am using the following revisions from the python cheese shop pysnmp 4.1.12a and pyasn1 0.0.9a

For revision 1.12 and above….. If you installed pyasn1 and pysnmp using easy_install. Please uninstall it now and install the newest revision and run python setup.py install Instead of using easy_install.
Revision history and Examples below…..
Revision 1.13 10/01/09

  • Fixed line 348 as per christianha. return nmac.lower()
    This fix will allow you to pass a MAC in all uppercase and still match though the switch is responding in lowercase.
    00 E0 B8 81 E8 B7 will now match 00 e0 b8 81 e8 b7

Revision 1.12 09/18/09

  • The report option of the script can now follow cdp neighbors using the –follow option or -f.
    When you run the command below it will create ONE CSV file per cdp neighbor it scanned.
    I was able to scan from my core Switch down to the last neighbor in the line ( 44 Neighbors in just under 20 minutes. )
    Which equaled to a little over 4K Mac Addresses
    For instance…port_report.py -d 192.168.101.1 -c public -r -f

Revision 1.11 09/13/09

  • More code clean up and another increase in speed.
  • Also port_report can now follow EtherChannel
  • Added better verbosity
  • Added Sanity Checking for cdp neighbors

 

Revision 1.10 09/09/09

  • Code Clean up and a slight increase in speed ( by a few seconds ) during the search by mac or ip

Revision 1.9
Code changes and Added CDP Support

  • Detect CDP Neighbors during the scan for MAC Addresses or IP Addresses

Revision 1.8
Here is a quick update…..

  • I just add dns reverse lookups to the output of this script.

Revision 1.7
Adds support to the following devices..

  1. Cisco
    • Catalyst 6509 w/ Supervisor 720 running IOS
    • Catalyst 3560
    • Catalyst 3550 (SMI)
    • Cisco CIGESM series Chassis Blades
    • Cisco Catalyst 2960
  2. Foundry
    • Foundry Server Iron
  3. Nortel
    • Nortel Passport 8600
    • Nortel 5520 Ethernet Routing Switch
  4. HP
    • HP Procurve 5406xl

 

Revision 1.6
New additions to this revision ….

  • Support for HP Procurve Switches, ( Tested on the newer versions of HP )
  • combined switch_report.py in port_report.py.
  • Added –verbose flag

Previous Releases….

  • Search by MAC or IP or PORT

 

EXAMPLES BELOW…

Below is an example of the integrated CDP following of switches using the -m ( –mac ) option

 

python port_report.py -d switch -c community -m "00 13 20 16 5f f7" 
Switch Connected to 192.168.101.1 
SwitchPort = GigabitEthernet10/3 
SwitchPortSpeed = 1000mb 
SwitchPortDuplex = fullDuplex 
SwitchVlan = vlan176 
SnmpHostName = requestTimedOut 
SnmpHostDescr = requestTimedOut 
HostMAC = 00 13 20 16 5f f7 
HostIP = 192.168.101.101 
HostName = Pointer Record Not set for 192.168.101.101 

Found 00 13 20 16 5f f7 on 192.168.101.5
Switch Connected to 192.168.101.5 
SwitchPort = GigabitEthernet0/24 
SwitchPortSpeed = 1000mb 
SwitchPortDuplex = fullDuplex 
SwitchVlan = vlan176 
SnmpHostName = No SNMP Access 
SnmpHostDescr = No SNMP Access 
HostMAC = 00 13 20 16 5f f7 
HostIP = None 
HostName = None 

Found 00 13 20 16 5f f7 on 192.168.101.6 
Switch Connected to 192.168.101.6 
SwitchPort = GigabitEthernet0/22 
SwitchPortSpeed = 1000mb 
SwitchPortDuplex = fullDuplex 
SwitchVlan = vlan176 
SnmpHostName = No SNMP Access 
SnmpHostDescr = No SNMP Access 
HostMAC = 00 13 20 16 5f f7 
HostIP = None 
HostName = None 

This MAC 00 13 20 16 5f f7 was finally traced to this switch 192.168.101.6

Below I will show you an example of the listing of MAC Addresses per Port using the n (–pname) option

python port_report.py -d 192.168.101.1 -c community -n "10/3"
SwitchPort = GigabitEthernet10/3
SwitchPortSpeed = 1000mb
SwitchPortDuplex = fullDuplex
SwitchVlan = vlan176
SnmpHostName = requestTimedOut
HostDescr = requestTimedOut
HostMAC  = 00 22 64 bb 3e 17
HostIP = 192.168.101.146
HostName = Pointer Record Not set for 192.168.101.146

SwitchPort = GigabitEthernet10/3
SwitchPortSpeed = 1000mb
SwitchPortDuplex = fullDuplex
SwitchVlan = vlan176
SnmpHostName = requestTimedOut
HostDescr = requestTimedOut
HostMAC  = 00 0c f1 bb bf eb
HostIP = 192.168.101.147
HostName = Pointer Record Not set for 192.168.101.147

SwitchPort = GigabitEthernet10/3
SwitchPortSpeed = 1000mb
SwitchPortDuplex = fullDuplex
SwitchVlan = vlan176
SnmpHostName = requestTimedOut
HostDescr = requestTimedOut
HostMAC  = 00 20 4a 83 20 97
HostIP = 192.168.101.30
HostName = Pointer Record Not set for 192.168.101.30

Below is an example of running the –report option.. Also the report option will save the output to disk in a CSV file.

python port_report.py -d 192.168.101.5 -c community --report
GigabitEthernet0/1,00 1c c0 12 6a 8b,None,None,vlan180,up,up,fullDuplex,1000mb,
GigabitEthernet0/1,00 20 4a 12 2b 68,None,None,vlan180,up,up,fullDuplex,1000mb,
GigabitEthernet0/1,00 12 44 94 dc 40,192.168.101.132,Pointer Record Not set for 192.168.101.132,vlan180,up,up,fullDuplex,1000mb,
GigabitEthernet0/1,00 21 5a c7 81 16,None,None,vlan180,up,up,fullDuplex,1000mb,
GigabitEthernet0/3,00 20 4a 12 2b 71,None,None,vlan180,up,up,halfDuplex,10mb,

Below is an example of searching by IP Addresses -i (–ip)..

python port_report.py -d 192.168.101.1 -c ommunity -i "192.168.101.200"
Switch Connected to 192.168.101.1
SwitchPort = GigabitEthernet1/17
SwitchPortSpeed = 1000mb
SwitchPortDuplex = unknown
SwitchVlan = vlan175
SnmpHostName = zenmon.linuxdynasty.org
SnmpHostDescr = Linux zenmon.linuxdynasty.org 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 12:03:43 EST 2008 i686HostMAC  = 00 14 38 4f 5e 38HostIP = 192.168.101.200HostName = zenmon.linuxdynasty.org

Warning: fopen(/home/dynasty/linuxdynasty.org/wp-content/plugins/wp-google-plus-one/lib/standard.txt) [function.fopen]: failed to open stream: No such file or directory in /home/dynasty/linuxdynasty.org/wp-content/plugins/wp-google-plus-one/plusone.php on line 104

Warning: fread(): supplied argument is not a valid stream resource in /home/dynasty/linuxdynasty.org/wp-content/plugins/wp-google-plus-one/plusone.php on line 105

Warning: fclose(): supplied argument is not a valid stream resource in /home/dynasty/linuxdynasty.org/wp-content/plugins/wp-google-plus-one/plusone.php on line 106
.