Ситуация довольно проста.Есть два интерфейса смотрящих наружу, e1 и e2. e1 дефолтный маршрут.
через е1 ходит локальная сетка e0 - 10.0.0.0/24,
пытаюсь пустить 10.0.0.2 через е2.ip_e0 = 10.0.0.1
ip_е1 = 195.24.66.1 195.24.66.2 - это ip провайдера1
ip_е2 = 211.58.33.1, 211.58.33.2 - это ip провайдера2
делаю так.
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPTiptables -t mangle -A PREROUTING -i e0 -s 10.0.0.2 -j MARK --set-mark 2
iptables -A POSTROUTING -t nat -o e1 -j SNAT --to-source 195.24.66.1
iptables -A POSTROUTING -t nat -o e2 -j SNAT --to-source 211.58.33.1ip route add default via 211.58.33.2 table 10
ip rule add fwmark 2 table 10
Такая конструкция не работает.Если сделать так
ip rule add from 10.0.0.2 table 10
то все работает.Наставте на путь истинный
Сам разобрался.
Как всегда все проблемы из-за невнимательности.Еще раз посмотрел и нашел такую строчку в фаерволе.
# Disable Source Routed Packets
for f in /proc/sys/net/ipv4/conf/*/accept_source_route; do
echo 0 > $f
doneЗкоментировал и все заработало.
Может кому пригодиться.