Linux 会忽略来自一个接口但位于另一个接口的 IP 范围内的 ECHO REQUEST

Linux 会忽略来自一个接口但位于另一个接口的 IP 范围内的 ECHO REQUEST

具有 WIFI 和以太网连接的 Linux 笔记本电脑以及可直接从以太网或通过路由器从 WIFI 看到的 PC。 ECHO REQUESTs 从 PC 通过路由器发送到 WIFI 地址,并且不会从任一接口得到回复

我从路由器 ping Linux 笔记本的 WiFi IP,反应良好。我从 PC 上 ping WIFI 地址,该地址直接从 LAN (eth1) 以及通过路由器从 WiFi 接口 (wlo1) 可见,但我没有得到回复。tcpdump显示它确实收到了,ECHO REQUESTS但我在 wlo1(WiFi)和 eth1(LAN)上都没有看到回复。

答案1

您已经更新了图表,所示的接线几乎肯定无法正常工作。考虑从 10.0.0.3 到 WiFi 接口 192.168.2.2 的数据包。数据包到达后将立即被丢弃,因为它显然到达了错误的接口。 (WiFi 为 192.168.2.0/24,但以太网为 10.0.0.0/24。)这称为“反向路径过滤”,是防火墙内的一项重要安全功能。如果确实需要,您可以禁用它,但您应该首先重新考虑您的网络拓扑。


(更新图表之前的旧答案)

您应该确保您有通过路由器到达外部子网的路由(或默认路由)。否则系统将不知道将回复发送到哪里,因此会丢弃它们。

我看到你有两条默认路由。不建议这样做,除非它们是不同的指标。默认路由旨在作为最后手段的路由(即默认路线)适用于没有明确定义路线的流量。根据定义,您不能拥有超过一个。

有两个例外,但实际上根本不是例外:

  1. 其中默认路由具有不同的指标;在这种情况下,将使用具有最低指标的指标,而所有其他指标将被忽略
  2. 您使用命名空间或其他路由表扩展来为不同情况提供不同的默认路由;在这种情况下,每种情况只能有一个默认路由,并且规则仍然适用

相关内容