Приветствую.
Кто-нить сталкивался с подобной ситуацией:
при изменении маршрута в цепочках iptables по действию -j ROUTE --oif eth1 --continue
происходит то, что пакет все-таки движется далее по цепочке даже при флаге iptables -o eth0 (хотя вроде как выходит с нужного интерфейса)
.
И еще - пакет просто уходит в никуда при каких-то еще невыявленных ситуациях. Просто пакет не выходит ни с одного интерфейса. По поводу запретных правил проверял, все нормально.По большому счет необходимо переопределить маршрут в цепочке POSTROUTING mangle. но беда в том, что решение о маршруте уже принято до этого.
Может быть есть какой-нить патч, который снова запускает (направляет) пакет после цепочки PREROUTING nat ?
есть прекрасная утила, iprote2 называется
>есть прекрасная утила, iprote2 называетсяЭто-то есть, но толку в данном случае нет.
Необходимо переопределить маршрут (шлюз) после цепочки POSTROUTING mangle.
Насколько я понял, утилита iproute2 этого не умеет. Потому как назначение маршрута происходит до этой цепочки.
А в идеале было бы, что существовало какое-нить действие в iptables, по которому пакет снова направлялся бы в алгоритм определения маршрута (в идеале - в любую цепочку iptables)
>>есть прекрасная утила, iprote2 называется
>
>Это-то есть, но толку в данном случае нет.
>Необходимо переопределить маршрут (шлюз) после цепочки POSTROUTING mangle.
>Насколько я понял, утилита iproute2 этого не умеет. Потому как назначение маршрута
>происходит до этой цепочки.
>А в идеале было бы, что существовало какое-нить действие в iptables, по
>которому пакет снова направлялся бы в алгоритм определения маршрута (в идеале
>- в любую цепочку iptables)iptables - метит пакеты
iproute2 - по меткам меняет маршруты
>iptables - метит пакеты
>iproute2 - по меткам меняет маршрутысогласен. По если необходимо пометить пакет в цепочке POSTROUTING, то iproute2 уже не поможет, так как маршрут меняется ДО этой цепочки.
Или я что-то не понимаю ?
ip rule add fwmark 0x20 table Sat
Это решение будет приниматься до обработки POSTROUTING, но на этом этапе пакет еще не помечен.
>>iptables - метит пакеты
>>iproute2 - по меткам меняет маршруты
>
>согласен. По если необходимо пометить пакет в цепочке POSTROUTING, то iproute2 уже
>не поможет, так как маршрут меняется ДО этой цепочки.
>Или я что-то не понимаю ?
>ip rule add fwmark 0x20 table Sat
>Это решение будет приниматься до обработки POSTROUTING, но на этом этапе пакет
>еще не помечен.Метьте до. В чем проблема?
Проблема в том, что пакет исходит от локального процесса.
Сам локальный процесс никак не может пометить пакет (ну так вот приложение сделано) (в том числе установить нужный TOS). И поэтому метки на пакет выставляются в POSTROUTING mangle.
На какие-то пакеты выставляются, на какие-то нет. зависит от адреса источника, получателя, порта.>Метьте до. В чем проблема?
>Проблема в том, что пакет исходит от локального процесса.
>Сам локальный процесс никак не может пометить пакет (ну так вот приложение
>сделано) (в том числе установить нужный TOS). И поэтому метки на
>пакет выставляются в POSTROUTING mangle.
>На какие-то пакеты выставляются, на какие-то нет. зависит от адреса источника, получателя,
>порта.
>
>>Метьте до. В чем проблема?Елс и у Вас есть критерии для метки пакета ПОСЛЕ, то почему не использоваться их ДО. Или они изменяются?
Дело в том, что ДО не получается, так как после выхода пакета из локального процесса он сразу попадает на решение о маршрутизации, а уж потом на цепочку OUTPUT mangle.
Т.е. нет цепочки, стоящей между локальным процессом и выбором маршрутизации.Допускаю возможность все-таки как-то извратиться и использовать возможности iprule (т.е. по TOS, по получателю и по источнику), но это как-то криво и не сильно гибко получается.
>Елс и у Вас есть критерии для метки пакета ПОСЛЕ, то почему
>не использоваться их ДО. Или они изменяются?