我是否应该从逻辑上位于不同子网但通过集线器连接到我的主机的主机接收 ARP 回复?

网络工程 子网 arp 层2 第3层
2021-07-11 07:18:28

主机 A :128.238.66.100/16
主机 B :128.238.67.100/24

主机连接到同一个集线器,没有其他任何东西连接到该集线器。ARP两台主机的路由和表都是空的。

主机A尝试ping主机B由于主机 A认为主机 B位于同一子网中,无论这是否相关,我都看到了ARP Request出去。另一方面,主机 B从不回复ARP Reply.

在继续之前,请检查此图

问题 1:如果主机 A地址是 ,ARP Request生成吗?据我所知答案是否定的,因为在上面,因此确定他是否需要生成一个之前会发生是否属于同一子网的比较,并且由于路由表为空,因此数据包将被丢弃。IP128.238.66.100/24ICMPIPHost BHost AARP Request

问题 2:应该Host B发回一个ARP Reply? 既然ARP是下面的IP,就不应该进行子网比较,主机应该立即回复,对吗?

4个回答

HostA发送一个 ARP 来寻找目标地址 128.238.67.100。
HostB收到 ARP 请求
HostB 是否响应是客户端如何配置的问题。*(见下文)

无论哪种方式,即使 HostB 响应,通信也会失败,因为当 HostA 向 HostB 发送 ICMP Echo 时,HostB 会得到它,但从 HostB 的角度来看,HostA 的地址在外部网络上,因此 HostB 会尝试将响应发送到默认值网关。如果没有配置,数据包将被简单地丢弃。

在这篇文章中写了一些关于 ARP 和交换机如何工作的内容可能有助于推动概念回家。


*ARP 响应不会发送到目标 IP。它被发送到目标 MAC。一个 ARP 请求包含“Sender IP”和“ Sender MAC ”。因此,从技术上讲,HostB 在收到 ARP 请求后,拥有构建正确 ARP 响应所需的一切。“额外配置”在于HostB的操作系统是否选择同时验证ARP请求中的“Sender IP”是否在自己的网络上。如果它不做这个检查,ARP 响应将被发送。如果是,则不会发送 ARP 响应。

我只是在 GNS3 中使用两个路由器作为 HostA 和 HostB 对其进行了实验。使用“调试 arp”,这是我从“HostB”收到的控制台消息:

*Mar  1 00:12:14.595: IP ARP req filtered src 128.238.67.100 c202.28dc.0000, dst 128.238.66.100 0000.0000.0000 wrong cable, interface FastEthernet0/0

因此,根据 Cisco IOS,似乎确实发生了发送方 IP 位于接收方网络内的附加验证,因此不会发送ARP 响应我也用数据包捕获验证了它,只看到了 ARP 请求,没有看到 ARP 响应。

这是我在上面提到的“附加配置”。是否所有操作系统都这样操作,恐怕我不能确定,你必须单独测试它们。

主机 A 认为主机 B 是“本地的”,因为它在 /16 网络掩码内。除非有人在“安全”方面做得过火,否则主机 B 通常会回答。然而,考虑到较小的网络掩码(将 A 置于“离网”状态),B 永远不会尝试直接联系 A。一旦 A 和 B 不再重叠,两者都不会在本地寻找另一个,但会通过其他节点路由任何流量(如果可能)。

(ARP 和 ICMP 是完全不同的协议。)

在我解释这个之前,您应该了解 ARP 数据包是如何发送的。Anding 过程发生在发送 ARP 数据包(S.IP+ 源子网掩码)和 D.IP+ 源子网掩码之前)如果我们为两个 anding 值获得相同的值,则主机将 ARP 发送到目的地,如果 Anding 值为不同的是它将它发送到网关。主机 A 和值将相同,因此它会将请求转发给主机 B,但是当主机 B 需要响应时,它会执行 ANDing 过程并且值将不同,因此它不会响应主机

使用中继集线器时,所有网络帧都由所有节点物理接收问题是这些 ARP 请求是否真的被发送了。

问题 1:如果主机 A 的 IP 地址是 128.238.66.100/24,它会产生 ARP 请求吗?

128.238.67.100在本地之外128.238.66.0/24,因此需要路由器。没有到 的路由128.238.66.0/24,数据包被丢弃。仅针对被视为本地的目标地址尝试 ARP。

问题 2:主机 B 是否应该发回 ARP 回复?由于 ARP 低于 IP,因此不应进行子网比较,主机应立即回复,对吗?

主机 B 使用与主机 A 相同的本地路由决策:“目标是我本地的(=位于我的子网内)?如果是,ARP 目标 IP 并通过目标 MAC 发送。如果不是,确定路由器,ARP 路由器 IP并通过路由器 MAC 发送”。

由于回复地址128.238.66.100在本地之外,128.238.67.0/24因此需要路由。如果没有该路由,则只能丢弃数据包。

ping才能取得成功时,这两台主机使用/ 23网络掩码(最多),使它们在同一子网的两个组成部分。