仅使用本地接口名称获取远程 mac 地址

仅使用本地接口名称获取远程 mac 地址

有没有办法获取远程(下一跳)mac 地址,只需知道本地接口名称,然后我就可以发送流量?

我的意思是:我有两台互连的计算机,每台计算机都有 4 个网络接口,其中 2 个是连接的(一台计算机连接到另一台计算机),现在我知道在第一台计算机上我将使用 eth0 并为其分配一个 IP。现在我想获取另一端(第二台计算机上的网络接口)的 mac 地址,有什么办法吗?

我的想法是直接在网上发送一些内容,然后让另一端用 mac 地址响应。这可行吗?

解释:

  1. 我有两台通过电线连接的计算机

  2. 这些计算机运行的是 Linux,没有网络管理器,网络接口是静态管理的

  3. 在计算机 AI 上配置接口 ethA 以使其具有 IP 并占用它(ifconfig ethA IP up)

  4. 在计算机 B 上我没有配置任何东西,但我占用了每个接口

  5. 现在的问题是:我想从计算机 A 检测网络接口 ethA(在计算机 A 上)连接到计算机 B 上的哪个接口并获取其 mac 地址。这意味着该线路连接两个接口,所以我唯一需要做的就是使用该线路并向其发送一些内容,这样我就可以获取远程接口 MAC。

解释一下为什么我需要这个:

我们有很多服务器,这些服务器有很多接口(4-10),一个接口用于 ssh 到这些服务器,其他接口用于将一个服务器连接到另一个服务器,因此一对服务器之间有 2,3,4 条线,因为我们需要自动化测试,所以我们需要知道哪个接口连接到哪个接口 - 我们实际上需要接口名称,而不是 mac,因为名称是我们开发的应用程序的参数之一。

谢谢

答案1

如果您的主机正在相互通信,远程主机的 mac 应该出现在您的本地 arp 表中。只需使用arp -i *interface name* -a命令检查即可。如果没有,您可以查看arping或类似的软件

答案2

所以你想知道远程接口的 MAC 地址已建立连接。

你的 pc-B 运行网络管理器吗?如果因此,最简单的方法是运行dhcpdump(需要从 repos 安装),通过

  sudo dhcpdump - i eth0

eth0pc-A 上带有电缆的接口在哪里。当您将电缆的另一端插入 pc-B 的一个接口时,如果网络管理器正在 pc-B 上运行,它将尝试为自己获取一个 IP 地址;在此过程中,它将触发dhcpdump,显示来自 pc-B 的 DHCP/BOOTP 请求,包括其 MAC 地址。

dhcpdump当您在各个以太网插槽中插入和拔出电缆时, 只需保持开启即可。

相关内容