jpo*_*234 3 linux networking filter ping icmp
我正在将应用程序从 2.6.23(是的,它很古老;这就是我们要迁移的原因)迁移到 3.18LTS。该应用程序使用 ping 数据包监视到同一目标的多个网络链接。不同的链路由它们的下一跳路由器(以太网)或网络接口(点对点链路,又名蜂窝数据)选择。为了强制不同的路由到达同一目标,传出的数据包被标记有不同的防火墙标记。然后我使用路由规则为同一目标选择具有不同路由的不同路由表。传出路径在 2.6.23 和 3.18 中都可以正常工作。但是,对于传入的 ICMP 回复,情况并非如此。他们来了;我用 tcpdump 看到它们。但是有些数据包在 3.18 中没有被传送到用户空间。我不是 100% 确定,但我认为如果没有“
我在正确的轨道上吗?如果是这样,有没有办法禁用此过滤?如果不是,什么可能导致这种改变的行为?
好的,自己找到了。
答案是/proc/sys/net/ipv4/conf/*/rp_filter。该选项记录在Linux Foundation 中。虽然这是一个旧设置,但 Ubuntu 似乎在 07.04 和 14.04 之间的某个时间更改了默认值。将值从 1 改回 0 解决了我的问题。