LINUX.ORG.RU
ФорумAdmin

Глюк в tc filter или ЧЯДНТ?


0

0

Неспешно медитирую пытаясь понять ЧЯДНТ. Довела меня до этого состояния простая последовательность моих действий:
1. Добавляю правила фильтрации. Их у меня несколько, по числу подключенных клиентов:

# /sbin/tc filter add dev imq0 protocol ip parent 1:0 prio 2 u32 match ip src 172.16.1.1 flowid 1:0x0201
# /sbin/tc filter add dev imq0 protocol ip parent 1:0 prio 2 u32 match ip src 172.16.1.2 flowid 1:0x0202
# /sbin/tc filter add dev imq0 protocol ip parent 1:0 prio 2 u32 match ip src 172.16.1.3 flowid 1:0x0203

2. И вижу вполне ожидаемую картину:

# tc -d -s filter ls dev imq0
filter parent 1: protocol ip pref 1 fw
filter parent 1: protocol ip pref 2 u32
filter parent 1: protocol ip pref 2 u32 fh 800: ht divisor 1
filter parent 1: protocol ip pref 2 u32 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:201 (rule hit 0 success 0)
match ac100101/ffffffff at 12 (success 0 )
filter parent 1: protocol ip pref 2 u32 fh 800::801 order 2049 key ht 800 bkt 0 flowid 1:202 (rule hit 0 success 0)
match ac100102/ffffffff at 12 (success 0 )
filter parent 1: protocol ip pref 2 u32 fh 800::802 order 2050 key ht 800 bkt 0 flowid 1:203 (rule hit 0 success 0)
match ac100103/ffffffff at 12 (success 0 )

3. Пытаюсь удалить один фильтр, надобность в котором со временем отпала:

# /sbin/tc filter del dev imq0 protocol ip parent 1:0 prio 2 u32 match ip src 172.16.1.2 flowid 1:0x0202

4. И наблюдаю что-то странное...

# tc -d -s filter ls dev imq0
filter parent 1: protocol ip pref 1 fw

Попытка удаления одного единственного правила фильтрации u32 смахивает напрочь все остальные правила u32 прицепом...
Почему? На правилах фильтрации fw у меня такого эффекта не наблюдается. Ядро свежее, на старых пока не проверял. Но если кто до того момента подскажет в чем я заблуждаюсь и почему удаляются все правила фильтрации одной единственной командой - буду крайне признателен...

Попробуй выставить разные значения prio. Емнип, prio в фильтре — это совсем не то же, что prio в классе.

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

Так и есть - надо таким правилам выставлять уникальный prio...
Видимо это все же баг, поскольку с фильтрами другого типа - fw - он не наблюдается, там все корректно отрабатывается. Да и на lartc.org параметру prio дают вполне однозначное толкование:

prio

The priority of this classifier. Lower numbers get tested first.

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

Каэшно баг. Я бы на месте Кузнецова при попытке добавить второй фильтр с тем же prio посылал бы лесом :)

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