什么情况下不会生成 ARP 答复?

什么情况下不会生成 ARP 答复?

问题概述:一个ping来自 的地址client没有到达rpi1,它的 ARP 调用在 处没有得到答复srv

在此处输入图片描述

  • host0并由tap0桥接br0
  • vpninlan0是两个独立的接口。
  • 允许接口之间的所有流量srv(IP 转发已启用,并且我已成功传输了rpi1此处未显示的其他接口之间的流量,其中包括 Internet 网关)

细节:client成功 ping 自身 ( 10.20.1.2)、10.20.1.110.20.1.25410.10.10.254尝试 ping 时10.10.10.11

root@client:~# ping 10.10.10.11
PING 10.10.10.11 (10.10.10.11) 56(84) bytes of data.
From 10.20.1.1: icmp_seq=2 Redirect Host(New nexthop: 10.10.10.11)
From 10.20.1.1 icmp_seq=1 Destination Host Unreachable
From 10.20.1.2 icmp_seq=3 Destination Host Unreachable
From 10.20.1.2 icmp_seq=4 Destination Host Unreachable
From 10.20.1.2 icmp_seq=5 Destination Host Unreachable

请注意和From之间的中的翻转。10.20.1.110.20.1.2

当运行时tcpdumpsrv失去 ping 功能)我看到 ARP 请求,但没有回复:

root@srv ~# tcpdump -i vpnin -nn
17:10:54.463072 ARP, Request who-has 10.10.10.11 tell 10.20.1.1, length 28
17:10:55.459489 ARP, Request who-has 10.10.10.11 tell 10.20.1.1, length 28
17:10:56.459459 ARP, Request who-has 10.10.10.11 tell 10.20.1.1, length 28
17:10:56.473683 ARP, Request who-has 10.10.10.11 tell 10.20.1.2, length 28
17:10:57.469788 ARP, Request who-has 10.10.10.11 tell 10.20.1.2, length 28
17:10:58.469608 ARP, Request who-has 10.10.10.11 tell 10.20.1.2, length 28

再次,两者10.20.1.110.20.1.2请求答案。

ARP 表确实srv有答案

root@srv ~# arp -a
(...)
rpi1.10.in-addr.arpa (10.10.10.11) at f4:f2:6d:09:35:1b [ether] on lan0

原因可能是什么

  • 因为没有回复?
  • 10.20.1.1以及和之间这种奇怪的切换10.20.1.2

答案1

ARP 仅在同一个 LAN(第 2 层广播域)内有效,因为 ARP 请求是一种广播。广播不会跨越第 3 层边界。MAC 地址是第 2 层地址,并且它们仅在同一个第 2 层广播域内才有意义,甚至可见。

希望将流量发送到不同第 3 层网络的主机将流量发送到其配置网关的第 2 层地址,并在必要时使用 ARP 查找其配置网关的第 2 层地址。然后,配置网关负责将流量发送到通往目的地的路径上的下一跳。

如果要将流量路由到其他网络,则需要将主机上的网关配置为主机所在的三层网络中的地址,即网络交汇点 ( srv)。 的配置网关client应为10.20.1.254, 的配置网关rp1应为10.10.10.254

相关内容