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

Исходное сообщение
"netfilter - проблемы с ROUTE"

Отправлено tian , 17-Июн-06 14:26 
Приветствую.
Кто-нить сталкивался с подобной ситуацией:
при изменении маршрута в цепочках iptables по действию -j ROUTE --oif eth1 --continue
происходит то, что пакет все-таки движется далее по цепочке даже при флаге iptables -o eth0 (хотя вроде как выходит с нужного интерфейса)
.
И еще - пакет просто уходит в никуда при каких-то еще невыявленных ситуациях. Просто пакет не выходит ни с одного интерфейса. По поводу запретных правил проверял, все нормально.

По большому счет необходимо переопределить маршрут в цепочке POSTROUTING mangle. но беда в том, что решение о маршруте уже принято до этого.
Может быть есть какой-нить патч, который снова запускает (направляет) пакет после цепочки PREROUTING nat ?


Содержание

Сообщения в этом обсуждении
"netfilter - проблемы с ROUTE"
Отправлено чукчане читатель , 18-Июн-06 03:29 
есть прекрасная утила, iprote2 называется

"netfilter - проблемы с ROUTE"
Отправлено tian , 18-Июн-06 16:30 
>есть прекрасная утила, iprote2 называется

Это-то есть, но толку в данном случае нет.
Необходимо переопределить маршрут (шлюз) после цепочки POSTROUTING mangle.
Насколько я понял, утилита iproute2 этого не умеет. Потому как назначение маршрута происходит до этой цепочки.
А в идеале было бы, что существовало какое-нить действие в iptables, по которому пакет снова направлялся бы в алгоритм определения маршрута (в идеале - в любую цепочку iptables)


"netfilter - проблемы с ROUTE"
Отправлено alex , 19-Июн-06 10:27 
>>есть прекрасная утила, iprote2 называется
>
>Это-то есть, но толку в данном случае нет.
>Необходимо переопределить маршрут (шлюз) после цепочки POSTROUTING mangle.
>Насколько я понял, утилита iproute2 этого не умеет. Потому как назначение маршрута
>происходит до этой цепочки.
>А в идеале было бы, что существовало какое-нить действие в iptables, по
>которому пакет снова направлялся бы в алгоритм определения маршрута (в идеале
>- в любую цепочку iptables)

iptables - метит пакеты
iproute2 - по меткам меняет маршруты


"netfilter - проблемы с ROUTE"
Отправлено tian , 19-Июн-06 10:38 
>iptables - метит пакеты
>iproute2 - по меткам меняет маршруты

согласен. По если необходимо пометить пакет в цепочке POSTROUTING, то iproute2 уже не поможет, так как маршрут меняется ДО этой цепочки.
Или я что-то не понимаю ?
ip rule add fwmark 0x20 table Sat
Это решение будет приниматься до обработки POSTROUTING, но на этом этапе пакет еще не помечен.


"netfilter - проблемы с ROUTE"
Отправлено alex , 19-Июн-06 11:57 
>>iptables - метит пакеты
>>iproute2 - по меткам меняет маршруты
>
>согласен. По если необходимо пометить пакет в цепочке POSTROUTING, то iproute2 уже
>не поможет, так как маршрут меняется ДО этой цепочки.
>Или я что-то не понимаю ?
>ip rule add fwmark 0x20 table Sat
>Это решение будет приниматься до обработки POSTROUTING, но на этом этапе пакет
>еще не помечен.

Метьте до. В чем проблема?


"netfilter - проблемы с ROUTE"
Отправлено tian , 19-Июн-06 13:29 
Проблема в том, что пакет исходит от локального процесса.
Сам локальный процесс никак не может пометить пакет (ну так вот приложение сделано) (в том числе установить нужный TOS). И поэтому метки на пакет выставляются в POSTROUTING mangle.
На какие-то пакеты выставляются, на какие-то нет. зависит от адреса источника, получателя, порта.

>Метьте до. В чем проблема?



"netfilter - проблемы с ROUTE"
Отправлено alex , 19-Июн-06 14:10 
>Проблема в том, что пакет исходит от локального процесса.
>Сам локальный процесс никак не может пометить пакет (ну так вот приложение
>сделано) (в том числе установить нужный TOS). И поэтому метки на
>пакет выставляются в POSTROUTING mangle.
>На какие-то пакеты выставляются, на какие-то нет. зависит от адреса источника, получателя,
>порта.
>
>>Метьте до. В чем проблема?

Елс и у Вас есть критерии для метки пакета ПОСЛЕ, то почему не использоваться их ДО. Или они изменяются?


"netfilter - проблемы с ROUTE"
Отправлено tian , 19-Июн-06 14:53 
Дело в том, что ДО не получается, так как после выхода пакета из локального процесса он сразу попадает на решение о маршрутизации, а уж потом на цепочку OUTPUT mangle.
Т.е. нет цепочки, стоящей между локальным процессом и выбором маршрутизации.

Допускаю возможность все-таки как-то извратиться и использовать возможности iprule (т.е. по TOS, по получателю и по источнику), но это как-то криво и не сильно гибко получается.


>Елс и у Вас есть критерии для метки пакета ПОСЛЕ, то почему
>не использоваться их ДО. Или они изменяются?