如果在Procurve交换机上标记或未标记端口所属的VLAN,我如何通过SNMP获取?
我发现这个OID:.1.3.6.1.2.1.17.7.1.4.3.1.4
它返回一系列十六进制代码,告诉我哪个端口属于vlan(这是vlan 1和100的提取):
snmpwalk -v2c -c public 192.168.0.1 .1.3.6.1.2.1.17.7.1.4.3.1.4
SNMPv2-SMI::mib-2.17.7.1.4.3.1.4.1 = Hex-STRING: 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF 00
00 03 FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
FF FF FF FF FF FF FF FF 80 00 00 00
SNMPv2-SMI::mib-2.17.7.1.4.3.1.4.100 = Hex-STRING: FF FF FF FF E0 00 00 00 00 00 00 00 00 00 00 00
03 F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00
我的问题是:
如何从此HEX代码中获取ifindex?
我如何理解端口是标记的还是未标记的? 感谢。
答案 0 :(得分:0)
1.3.6.1.2.1.17.7.1.4.3.1.4
是dot1qVlanStaticUntaggedPorts,是Q-BRIDGE-MIB中定义的dot1qVlanStaticTable的一部分。如果此对象列出了一个端口,则该端口未标记。如果dot1qVlanStaticEgressPorts中列出了一个端口,也是dot1qVlanStaticTable的一部分,但是dot1qVlanStaticUntaggedPorts中列出了不,那么它就会被标记。
dot1qVlanStaticEgressPorts和dot1qVlanStaticUntaggedPorts都是PortList类型,也在Q-BRIDGE-MIB中定义。每个八位字节的每个位对应一个ifIndex,第一个八位字节的最高有效位为ifIndex = 1,下一个位为ifIndex = 2,依此类推。如果该位为1,则它是成员;如果它是0那么它就不是。
奇怪的是,代理会返回如此长的值(=很多,很多,很多端口)。