Bug 16881 - Неверные примеры qos в документации
Summary: Неверные примеры qos в документации
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: etcnet (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Andrew Kornilov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on: 30523
Blocks:
  Show dependency tree
 
Reported: 2008-08-25 11:12 MSD by Vladimir V. Kamarzin
Modified: 2018-06-08 19:00 MSK (History)
12 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir V. Kamarzin 2008-08-25 11:12:05 MSD
etcnet-0.9.7-alt0.M40.1
4.0/branch от конца августа 2008.

# pwd
/etc/net/ifaces/eth0/qos
# cp -rp /usr/share/doc/etcnet-0.9.7/examples/QoS-HTB-user-guide/1 .
# eqos eth0 start
# tc filter show dev eth0
#

Самописные скрипты для конфигурирования шейперов всё добавляют.
Comment 1 Andrew Kornilov 2008-09-03 01:30:00 MSD
Ну слепо копировать из примеров не стоит, не факт, что они рабочие :) Покажите ls -lR, например. Включите VERBOSE и PROGRESS и в /var/log/messages загляните
Comment 2 Andrew Kornilov 2008-09-03 01:30:41 MSD
А, Вова, это ты...Ну может и не работает что, кто его знает.
Comment 3 Vladimir V. Kamarzin 2008-09-03 08:52:36 MSD
Ну я и по документации на wiki пробовал делать, и по аналогии с примерами. Где-то затык там явно.
Comment 4 Vladimir V. Kamarzin 2008-09-03 08:53:02 MSD
В сизифе кстати скорее всего такая же проблема.
Comment 5 Andrew Kornilov 2008-09-03 22:44:11 MSD
Ты ls -lR всё-таки покажи и в messages глянь, что пишет. У меня, например, всё работает.
Comment 6 Vladimir V. Kamarzin 2009-03-25 09:17:15 MSK
В общем, поковырялся вчера с этим и обнаружил, что в классе 1:1 требуется создать фильтры, заворачивающие в него весь трафик:
% cat /etc/net/ifaces/ppp0/qos/1/1/filter
proto ip prio 1 u32 match ip src 0.0.0.0/0
proto ip prio 2 u32 match ip src 0.0.0.0/0
proto ip prio 5 u32 match ip src 0.0.0.0/0
proto ip prio 6 u32 match ip src 0.0.0.0/0

без этого фильтры вида
% cat /etc/net/ifaces/ppp0/qos/1/1/10/filter
protocol ip prio 1 u32  match ip tos 0x10 0xff

не добавляются вовсе, причём tc ошибок не выдаёт, и код завершения 0 :(
Comment 7 Vladimir V. Kamarzin 2009-03-25 09:19:16 MSK
Перевешиваю на сизиф и меняю summary. Нужно исправить примеры, идущие в пакете.
Comment 8 Denis Ovsienko 2009-03-25 12:50:59 MSK
QoS-HTB-user-guide, как нетрудно догадаться, --- адаптация иерархии из HTB user guide к синтаксису /etc/net. В своё время этот пример был рабочим, насколько я помню. Смотреть нужно.
Comment 9 Eugine V. Kosenko 2014-11-24 09:21:54 MSK
Прошло пять лет...

Проблема по прежнему актуальна. Я отписался по ее поводу здесь:

http://lists.altlinux.org/pipermail/community/2014-November/683086.html

Я даже испугался, что как это до меня этого никто не обнаружил. Примеры в документации правильные и они до сих пор работают. Беда в самом etcnet.

Дело в том, что при настройке iproute фильтры должны иметь своим родителем базовый класс HTB (например, с идентификатором 1:0), а поток пакетов направлять в его дочерний класс (например, с идентификатором 1:11). В этом случае правильная команда для настройки tc должна быть:

tc filter add dev $1 protocol ip parent 1:0 prio 1 handle 1 fw flow 1:11

И здесь возникает противоречие. С одной стороны, etcnet-описание фильтр должен быть размещен в каталоге родительского класса, чтобы ему был правильно назначен parent. С другой стороны, согласно предлагаемой идеологии etcnet фильтр должен быть размещен в каталоге класса, куда направляется поток.

Попытка вынести описание на уровень родительского класса не дает нужного результата --- etcnet автоматически указывает направление в сам родительский класс.

Я решил проблему, сломав слегка файл /etc/net/scripts/config-qos. А именно, убрал из этого скрипта автоматическое направление в дочерние классы при задании фильтра, а нужное направление указал явно в файле filter на уровне родительского класса. При этом, однако, пришлось перенести инициализацию фильтров в конец процесса инициализации, иначе при задании фильтра дочерние классы еще не созданы и фильтр не может найти нужное направление. Правда, есть еще глюки с созданием лишних записей, сейчас воюю с этим. Может быть, позже опубликую патч с таким вот промежуточным решением.

Но как решить проблему идеологически грамотно --- пока не знаю...
Comment 10 Eugine V. Kosenko 2014-11-29 09:39:40 MSK
Думаю, что эта проблема не связана с документацией. По крайней мере, в документации все настройки описаны именно так, как ожидается, чтобы они работали. Просто фильтр привязывается к некорректному родителю.

Поэтому я поставил зависимость от

https://bugzilla.altlinux.org/show_bug.cgi?id=30523

и считаю, что эту проблему можно закрыть.
Comment 11 Grigory Ustinov 2018-06-08 19:00:24 MSK
(В ответ на комментарий №10)
> Думаю, что эта проблема не связана с документацией. По крайней мере, в
> документации все настройки описаны именно так, как ожидается, чтобы они
> работали. Просто фильтр привязывается к некорректному родителю.
> 
> Поэтому я поставил зависимость от
> 
> https://bugzilla.altlinux.org/show_bug.cgi?id=30523
> 
> и считаю, что эту проблему можно закрыть.

Ну так и надо было закрыть.