4 дек. 2014 г.

Linux подмена src для TCP/IP пакетов без использования iptables

Допустим, у нас есть два IP адреса на физической карточке (второй настроен как alias) - 192.168.1.2 и 192.168.1.3.

По умолчанию для подсети 192.168.2.0/24 пакеты идут через интерфейс 192.168.1.2, но мы хотим, чтобы поле src пакетов для определенного dst (в нашем примере - это хост 192.168.2.10) было 192.168.1.3.

Для этого не применяя iptables (который работает на сетевом уровне (Network Layer) модели OSI), можно применить команду ip route, которая всё сделает быстрее, на Link Layer'e:

ip route add 192.168.2.10/32 via 192.168.2.1 dev eth0 src 192.168.1.3