Ответы:
Вам нужно использовать политику на основе маршрутизации. Что-то вроде
ip rule add from <source>/<mask> table <name>
ip route add 1.2.3.4/24 via <router> dev eth4 table <name>
<name>
либо указано имя таблицы, /etc/iproute2/rt_tables
либо вы можете использовать числовой идентификатор ...
Это в значительной степени говорит о том, что весь трафик 1.2.3.4/24
будет направляться с использованием таблицы маршрутизации <name>
. IIRC после этого не использует таблицу по умолчанию, поэтому, если вам нужны другие маршруты (т. Е. Шлюз по умолчанию), вам также необходимо добавить их в таблицу.
http://wiki.wlug.org.nz/SourceBasedRouting
На этом сайте есть хороший пример маршрутизации на основе исходного кода.
ip route add default dev eth4 table <name>
(table
директива должна идти в конце, я думаю, точно так же, как в первой команде ... такжеdefault
может быть заменена подсетью, как в вашем примере )