Issuing pulling FDB from FortiSwitch

Fortiswitches running 7.0 are getting issues when pulling the FDB. When I manually run the snmpbulkwalk, I am getting a wrong type error:

~$ snmpbulkwalk -v2c -c -m Q-BRIDGE-MIB -M /opt/librenms/mibs:/opt/librenms/mibs/fortinet udp::161 dot1qVlanFdbId
Q-BRIDGE-MIB::dot1qVlanFdbId.1 = Wrong Type (should be Gauge32 or Unsigned32): Counter32: 0

When I manually walk the Device, I can find the mac address in this format which is one of the devices connected to this switch:
iso.3.6.1.2.1.17.4.3.1.1.164 = Hex-STRING: F4 8E 38 B5 1A E7

Is there a way to update the system to pull Hex-String format instead of Gauge32 or Unsigned32?

Can anyone help point me in the right direction to modify the FDB pulling for this device type?

The type of the field is defined in Q-BRIDGE-MIB, which is a standard MIB, changing it would break other devices.

Your device is not returning the correct data type as defined in the standard mib.

The best fix is to contact the vendor and inform them they aren’t supporting Q-BRIDGE-MIB correctly.

I think this will work with a custom file in includes/discovery/fdb-table but i am not versed enough to know how to make it. The switch is outputting values i have seen for other supported devices:
For Example:
~$ snmpwalk -v2c -c -M mibs/ -m BRIDGE-MIB dot1dBasePortIfIndex
BRIDGE-MIB::dot1dBasePortIfIndex.1 = INTEGER: 1
BRIDGE-MIB::dot1dBasePortIfIndex.2 = INTEGER: 2
BRIDGE-MIB::dot1dBasePortIfIndex.3 = INTEGER: 3
BRIDGE-MIB::dot1dBasePortIfIndex.4 = INTEGER: 4
BRIDGE-MIB::dot1dBasePortIfIndex.5 = INTEGER: 5
BRIDGE-MIB::dot1dBasePortIfIndex.6 = INTEGER: 6
BRIDGE-MIB::dot1dBasePortIfIndex.7 = INTEGER: 7
BRIDGE-MIB::dot1dBasePortIfIndex.8 = INTEGER: 8
BRIDGE-MIB::dot1dBasePortIfIndex.9 = INTEGER: 9
BRIDGE-MIB::dot1dBasePortIfIndex.10 = INTEGER: 10
BRIDGE-MIB::dot1dBasePortIfIndex.11 = INTEGER: 11
BRIDGE-MIB::dot1dBasePortIfIndex.12 = INTEGER: 12
BRIDGE-MIB::dot1dBasePortIfIndex.13 = INTEGER: 13
BRIDGE-MIB::dot1dBasePortIfIndex.14 = INTEGER: 14
BRIDGE-MIB::dot1dBasePortIfIndex.15 = INTEGER: 15
BRIDGE-MIB::dot1dBasePortIfIndex.16 = INTEGER: 16
BRIDGE-MIB::dot1dBasePortIfIndex.17 = INTEGER: 17
BRIDGE-MIB::dot1dBasePortIfIndex.18 = INTEGER: 18
BRIDGE-MIB::dot1dBasePortIfIndex.19 = INTEGER: 19
BRIDGE-MIB::dot1dBasePortIfIndex.20 = INTEGER: 20
BRIDGE-MIB::dot1dBasePortIfIndex.21 = INTEGER: 21
BRIDGE-MIB::dot1dBasePortIfIndex.22 = INTEGER: 22
BRIDGE-MIB::dot1dBasePortIfIndex.23 = INTEGER: 23
BRIDGE-MIB::dot1dBasePortIfIndex.24 = INTEGER: 24
BRIDGE-MIB::dot1dBasePortIfIndex.25 = INTEGER: 25
BRIDGE-MIB::dot1dBasePortIfIndex.26 = INTEGER: 26
BRIDGE-MIB::dot1dBasePortIfIndex.27 = INTEGER: 27
BRIDGE-MIB::dot1dBasePortIfIndex.28 = INTEGER: 28
BRIDGE-MIB::dot1dBasePortIfIndex.29 = INTEGER: 29
BRIDGE-MIB::dot1dBasePortIfIndex.30 = INTEGER: 30
BRIDGE-MIB::dot1dBasePortIfIndex.31 = INTEGER: 31
BRIDGE-MIB::dot1dBasePortIfIndex.32 = INTEGER: 32
BRIDGE-MIB::dot1dBasePortIfIndex.33 = INTEGER: 33
BRIDGE-MIB::dot1dBasePortIfIndex.34 = INTEGER: 34
BRIDGE-MIB::dot1dBasePortIfIndex.35 = INTEGER: 35
BRIDGE-MIB::dot1dBasePortIfIndex.36 = INTEGER: 36
BRIDGE-MIB::dot1dBasePortIfIndex.37 = INTEGER: 37
BRIDGE-MIB::dot1dBasePortIfIndex.38 = INTEGER: 38
BRIDGE-MIB::dot1dBasePortIfIndex.39 = INTEGER: 39
BRIDGE-MIB::dot1dBasePortIfIndex.40 = INTEGER: 40
BRIDGE-MIB::dot1dBasePortIfIndex.41 = INTEGER: 41
BRIDGE-MIB::dot1dBasePortIfIndex.42 = INTEGER: 42
BRIDGE-MIB::dot1dBasePortIfIndex.43 = INTEGER: 43
BRIDGE-MIB::dot1dBasePortIfIndex.44 = INTEGER: 44
BRIDGE-MIB::dot1dBasePortIfIndex.45 = INTEGER: 45
BRIDGE-MIB::dot1dBasePortIfIndex.46 = INTEGER: 46
BRIDGE-MIB::dot1dBasePortIfIndex.47 = INTEGER: 47
BRIDGE-MIB::dot1dBasePortIfIndex.48 = INTEGER: 48
BRIDGE-MIB::dot1dBasePortIfIndex.49 = INTEGER: 51
BRIDGE-MIB::dot1dBasePortIfIndex.50 = INTEGER: 52
BRIDGE-MIB::dot1dBasePortIfIndex.51 = INTEGER: 53
BRIDGE-MIB::dot1dBasePortIfIndex.52 = INTEGER: 60
~$ snmpwalk -v2c -c -M mibs/ -m BRIDGE-MIB dot1dTpFdbTable
BRIDGE-MIB::dot1dTpFdbAddress.1 = STRING: e:f8:24:a4:4e:b3
BRIDGE-MIB::dot1dTpFdbAddress.2 = STRING: 36:19:87:93:7b:9f
BRIDGE-MIB::dot1dTpFdbAddress.3 = STRING: a0:4a:5e:d4:55:ed.

~$ snmpwalk -v2c -c -M mibs/ -m BRIDGE-MIB ifName.8
IF-MIB::ifName.8 = STRING: port8

can a custom fdb-table file be created to import this data to the FDB like was created for Aruba and Cisco?

Yeah, it would work but net-snmp throws an error because the device output doesn’t match the MIB.

Can yo provide the following snmpwalk?

snmpbulkwalk -OUneb -v2c -c COMMUNITY HOSTNAME BRIDGE-MIB::dot1dBridge

Thank you for your attention and help. I assume you mean the following command:
~$ snmpbulkwalk -OUneb -v2c -c COMMUNITY HOSTNAME -M mibs/ -m BRIDGE-MIB::dot1dBridge
MIB search path: mibs/
Here is the output:

https://pastebin.com/raw/SDfW2Q49

I understand that Counter32 can wrap while Gauage32 does not, but is there a reason that value can not be used since its still a non-negative integer from 0-4294967295?

@murrant Do you think this would be possible to adjust, even in the device type settings? I spoke with an engineer and they seem to think the way they have it is still current since both types are still a negative integer.

Thanks!

Sorry, I don’t have any control over net-snmp’s output.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.