netdisco / snmp-info

Other
38 stars 32 forks source link

WLC C9800 detected with wrong SNMP Class #436

Open cbandicot opened 3 years ago

cbandicot commented 3 years ago

Expected Behavior

WLC Controller C9800 is detected as Vendor / Model: cisco / C980040K9 in Netdisco Webfrontend. The connected APs are within the modules list. This is normal behavior at older WLCs.

Current Behavior

WLC Controller C9800 is detected as Vendor / Model: cisco / C980040K9 but no APs at the modules are displayed. Only information of the Controller itself.

Possible Solution

Tried to update the netdisco-mibs to netdisco-mibs-4.021 from Install-Tips Webpage under "Deployment without Internet access". No changes in the SNMP Class after the update.

The next idea was changing the use of the SNMP class is SNMP::Info::Layer3::Cisco instead of SNMP::Info::Layer2::Airespace for this model.

Change Info.pm:

Airespace (WLC) Module

    $objtype = 'SNMP::Info::Layer2::Airespace'
        if ( $desc =~ /^Cisco Controller$|C9800_IOSXE-K9/ );
        #if ( $desc =~ /^Cisco Controller$/ );

Then the Airspace module of snmp:info is used. But at polling are lots of NOSUCHOBJECT from the AIRESPACE-SWITCHING-MIB. It seems that's not the right way. The question is how to solve that the APs are polled as well.

Your Environment

Config info (deployment.yml)

Device information

