我有一台打开转发的服务器。我在 mangle 表的 PREROUTING、INPUT 和 FORWARD 链中放置了一个 iptables LOG 目标。我可以看到来自 PREROUTING 的日志消息,但看不到 INPUT 或 FORWARD 的消息。除了日志记录之外,我没有 iptables 规则。为什么数据包没有通过 PREROUTING 链?
从各种各样的 网络过滤器 图表,看来唯一能阻止它的就是路由决策了。我已检查转发是否已打开,我没有任何特殊的路由策略设置,并且我确实有一条到数据包目的地的路由。反向路径过滤已禁用。
一张网络过滤器图表建议数据包此时通过 QOS 入口。我对QOS不太熟悉,但我没有对tc做过任何特别的事情。我的 qdisc 是 pfifo_fast (默认),并且没有过滤器。
其他详细信息:这是一个 IPsec 隧道端点。数据包通过 IPsec 传入,成功转换,然后重新进入网络堆栈。正是在这个阶段,我看到数据包在 PREROUTING 之后、INPUT 或 FORWARD 之前停止。