LINUX.ORG.RU
решено ФорумAdmin

Почему может не работать -j MARK?

 


0

1

Делаю

iptables -t mangle -A PREROUTING -d 192.168.0.0/24 -j MARK --set-mark 2
ping -c 4 192.168.0.4
iptables -t mangle -L -v

Получаю шиш

Chain PREROUTING (policy ACCEPT 122K packets, 123M bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MARK       all  --  any    any     anywhere             192.168.0.0/24       MARK set 0x2

Почему не срабатывает правило?


зачем ты пинг вызывал совершенно непонятно.

к тому же судя по выводу -L -v правило работает

объясни лучше что ты хочешь сделать

anonymous ()
Ответ на: комментарий от anonymous

Пинг я вызвал, чтобы сгенерить пакеты, подходящие для этого правила. А -Lv показывает, что правило не обработало ни одного пакета.

JaM ()
Ответ на: комментарий от melkor217

OUTPUT сработает после выбора маршрута, а я хочу маршрутизацию сделать в зависимости от mark.

JaM ()
Ответ на: комментарий от melkor217

В смысле? POSTROUTING работает уже после того как сделан выбор маршрута, потому и название такое. А к чему вопрос, тут я, вроде бы, ничего не путал?

JaM ()
Ответ на: комментарий от melkor217

Я смотрел по вот этой диаграмме http://www.openredes.com/wp-content/uploads/2011/04/netfilter-iptables-packet-flow.png

По ней разницы между OUTPUT и POSTROUTING, казалось бы, нет, но хитрость в том, что в POSTROUTING нельзя сменить destination address, а в OUTPUT - можно. Поэтому цель NETMAP, которую мне и надо было заставить работать, в этих двух цепочках работает совершенно по разному. В POSTROUTING она меняет только src, а в OUTPUT - и dst тоже (причём, src меняет хер пойми как вообще).

JaM ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.