[patch] Track devices on Cisco etherchannel interfaces
Moderators: Developers, Moderators
[patch] Track devices on Cisco etherchannel interfaces
Hi all!
First of a big thank you to TheWitness for this excellent plugin. It has saved us a lot of time tracking down machines in our network.
We have a lot of VMWare hosts to which we run etherchannel (802.3ad) from Cisco switches. Because the ifType of Port-channel interfaces is 53 and thus invisible to mactrack, I created this patch to be able to track devices connected to port-channel interfaces.
Unfortunately Cisco also uses ifType 53 for other interface types, so I had to detect Port-channel interfaces by their name (Po<number>). This meant an especially ugly change in get_base_dot1dTpFdbEntry_ports. If somebody comes up with a better idea I would like to hear it.
I don't know if there is any demand for monitoring etherchannel, but if there is, maybe this patch could be integrated into official mactrack sources.
First of a big thank you to TheWitness for this excellent plugin. It has saved us a lot of time tracking down machines in our network.
We have a lot of VMWare hosts to which we run etherchannel (802.3ad) from Cisco switches. Because the ifType of Port-channel interfaces is 53 and thus invisible to mactrack, I created this patch to be able to track devices connected to port-channel interfaces.
Unfortunately Cisco also uses ifType 53 for other interface types, so I had to detect Port-channel interfaces by their name (Po<number>). This meant an especially ugly change in get_base_dot1dTpFdbEntry_ports. If somebody comes up with a better idea I would like to hear it.
I don't know if there is any demand for monitoring etherchannel, but if there is, maybe this patch could be integrated into official mactrack sources.
- Attachments
-
- mactrack_cisco_etherchannel.patch
- Track devices on Port-channel ifaces. Apply against SVN rev 834
- (2.65 KiB) Downloaded 486 times
- TheWitness
- Developer
- Posts: 17047
- Joined: Tue May 14, 2002 5:08 pm
- Location: MI, USA
- Contact:
Can you please open a bug here: http://bugs.cacti.net under the Plugins Section and I will incorporate?
Thanks,
TheWitness
Thanks,
TheWitness
True understanding begins only when we realize how little we truly understand...
Life is an adventure, let yours begin with Cacti!
Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages
For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
Life is an adventure, let yours begin with Cacti!
Author of dozens of Cacti plugins and customization's. Advocate of LAMP, MariaDB, IBM Spectrum LSF and the world of batch. Creator of IBM Spectrum RTM, author of quite a bit of unpublished work and most of Cacti's bugs.
_________________
Official Cacti Documentation
GitHub Repository with Supported Plugins
Percona Device Packages (no support)
Interesting Device Packages
For those wondering, I'm still here, but lost in the shadows. Yearning for less bugs. Who want's a Cacti 1.3/2.0? Streams anyone?
Done: http://bugs.cacti.net/view.php?id=1666TheWitness wrote:Can you please open a bug here: http://bugs.cacti.net under the Plugins Section and I will incorporate?
There is another more radical modification we made to mactrack, that may be of interest.
Current end port detection is based on detecting trunk/non trunk ports. Since we run multiple VLANs to a lot of VMWare host machines this just didn't work for us. Also manually setting up ignored ports for each switch is not very scalable (and harder to automate).
So I changed end port detection to compare port desctiption (ifAlias) to a list of names of other mactrack devices. If there is a match, the port is assumed to be connected to another switch and its MAC addressed are ignored. I don't know what other people put in their port descriptions, so I'm not sure if it would make sense for other people to use.
The patch in its current state is not quite ready for production use, however if there is interest, I could work on it a bit. Currently works only on Cisco and Dell switches since that is what we use.
Also, perhaps end port detection method could be made configurable and other methods could be added.
- Attachments
-
- mactrack_alt_end_port_detection.patch
- Alternative end port detection. Apply mactrack_cisco_etherchannel.patch first.
- (5.18 KiB) Downloaded 698 times
-
- Cacti User
- Posts: 168
- Joined: Fri Sep 12, 2008 2:41 am
- Location: Sweden
The previos company i worked at had the socket-id to where the port was patched in their port description. This was on a 15000 port network.
Where im currently at were aiming to do the same basically.
I had a long post of why we do this but i dont think its needed, kinda felt like "my way is the RIGHT way!"
Maybe as an option that has to be activated? Per site or per device? Also maybe the possibility to use prefixes or suffixes? My first employer above used the prefixes 'c' and 'x', client and x-connection (mainly between core, dist and switch) respectively.
Where im currently at were aiming to do the same basically.
I had a long post of why we do this but i dont think its needed, kinda felt like "my way is the RIGHT way!"
Maybe as an option that has to be activated? Per site or per device? Also maybe the possibility to use prefixes or suffixes? My first employer above used the prefixes 'c' and 'x', client and x-connection (mainly between core, dist and switch) respectively.
-
- Posts: 11
- Joined: Wed Dec 07, 2016 11:25 am
Re: [patch] Track devices on Cisco etherchannel interfaces
I made the changes to the mactrack_cisco.php and mactrack_functions.php files as the link suggested. Removing ( - ) the lines and Adding ( + ) lines as the update script suggested and now I get port channel information back for Catalyst / IOS devices which is great, however I still don't get back Cisco Nexus port-channel information which is the bulk of what I need to get back. Any chance you know what would be different with Cisco Nexus port channels vs Catalyst / IOS port channels with regards to those files ?
-
- Posts: 11
- Joined: Wed Dec 07, 2016 11:25 am
Re: [patch] Track devices on Cisco etherchannel interfaces
I think I see the problem.... Per the Patch / Script ( mactrack_cisco_etherchannel.patch ) it looks for matches with : Po# ( preg_match("/^Po\d/" ) , then populates MAC Track results. See the difference between how MACTrack sees the Cat/IOS port channels ( ifName ) VS Nexus port channels via my screenshot. How do I edit the mactrack_cisco.php and mactrack_functions.php files to be able to display BOTH the Cat/IOS port channels ( as it is currently working great ) , but ALSO display the Nexus port channels ? ( Assuming I need an OR in the logic , but don't know enough about the code to write that in ). Follow ?
How the Cat/IOS ifNames are for Port-Channels : ( ifName follows scheme Po## )
mysql> select site_id, device_id, ifIndex, ifName, ifAlias, ifDescr, ifType from mac_track_interfaces where device_id=1 AND ifType=53;
+---------+-----------+---------+-----------+------------------------------------------------+--------------------+--------+
| site_id | device_id | ifIndex | ifName | ifAlias | ifDescr | ifType |
+---------+-----------+---------+-----------+------------------------------------------------+--------------------+--------+
| 1 | 1 | 212 | Po11 | Rack 1A-1 | Port-channel11 | 53 |
| 1 | 1 | 213 | Po12 | Rack 1A-2 | Port-channel12 | 53 |
How the Nexus ifNames are for Port-Channels : ( ifName follows scheme port-channel## )
mysql> select site_id, device_id, ifIndex, ifName, ifAlias, ifDescr, ifType from mac_track_interfaces where device_id=16 AND ifType=53;
+---------+-----------+-----------+------------------+-----------------------------+------------------+--------+
| site_id | device_id | ifIndex | ifName | ifAlias | ifDescr | ifType |
+---------+-----------+-----------+------------------+-----------------------------+------------------+--------+
| 6 | 16 | 369098753 | port-channel2 | tor-dc-oob-sw | port-channel2 | 53 |
| 6 | 16 | 369099752 | port-channel1001 | torinfesx01 | port-channel1001 | 53 |
How the Cat/IOS ifNames are for Port-Channels : ( ifName follows scheme Po## )
mysql> select site_id, device_id, ifIndex, ifName, ifAlias, ifDescr, ifType from mac_track_interfaces where device_id=1 AND ifType=53;
+---------+-----------+---------+-----------+------------------------------------------------+--------------------+--------+
| site_id | device_id | ifIndex | ifName | ifAlias | ifDescr | ifType |
+---------+-----------+---------+-----------+------------------------------------------------+--------------------+--------+
| 1 | 1 | 212 | Po11 | Rack 1A-1 | Port-channel11 | 53 |
| 1 | 1 | 213 | Po12 | Rack 1A-2 | Port-channel12 | 53 |
How the Nexus ifNames are for Port-Channels : ( ifName follows scheme port-channel## )
mysql> select site_id, device_id, ifIndex, ifName, ifAlias, ifDescr, ifType from mac_track_interfaces where device_id=16 AND ifType=53;
+---------+-----------+-----------+------------------+-----------------------------+------------------+--------+
| site_id | device_id | ifIndex | ifName | ifAlias | ifDescr | ifType |
+---------+-----------+-----------+------------------+-----------------------------+------------------+--------+
| 6 | 16 | 369098753 | port-channel2 | tor-dc-oob-sw | port-channel2 | 53 |
| 6 | 16 | 369099752 | port-channel1001 | torinfesx01 | port-channel1001 | 53 |
- Attachments
-
- MAC Track SQL Query Difference Between Cat IOS and Nexus PortChannel Display for MACs_BOTH-Versions.JPG (116.21 KiB) Viewed 16228 times
Re: [patch] Track devices on Cisco etherchannel interfaces
monitoringisfuncr, let's try to change in mactrack_cisco.php this:
to this:
Code: Select all
(preg_match("/^Po\d/", $ifName)
Code: Select all
(preg_match("/^Po\d/", $ifName)||(preg_match("/^port-channel\d/", $ifName)
Re: [patch] Track devices on Cisco etherchannel interfaces
Hi,
did this ever get implemented in the last version of mactrack ? (or the develop version in github ?)
Thanks,
Joris.
did this ever get implemented in the last version of mactrack ? (or the develop version in github ?)
Thanks,
Joris.
Joris.
http://www.routerjanitor.com
http://www.routerjanitor.com
Re: [patch] Track devices on Cisco etherchannel interfaces
If you are talking about the endpoint patch above, simple answer is no. I can't see it in there.
Cacti Developer & Release Manager
The Cacti Group
Director
BV IT Solutions Ltd
+--------------------------------------------------------------------------+
Cacti Resources:
Cacti Website (including releases)
Cacti Issues
Cacti Development Releases
Cacti Development Documentation
The Cacti Group
Director
BV IT Solutions Ltd
+--------------------------------------------------------------------------+
Cacti Resources:
Cacti Website (including releases)
Cacti Issues
Cacti Development Releases
Cacti Development Documentation
Re: [patch] Track devices on Cisco etherchannel interfaces
I'd be nice to have it but I think it may need rework.
You don't want to end up with lots of duplicated data for the port-channel interface + its members. I'll check if we can get etherchannel members from snmp to be able to exclude data from them.
Having said that, I haven't looked at the patch =P
@netniV, if you want to have a crack at that, I'm happy to help you out with the snmpwalks and testing. I rather let you do all the php stuff, I'm a php monkey hehe
You don't want to end up with lots of duplicated data for the port-channel interface + its members. I'll check if we can get etherchannel members from snmp to be able to exclude data from them.
Having said that, I haven't looked at the patch =P
@netniV, if you want to have a crack at that, I'm happy to help you out with the snmpwalks and testing. I rather let you do all the php stuff, I'm a php monkey hehe
Cacti - 1.2.15
Poller Type - Spine
Weathermap 0.98a
Server Info - Linux 3.10.0 - Centos 7
Web Server - Apache/2.4.6 PHP 5.4.16
MySQL - 5.5 ;RRDTool - 1.4.8 ;SNMP - 5.7.2
Religion - Anti forum pets
Poller Type - Spine
Weathermap 0.98a
Server Info - Linux 3.10.0 - Centos 7
Web Server - Apache/2.4.6 PHP 5.4.16
MySQL - 5.5 ;RRDTool - 1.4.8 ;SNMP - 5.7.2
Religion - Anti forum pets
Re: [patch] Track devices on Cisco etherchannel interfaces
Maybe. I think open it as a request on the github repo and we can take a peek next week.
Cacti Developer & Release Manager
The Cacti Group
Director
BV IT Solutions Ltd
+--------------------------------------------------------------------------+
Cacti Resources:
Cacti Website (including releases)
Cacti Issues
Cacti Development Releases
Cacti Development Documentation
The Cacti Group
Director
BV IT Solutions Ltd
+--------------------------------------------------------------------------+
Cacti Resources:
Cacti Website (including releases)
Cacti Issues
Cacti Development Releases
Cacti Development Documentation
Re: [patch] Track devices on Cisco etherchannel interfaces
Did you open an issue for this? I can't recall.
Cacti Developer & Release Manager
The Cacti Group
Director
BV IT Solutions Ltd
+--------------------------------------------------------------------------+
Cacti Resources:
Cacti Website (including releases)
Cacti Issues
Cacti Development Releases
Cacti Development Documentation
The Cacti Group
Director
BV IT Solutions Ltd
+--------------------------------------------------------------------------+
Cacti Resources:
Cacti Website (including releases)
Cacti Issues
Cacti Development Releases
Cacti Development Documentation
Who is online
Users browsing this forum: No registered users and 0 guests