~/bin/netdisco-do show -d xxx.xxx.xxx.xxx -e specify -DI [25309] 2021-08-27 10:47:56 info App::Netdisco version 2.049001 loaded. [25309] 2021-08-27 10:47:56 info show: [xxx.xxx.xxx.xxx]/specify started at Fri Aug 27 10:47:56 2021 [25309] 2021-08-27 10:47:57 debug show: running with timeout 600s [25309] 2021-08-27 10:47:57 debug => running workers for phase: check [25309] 2021-08-27 10:47:57 debug -> run worker check/base/0 [25309] 2021-08-27 10:47:57 debug Show is able to run [25309] 2021-08-27 10:47:57 debug => running workers for phase: main [25309] 2021-08-27 10:47:57 debug -> run worker main/base/100 [25309] 2021-08-27 10:47:57 debug snmp reader cache warm: [xxx.xxx.xxx.xxx] [25309] 2021-08-27 10:47:57 debug [xxx.xxx.xxx.xxx:161] try_connect with ver: 2, class: SNMP::Info::Layer3::Cisco, comm: SNMP::Info::_global uptime : DISMAN-EVENT-MIB::sysUpTimeInstance : .1.3.6.1.2.1.1.3.0 SNMP::Info::_global layers : SNMPv2-MIB::sysServices.0 : .1.3.6.1.2.1.1.7.0 SNMP::Info::_global description : SNMPv2-MIB::sysDescr.0 : .1.3.6.1.2.1.1.1.0 SNMP::Info::_global id : SNMPv2-MIB::sysObjectID.0 : .1.3.6.1.2.1.1.2.0 SNMP::Info 3.73 SNMP::Info::device_type() layers:01001110 id:9 sysDescr:"Cisco IOS Software [Gibraltar], C9800 Software (C9800_IOSXE-K9), Version 16.12.4a, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2020 by Cisco Systems, Inc. Compiled Sat 01-Aug-20 00:25 by mcpre" SNMP::Info 3.73 SNMP::Info::device_type() layers:01001110 id:9 sysDescr:"Cisco IOS Software [Gibraltar], C9800 Software (C9800_IOSXE-K9), Version 16.12.4a, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2020 by Cisco Systems, Inc. Compiled Sat 01-Aug-20 00:25 by mcpre" SNMP::Info::specify() - Changed Class to SNMP::Info::Layer3::Cisco. SNMP::Info::_validate_autoload_method(_data_printer) Unable to resolve method. SNMP::Info::Layer3::Cisco { Parents SNMP::Info::CiscoVTP, SNMP::Info::CDP, SNMP::Info::CiscoStats, SNMP::Info::CiscoRTT, SNMP::Info::CiscoQOS, SNMP::Info::CiscoConfig, SNMP::Info::CiscoPower, SNMP::Info::CiscoStpExtensions, SNMP::Info::Layer3, Exporter Linear @ISA SNMP::Info::Layer3::Cisco, SNMP::Info::CiscoVTP, SNMP::Info, Exporter, SNMP::Info::CDP, SNMP::Info::CiscoStats, SNMP::Info::CiscoRTT, SNMP::Info::CiscoQOS, SNMP::Info::CiscoConfig, SNMP::Info::CiscoPower, SNMP::Info::CiscoStpExtensions, SNMP::Info::Bridge, SNMP::Info::Layer3, SNMP::Info::PowerEthernet, SNMP::Info::IPv6, SNMP::Info::Entity, SNMP::Info::EtherLike, SNMP::Info::AdslLine, SNMP::Info::LLDP, SNMP::Info::DocsisHE public methods (3) : cisco_comm_indexing, eigrp_peers, i_vlan private methods (0) internals: { args { AutoSpecify 0, BulkRepeaters 20, BulkWalk 1, Community "xxxxxx", Debug 1, DebugSNMP 0, DestHost "xxx.xxx.xxx.xxx", IgnoreNetSNMPConf 1, MibDirs [ [0] "/opt/netdisco/netdisco-mibs/3com", [1] "/opt/netdisco/netdisco-mibs/adtran", [2] "/opt/netdisco/netdisco-mibs/aerohive", [3] "/opt/netdisco/netdisco-mibs/alcatel", [4] "/opt/netdisco/netdisco-mibs/allied", [5] "/opt/netdisco/netdisco-mibs/apc", [6] "/opt/netdisco/netdisco-mibs/arista", [7] "/opt/netdisco/netdisco-mibs/aruba", [8] "/opt/netdisco/netdisco-mibs/asante", [9] "/opt/netdisco/netdisco-mibs/avaya", [10] "/opt/netdisco/netdisco-mibs/bluecoat", [11] "/opt/netdisco/netdisco-mibs/bluesocket", [12] "/opt/netdisco/netdisco-mibs/brother", [13] "/opt/netdisco/netdisco-mibs/cabletron", [14] "/opt/netdisco/netdisco-mibs/ceragon", [15] "/opt/netdisco/netdisco-mibs/cern", [16] "/opt/netdisco/netdisco-mibs/checkpoint", [17] "/opt/netdisco/netdisco-mibs/ciena", [18] "/opt/netdisco/netdisco-mibs/cisco", [19] "/opt/netdisco/netdisco-mibs/ciscosb", [20] "/opt/netdisco/netdisco-mibs/citrix", [21] "/opt/netdisco/netdisco-mibs/clavister", [22] "/opt/netdisco/netdisco-mibs/cloudgenix", [23] "/opt/netdisco/netdisco-mibs/colubris", [24] "/opt/netdisco/netdisco-mibs/cumulus", [25] "/opt/netdisco/netdisco-mibs/cyclades", [26] "/opt/netdisco/netdisco-mibs/d-link", [27] "/opt/netdisco/netdisco-mibs/dell", [28] "/opt/netdisco/netdisco-mibs/eaton", [29] "/opt/netdisco/netdisco-mibs/efficientip", [30] "/opt/netdisco/netdisco-mibs/enterasys", [31] "/opt/netdisco/netdisco-mibs/etherwan", [32] "/opt/netdisco/netdisco-mibs/exinda", [33] "/opt/netdisco/netdisco-mibs/EXTRAS", [34] "/opt/netdisco/netdisco-mibs/extreme", [35] "/opt/netdisco/netdisco-mibs/extricom", [36] "/opt/netdisco/netdisco-mibs/f5", [37] "/opt/netdisco/netdisco-mibs/force10", [38] "/opt/netdisco/netdisco-mibs/fortinet", [39] "/opt/netdisco/netdisco-mibs/foundry", [40] "/opt/netdisco/netdisco-mibs/gigamon", [41] "/opt/netdisco/netdisco-mibs/h3c", [42] "/opt/netdisco/netdisco-mibs/hirschmann", [43] "/opt/netdisco/netdisco-mibs/hp", [44] "/opt/netdisco/netdisco-mibs/hpe", [45] "/opt/netdisco/netdisco-mibs/huawei", [46] "/opt/netdisco/netdisco-mibs/ibm", [47] "/opt/netdisco/netdisco-mibs/intel", [48] "/opt/netdisco/netdisco-mibs/juniper", [49] "/opt/netdisco/netdisco-mibs/korenix", [50] "/opt/netdisco/netdisco-mibs/lancom", [51] "/opt/netdisco/netdisco-mibs/lantronix", [52] "/opt/netdisco/netdisco-mibs/lenovo", [53] "/opt/netdisco/netdisco-mibs/liebert", [54] "/opt/netdisco/netdisco-mibs/mediant", [55] "/opt/netdisco/netdisco-mibs/mellanox", [56] "/opt/netdisco/netdisco-mibs/meraki", [57] "/opt/netdisco/netdisco-mibs/meru", [58] "/opt/netdisco/netdisco-mibs/microsens", [59] "/opt/netdisco/netdisco-mibs/mikrotik", [60] "/opt/netdisco/netdisco-mibs/moser-baer", [61] "/opt/netdisco/netdisco-mibs/motorola", [62] "/opt/netdisco/netdisco-mibs/moxa", [63] "/opt/netdisco/netdisco-mibs/nateks", [64] "/opt/netdisco/netdisco-mibs/net-snmp", [65] "/opt/netdisco/netdisco-mibs/netapp", [66] "/opt/netdisco/netdisco-mibs/netgear", [67] "/opt/netdisco/netdisco-mibs/netonix", [68] "/opt/netdisco/netdisco-mibs/netscreen", [69] "/opt/netdisco/netdisco-mibs/nexans", [70] "/opt/netdisco/netdisco-mibs/nortel", [71] "/opt/netdisco/netdisco-mibs/northerndesign", [72] "/opt/netdisco/netdisco-mibs/oneaccess", [73] "/opt/netdisco/netdisco-mibs/openbsd", [74] "/opt/netdisco/netdisco-mibs/opengear", [75] "/opt/netdisco/netdisco-mibs/packetfront", [76] "/opt/netdisco/netdisco-mibs/paloalto", [77] "/opt/netdisco/netdisco-mibs/pica8", [78] "/opt/netdisco/netdisco-mibs/pulsesecure-gateway", [79] "/opt/netdisco/netdisco-mibs/rad", [80] "/opt/netdisco/netdisco-mibs/redlionram", [81] "/opt/netdisco/netdisco-mibs/rfc", [82] "/opt/netdisco/netdisco-mibs/rittal", [83] "/opt/netdisco/netdisco-mibs/riverbed", [84] "/opt/netdisco/netdisco-mibs/ruckus", [85] "/opt/netdisco/netdisco-mibs/schleifenbauer", [86] "/opt/netdisco/netdisco-mibs/sentry", [87] "/opt/netdisco/netdisco-mibs/siemens", [88] "/opt/netdisco/netdisco-mibs/sixnet", [89] "/opt/netdisco/netdisco-mibs/sonicwall", [90] "/opt/netdisco/netdisco-mibs/teleste", [91] "/opt/netdisco/netdisco-mibs/teltonika", [92] "/opt/netdisco/netdisco-mibs/tplink", [93] "/opt/netdisco/netdisco-mibs/trapeze", [94] "/opt/netdisco/netdisco-mibs/ubnt", [95] "/opt/netdisco/netdisco-mibs/vmware", [96] "/opt/netdisco/netdisco-mibs/watchguard", [97] "/opt/netdisco/netdisco-mibs/wipipe", [98] "/opt/netdisco/netdisco-mibs/xedia", [99] "/opt/netdisco/netdisco-mibs/xirrus" ], NonIncreasing 0, RemotePort 161, Retries 0, Session SNMP::Session, Timeout 3000000, Version 2 }, BulkRepeaters 20, BulkWalk 1, class "SNMP::Info::Layer3::Cisco", debug 1, funcs { adsl_atuc_crc_block_len "adslAtucChanCrcBlockLength", adsl_atuc_curr_tx_rate "adslAtucChanCurrTxRate", adsl_atuc_interleave_delay "adslAtucChanInterleaveDelay", adsl_atuc_prev_tx_rate "adslAtucChanPrevTxRate", adsl_atur_crc_block_len "adslAturChanCrcBlockLength", adsl_atur_curr_tx_rate "adslAturChanCurrTxRate", adsl_atur_interleave_delay "adslAturChanInterleaveDelay", adsl_atur_prev_tx_rate "adslAturChanPrevTxRate", at_index "ipNetToMediaIfIndex", at_netaddr "ipNetToMediaNetAddress", at_paddr "ipNetToMediaPhysAddress", bgp_peer_addr "bgpPeerRemoteAddr", bgp_peer_as "bgpPeerRemoteAs", bgp_peer_fsm_est_trans "bgpPeerFsmEstablishedTransitions", bgp_peer_id "bgpPeerIdentifier", bgp_peer_in_tot_msgs "bgpPeerInTotalMessages", bgp_peer_in_upd "bgpPeerInUpdates", bgp_peer_in_upd_el_time "bgpPeerInUpdateElapsedTime", bgp_peer_out_tot_msgs "bgpPeerOutTotalMessages", bgp_peer_out_upd "bgpPeerOutUpdates", bgp_peer_state "bgpPeerState", bgp_peers "bgpPeerLocalAddr", bp_index "dot1dBasePortIfIndex", bp_port "dot1dBasePortCircuit", bs_mac "dot1dStaticAddress", bs_port "dot1dStaticReceivePort", bs_status "dot1dStaticStatus", bs_to "dot1dStaticAllowedToGoTo", c_addr6_index "cIpAddressIfIndex", c_addr6_pfx "cIpAddressPrefix", c_addr6_type "cIpAddressType", cdp_addr "cdpCacheAddress", cdp_capabilities "cdpCacheCapabilities", cdp_dev_id "cdpCacheDeviceId", cdp_dev_port "cdpCacheDevicePort", cdp_domain "cdpCacheVTPMgmtDomain", cdp_duplex "cdpCacheDuplex", cdp_platform "cdpCachePlatform", cdp_power "cdpCachePowerConsumption", cdp_pri_mgmt_addr "cdpCachePrimaryMgmtAddr", cdp_pri_mgmt_type "cdpCachePrimaryMgmtAddrType", cdp_proto "cdpCacheAddressType", cdp_sec_mgmt_addr "cdpCacheSecondaryMgmtAddr", cdp_sec_mgmt_type "cdpCacheSecondaryMgmtAddrType", cdp_ver "cdpCacheVersion", cdp_vlan "cdpCacheNativeVLAN", c_eigrp_peer_types "cEigrpPeerAddrType", c_eigrp_peers "cEigrpPeerAddr", ci_images "ciscoImageString", c_inet_phys_addr "cInetNetToMediaPhysAddress", c_inet_phys_state "cInetNetToMediaState", c_inet_phys_type "cInetNetToMediaType", cisco_flash_size "ciscoFlashDeviceSize", cisco_mem_free "ciscoMemoryPoolFree", cisco_mem_used "ciscoMemoryPoolUsed", config_copy_complete_time "ccCopyTimeCompleted", config_copy_start_time "ccCopyTimeStarted", config_copy_state "ccCopyState", config_dest_type "ccCopyDestFileType", config_fail_cause "ccCopyFailCause", config_filename "ccCopyFileName", config_notify_complete "ccCopyNotificationOnCompletion", config_password "ccCopyUserPassword", config_protocol "ccCopyProtocol", config_row_status "ccCopyEntryRowStatus", config_server_addr "ccCopyServerAddress", config_source_type "ccCopySourceFileType", config_username "ccCopyUserName", cpeth_ent_phy "cpeExtPsePortEntPhyIndex", c_pfx_origin "cIpAddressPfxOrigin", docs_cmts_cm_down_channel_if_index "docsIfCmtsCmStatusDownChannelIfIndex", docs_cmts_cm_up_channel_if_index "docsIfCmtsCmStatusUpChannelIfIndex", docs_if_cmts_cm_status_inet_address "docsIfCmtsCmStatusInetAddress", docs_if_cmts_cm_status_inet_address_type "docsIfCmtsCmStatusInetAddressType", docs_if3_cmts_cm_status_md_if_index "docsIf3CmtsCmRegStatusMdIfIndex", e_alias "entPhysicalAlias", e_class "entPhysicalClass", e_descr "entPhysicalDescr", e_fru "entPhysicalIsFRU", e_fwver "entPhysicalFirmwareRev", e_hwver "entPhysicalHardwareRev", e_id "entPhysicalAssetID", el_chipset "dot3StatsEtherChipSet", el_coll_excess "dot3StatsExcessiveCollisions", el_coll_freq "dot3CollFrequencies", el_coll_late "dot3StatsLateCollisions", el_coll_mult "dot3StatsMultipleCollisionFrames", el_coll_single "dot3StatsSingleCollisionFrames", el_duplex "dot3StatsDuplexStatus", el_error_alignment "dot3StatsAlignmentErrors", el_error_cs "dot3StatsCarrierSenseErrors", el_error_fcs "dot3StatsFCSErrors", el_error_frame "dot3StatsFrameTooLongs", el_error_mac_rec "dot3StatsInternalMacReceiveErrors", el_error_mac_xmit "dot3StatsInternalMacTransmitErrors", el_error_sqe "dot3StatsSQETestErrors", el_error_symbol "dot3StatsSymbolErrors", el_index "dot3StatsIndex", el_xmit_defer "dot3StatsDeferredTransmissions", e_map "entAliasMappingIdentifier", e_model "entPhysicalModelName", e_name "entPhysicalName", e_parent "entPhysicalContainedIn", e_pos "entPhysicalParentRelPos", e_serial "entPhysicalSerialNum", e_swver "entPhysicalSoftwareRev", e_type "entPhysicalVendorType", e_vendor "entPhysicalMfgName", flash_copy_address "ciscoFlashCopyServerAddress", flash_copy_cmd "ciscoFlashCopyCommand", flash_copy_dest "ciscoFlashCopyDestinationName", flash_copy_protocol "ciscoFlashCopyProtocol", flash_copy_row_status "ciscoFlashCopyEntryStatus", flash_copy_source "ciscoFlashCopySourceName", fw_mac "dot1dTpFdbAddress", fw_port "dot1dTpFdbPort", fw_status "dot1dTpFdbStatus", i_alias "ifAlias", i_bad_proto_in "ifInUnknownProtos", i_description "ifDescr", i_discards_in "ifInDiscards", i_discards_out "ifOutDiscards", i_errors_in "ifInErrors", i_errors_out "ifOutErrors", i_index "ifIndex", i_lastchange "ifLastChange", i_mac "ifPhysAddress", i_mtu "ifMtu", i_name "ifName", interfaces "ifIndex", i_octet_in "ifInOctets", i_octet_in64 "ifHCInOctets", i_octet_out "ifOutOctets", i_octet_out64 "ifHCOutOctets", ip_addr6_index "ipAddressIfIndex", ip_addr6_pfx "ipAddressPrefix", ip_addr6_type "ipAddressType", ip_broadcast "ipAdEntBcastAddr", i_pkts_bcast_in "ifInBroadcastPkts", i_pkts_bcast_in64 "ifHCInBroadcastPkts", i_pkts_bcast_out "ifOutBroadcastPkts", i_pkts_bcast_out64 "ifHCOutBroadcastPkts", i_pkts_multi_in "ifInMulticastPkts", i_pkts_multi_in64 "ifHCInMulticastPkts", i_pkts_multi_out "ifOutMulticastPkts", i_pkts_multi_out64 "ifHCOutMulticastPkts", i_pkts_nucast_in "ifInNUcastPkts", i_pkts_nucast_out "ifOutNUcastPkts", i_pkts_ucast_in "ifInUcastPkts", i_pkts_ucast_in64 "ifHCInUcastPkts", i_pkts_ucast_out "ifOutUcastPkts", i_pkts_ucast_out64 "ifHCOutUcastPkts", ip_n2p_phys_addr "ipNetToPhysicalPhysAddress", ip_n2p_phys_state "ipNetToPhysicalState", ip_n2p_phys_type "ipNetToPhysicalType", ip_pfx_origin "ipAddressPrefixOrigin", ipr_age "ipRouteAge", ipr_dest "ipRouteNextHop", ipr_if "ipRouteIfIndex", ipr_info "ipRouteInfo", ipr_mask "ipRouteMask", ipr_proto "ipRouteProto", ipr_route "ipRouteDest", ipr_type "ipRouteType", ipr_1 "ipRouteMetric1", ipr_2 "ipRouteMetric2", ipr_3 "ipRouteMetric3", ipr_4 "ipRouteMetric4", ipr_5 "ipRouteMetric5", i_pvid "vlanTrunkPortNativeVlan", i_qlen_out "ifOutQLen", is_edgeport_admin "dot1dStpPortAdminEdgePort", is_edgeport_oper "dot1dStpPortOperEdgePort", isis_adj "isisISAdjIPAddrAddress", isis_adj_id "isisISAdjNeighSysID", isis_adj_ip_type "isisISAdjIPAddrType", isis_adj_state "isisISAdjState", isis_adj_type "isisISAdjNeighSysType", isis_adj_usage "isisISAdjUsage", isis_circ_admin "isisCircAdminState", isis_circ_if_idx "isisCircIfIndex", isis_circ_level_type "isisCircLevelType", isis_circ_type "isisCircType", i_specific "ifSpecific", i_speed "ifSpeed", i_speed_high "ifHighSpeed", i_stack_status "ifStackStatus", i_type "ifType", i_up "ifOperStatus", i_up_admin "ifAdminStatus", i_vlan_stat "vmPortStatus", i_vlan_type "vmVlanType", i_vlan_1 "vmVlans", i_vlan_2 "vmVlans2k", i_vlan_3 "vmVlans3k", i_vlan_4 "vmVlans4k", i_vlan2 "vmVlan", i_voice_vlan "vmVoiceVlanId", i6_addr_pfxlen "ipv6AddrPfxLength", i6_n2p_phys_addr "ipv6NetToMediaPhysAddress", i6_n2p_phys_state "ipv6IfNetToMediaState", i6_n2p_phys_type "ipv6NetToMediaType", lldp_lman_addr "lldpLocManAddrIfId", lldp_lport_desc "lldpLocPortDesc", lldp_lport_id "lldpLocPortId", lldp_rem_asset "lldpXMedRemAssetID", lldp_rem_cap_spt "lldpRemSysCapSupported", lldp_rem_desc "lldpRemPortDesc", lldp_rem_fw_rev "lldpXMedRemFirmwareRev", lldp_rem_hw_rev "lldpXMedRemHardwareRev", lldp_rem_id "lldpRemChassisId", lldp_rem_id_type "lldpRemChassisIdSubtype", lldp_rem_media_cap "lldpXMedRemCapCurrent", lldp_rem_media_cap_spt "lldpXMedRemCapSupported", lldp_rem_model "lldpXMedRemModelName", lldp_rem_pid "lldpRemPortId", lldp_rem_pid_type "lldpRemPortIdSubtype", lldp_rem_serial "lldpXMedRemSerialNum", lldp_rem_sw_rev "lldpXMedRemSoftwareRev", lldp_rem_sys_cap "lldpRemSysCapEnabled", lldp_rem_sysdesc "lldpRemSysDesc", lldp_rem_sysname "lldpRemSysName", lldp_rem_vendor "lldpXMedRemMfgName", lldp_rman_addr "lldpRemManAddrIfSubtype", new_ip_index "ipAddressIfIndex", new_ip_prefix "ipAddressPrefix", new_ip_type "ipAddressType", n2p_lastupdate "ipNetToPhysicalLastUpdated", n2p_paddr "ipNetToPhysicalPhysAddress", n2p_pstate "ipNetToPhysicalState", n2p_pstatus "ipNetToPhysicalRowStatus", n2p_ptype "ipNetToPhysicalType", old_at_index "atIfIndex", old_at_netaddr "atNetAddress", old_at_paddr "atPhysAddress", old_ip_index "ipAdEntIfIndex", old_ip_netmask "ipAdEntNetMask", old_ip_table "ipAdEntAddr", ospf_if_admin "ospfIfAdminStat", ospf_if_area "ospfIfAreaId", ospf_if_dead "ospfIfRtrDeadInterval", ospf_if_hello "ospfIfHelloInterval", ospf_if_ip "ospfIfIpAddress", ospf_if_state "ospfIfState", ospf_if_type "ospfIfType", ospf_ip "ospfHostIpAddress", ospf_peer_id "ospfNbrRtrId", ospf_peer_state "ospfNbrState", ospf_peers "ospfNbrIpAddr", peth_port_admin "pethPsePortAdminEnable", peth_port_class "pethPsePortPowerClassifications", peth_port_power "cpeExtPsePortPwrConsumption", peth_port_status "pethPsePortDetectionStatus", peth_power_consumption "pethMainPseConsumptionPower", peth_power_status "pethMainPseOperStatus", peth_power_threshold "pethMainPseUsageThreshold", peth_power_watts "pethMainPsePower", qb_cv_egress "dot1qVlanCurrentEgressPorts", qb_cv_stat "dot1qVlanStatus", qb_cv_untagged "dot1qVlanCurrentUntaggedPorts", qb_fw_port "dot1qTpFdbPort", qb_fw_status "dot1qTpFdbStatus", qb_i_vlan "dot1qPvid", qb_i_vlan_in_flt "dot1qPortIngressFiltering", qb_i_vlan_type "dot1qPortAcceptableFrameTypes", qb_v_egress "dot1qVlanStaticEgressPorts", qb_v_fbdn_egress "dot1qVlanForbiddenEgressPorts", qb_v_name "dot1qVlanStaticName", qb_v_stat "dot1qVlanStaticRowStatus", qb_v_untagged "dot1qVlanStaticUntaggedPorts", qos_cm_desc "cbQosCMDesc", qos_cm_info "cbQosCMInfo", qos_cm_name "cbQosCMName", qos_i_index "cbQosIfIndex", qos_i_type "cbQosIfType", qos_obj_conf_index "cbQosConfigIndex", qos_obj_parent "cbQosParentObjectsIndex", qos_obj_type "cbQosObjectsType", qos_octet_post "cbQosCMPostPolicyByte", qos_octet_pre "cbQosCMPrePolicyByte", qos_pol_direction "cbQosPolicyDirection", qos_queueingcfg_bw "cbQosQueueingCfgBandwidth", qos_queueingcfg_bw_units "cbQosQueueingCfgBandwidthUnits", rtt_desc "rttMonCtrlAdminOwner", rtt_last "rttMonLatestRttOperCompletionTime", stp_i_mac "dot1dBaseBridgeAddress", stp_i_ntop "dot1dStpTopChanges", stp_i_priority "dot1dStpPriority", stp_i_root "dot1dStpDesignatedRoot", stp_i_root_port "dot1dStpRootPort", stp_i_time "dot1dStpTimeSinceTopologyChange", stp_p_bridge "dot1dStpPortDesignatedBridge", stp_p_cost "dot1dStpPortPathCost", stp_p_id "dot1dStpPort", stp_p_port "dot1dStpPortDesignatedPort", stp_p_priority "dot1dStpPortPriority", stp_p_root "dot1dStpPortDesignatedRoot", stp_p_state "dot1dStpPortState", stpx_faststart_enabled "stpxFastStartPortEnable", stpx_faststart_operational "stpxFastStartPortMode", stpx_loopguard_enabled "stpxLoopGuardConfigEnabled", stpx_port_bpdufilter_mode "stpxFastStartPortBpduFilterMode", stpx_port_bpduguard_mode "stpxFastStartPortBpduGuardMode", stpx_rootguard_enabled "stpxRootGuardConfigEnabled", stpx_smst_root "stpxSMSTInstanceCISTRegionalRoot", stpx_smst_vlans_mapped_1k2k "stpxSMSTInstanceVlansMapped1k2k", stpx_smst_vlans_mapped_3k4k "stpxSMSTInstanceVlansMapped3k4k", v_bridge "vtpVlanBridgeNumber", v_btype "vtpVlanBridgeType", v_crf "vtpVlanIsCRFBackup", v_cvi_if "cviRoutedVlanIfIndex", v_hop_are "vtpVlanAreHopCount", v_hop_ste "vtpVlanSteHopCount", v_if "vtpVlanIfIndex", v_mtu "vtpVlanMtu", v_name "vtpVlanName", v_parent "vtpVlanParentVlan", v_ring "vtpVlanRingNumber", v_said "vtpVlanDot10Said", v_state "vtpVlanState", v_stp "vtpVlanStpType", vtp_d_last "managementDomainLastChange", vtp_d_mode "managementDomainLocalMode", vtp_d_name "managementDomainName", vtp_d_pruning "managementDomainPruningState", vtp_d_rev "managementDomainConfigRevNumber", vtp_d_status "managementDomainRowStatus", vtp_d_tftp "managementDomainTftpServer", vtp_d_tftp_path "managementDomainTftpPathname", vtp_d_updater "managementDomainLastUpdater", vtp_d_ver "managementDomainVersionInUse", vtp_trunk_dyn "vlanTrunkPortDynamicState", vtp_trunk_dyn_stat "vlanTrunkPortDynamicStatus", vtp_trunk_encaps "vlanTrunkPortEncapsulationOperType", vtp_trunk_encaps_t "vlanTrunkPortEncapsulationType", vtp_trunk_mgmt_dom "vlanTrunkPortManagementDomain", vtp_trunk_native "vlanTrunkPortNativeVlan", vtp_trunk_rstat "vlanTrunkPortRowStatus", vtp_trunk_vlans "vlanTrunkPortVlansEnabled", vtp_trunk_vlans_2k "vlanTrunkPortVlansEnabled2k", vtp_trunk_vlans_3k "vlanTrunkPortVlansEnabled3k", vtp_trunk_vlans_4k "vlanTrunkPortVlansEnabled4k", vtp_trunk_vtp "vlanTrunkPortVtpEnabled", v_trans1 "vtpVlanTranslationalVlan1", v_trans2 "vtpVlanTranslationalVlan2", v_type "vtpVlanType", v_type_ext "vtpVlanTypeExt" }, globals { bgp_id "bgpIdentifier.0", bgp_local_as "bgpLocalAs.0", b_mac "dot1dBaseBridgeAddress", b_ports "dot1dBaseNumPorts", b_type "dot1dBaseType", cat_cpu "cpmCPUTotal5sec.9", cat_cpu_1min "cpmCPUTotal1min.9", cat_cpu_5min "cpmCPUTotal5min.9", cdp_gid "cdpGlobalDeviceId", cdp_holdtime "cdpGlobalHoldTime", cdp_interval "cdpGlobalMessageInterval", cdp_run "cdpGlobalRun", contact "sysContact", description "sysDescr", eigrp_id "cEigrpAsRouterId", ent_physical_software_rev "entPhysicalSoftwareRev.1", id "sysObjectID", ios_cpu "1.3.6.1.4.1.9.2.1.56.0", ios_cpu_1min "1.3.6.1.4.1.9.2.1.57.0", ios_cpu_5min "1.3.6.1.4.1.9.2.1.58.0", ipforwarding "ipForwarding", layers "sysServices", lldp_sys_cap "lldpLocSysCapEnabled", lldp_sysdesc "lldpLocSysDesc", lldp_sysname "lldpLocSysName", location "sysLocation", mac "ifPhysAddress.1", name "sysName", old_write_mem "writeMem", old_write_net "writeNet", ports "ifNumber", qb_next_vlan_index "dot1qNextFreeLocalVlanIndex", qb_vlans "dot1qNumVlans", qb_vlans_max "dot1qMaxSupportedVlans", rom_id "romId", router_ip "ospfRouterId.0", serial1 ".1.3.6.1.4.1.9.3.6.3.0", stp_priority "dot1dStpPriority", stp_root "dot1dStpDesignatedRoot", stp_root_port "dot1dStpRootPort", stp_time "dot1dStpTimeSinceTopologyChange", stp_ver "dot1dStpProtocolSpecification", stpx_bpdufilter_enable "stpxFastStartBpduFilterEnable", stpx_bpduguard_enable "stpxFastStartBpduGuardEnable", stpx_faststart_default "stpxFastStartGlobalDefaultMode", stpx_mst_config_digest "stpxSMSTConfigDigest", stpx_mst_region_name "stpxMSTRegionName", stpx_mst_region_rev "stpxSMSTRegionRevision", stpx_stp_type "stpxSpanningTreeType", uptime "sysUpTime", vtp_maxstore "vtpMaxVlanStorage", vtp_notify "vtpNotificationsEnabled", vtp_notify_create "vtpVlanCreatedNotifEnabled", vtp_notify_delete "vtpVlanDeletedNotifEnabled", vtp_trunk_set_serial "vlanTrunkPortSetSerialNo", vtp_version "vtpVersion", write_mem "writeMem" }, IgnoreNetSNMPConf 1, init \ 1, mibdirs var{args}{MibDirs}, mibs { ADSL-LINE-MIB "adslLineType", BGP4-MIB "bgpIdentifier", BRIDGE-MIB "dot1dBaseBridgeAddress", CISCO-CDP-MIB "cdpGlobalRun", CISCO-CLASS-BASED-QOS-MIB "cbQosIfIndex", CISCO-CONFIG-COPY-MIB "ccCopyTable", CISCO-EIGRP-MIB "cEigrpAsRouterId", CISCO-ENTITY-VENDORTYPE-OID-MIB "cevChassis", CISCO-FLASH-MIB "ciscoFlashDeviceSize", CISCO-IETF-IP-MIB "cInetNetToMediaNetAddress", CISCO-IMAGE-MIB "ciscoImageString", CISCO-MEMORY-POOL-MIB "ciscoMemoryPoolUsed", CISCO-POWER-ETHERNET-EXT-MIB "cpeExtPsePortEntPhyIndex", CISCO-PROCESS-MIB "cpmCPUTotal5sec", CISCO-PRODUCTS-MIB "ciscoIGS", CISCO-RTTMON-MIB "rttMonCtrlAdminOwner", CISCO-STACK-MIB "wsc1900sysID", CISCO-STP-EXTENSIONS-MIB "stpxSpanningTreeType", CISCO-VLAN-IFTABLE-RELATIONSHIP-MIB "cviRoutedVlanIfIndex", CISCO-VLAN-MEMBERSHIP-MIB "vmMembershipEntry", CISCO-VTP-MIB "vtpVlanName", DOCS-IF-MIB "docsIfMib", DOCS-IF3-MIB "docsIf3Mib", ENTITY-MIB "entPhysicalSoftwareRev", EtherLike-MIB "etherMIB", IF-MIB "ifIndex", IP-MIB "ipNetToMediaIfIndex", IPV6-MIB "ipv6IfTableLastChange", ISIS-MIB "isisSysID", LLDP-EXT-DOT1-MIB "lldpXdot1MIB", LLDP-EXT-DOT3-MIB "lldpXdot3MIB", LLDP-EXT-MED-MIB "lldpXMedMIB", LLDP-MIB "lldpLocSysCapEnabled", OLD-CISCO-SYS-MIB "writeMem", OLD-CISCO-SYSTEM-MIB "writeMem", OSPF-MIB "ospfRouterId", POWER-ETHERNET-MIB "pethPsePortDetectionStatus", Q-BRIDGE-MIB "dot1qPvid", RSTP-MIB "dot1dStpPortOperEdgePort", SNMPv2-MIB "sysDescr" }, munge { at_paddr sub { ... }, b_mac var{munge}{at_paddr}, bs_mac var{munge}{at_paddr}, cdp_capabilities sub { ... }, cdp_domain sub { ... }, cdp_ip sub { ... }, cdp_platform var{munge}{cdp_domain}, cdp_power sub { ... }, cdp_ver var{munge}{cdp_domain}, c_inet_phys_addr sub { ... }, el_duplex sub { ... }, e_type sub { ... }, fw_mac var{munge}{at_paddr}, i_mac var{munge}{at_paddr}, i_octet_in64 sub { ... }, i_octet_out64 var{munge}{i_octet_in64}, i_pkts_bcast_in64 var{munge}{i_octet_in64}, i_pkts_bcast_out64 var{munge}{i_octet_in64}, i_pkts_multi_out64 var{munge}{i_octet_in64}, i_pkts_mutli_in64 var{munge}{i_octet_in64}, i_pkts_ucast_in64 var{munge}{i_octet_in64}, i_pkts_ucast_out64 var{munge}{i_octet_in64}, ip_n2p_phys_addr var{munge}{at_paddr}, i_speed sub { ... }, i_speed_high sub { ... }, i_up sub { ... }, ip var{munge}{cdp_ip}, i6_n2p_phys_addr var{munge}{at_paddr}, layers sub { ... }, lldp_lport_desc var{munge}{cdp_domain}, lldp_lport_id var{munge}{cdp_domain}, lldp_rem_asset var{munge}{cdp_domain}, lldp_rem_cap_spt var{munge}{cdp_capabilities}, lldp_rem_fw_rev var{munge}{cdp_domain}, lldp_rem_hw_rev var{munge}{cdp_domain}, lldp_rem_media_cap var{munge}{cdp_capabilities}, lldp_rem_media_cap_spt var{munge}{cdp_capabilities}, lldp_rem_model var{munge}{cdp_domain}, lldp_rem_port_desc var{munge}{cdp_domain}, lldp_rem_serial var{munge}{cdp_domain}, lldp_rem_sw_rev var{munge}{cdp_domain}, lldp_rem_sys_cap var{munge}{cdp_capabilities}, lldp_rem_sysdesc var{munge}{cdp_domain}, lldp_rem_sysname var{munge}{cdp_domain}, lldp_rem_vendor var{munge}{cdp_domain}, lldp_sys_cap var{munge}{cdp_capabilities}, lldp_sysdesc var{munge}{cdp_domain}, lldp_sysname var{munge}{cdp_domain}, mac var{munge}{at_paddr}, n2p_paddr var{munge}{at_paddr}, old_at_paddr var{munge}{at_paddr}, qb_cv_egress sub { ... }, qb_cv_untagged var{munge}{qb_cv_egress}, qb_v_egress var{munge}{qb_cv_egress}, qb_v_fbdn_egress var{munge}{qb_cv_egress}, qb_v_untagged var{munge}{qb_cv_egress}, stp_i_mac var{munge}{at_paddr}, stp_i_root sub { ... }, stp_p_bridge var{munge}{stp_i_root}, stp_p_port sub { ... }, stp_p_root var{munge}{stp_i_root}, stp_root var{munge}{stp_i_root}, stpx_mst_config_digest sub { ... } }, nosuch 1, sess var{args}{Session}, snmp_comm "did&ro&cs", snmp_user "initial", snmp_ver 2, store {} } } [25309] 2021-08-27 10:47:57 info show: finished at Fri Aug 27 10:47:57 2021 [25309] 2021-08-27 10:47:57 info show: status done: Showed specify response from xxx.xxx.xxx.xxx

