ip route 和 NAT 的区别?

Car*_*arl 3 nat routing iptables

我正在尝试将 linux box 设置为路由器,但我对以下规则将如何影响数据包感到有些困惑。

例如在路由表中我可以有

default via 10.10.1.1 dev eth0 src 192.168.1.1
Run Code Online (Sandbox Code Playgroud)

将数据包的源 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
Run Code Online (Sandbox Code Playgroud)

这似乎也要求下一跳返回数据包应该去 192.168.1.1

那么有什么区别呢?

Dav*_*rtz 7

当数据包在这台机器上产生时,第一个选择源 IP 地址,并且源 IP 地址不受任何其他因素的影响。也就是说,当系统必须选择源地址时,这定义了它的选择。

第二个更改正在路由的现有数据包的源 IP 地址。

一个影响数据包生成,另一个影响数据包转发