代理arp和默认网关的区别

网络工程 思科 arp 代理arp
2021-07-04 19:02:21

首先是我的理解,默认网关-->当我们在PC中设置默认网关时,网络层检查目标IP地址,如果它与源IP地址不在同一个广播域,则将目标MAC地址设置为路由器的这进一步做出路由决策。

代理 ARP -->{{当主机没有设置默认网关时使用}} 当目的 IP 地址的 MAC 地址不在 PC 表中时,它发送一个 ARP 请求以了解其 MAC 地址。交换机广播请求,它也转到路由器,路由器知道目标 IP 地址,因为它直接连接到它,因此它提供其 MAC 地址作为代理。

现在我的问题是我的网络是这样的-->> Host A---Switch1----Router----Switch2---Host B和Host A的IP地址为192.168.1.1(没有设置默认网关) 与 IP 地址为 192.168.2.1(未设置默认网关)的主机 B 相同,为什么主机 A 不能使用代理 ARP ping 主机 B。路由器的接口为 192.168.1.254 和 192.168.2.254

默认情况下未启用 IS 代理 ARP,但在 cisco.com 中提供它默认启用,所以为什么不能

并且

优先选择默认网关方法或代理 ARP 设置默认网关并且路由器知道到目的地的路径

2个回答

首先让我说代理 ARP 充其量是一个草率的解决方案。只有当我发现它作为一项功能很有用时,我才在处理网络上无法使用无类网络掩码或无法设置默认路由的设备时。

是的,它可以“涵盖”许多客户端配置或糟糕的设计问题,但不能解决这些问题。它也没有“涵盖”所有这些,它会使故障排除问题变得更加困难。

回到您的问题,这不起作用的最可能原因是您的客户不是 ARPing。我的猜测是你给了他们通常被认为是 /24 的“标准”网络掩码。因此,解决方案是将客户端上的网络掩码切换到 /16。

为什么?客户端使用它的 IP 地址和网络掩码来确定目的地是否在本地网络上。如果它在本地网络上,客户端会检查它的 ARP 表以查找目的地的任何条目,如果不存在,将发出 ARP 请求以获取此信息。这是启用了代理 ARP 的路由器可以响应的地方,但如果没有 ARP 请求,则路由器无法提供代理 ARP 响应。

如果目的地不在本地网络上,则客户端将检查其路由表以查看将流量转发到何处。这通常是您的默认网关。

现在,使用您使用的 IP 地址,如果您使用 /24 网络掩码,当客​​户端根据 IP/掩码检查目的地时,它会发现目的地不在本地网络上。转到路由表,它不会有目标网络的特定条目(默认情况下客户端不会),也没有默认路由/网关。然后它将失败并显示“无路由到主机”类型的消息。

必须在路由器上设置代理 ARP。