这是真实情况。假设有 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 地址之后。