我的系统由三个组件组成,即一台交换机和两个网络节点。此外,我还将一台笔记本电脑(包括 wireshark)添加到一个交换机端口,并将 node_01 所连接端口的所有流量(入口、出口)镜像到该端口。
系统设计为同时启动,但交换机是启动速度最慢的组件。当交换机最终启动并运行时,我在 wireshark(下图)中看到 node_01 正在发送带有 source:destinationMAC_node_01 : Broadcast
和 Info的 ARP 请求Who has <ip_of_node_02>? Tell <ip_of_node_01>
。但没有任何回复。
如果我重启 node_01(下图),其余节点正常运行,我会看到 (1) 正确的 <ip_of_node_01> ARP 公告和 (2)DHCP inform
来自 node_01。Node_02 对此做出响应DHCP ACK
。node_01 向 <ip_of_node_02> 发出的以下 ARP 请求 (3) 现在已由 node_02 正确应答。
- 我想知道如果 ARP 公告无人听到会发生什么?其他单元如何响应来自该节点的消息?
- 另外,这是为什么 node_02 没有回答 node_01 的 ARP 请求的原因吗,或者还有其他原因?
提前致谢!
答案1
我想知道如果 ARP 公告无人听到会发生什么?其他单元如何响应来自该节点的消息?
通常情况下,没有什么特别的事情发生——其他主机在接收消息时根本不关心 ARP。它们只需要它来发送数据包到这个节点,在这种情况下,它们将按照正常程序执行明确的 ARP 查询。
公告不是 ARP 的主要工作方式,它们仅用于次要目的:例如在同一 IP 地址更改为新 MAC(例如在某种 HA 故障转移之后)的情况下预先更新 ARP 缓存,或者让以太网交换机重新学习 MAC-to-physical-port 在同一 MAC 地址移动的情况下的映射(尽管来自 MAC 的任何帧都足够,不一定是 ARP 公告)。
另外,这是为什么 node_02 没有回答 node_01 的 ARP 请求的原因吗,或者还有其他原因?
最有可能的是,不,不应该这样。
原因可能取决于您的捕获将在 node_02 端显示什么。它是否甚至收到ARP 请求?它真的拒绝回复吗?还是说回复已发送但未到达 node_01?无论发布任何公告,拒绝回答 ARP 查询都是不正常的(除非检测到 IP 地址重复)。
但是,如果不知道两端的捕获结果是什么,我会怀疑交换机本身。(事实上,这个系统真的需要交换机吗?两台主机可以直接连接,不需要交换机。)