уже выбился из сил - немогу понять в чем грабли, чувствую что где-то рядом но немогу ухватиться....
задача маркировать пакеты приходящие из инета через интерфейс eth0 на 201.211.50.1 для того чтобы они возвращались также через eth0, для этого сделал:#ip rule ls
0: from all lookup local
1000: from all fwmark 0x5 lookup eth0.out
32766: from all lookup main
32767: from all lookup default#ip route sh table eth0.out
default via 197.54.13.113 dev eth0
#iptables -t mangle -nvxL PREROUTING
pkts bytes target prot opt in out source destination
33 2726 CONNMARK all -- eth0 * 0.0.0.0/0 201.211.50.1 CONNMARK set 0x5Пакеты маркируются, что видно из вывода iptables но обратно уходят через eth2 (второго провайдера). Мистика какая-то...
смотри сюда
http://www.opennet.me/openforum/vsluhforumID1/76819.html
>смотри сюда
>http://www.opennet.me/openforum/vsluhforumID1/76819.htmlя все это пробовал - не работает :(
>я все это пробовал - не работает :(что тут скажеш -- у всех работает -- только у тебя нет
делай выводы
>>я все это пробовал - не работает :(
>
>что тут скажеш -- у всех работает -- только у тебя нет
>
>делай выводывыводы я уже сделал - где-то косяк у меня, но где не пойму :(
вот и обратился на форум - может есть гуру в этих вопросах, помогут потестить какими нибудь командами... я просто не знаю в данный момент куда можно копнуть
по ссылке написано
ip route add default via yyy.yyy.yyy.yyy dev eth2 src xxx.xxx.xxx.xxx table secondiface
так что попробуй добавить src
и вообще -- зачем чего-то маркировать в данном случае --
если всё действительно так написано в посте
то задача звучит так
как сделать чтобы пакеты пришедшие через интерфейс возвращались через него же/
-- ну и соответственно решение уже расписано
>и вообще -- зачем чего-то маркировать в данном случае --
>если всё действительно так написано в посте
>то задача звучит так
>как сделать чтобы пакеты пришедшие через интерфейс возвращались через него же/
>-- ну и соответственно решение уже расписанов том то и дело, что маркировать нужно ОБЯЗАТЕЛЬНО, объясню почему:
201.211.50.1 - видет из инета через обеих провайдеров, из этого следует, что запрос из инета может прийти как с eth0 так и с eth2 ! Если без маркирования - то тогда как iproute узнает на какой шлюз отсылать ответы? Ведь iproute работает с понимает конструкцию src ip - тоесть с какого айпи пришел, но не с какого интерфейса... Поправьте меня если я не прав.
p.s. вообще-то у меня ip route нормально работает с двумя провайдерами,
проблема только с fwmark+iptables
своя AS или я что-то недопонимаю -- как у обоих провов один и тот-же ip
>своя AS или я что-то недопонимаю -- как у обоих провов один
>и тот-же ipДа - вы правы - своя AS.
если я правильно понимаю ...
нужно удалить default route из таблицы main
добавить 2 правила в mangle + 2 правила ip route и соответственно по роуту в 2 таблицы
думаю понятно
а src все равно поставь
>нужно удалить default route из таблицы mainесли я удаляю default route из таблицы main тогда не работают сеть наружу,
тоесть со шлюза я не могу пингануть ниодин хост в инете :(>добавить 2 правила в mangle + 2 правила ip route и соответственно
>по роуту в 2 таблицы
>думаю понятночто-то не очень понял какие два правила ip route? можно уточнить?
p.s. кстати! только-что нарыл, что работае mark но только для хостов из локалки - роутинг управляется через fwmark! непойму пока почему только для локалки - а для хостов из инета не работает...
>по ссылке написано
>ip route add default via yyy.yyy.yyy.yyy dev eth2 src xxx.xxx.xxx.xxx table secondiface
>
>так что попробуй добавить srcи кстати что я тут погу написать в "src xxx.xxx.xxx.xxx" ?
xxx - это айпи адрес eth0 которая смотрит на первого провайдера?
а может косяк в системе?у меня ядро 2.6.9-3
iptables 1.3.1
iproute 2.6.9-3
>а может косяк в системе?
>
>у меня ядро 2.6.9-3
>iptables 1.3.1
>iproute 2.6.9-3сорри, ядро 2.6.19
ЗАААААРАААААБООООТТААААЛООООООООООООООООООООООООО!!!!!!!!
Держите меня трое!!!как только все переварю - отпишусь!!!!
Проблема была в том, что нужно было еще дополнительно использовать
iptables -t mangle -A OUTPUT -s 201.211.50.1 -j CONNMARK --restore-mark:)))