IP路由和NAT之间的区别?

我试图设置一个Linux的盒子作为路由器,我有点困惑以下规则将如何影响数据包。

例如在路由表中,我可以有

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

那有什么区别?

当数据包在本机上发起时,第一个select源IP地址,源IP地址不受其他因素的强制。 也就是说,当系统必须select源地址时,这就定义了它的select。

第二个更改正在路由的已经存在的数据包的源IP地址。

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