接口间报文转发

Packet forwarding between interfaces

我有一个路由器,有 2 个接口 eth0,IP 10.2.40.4 和 eth2,IP 10.2.20.3 我希望来自 10.2.40.0/24 网络的流量从下一跳 IP 为 10.2.20.1

的 10.2.20.3 接口出口

我遵循了以下文档: https://unix.stackexchange.com/questions/186636/forward-packets-from-one-interface-to-another-interface-using-iptables

但是无法通过。 运行 eth0 上的 tcpdump,我可以看到从 10.2.40.3(机器 IP)到 8.8.8.8 的流量,在 eth2 上我可以看到流量转换为 10.2.40.4 到 8.8.8.8

但是 return 流量似乎下降了。

N.B - 编辑命令(添加 eth2 作为传出接口)

我从描述的设置中了解到,您路由器上的 wan 端是 eth2,地址为 10.2.20.3。 因此,我希望传出数据包(在 eth2 上)具有源 IP 10.2.20.3 而不是 10.2.40.4。 我认为这表明您的 nat 规则被颠倒了或发生了什么。

事实上,您唯一需要的 iptables 规则似乎是: iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE

我建议您删除所有其他 DNAT/SNAT/MASQUERADE 规则并试试这个。