URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 77044
[ Назад ]

Исходное сообщение
"fwmark (из iproute) не работает "

Отправлено sss , 27-Окт-07 13:17 
уже выбился из сил - немогу понять в чем грабли, чувствую что где-то рядом но немогу ухватиться....


задача маркировать пакеты приходящие из инета через интерфейс 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 (второго провайдера). Мистика какая-то...



Содержание

Сообщения в этом обсуждении
"fwmark (из iproute) не работает "
Отправлено pavel_simple , 27-Окт-07 13:59 
смотри сюда
http://www.opennet.me/openforum/vsluhforumID1/76819.html

"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 14:47 
>смотри сюда
>http://www.opennet.me/openforum/vsluhforumID1/76819.html

я все это пробовал - не работает :(


"fwmark (из iproute) не работает "
Отправлено pavel_simple , 27-Окт-07 16:14 
>я все это пробовал - не работает :(

что тут скажеш -- у всех работает -- только у тебя нет
делай выводы


"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 16:36 
>>я все это пробовал - не работает :(
>
>что тут скажеш -- у всех работает -- только у тебя нет
>
>делай выводы

выводы я уже сделал - где-то косяк у меня, но где не пойму :(
вот и обратился на форум - может есть гуру в этих вопросах, помогут потестить какими нибудь командами... я просто не знаю в данный момент куда можно копнуть



"fwmark (из iproute) не работает "
Отправлено pavel_simple , 27-Окт-07 16:38 
по ссылке написано
ip route add default via yyy.yyy.yyy.yyy dev eth2 src xxx.xxx.xxx.xxx table secondiface
так что попробуй добавить src

"fwmark (из iproute) не работает "
Отправлено pavel_simple , 27-Окт-07 16:42 
и вообще -- зачем чего-то маркировать в данном случае --
если всё действительно так написано в посте
то задача звучит так
как сделать чтобы пакеты пришедшие через интерфейс возвращались через него же/
-- ну и соответственно решение уже расписано

"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 16:50 
>и вообще -- зачем чего-то маркировать в данном случае --
>если всё действительно так написано в посте
>то задача звучит так
>как сделать чтобы пакеты пришедшие через интерфейс возвращались через него же/
>-- ну и соответственно решение уже расписано

в том то и дело, что маркировать нужно ОБЯЗАТЕЛЬНО, объясню почему:

201.211.50.1 - видет из инета через обеих провайдеров, из этого следует, что запрос из инета может прийти как с eth0 так и с eth2 ! Если без маркирования - то тогда как iproute узнает на какой шлюз отсылать ответы? Ведь iproute работает с понимает конструкцию src ip - тоесть с какого айпи пришел, но не с какого интерфейса... Поправьте меня если я не прав.

p.s. вообще-то у меня ip route нормально работает с двумя провайдерами,
проблема только с fwmark+iptables



"fwmark (из iproute) не работает "
Отправлено pavel_simple , 27-Окт-07 16:53 
своя AS или я что-то недопонимаю -- как у обоих провов один и тот-же ip



"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 16:57 
>своя AS или я что-то недопонимаю -- как у обоих провов один
>и тот-же ip

Да - вы правы - своя AS.


"fwmark (из iproute) не работает "
Отправлено pavel_simple , 27-Окт-07 17:23 
если я правильно понимаю ...
нужно удалить default route из таблицы main
добавить 2 правила в mangle + 2 правила ip route и соответственно по роуту в 2 таблицы
думаю понятно
а src все равно поставь

"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 17:30 
>нужно удалить default route из таблицы main

если я удаляю default route из таблицы main тогда не работают сеть наружу,
тоесть со шлюза я не могу пингануть ниодин хост в инете :(

>добавить 2 правила в mangle + 2 правила ip route и соответственно
>по роуту в 2 таблицы
>думаю понятно

что-то не очень понял какие два правила ip route? можно уточнить?

p.s. кстати! только-что нарыл, что работае mark но только для хостов из локалки - роутинг управляется через fwmark! непойму пока почему только для локалки - а для хостов из инета не работает...



"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 16:52 
>по ссылке написано
>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 которая смотрит на первого провайдера?



"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 17:07 
а может косяк в системе?

у меня ядро 2.6.9-3
iptables 1.3.1
iproute 2.6.9-3


"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 17:08 
>а может косяк в системе?
>
>у меня ядро 2.6.9-3
>iptables 1.3.1
>iproute 2.6.9-3

сорри, ядро 2.6.19



"fwmark (из iproute) не работает "
Отправлено sss , 27-Окт-07 17:45 
ЗАААААРАААААБООООТТААААЛООООООООООООООООООООООООО!!!!!!!!
Держите меня трое!!!

как только все переварю - отпишусь!!!!


"fwmark (из iproute) не работает "
Отправлено sss , 28-Окт-07 18:08 
Проблема была в том, что нужно было еще дополнительно использовать
iptables -t mangle -A OUTPUT -s 201.211.50.1 -j CONNMARK --restore-mark

:)))