我正在尝试将 linux box 设置为路由器,但我对以下规则将如何影响数据包感到有点困惑。
例如在路由表中我可以有
default via 10.10.1.1 dev eth0 src 192.168.1.1
它将数据包的源 IP 地址更改为 192.168.1.1
在 iptables 中,我可以拥有
-A POSTROUTING -s 192.168.0.0/255.255.0.0 -o eth0 -j SNAT --to 192.168.1.1
这似乎也询问下一跳返回数据包应该去 192.168.1.1
那么有什么区别呢?
第一个选择源 IP 地址,当数据包源自本机并且源 IP 地址不受任何其他因素影响时。也就是说,当系统必须选择源地址时,这定义了它的选择。
第二个更改正在路由的现有数据包的源 IP 地址。
一个影响数据包生成,另一个影响数据包转发。