VLAN 间路由和代理 Arp

网络工程 思科 VLAN 以太网 arp 代理arp
2021-07-18 10:41:03

上面显示的网络在 VLAN 10 10.10.10.0/24 中具有 PC1(10.10.10.1) 和 PC2(10.10.10.2) 以及在 VLAN 20 20.20/20 中的 PC3(20.20.20.3) 和 PC4(20.20.20.4)。 网络图

我已经配置了所有VLAN间路由的配置。路由器上 VLAN10 和 VLAN 20 的子接口,交换机端口到路由器作为中继,交换机端口到 PC 作为访问,但我唯一没有设置的是 PC1 和 PC 2 的默认网关作为路由器子接口 10.10 .10.254 和 PC3 和 PC4 作为子接口 20.20.20.254 和我,除了 PC1 应该使用不工作的代理 ARP ping PC3 和 PC4。为什么 ?由于路由器知道网络(VLAN)10.10.10.0/24 和 20.20.20.0/24,因此它必须将其 MAC 地址提供给 PC1 才能 ping PC3 和 PC4

4个回答

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

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

回到您的问题,这不起作用的最可能原因是您的客户不是 ARPing。我的猜测是你给了他们通常被认为是 /24 的“标准”网络掩码。在您的示例中,可能没有让代理 ARP 工作的解决方案,因为客户端不应接受小于 /8 的网络掩码,因此您的客户端永远不会认为目的地在本地网络上并发出 ARP 请求。

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

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

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

经过大量搜索我可以弄清楚,如果您示例中的PC1可以认为PC 3,4直接连接到它以开始发送ARP请求以获取那里的MAC地址,那么您只能使用代理arp。
例如,在您的拓扑 PC1 中,它是 (10.10.10.1/24) 不能认为 PC 3,4 直接连接到它,因为有 ips (20.20.20.3,4/24) 但如果您想要 pc 1 使用代理arp 将数据包发送到 pc 3,4 您必须使 PC1 ip 10.10.xx/16 并使 PC 3,4 类似于 10.10.20.X/24 并使路由器子接口位于每个网段的相同 IP 范围内,在这种情况下为 pc1可以认为 pc3,4 直接连接到它并开始发送代理 ARP 。 在此处输入图片说明

或者避免所有这些头痛,你可以使用默认 GW

如果您想 ping 同一 VLAN 中的 PC,ARP 应该可以工作,但是,如果您想与其他网络中的 PC 通信,您应该设置一条默认路由到该网络的网关,在这种情况下,您拥有的子接口配置。只有这样,你才能为所欲为。

在您在 PC 中设置路由之前,他们不知道如何处理数据包。在 Windows PC 的命令提示符下键入“路由打印”。您将看到通往本地网络的路由,但看不到通往其他任何地方的路由。一旦您设置了默认路由,机器就会知道将数据包发送到哪里。