Я пытаюсь настроить 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
Так в чем разница?
Первый выбирает исходный IP-адрес, когда пакет создается на этом компьютере, и исходный IP-адрес не зависит от каких-либо других факторов. То есть, когда системе нужно выбрать исходные адреса, это определяет ее выбор.
Второй изменяет исходный IP-адрес уже существующего пакета, который маршрутизируется.
Один влияет на пакет поколение другой влияет на пакет пересылка.