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

Исходное сообщение
"iptables и iproute "

Отправлено iproute2 , 18-Мрт-09 16:47 
Имеется сервер с 2 интерфейсами. Нужно сделать так чтобы пакеты ушли через тот же интерфейс с который и пришли.

сделал следую:
iptables -t mangle -A PREROUTING -i eth1 -j MARK --set-mark 1
echo 201 portal >> /etc/iproute2/rt_tables
ip rule add fwmark 1 table portal
ip route add default via 10.10.10.5 dev eth1 table portal

sniffer-ом проверял пакеты доходят, маркируются но обратного ответа нету!
может где то ошибся ткните где плз?


Содержание

Сообщения в этом обсуждении
"iptables и iproute "
Отправлено sky , 18-Мрт-09 19:45 
В самом конце нужно сделать:
ip route flush cache

"iptables и iproute "
Отправлено PavelR , 18-Мрт-09 21:17 
>[оверквотинг удален]
>
>сделал следую:
>iptables -t mangle -A PREROUTING -i eth1 -j MARK --set-mark 1
>echo 201 portal >> /etc/iproute2/rt_tables
>ip rule add fwmark 1 table portal
>ip route add default via 10.10.10.5 dev eth1 table portal
>
>sniffer-ом проверял пакеты доходят, маркируются но обратного ответа нету!
>может где то ошибся ткните где плз?
>

Пакет приходит на интерфейс, поскольку он идет на IP-адрес интерфейса.
Соответственно, обратный путь определяется айпи адресом в поле "отправитель" пакета.

Это стандартный случай "линукс и два провайдера".  Никакой маркировки не надо.

маркировка по MARK использована не верно, так не работает. Надо - CONNMARK, set и restore.
MARK используется и работает по другому, маркируя конкретный пакет, соответственно применим в других случаях...

CONNMARK - маркер соединения, AFAIK set вносит в таблицу соединений флаг, пакет при этом не маркируя, а вот restore применяется для "обратно идущих" пакетов, и выставляет на пакет флаг, сохраненный в свойствах соединения в таблице соединений.

Обратитесь в поиск по сайту, в раздел советы.

Также можете почитать https://www.opennet.ru/tips/info/1651.shtml но ИМХО это не ваш случай.


"iptables и iproute "
Отправлено iproute2 , 19-Мрт-09 08:19 
>[оверквотинг удален]
>других случаях...
>
>CONNMARK - маркер соединения, AFAIK set вносит в таблицу соединений флаг, пакет
>при этом не маркируя, а вот restore применяется для "обратно идущих"
>пакетов, и выставляет на пакет флаг, сохраненный в свойствах соединения в
>таблице соединений.
>
>Обратитесь в поиск по сайту, в раздел советы.
>
>Также можете почитать https://www.opennet.ru/tips/info/1651.shtml но ИМХО это не ваш случай.

спасибо буду пробовать то что вы сказали но странно, то что Я сделал по мануалу:
https://www.opennet.ru/docs/RUS/LARTC/c1430.html



"iptables и iproute "
Отправлено angra , 19-Мрт-09 08:25 
Указанный вами мануал он совсем про другое. Соответственно появляется вопрос - чего на самом деле то надо?

"iptables и iproute "
Отправлено iproute2 , 19-Мрт-09 08:52 
>Указанный вами мануал он совсем про другое. Соответственно появляется вопрос - чего
>на самом деле то надо?

Нужно сделать так чтобы пакеты ушли через тот же интерфейс с который и пришли!


"iptables и iproute "
Отправлено angra , 19-Мрт-09 09:08 
Ну тогда в том же мануале https://www.opennet.ru/docs/RUS/LARTC/x348.html. Заметьте что никакая маркировка при этом не нужна.


"iptables и iproute "
Отправлено EugeneS , 19-Мрт-09 09:32 
>Ну тогда в том же мануале https://www.opennet.ru/docs/RUS/LARTC/x348.html. Заметьте что никакая маркировка при
>этом не нужна.

А Вы сами пробовали ?  У меня не работает. И кажется в силу того, что в статье рассматривается другой вопрос. Про работу в обратную сторону ни слова.


"iptables и iproute "
Отправлено PavelR , 19-Мрт-09 13:41 
>>Ну тогда в том же мануале https://www.opennet.ru/docs/RUS/LARTC/x348.html. Заметьте что никакая маркировка при
>>этом не нужна.
>
>А Вы сами пробовали ?  У меня не работает. И кажется
>в силу того, что в статье рассматривается другой вопрос. Про работу
>в обратную сторону ни слова.

Для тех кто не умеет читать и поэтому тупит, цитирую:

[cite]
4.2.1. Раздельный доступ

Первый вопрос заключается в том, как организовать маршрутизацию таким образом, чтобы ответы на запросы, приходящие через определенного провайдера, скажем провайдера 1, уходили через того же провайдера.

[/cite]

И это не тот вопрос, который Вам надо ?


"iptables и iproute "
Отправлено iproute2 , 19-Мрт-09 16:12 
>[оверквотинг удален]
>[cite]
>4.2.1. Раздельный доступ
>
>Первый вопрос заключается в том, как организовать маршрутизацию таким образом, чтобы ответы
>на запросы, приходящие через определенного провайдера, скажем провайдера 1, уходили через
>того же провайдера.
>
>[/cite]
>
>И это не тот вопрос, который Вам надо ?

ну хорошо уточню детально...
имеется сервер с 2 интерфейсами eth0 and eth1, на eth0 стоит ip address 10.10.10.1/30 а на eth1 10.10.10.5/30. дефолтовый шлюз виа eth0 идет.
мне нужно когда любой чел наберет скажем http://10.10.10.5 ответ пришел именно с 10.10.10.5 а не через default route.
нету не каких провйдеров просто у меня 2 разных канала к одному серваку. мне просто нужно чтоб если мой запрос шел через определенный канал то с того же канала я хочу получить ответ!


"iptables и iproute "
Отправлено PavelR , 19-Мрт-09 18:57 
>[оверквотинг удален]
>
>ну хорошо уточню детально...
>имеется сервер с 2 интерфейсами eth0 and eth1, на eth0 стоит ip
>address 10.10.10.1/30 а на eth1 10.10.10.5/30. дефолтовый шлюз виа eth0 идет.
>
>мне нужно когда любой чел наберет скажем http://10.10.10.5 ответ пришел именно с
>10.10.10.5 а не через default route.
>нету не каких провйдеров просто у меня 2 разных канала к одному
>серваку. мне просто нужно чтоб если мой запрос шел через определенный
>канал то с того же канала я хочу получить ответ!

клиника.

Здесь таким не место.

Разжевывать _подробнее_ тут никто не будет.


"iptables и iproute "
Отправлено PavelR , 19-Мрт-09 19:03 
>[оверквотинг удален]
>
>ну хорошо уточню детально...
>имеется сервер с 2 интерфейсами eth0 and eth1, на eth0 стоит ip
>address 10.10.10.1/30 а на eth1 10.10.10.5/30. дефолтовый шлюз виа eth0 идет.
>
>мне нужно когда любой чел наберет скажем http://10.10.10.5 ответ пришел именно с
>10.10.10.5 а не через default route.
>нету не каких провйдеров просто у меня 2 разных канала к одному
>серваку. мне просто нужно чтоб если мой запрос шел через определенный
>канал то с того же канала я хочу получить ответ!

чтобы вы поняли, провайдеров в принципе не существует, а существуют каналы.