cbandicot commented 2 years ago

Here is your reqest from the case above snmpwalk -v 2c -c .1.3.6.1.2.1.1 SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software [Gibraltar], C9800 Software (C9800_IOSXE-K9), Version 16.12.4a, RELEASE SOFTWARE (fc1) Technical Support: http://www.cisco.com/techsupport Copyright (c) 1986-2020 by Cisco Systems, Inc. Compiled Sat 01-Aug-20 00:25 by mcpre SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.9.1.2530 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (20383496) 234 days, 22:04:56.79 SNMPv2-MIB::sysContact.0 = STRING: SNMPv2-MIB::sysName.0 = STRING: NAME-HOSTNME.FQDN SNMPv2-MIB::sysLocation.0 = STRING: NAME-SYS-LOCATION SNMPv2-MIB::sysServices.0 = INTEGER: 78 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00

What we like to see is the accesspoints under the 'Moduls' tap of the WLC in netdisco (like this)

grafik

JeroenvIS commented 2 years ago

This controller runs IOS-XE; we probably don't have the right device class yet to give the same details for an IOS-XE controller as for the Airespace heritage controllers (like the 5508).

AFAIK no contract is needed, all the MIBs are probably already present.

@cbandicot am I correct in assuming that you get little data when doing an snmpwalk starting from .1.3.6.1.4.1.14179, but a lot of data when walking .1.3.6.1.4.1.9.9.513 ? If so, we'll probably need a device class that pulls the relevant info from CISCO-LWAPP- MIBs. They are pretty congruent with AIRESPACE- MIBs iirc, in the sense that almost every object in an AIRESPACE- MIB has a counterpart in one of the CISCO-LWAPP- MIBs.

