由 dnsmasq 管理的单交换机以太网网络中的节点是直接通信,还是通过路由器通信?

由 dnsmasq 管理的单交换机以太网网络中的节点是直接通信,还是通过路由器通信?

这个问题存在多种变体,但我不能确定是否有人问到我的具体情况。

我正在设置一个简单的以太网网络,如下所示:

在此处输入图片描述

在节点 0(“rpi1”)上,我运行 dnsmasq 作为 DNS 和 DHCP 服务器。以下是其部分内容/etc/dnsmasq.conf(不包括 MAC 地址详细信息):

# Assign static IPs to cluster members
# Format = MAC:hostname:IP
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi1,10.0.0.1 # Node 0
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi2,10.0.0.2 # Node 1
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi3,10.0.0.3 # Node 2
dhcp-host=ZZ:YY:XX:WW:VV:UU,rpi4,10.0.0.4 # Node 3

DNS 和 DHCP 方面均正常工作。每个节点都分配有其预期的10.0.0.XIP 地址,我可以通过运行例如dig rpi4(-> ... 10.0.0.4) 来解析任何节点上的任何域。并且,例如,如果我在 rpi2 内部,那么我可以使用 进入 rpi3 ssh rpi3,并且我可以例如ping rpi4ping 10.0.0.4并获得 0% 的数据包丢失。

但我不清楚的是,我是直接通过交换机在节点之间进行通信,还是通过 rpi1(运行 dnsmasq 并提供路由器服务)进行通信。

如果节点直接通信,那么我假设它们必须知道彼此的 MAC 地址,才能发出通过交换机直接相互发送的帧。如果是这样,那么我的问题总结如下:

  1. 节点在什么时候会了解其他节点的 MAC 地址?
  2. 我如何检查 rpi2 上的 rpi3 等的 MAC 地址以查看它们是否相互了解?

提前致谢!

答案1

节点在什么时候会了解其他节点的 MAC 地址?

它们首先会从 DNS 服务器查询其他节点的 IP 地址,然后向所有节点发送“arp”请求,拥有该 IP 地址的节点会用自己的 MAC 地址回复该“arp”请求。

我如何检查 rpi2 上的 rpi3 等的 MAC 地址以查看它们是否相互了解?

‘arp -a’ 通常会为您提供 arp 表,您可以检查这些条目以查看它们是否已经了解了彼此的 MAC 地址。

相关内容