Имеется сервер с 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 portalsniffer-ом проверял пакеты доходят, маркируются но обратного ответа нету!
может где то ошибся ткните где плз?
В самом конце нужно сделать:
ip route flush cache
>[оверквотинг удален]
>
>сделал следую:
>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 применяется для "обратно идущих" пакетов, и выставляет на пакет флаг, сохраненный в свойствах соединения в таблице соединений.
Обратитесь в поиск по сайту, в раздел советы.
Также можете почитать http://www.opennet.me/tips/info/1651.shtml но ИМХО это не ваш случай.
>[оверквотинг удален]
>других случаях...
>
>CONNMARK - маркер соединения, AFAIK set вносит в таблицу соединений флаг, пакет
>при этом не маркируя, а вот restore применяется для "обратно идущих"
>пакетов, и выставляет на пакет флаг, сохраненный в свойствах соединения в
>таблице соединений.
>
>Обратитесь в поиск по сайту, в раздел советы.
>
>Также можете почитать http://www.opennet.me/tips/info/1651.shtml но ИМХО это не ваш случай.спасибо буду пробовать то что вы сказали но странно, то что Я сделал по мануалу:
http://www.opennet.me/docs/RUS/LARTC/c1430.html
Указанный вами мануал он совсем про другое. Соответственно появляется вопрос - чего на самом деле то надо?
>Указанный вами мануал он совсем про другое. Соответственно появляется вопрос - чего
>на самом деле то надо?Нужно сделать так чтобы пакеты ушли через тот же интерфейс с который и пришли!
Ну тогда в том же мануале http://www.opennet.me/docs/RUS/LARTC/x348.html. Заметьте что никакая маркировка при этом не нужна.
>Ну тогда в том же мануале http://www.opennet.me/docs/RUS/LARTC/x348.html. Заметьте что никакая маркировка при
>этом не нужна.А Вы сами пробовали ? У меня не работает. И кажется в силу того, что в статье рассматривается другой вопрос. Про работу в обратную сторону ни слова.
>>Ну тогда в том же мануале http://www.opennet.me/docs/RUS/LARTC/x348.html. Заметьте что никакая маркировка при
>>этом не нужна.
>
>А Вы сами пробовали ? У меня не работает. И кажется
>в силу того, что в статье рассматривается другой вопрос. Про работу
>в обратную сторону ни слова.Для тех кто не умеет читать и поэтому тупит, цитирую:
[cite]
4.2.1. Раздельный доступПервый вопрос заключается в том, как организовать маршрутизацию таким образом, чтобы ответы на запросы, приходящие через определенного провайдера, скажем провайдера 1, уходили через того же провайдера.
[/cite]
И это не тот вопрос, который Вам надо ?
>[оверквотинг удален]
>[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 разных канала к одному серваку. мне просто нужно чтоб если мой запрос шел через определенный канал то с того же канала я хочу получить ответ!
>[оверквотинг удален]
>
>ну хорошо уточню детально...
>имеется сервер с 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 разных канала к одному
>серваку. мне просто нужно чтоб если мой запрос шел через определенный
>канал то с того же канала я хочу получить ответ!клиника.
Здесь таким не место.
Разжевывать _подробнее_ тут никто не будет.
>[оверквотинг удален]
>
>ну хорошо уточню детально...
>имеется сервер с 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 разных канала к одному
>серваку. мне просто нужно чтоб если мой запрос шел через определенный
>канал то с того же канала я хочу получить ответ!чтобы вы поняли, провайдеров в принципе не существует, а существуют каналы.