当没有机器拥有 IP 地址时,获取连接到 LAN 的所有机器的 MAC 地址

当没有机器拥有 IP 地址时,获取连接到 LAN 的所有机器的 MAC 地址

这是真实情况。假设有 4 台机器尚未有任何 IP 地址,但已连接到交换机。在其中一台机器(OS=CentOS)中,我将安装 DHCP 服务器并为其他机器提供 IP 地址。在为它们分配 IP 地址之前,我需要获取要为其分配 IP 地址的每台机器的 MAC 地址。

所以,我的问题是,当没有任何机器获得任何 IP 地址时,如何获取连接到交换机的所有机器的 MAC 地址?

就我的使用情况而言,MAC 地址之前不能有任何 IP 地址,这是强制性的。

-谢谢

答案1

在终端站发送流量之前,以太网交换机无法向您显示终端站的 mac 地址;以太网交换机通过查看 PC 流量的源 mac 地址字段来了解附加的 mac 地址是什么。

如果您使用802.1x身份验证,则在从 DHCP 获取 IP 地址之前,您只有很短的时间来获取此信息,但在现实世界中可靠地执行此操作是不可能的;一切都发生得太快了。

如果您需要事先知道 MAC 地址,那么请对所有 PC 进行盘点。

答案2

如果机器从未与网络通信,这是不可能的,但如果它们至少与交换机通信过一次,并且交换机具有 SNMP 功能,您可以尝试查询交换机的 ARP 表。

但是如果只有四台机器,那么只需走到它们面前并记下 MAC 即可。

答案3

嗯嗯……

奇怪的情况......想不出任何这种情况会有什么意义......

但无论如何:
设置 DHCP 服务器以仅提供保留地址(基于 MAC),并且不提供任何动态 DHCP 池。

这样,客户端可以整天请求 DHCP 地址,但直到您将它们添加到保留地址后才会获得任何地址。
但由于客户端正在尝试获取 DHCP,因此它们的 mac 地址将被学习并存储在交换机的 CAM 表中。

据我所知,您无法从服务器本身获取它们。通常,可以在 ARP 缓存中看到 mac 地址(大多数操作系统上的 arp -a 命令),但这仅在 IP 地址链接到 MAC 地址之后。

相关内容