Details
-
Bug
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
-
Observium Community Edition 26.1.14545
Ubuntu 22.04
Juniper EX2300-24T
Junos 23.4R2-S7.4
SNMPv3 authPriv
Description
Observium correctly discovers the VLANs on a Juniper EX2300-24T, but tagged trunk port membership is not mapped correctly in the VLAN Port Matrix.
Junos reports VLAN 100 as:
VLAN Name: firewall-vlan
|
Tag: 100
|
Layer 3 interface: irb.100
|
Interfaces:
|
ge-0/0/22.0,tagged,trunk
|
ge-0/0/23.0,tagged,trunk
|
Number of interfaces: Tagged 2, Untagged 0
|
Raw SNMP returns:
Q-BRIDGE-MIB::dot1qVlanStaticEgressPorts.100 = STRING: "512,513"
|
During Observium discovery with OBS_SNMP_HEX, the same value is returned as:
dot1qVlanStaticEgressPorts.100 = "35 31 32 2C 35 31 33"
|
which decodes to:
512,513
BRIDGE-MIB returns:
dot1dBasePortIfIndex.512 = 536
|
dot1dBasePortIfIndex.513 = 537
|
These map to ge-0/0/22 and ge-0/0/23.
In includes/discovery/vlans/q-bridge-mib.inc.php, the value is processed by:
$binary = hex2binmap($vlan['dot1qVlanStaticEgressPorts']);
|
This treats the value as a standard PortList bitmap. On this Junos platform, the value is instead an ASCII comma-separated list of bridge-port numbers encoded as hex.
The result is that VLAN 100 is discovered, but Observium reports no ports assigned to it.
I tested a local Junos-specific workaround that decodes the ASCII port list and maps the bridge-port numbers through dot1dBasePortIfIndex. After this change, the VLAN Port Matrix correctly shows VLAN 100 tagged on ge-0/0/22 and ge-0/0/23.
This appears to be a Q-BRIDGE-MIB VLAN discovery compatibility issue with Junos on the EX2300 platform.