我有以下配置:
vlan123@eth0 - range 1.2.3.0/24, with 1.2.3.4 assigned to it
br2000 - range 10.2.3.0/24在ip route中我看到:
10.2.3.0/24 dev br2000 proto kernel scope link src 10.2.3.1在iptable中,我重写了传入数据包的目的地(表nat):
-A PREROUTING -d 1.2.3.4/32 -j DNAT --to-destination 10.2.3.4如果我现在试图平移地址1.2.3.4,不幸的是,我没有得到我期望的转发。ip route get 10.2.3.4 from 2.3.4.5 iif vlan123返回:
RTNETLINK answers: Invalid cross-device link这似乎证实了没有正确的路由。有什么问题吗?
在sysctl中启用了IP转发,我还禁用了rp_filter进行测试。
发布于 2011-07-29 11:53:28
如果要重写传入数据包,应将规则添加到PREROUTING链;nat规则中的输出链仅用于本地生成的数据包。
更新1:
一旦在PREROUTING表中设置了它,检查目标主机(10.2.3.4)实际上有10.2.3.1作为它的默认网关,否则答案将永远不会到达源。
还在前向链中添加一个日志规则,以查看您的数据包是否确实被正确重写并发送到目标主机。
https://serverfault.com/questions/295465
复制相似问题