LINUX.ORG.RU
ФорумAdmin

netfilter: Заносить в лог пакеты с определенной меткой?


0

0

Т.е. есть пакеты, помеченные (мною же) неким образом в prerouting. А в postrouting я хочу писать о некоторых из них в лог.

Возможно ли это стандартными средствами iptables? P-O-M connmark кажется это позволяет, но мне бы хотелось как-то переносимее.

Накой это нужно? :) Встроил в свой QoS скрипт возможность записи в лог информации о том, какой трафик в какой класс пошел. С портами и т.д. кажется работает, а вот с fwmark... :)

★★★★★

Re: netfilter: Заносить в лог пакеты с определенной меткой?

И в чем проблема? Что у тебя не получилось?

sdio ★★★★★ ()

Re: netfilter: Заносить в лог пакеты с определенной меткой?

Да собственно ничего :)

Как можно стандартными средствами вести лог пакетов с меткой?

Хотелось бы команду вида

iptables -t mangle -A POSTROUTING -m mark .... -j LOG --log-prefix tra-la-la

или что-то такое. И я ее не знаю :)

fagot ★★★★★ ()

Re: netfilter: Заносить в лог пакеты с определенной меткой?

Т.е. делать -j LOG, если известно, что пакет помечен какой-то меткой, но какой именно - не известно ? (кидать в лог все помеченные пакеты)
А меток вообще может быть много ? Разве их нельзя все явно перечислить ?
iptables -t mangle -A POSTROUTING -m mark --mark 1 -j LOG --log-prefix tra-la-la_MARK_1
iptables -t mangle -A POSTROUTING -m mark --mark 2 -j LOG --log-prefix tra-la-la_MARK_2
...

spirit ★★★★★ ()

Re: netfilter: Заносить в лог пакеты с определенной меткой?

connmark

This module matches the netfilter mark field associated with a connection (which can be set using the CONNMARK target below).

--mark value[/mask] Matches packets in connections with the given mark value (if a mask is specified, this is logically ANDed with the mark before the comparison).

Типа весь коннекшн маркать. Или не то что надо?

Zulu ★★☆☆ ()

Re: netfilter: Заносить в лог пакеты с определенной меткой?

Нет, нельзя. Тут такое дело получается, что у меня маркируются пакеты не там, где пишутся в лог.

Кстати, `iptables -t mangle -A POSTROUTING -m mark --mark 1 ...` помечает пакет, насколько я понимаю, а не проверяет.

Т.е. выходит вот что. В начале один скрипт делает это:

shaperOut=${shaperOut:-HNGW_OUT}

$ipt -t mangle -N $shaperOut
$ipt -t mangle -A POSTROUTING -j $shaperOut

## Small packets (probably just ACKs)
$ipt -t mangle -A $shaperOut -p tcp -m length --length :64 -j MARK --set-mark 0x21
$ipt -t mangle -A $shaperOut -p tcp -m length --length :64 -j MARK --set-mark 0x21

## ICMP
$ipt -t mangle -A $shaperOut -p icmp -j MARK --set-mark 0x22
$ipt -t mangle -A $shaperOut -p icmp -j RETURN

## UDP
$ipt -t mangle -A $shaperOut -p udp -j MARK --set-mark 0x23
$ipt -t mangle -A $shaperOut -p udp -j RETURN

## TOS Minimize-Delay
$ipt -t mangle -A $shaperOut -p tcp -m tos --tos 0x10 -j MARK --set-mark 0x24
$ipt -t mangle -A $shaperOut -p tcp -m tos --tos 0x10 -j RETURN

## TOS Maximize-Throughput
$ipt -t mangle -A $shaperOut -p tcp -m tos --tos 0x08 -j MARK --set-mark 0x25
$ipt -t mangle -A $shaperOut -p tcp -m tos --tos 0x08 -j RETURN

А затем второй, прочитав конфиги создает правила tc filter add ... направляя что-куда. И вот в этом месте я хочу делать лог, поскольку только в этом месте я имею qdisc:class в который отправился пакет, причем эти цифры генерятся автоматом и заранее неизвестны.

fagot ★★★★★ ()

Re: netfilter: Заносить в лог пакеты с определенной меткой?

> помечает пакет, насколько я понимаю, а не проверяет.
Нет, как раз проверяет, помечаются они через "-j MARK --set-mark N".

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