ipNetToMediaPhysAddress 和 dot1qTpFdbPort 有什么区别?

网络工程 转变 snmp 管理 MAC地址
2021-07-26 04:22:28

我看到来自 ipNetToMediaTableipNetToMediaPhysAddress的对象描述“依赖媒体的‘物理’地址”简单来说,是不是返回了所有直连节点/设备的MAC地址?

  • 例如, snmpbulkwalk -v 2c -c public 10.21.200.201 1.3.6.1.2.1.4.22.1.2 在 L3 交换机上轮询此 OID (1.3.6.1.2.1.4.22.1.2) - (Ip:10.220.1.20) FastIron Sx 800) 返回了大约 1800 个条目,其中包含L2/L3 设备一些 PC但是在L2 交换机上轮询相同的 OID只会返回四个条目:2 个广播条目、前一个 L3 交换机的 MAC 地址和 L2 交换机的自身 MAC 地址。此 L2 交换机(DLINK DES 3526 型号)上连接有 PC。为什么在轮询上述交换机的 OID 时看不到连接 PC 的 MAC 地址?

也有人可以阐明dot1qTpFdbPortipNetToMediaPhysAddress学到的 MAC 地址之间的细微差别吗?

1个回答

为什么在轮询上述交换机的 OID 时看不到连接 PC 的 MAC 地址?

当您轮询时1.3.6.1.2.1.4.22.1.2,您正在轮询ipNetToMediaPhysAddress,它是交换机的 ARP 表。纯二层交换机没有大的 ARP 表,因为它们只是交换而不是路由。切换并不会要求一个ARP表。

也有人可以阐明从 dot1qTpFdbPort 和 ipNetToMediaPhysAddress 学到的 MAC 地址之间的细微差别吗?

  • dot1qTpFdbPort将交换机最近学习到的第 2 层 mac 地址映射到交换机上的物理端口。
  • ipNetToMediaPhysAddress轮询某事物的 ARP 表。ARP 表中唯一显示的内容是最近与被轮询的事物进行直接 IP 层通信的事物。IP 层通信发生在数据包被路由时,或者例如,如果您直接通过 ssh 连接到第 2 层交换机的管理 IP。

如果您连接到 Brocade / DLink Layer2 交换机路由器轮询ipNetToMediaPhysAddress,您将在该路由器的 ARP 表中看到来自 Layer2 交换机的相同dot1qTpFdbPort mac 地址(假设您最近通过路由器对相关子网进行了 ping 扫描)问题)。另请注意,如果在子网上使用 VRRP / HSRP / GLBP ,由于潜在的非对称路由,您应该轮询ipNetToMediaPhysAddress两个FHRP对等体。

ARP / Mac 轮询技术

我必须做很多这样的轮询,我将在dot1qTpFdbPort 中找到的 mac 地址/端口映射到来自ipNetToMediaPhysAddress 的IP 地址在使用snmp轮询路由器/下游交换机之前,我总是通过子网ping扫描(使用类似nmap...的工具nmap -sP 192.0.2.0/24)。


[编辑评论中的问题]

那么在 L2 交换机上轮询 dot1qTpFdbPort 可以保证生成的 MAC 地址/端口是直接连接到 L2 交换机的那些吗?

不太正确...轮询dot1qTpFdbPort保证这些是交换机学习到的 mac 地址,或者是在交换机上静态配置的。你的陈述有几个值得注意的例外:

  • 如果将第 2 层交换机链接在一起(包括大多数FHRP拓扑),您将看到从下游交换机获知的 mac 地址。根据定义,从下游交换机学习到的 mac 不是直接连接的。如果您有 Cisco 交换机,cdpCacheTable对于理清交换机之间的关系非常有用。
  • dot1qTpFdbPort 中的一些 mac 地址可能由交换机本身拥有,而不是直接连接到它。
  • 如果您的拓扑中有 LACP 聚合,供应商可能会执行一些操作,例如将 mac 地址与该 LACP 聚合中的物理端口相关联,而不是通过 LACP 聚合学习 mac。在标准中的某个地方,我看到了关于这个的讨论,但我不记得是在什么地方。
  • 某些交换机具有特定于供应商的功能(通常是安全功能),它们从dot1qTpFdbPort完全消除了 mac 地址的可见性青年会

所有你不能100%保证通过返回的MAC上述手段dot1qTpFdbPort直接连接到交换机。如果您在代码中处理这些类型的问题,那么您就不应该有问题。

PS:我没试过ICMP扫描(ping扫描)。是否真的需要做ping扫描才能获得网络的完整拓扑?

Ping 扫描缓解了这两个问题:

  • 交换机 mac-table 老化计时器各不相同,但它们可能非常低(即 5 分钟)。在网络中看到不匹配的路由器 ARP 和交换机 mac 表计时器并不少见。有时 ARP 和交换机 mac 表不同步。如果您在轮询之前进行 ping 扫描,则您最有可能将交换机 mac 表与路由器 ARP 表相匹配。
  • 一些端点可能只接收单向流量(即多播流)。如果有人被动地观看或收听单向流,他们的 PC 可能不会经常刷新交换机 mac 地址表。