cnoyes72 commented 1 year ago

My organization is in the process of switching to the 9800 platform and I noticed that netdisco doesn't seem to have a device class. I did poll a test unit using some of the older OID's for airespace and they seemed to work, but one or some of of the objects must be incompatible (I tried forcing 9800's to use the airespace module as the OP did and netdisco crashed). I'm going to try and map out the old OID's to what the 9800's might be using for new OID's. Perhaps the SNMP::Info::Layer2::Airespace module can be cloned and modified into something the 9800's will work with.

GabrieleBiscetti commented 9 months ago

I am in the same situation. With my colleagues, we are migrating from AIR-CT5508-K9 to C9800CLK9. I can confirm that for the old AIR-CT5508-K9, netdisco has no problems; it finds all APs and also all connected clients. On the new C9800CLK9, nothing to do. What can I do? How can I help?

cnoyes72 commented 9 months ago

Hello,

I've been chipping away at this (very slowly) as time permits, but I haven't had much time (work has been sucking up most of my time). I have a few weeks off starting next week so I hope to get a couple of days in dedicated to finishing mapping out the relevant snmp oid's. So far I've found a couple of errors in the CISCO-LWAPP-AP MIB (some OID's transposed). Cisco doesn't seem to care overly, probably because they want people using their DNA software with it's API hooks.

inphobia commented 6 months ago

it has been reported on irc that at least 1 c9800 model seems to produce the expected output with s::i::l2::airespace.

tested by forcing 1 specific model in layer3 overrides via: $objtype = 'SNMP::Info::Layer2::Airespace' if ( $soid =~ /^\.?1\.3\.6\.1\.4\.1\.9\.1\.2861/ );

at first glance everything called cisco catalyst c9800 should work this way, so matching description on "C9800 Software" (case sensitive) seems like a decent option.

description: "Cisco IOS Software [Cupertino], C9800 Software (C9800_IOSXE-K9), Version 17.9.4a, RELEASE SOFTWARE (fc3)

airespace does hardcode a few values which are incorrect for c9800's, so that will need to be looked at. snmp snapshots of c9800 devices are welcome (after being forced into airospace module to include correct mibs)

robertlynch3 commented 6 months ago

Where can I test this change? I have a handful of c9800s experiencing the same issue.