如何通过 snmp 获取/检索 Juniper 中的接口、VLAN、端口 ID 和 MAC 地址列表?

如何通过 snmp 获取/检索 Juniper 中的接口、VLAN、端口 ID 和 MAC 地址列表?

下面是我用来获取瞻博交换机所需的特定数据的命令。

  • 获取端口 ID 和接口

    snmpwalk -r:“交换机名称”-v:2 -t:10 -c:“*******”-os:“1.3.6.1.2.1.2.2.1.2”-op:“1.3.6.1.2.1.2.2.1.3”

  • 获取 Vlan 号和 Vlan 名称

    snmpwalk -r:“交换机名称”-v:2 -t:10 -c:“*******”-os:“1.3.6.1.4.1.2636.3.40.1.5.1.5.1.2”-op:“1.3.6.1.4.1.2636.3.40.1.5.1.5.1.3”

    snmpwalk -r:“交换机名称”-v:2 -t:10 -c:“*******”-os:“1.3.6.1.4.1.2636.3.40.1.5.1.5.1.5”-op:“1.3.6.1.4.1.2636.3.40.1.5.1.5.1.6”

  • 获取 MAC 地址

    ??????????????????

  • 获取端口 ID 和 Vlan 号 / 接口和 Vlan 号

    ??????????????????

你们知道我将使用什么命令/oid 来获取每个接口的以下 VLAN 号和 MAC 地址吗?请验证我使用的其他 OID。

先感谢您。

答案1

我已做过一些了。

您想要的 OID 称为 Q-Bridge-II MIB,位于 1.3.6.1.2.1.17.7.1.2.2.1.2 - 它返回与列出这些 MAC 地址的逻辑端口相关联的 MAC 地址列表。

现在您需要注意,因为有几个问题:首先,MAC 地址被编码为 OID 中的行规范,VALUES 是该 MAC 地址可通过的 ifPort。因此,您必须拉入表格并将十进制 MAC 转换为您习惯处理的十六进制 MAC。

第二,在 Juniper 上,与 MAC 地址关联的接口几乎总是一个子接口,并且端口标签/描述通常与物理接口相关联,因此没有一种简单的方法可以根据从 Q-Bridge-II 返回的 portID(并忽略整个将 ifPort-to-ifIndex 转换为 ifLabel)从端口描述中读取 ifLabel。

例如:

$ findmac --DEBUG -c MyPass sa4-39 00:07:e9:25:05:3c
[...]
DEBUG:00:07:e9:25:05:3c is on port 549
DEBUG:549 is ifIndex 591
DEBUG:ifIndex: [591]
DEBUG:ifName: [ge-0/0/36.0]
sa4-39: port 549(ge-0/0/36.0)

在这种情况下,mac 与 0/0/36.0 相关联,而标签与 0/0/36 相关联。此 hoopage-jumpage 是必要的,因为对于更简单的交换机,ifPort 索引与物理端口索引相同 - ifPort 1 是交换机上的端口 1。Junipers 的情况并非如此。

我的脚本检查 ifAliases(因为在 Dell 和 HP 等其他设备上它会找到它们)但是 Junipers 没有将它们放在正确的位置。

如果您非常注重细节,您可以将端口描述应用到子接口而不是接口,例如:

set interfaces ge-0/0/36 description "Description on the physical port"
set interfaces ge-0/0/36 unit 0 description "Description on the sub-interface"

两者都有效,但 GUI 只执行第一个;同样,GUI 只显示第一个的值。如果执行第二个,则读取 ifAlias 会更加直接,但我没有全局执行此操作。

无论如何,这是您的一个 OID。

答案2

show interfaces extensive will give you just about everything.

Show vlan也是有效且有帮助的。

相关内容