Короче говоря уговорили, сделал все через ip
Получился следующий скрипт:---------------------------
#!/bin/bash
IF0=eth0 -- провайдер лан
IF1=eth1 -- локалка
IF2=eth2 -- линк в АДСЛ модем
IP0=194.44.хх.хх
IP10=10.0.0.254
IP11=10.0.1.254
IP2=192.168.1.254
P0=194.44.хх.хх --провайдер лан
P2=192.168.1.1 --АДСЛ модем в режиме роутера
P0_NET=194.44.хх.хх/29
P10_NET=10.0.0.0/24
P11_NET=10.0.1.0/24
P2_NET=192.168.1.0/24
/sbin/ip route flush table T1
/sbin/ip route flush table T2
/sbin/ip route add $P0_NET dev $IF0 src $IP0 table T1
/sbin/ip route add default via $P0 table T1
/sbin/ip route add $P2_NET dev $IF2 src $IP2 table T2
/sbin/ip route add default via $P2 table T2
/sbin/ip route add $P0_NET dev $IF0 src $IP0
/sbin/ip route add $P2_NET dev $IF2 src $IP2
/sbin/ip route add default via $P2
/sbin/ip rule flush
/sbin/ip rule del from all lookup main
/sbin/ip rule add from $IP0 table T1
/sbin/ip rule add from $IP2 table T2
/sbin/ip rule add from $P10_NET table T2
/sbin/ip rule add from $P11_NET table T1
/sbin/ip rule add from all lookup main
/sbin/ip route add $P10_NET dev $IF1 table T2
/sbin/ip route add $P2_NET dev $IF2 table T2
/sbin/ip route add 127.0.0.0/8 dev lo table T2
/sbin/ip route add $P11_NET dev $IF1 table T1
/sbin/ip route add $P0_NET dev $IF0 table T1
/sbin/ip route add 127.0.0.0/8 dev lo table T1
-------------------------------------------------------
flush rule и del from all lookup main стоит там потому, что немного запортачил пока делал правила и мейн всевремя подкидывало наверх и через него в маршрут по-умолчанию уходили все пакеты.
В целом скрипт вот такой. Все работает.
Второй скрипт на iptables но его не привожу он просто раскидывает кому куда ходить и с каких именно ИП можно ходить в инет.
Вопросы - может кто поможет систематизировать это дело? Может чего лишнего написал.
И мне не нравится положение дел вот здесь:
[root@qwerty firewall]# /sbin/ip rule list
0: from all lookup local
0: from all lookup local
0: from 194.44.хх.хх lookup T1
0: from 192.168.1.254 lookup T2
0: from 10.0.0.0/24 lookup T2
0: from 10.0.1.0/24 lookup T1
0: from all lookup main
Два локала вверху, все что ниже них не flushится . Получилась такая сиутация из-за длительных опытов над этими правилами как-то сама.
Как можно по-умному тут все раскидать один раз скриптом, чтобы уже не лазить сюда повторно?