book
Article ID: 191638
calendar_today
Updated On:
Issue/Introduction
We have a device which we have modeled in Spectrum, but only some interface models for the device were created. There are 40 or so interfaces in the interface table in SNMP, but only 3 show up in Spectrum. There is no interface filtering (the FilterInterfaceRanges attribute is blank), so we would like to figure out why all the interfaces aren't being created.
We run sapwalk, and it provides all of the interface detail that Spectrum should need to build the interface table.
Environment
Release : 10.3
Component : Spectrum Core / SpectroSERVER
Cause
The SNMP agent on the device was not responding properly.
Resolution
To find the issue, we needed to run a packet capture.
Sapwalk sends a sequential get next to the device meaning that it runs right down the mib and sends a request for each item one at a time. Spectrum sends a "bulk" request - for performance reasons - we ask for multiple items in the same packet. It appears that this is causing an issue with the agent on the device. When it's queried for sequential items, it responds appropriately. When it's queried for multiple items in the same packet, it appears to throw the agent off.
From the sniffer trace, we could see that Spectrum sends a get next request for
iftype.1, ifspeed.1 ifphysaddress.1, ifdescr.1, ifalias.1 ifconnectorpresent.1
but the agent responds with
iftype.1001, ifspeed.1001 ifphysaddress.1001, ifdescr.1001, ifalias.5 ifconnectorpresent.5
It should respond with the next entry in the table. For instance, it should respond like this:
iftype.2, ifspeed.2 ifphysaddress.2, ifdescr.2, ifalias.2 ifconnectorpresent.2
Since it is responding with
iftype.1001, ifspeed.1001 ifphysaddress.1001, ifdescr.1001, ifalias.5 ifconnectorpresent.5
Spectrum then sends a get next request with that info:
iftype.1001, ifspeed.1001 ifphysaddress.1001, ifdescr.1001, ifalias.5 ifconnectorpresent.5
and the device responded with:
iftype.1002, ifspeed.1002 ifphysaddress.1002, ifdescr.1002, ifalias.5 ifconnectorpresent.5
again, Spectrum sent a get next with:
iftype.1001, ifspeed.1001 ifphysaddress.1001, ifdescr.1001, ifalias.5 ifconnectorpresent.5
and the device responded with:
iftype.1, ifspeed.1 ifphysaddress.1, ifdescr.1, ifalias.1 ifconnectorpresent.1
So Spectrum created 3 interfaces, for index 1001, 1002, and 1
This is an issue with the SNMP agent and a ticket needs to be opened with the vendor.