获取直连网络邻居的MAC地址

网络工程 以太网 MAC地址
2021-07-25 10:30:35

我有一台pc1配备网络接口的 PC(在连续图中),可以直接连接到另一台 PC 或托管交换机。

我希望能够获得网络中最近设备的 MAC 地址。

更准确地说:

情况#1

+-----+       +----------------+       +---------------+
| pc1 |-------| managed switch |-------| other devices |
+-----+       +----------------+       +---------------+

在这种情况下,我想获取托管交换机的 MAC 地址。

情况#2

+-----+       +-----+
| pc1 |-------| pc2 |
+-----+       +-----+

在这种情况下,我想获取 pc2 的 mac 地址。

我可以用什么来检索第一个网络设备的 MAC 地址?

更新

据我所知,我不能使用 ARP,因为在 PC1 的 ARP 表中,我会看到所有与以太网段上的 IP 地址相关的 MAC 地址,但我一般无法知道设备的 IP 地址在电缆的另一端(在开关的情况下这很痛苦)。这就是为什么我要在数据链路层寻找 TTL 为 1 之类的东西。

2个回答

802.3 没有“链接伙伴身份”的概念。因此,您无法可靠地确定任何直接连接设备的 MAC。但是,有更高级别的应用协议(CDP、LLDP 等)试图解决这个问题。

以太网帧没有您想要的跳数概念。您正试图在第 2 层上强加第 3 层概念。以太网不像 IP 那样分层。交换机透明地交换帧,帧中的MAC地址是源和目的端点,而不是两个端点之间的任何设备。以太网帧非常简单,只有很少的字段(没有 TTL 或等效项,这就是为什么以太网上的广播风暴如此糟糕):

在此处输入图片说明

你所要求的实际上是不可能的。第 2 层的以太网只是一组相等的对等点(看起来都像是直接连接到所有其他对等点)。