Open mrfrtr opened 1 month ago
Hi! There are apparently two ways of identifying this class, either by sysDescr or sysObjectId:
$ grep -n -i -C 1 airespace perl5/lib/perl5/SNMP/Info.pm
--
1811- 13191 => 'SNMP::Info::Layer3::OneAccess',
1812: 14179 => 'SNMP::Info::Layer2::Airespace',
1813- 14525 => 'SNMP::Info::Layer2::Trapeze',
--
1864- 13458 => 'SNMP::Info::Layer2::Atmedia',
1865: 14179 => 'SNMP::Info::Layer2::Airespace',
1866- 14525 => 'SNMP::Info::Layer2::Trapeze',
--
2022-
2023: # Airespace (WLC) Module
2024: $objtype = 'SNMP::Info::Layer2::Airespace'
2025- if ( $desc =~ /^Cisco Controller$/ );
--
2174-
2175: # Airespace (WLC) Module
2176: $objtype = 'SNMP::Info::Layer2::Airespace'
2177- if ( $desc =~ /^Cisco Controller$/ );
You can check what you get with netdisco-do show (example from a random switch):
netdisco-do show -d 10.10.167.65 -e sysDescr
[26668] 2024-10-04 18:42:17 info App::Netdisco version 2.077005 loaded.
[26668] 2024-10-04 18:42:17 info show: [10.10.167.65]/sysDescr started at Fri Oct 4 20:42:17 2024
"Cisco IOS Software [Gibraltar], Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 16.12.5b, RELEASE SOFTWARE (fc3)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2021 by Cisco Systems, Inc.
Compiled Thu 25-Mar-21 13"
netdisco-do show -d 10.10.167.65 -e sysObjectID
[26945] 2024-10-04 18:42:31 info App::Netdisco version 2.077005 loaded.
[26945] 2024-10-04 18:42:31 info show: [10.10.167.65]/sysObjectID started at Fri Oct 4 20:42:31 2024
".1.3.6.1.4.1.9.1.1745" (dualvar: 0.1)
Then edit the SNMP/Info.pm on the lines show to match the 9800L description or last number of the sysObjectID. Not quite sure if this device will be well supported otherwise, but getting it identified is certainly the first step.
Let us know if it works or putting the modified file into a PR is highly appreciated.
Hi i did i can share response but i cant edit perl5/lib/perl5/SNMP/Info.pm because i use docker i edit and try but still same problem i put here output
netdisco-do show -d 10.1.10.247 -e sysObjectID [1029] 2024-10-05 08:27:06 info App::Netdisco version 2.079001 loaded. [1029] 2024-10-05 08:27:06 info show: [10.1.10.247]/sysObjectID started at Sat Oct 5 08:27:06 2024 ".1.3.6.1.4.1.9.1.2391" (dualvar: 0.1) [1029] 2024-10-05 08:27:07 info show: finished at Sat Oct 5 08:27:07 2024 [1029] 2024-10-05 08:27:07 info show: status done: Showed sysObjectID response from 10.1.10.247
then i aded info pm i am not sure docker use i copied Info.pm
~ $ cat perl5/lib/perl5/SNMP/Info.pm | grep 2391 2391 => 'SNMP::Info::Layer2::Airespace',
~ $ netdisco-do show -d 10.1.10.247 -e sysDescr [1068] 2024-10-05 08:30:04 info App::Netdisco version 2.079001 loaded. [1068] 2024-10-05 08:30:04 info show: [10.1.10.247]/sysDescr started at Sat Oct 5 08:30:04 2024 "Cisco IOS Software [Cupertino], C9800-CL Software (C9800-CL-K9_IOSXE), Version 17.9.4a, RELEASE SOFTWARE (fc3) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2023 by Cisco Systems, Inc. Compiled Fri 20-Oct-23 10:29 by mcpre" [1068] 2024-10-05 08:30:05 info show: finished at Sat Oct 5 08:30:05 2024 [1068] 2024-10-05 08:30:05 info show: status done: Showed sysDescr response from 10.1.10.247
then i aded desc in Info.pm
2024: # Airespace (WLC) Module 2025: $objtype = 'SNMP::Info::Layer2::Airespace' 2026- if ( $desc =~ /^Cisco Controller$/ ); 2027: $objtype = 'SNMP::Info::Layer2::Airespace' 2028- if ( $desc =~ /^Cisco IOS Software [Cupertino], C9800-CL$/ );
but when ı try discover again not working output this
[1075] 2024-10-05 08:32:28 info App::Netdisco version 2.079001 loaded. [1075] 2024-10-05 08:32:28 info discover: [10.1.10.247] started at Sat Oct 5 08:32:28 2024 [1075] 2024-10-05 08:32:28 debug discover: running with timeout 600s [1075] 2024-10-05 08:32:28 debug //// CHECK \\ phase [1075] 2024-10-05 08:32:28 debug ⮕ worker Internal::BackendFQDN p1000000 [1075] 2024-10-05 08:32:28 debug ⮕ worker Internal::SNMPFastDiscover p1000000 [1075] 2024-10-05 08:32:28 debug running with configured SNMP timeouts [1075] 2024-10-05 08:32:28 debug ⮕ worker Discover p0 [1075] 2024-10-05 08:32:28 debug ⬅ (done) Discover is able to run. [1075] 2024-10-05 08:32:28 debug //// EARLY \\ phase [1075] 2024-10-05 08:32:28 debug ⮕ worker Discover::Properties p100 [1075] 2024-10-05 08:32:28 debug snmp reader cache warm: [10.1.10.247] [1075] 2024-10-05 08:32:28 debug [10.1.10.247:161] try_connect with v: 2, t: 0.2, r: 0, class: SNMP::Info::Layer3::CiscoSwitch, comm:
[1075] 2024-10-05 08:32:29 debug ⬅ (done) Ended discover for 10.1.10.247 [1075] 2024-10-05 08:32:29 debug ⮕ worker Discover::Properties p100 [1075] 2024-10-05 08:32:29 debug ⬅ (info) [10.1.10.247] device - OK to continue discover (not a duplicate) [1075] 2024-10-05 08:32:29 debug ⮕ worker Discover::Properties p100 [1075] 2024-10-05 08:32:29 debug ⬅ (info) [10.1.10.247] device - OK to continue discover (valid interfaces) [1075] 2024-10-05 08:32:29 debug ⮕ worker Discover::Properties p100 [1075] 2024-10-05 08:32:29 debug [10.1.10.247] device - aliased as 10.1.10.247 [1075] 2024-10-05 08:32:29 debug [10.1.10.247] device - aliased as 10.9.33.248 [1075] 2024-10-05 08:32:29 debug [10.1.10.247] device - aliased as 10.9.64.2 [1075] 2024-10-05 08:32:29 debug [10.1.10.247] device - aliased as 10.1.10.248 [1075] 2024-10-05 08:32:29 debug [10.1.10.247] device - aliased as 10.9.7.248 [1075] 2024-10-05 08:32:29 debug [10.1.10.247] device - aliased as 10.9.15.248 [1075] 2024-10-05 08:32:29 debug resolving 6 aliases with max 50 outstanding requests [1075] 2024-10-05 08:32:29 debug [10.1.10.247] device - removed 6 aliases [1075] 2024-10-05 08:32:29 debug ⬅ (info) [10.1.10.247] aliases - added 6 new aliases and 5 subnets [1075] 2024-10-05 08:32:29 debug ⮕ worker Discover::Properties p100 [1075] 2024-10-05 08:32:29 debug [10.1.10.247] db/ports - removed 0 port entries from DevicePortPower [1075] 2024-10-05 08:32:29 debug [10.1.10.247] db/ports - removed 9 port entries from DevicePortProperties [1075] 2024-10-05 08:32:29 debug [10.1.10.247] db/ports - removed 0 port entries from DevicePortSsid [1075] 2024-10-05 08:32:29 debug [10.1.10.247] db/ports - removed 20 port entries from DevicePortVlan [1075] 2024-10-05 08:32:29 debug [10.1.10.247] db/ports - removed 0 port entries from DevicePortWireless [1075] 2024-10-05 08:32:29 debug [10.1.10.247] interfaces - removed 9 interfaces [1075] 2024-10-05 08:32:29 debug ⬅ (info) [10.1.10.247] interfaces - added 9 new interfaces [1075] 2024-10-05 08:32:29 debug //// MAIN \\ phase [1075] 2024-10-05 08:32:29 debug ⮕ worker Discover::CanonicalIP p100 [1075] 2024-10-05 08:32:29 debug ⮕ worker Discover::Entities p100 [1075] 2024-10-05 08:32:29 debug [10.1.10.247] modules - removed 7 chassis modules
I found one of these devices on our network and gave it a try, the change in Info.pm would need to be e.g.
# ./perl5/lib/perl5/SNMP/Info.pm (in two places)
# Airespace (WLC) Module
$objtype = 'SNMP::Info::Layer2::Airespace' if ( $desc =~ /^Cisco Controller$/ );
$objtype = 'SNMP::Info::Layer2::Airespace' if ( $desc =~ /Cisco IOS Software .Cupertino., C9800-CL/ );
but then it will immediately crash the discovery since the serial is no longer found, for a quick fix I had to insert this dummy string:
# ./perl5/lib/perl5/SNMP/Info/Airespace.pm
sub serial {
my $airespace = shift;
my $sn = $airespace->airespace_serial() || "fixme_serial";
return unless defined $sn;
return $sn;
}
Then it somewhat works, e.g. the APs are shown in the Ports list. But a lot of stuff stops working, besides the serial also the model, os and os version. So presumably we would need to stitch together the stuff that works from both classes into a new devicetype like Layer?::C9800CL / CiscoWLC.
I'm not really a wireless person, there seems to be some Airespace stuff still left since e.g. .iso.org.dod.internet.private.enterprises.airespace.bsnWireless.bsnAP.bsnAPTable.bsnAPEntry.bsnAPName
is there, but what is the relationship really? Cisco bought Airespace a long time ago and the C9800-CL is an ios-xe appliance which you can run in VMWare with some "former Airespace" features for WLC? Sounds like the OO multiple inheritance will come in handy for once :)
PS to experiment with these files in docker, you can mount them into the container - just add volume: lines in docker-compose.yml like then one for "./netdisco/config:/home/netdisco/environments"
.
i did what you say now ı can discover ap come but clients and ssid not come
Hi when this device discovery netdisco not see ap because netdisco try add l3 device but this is wirellas lan controller need be update SNMP::Info::Layer2::Airespace for Cisco Catalyst 9800-CL
[1667] 2024-10-04 18:17:20 info App::Netdisco version 2.079001 loaded. [1667] 2024-10-04 18:17:20 info discover: [10.1.10.247] started at Fri Oct 4 18:17:20 2024 [1667] 2024-10-04 18:17:21 debug discover: running with timeout 600s [1667] 2024-10-04 18:17:21 debug //// CHECK \\ phase [1667] 2024-10-04 18:17:21 debug ⮕ worker Internal::BackendFQDN p1000000 [1667] 2024-10-04 18:17:21 debug ⮕ worker Internal::SNMPFastDiscover p1000000 [1667] 2024-10-04 18:17:21 debug running with configured SNMP timeouts [1667] 2024-10-04 18:17:21 debug ⮕ worker Discover p0 [1667] 2024-10-04 18:17:21 debug ⬅ (done) Discover is able to run. [1667] 2024-10-04 18:17:21 debug //// EARLY \\ phase [1667] 2024-10-04 18:17:21 debug ⮕ worker Discover::Properties p100 [1667] 2024-10-04 18:17:21 debug snmp reader cache warm: [10.1.10.247] [1667] 2024-10-04 18:17:21 debug [10.1.10.247:161] try_connect with v: 2, t: 0.2, r: 0, class: SNMP::Info, comm:
[1667] 2024-10-04 18:17:21 debug [10.1.10.247:161] try_connect with v: 2, new class: SNMP::Info::Layer3::CiscoSwitch, comm:
how can i update or fix