>>так вот есть сетка (195.248.160.0/19) которая должна роуится по такой схеме:
>>
>>1) from 192.168.7.0/24 to 195.248.160.0/19 gw 192.168.7.1
>>2) from 192.168.7.254/32 to 195.248.160.0/19 gw 195.248.184.xxx
>>3) from 192.168.200.0/24 to 195.248.160.0/19 gw 195.248.184.xxx
>>так вот пунткы 1 и 3 у меня работают а пункт 2
>>- нет, роут идет на 192.168.7.1 :(
>
>
>Ага. Теперь более-менее понятно. Значит, так. Как я понял, шлюз у тебя
>это как раз та самая машина, чью таблицу маршрутизации ты написал?
>И ты хочешь, чтобы именно она ходила в сеть 195.248.160.0/19 не
>так, как вся остальная сетка? Так?
Да, именно так.>
>При обращении в сеть обычно (если иное не предусмотрено настройками ПО) использует в качестве source address так называемый INADDR_ANY (или попросту 0.0.0.0), т.е. - определяется наиболее подходящий source address из тех, что имеются. Так вот, поскольку в твоей машине не один интерфейс, то надо посмотреть, какой именно адрес используется в качестве source, когда ты отправляешь пакет со шлюза в сеть 195.248.160.0/19. И потом, именно ЕГО прописать в правила. Попробуй, допустим, ничего не меняя, дать команду traceroute <нужный_адрес> -s 192.168.7.254 и посмотри, как оно пойдет.
я так и делал.
вообще там все еще малехо усложнено динамической балансировкой между несколькими провайдарами ...
пакеты с самого шлюза уходят от 192.168.7.254 (если не натить то видно tcpdump'om)
сейчас докрутил до того что пакеты уходят в 95% именно так как мне надо но несколько раз в трассерте встречал маршрут через другово провайдера ... хз может случайность (хотя кешь сбрасывал) в общем пока я удовлетворен (ковырял методом тыка и незнаю что будет после ребута ... но надеюсь в скрипты все повписывал :) спасибо за помощь.