[Comm] Advanced Routing & QoS

Andrey Orlov =?iso-8859-1?q?cray_=CE=C1_neural=2Eru?=
Чт Дек 5 03:15:01 MSK 2002


On 2002 December 04 Wednesday 18:36, you wrote:
> > расширил пункты 7,8 (оформив их как некий cookbook, хорошим (но
> > недостаточным) приближением может быть Advanced Router HOWTO)
>
> Дело в том, Андрей, что статья изначально задумывалась как обзор
> возможностей, с дальнейшей ссылкой на ресурсы с примерами по реализации,
> а не инструмент для быстрой настройки. Другими словами, это не HOWTO.

Ну если хотите мое сугубо личное мнение, как человека поддерживающего
один из пакетов Alt и иногда реагирующего на вопросы пользователей - то
нет никаких шансов, что пользователь пакета станет читать отвлеченную
теорию. Даже на пакете масштаба Zope очень хорошо заметно, что
на открытый исходный код находится спрос когда выделенные
на проект деньги про-стите-трачены, а показывать заказчику что-то надо. А уж
узкоспециальный QoS, iproute2 & всякий другой iptables - одназначно, когда припрет.

Даже в методичке альтлинуха написано что "свойством человеческого
чего-то там является то, что о вопросах безопасности задумываются
только когда о них можно уже не думать" - я  переврал, но смысл
примерно такой. Соответственно в этот момент залатать-бы-чбы-не-потонуть, а теорию
потом почитать можно. Со всей этой документации идущей вместе с пакетом я
вижу единственный смысл - не превращать OpenSource в бесплатный хелпдеск. 
А раз так - то доки должны давать конкретные ответы на конкретные вопросы, 
теорию потом можно подчерпнть в статье Кузнецова и Салли Флойд, а также 
других заметках, идущих вместе с пакетом.

Сбсно основное впечатление от Вашей статьи (безусловно хорошо написанной в отличие от
многих ваших предшественников, я не хотел бы пропустить это обстоятельство) - основное
впечатление свелось к ощущению каких-то обманутых ожиданий: я не узнал ничего, чего
не было бы ранее, в то время как мне много чего хотелось бы узнать.

> Если расширять раздел 7, то там надо рассматривать редко-используемые
> классификаторы, про описание которых даже в отмеченном HOWTO прямо так и
> сказано, что: "For more filtering commands, see the Advanced Filters
> chapter".

Да, но там же есть эта "Advanced Filters chapter" - а у вас нет, у вас считайте битая ссылка 
(про man tc см.ниже) И даже тот объем, после которого написано "For more .." - вполне самодостаточен 
в HOWTO. Я не предлагаю написать второе HOWTO, только по-русски - я уже говорил что ваш
стиль существенно лучше,  но рассмотрите хотя бы один или два - тот же u32 & fw - и вложите
их в какой-либо контекст реального решения, а не приводите две отвлеченные (как мне показалось) 
строчки кода. Тем более  что нигде кроме отмеченного HOWTO они не описаны. И даже 
там содержатся упоминания о том, что автору пришлось покопаться в исходном коде, чбы это узнать.

> По поводу п.8 (т.е. реализации), я так понимаю, вы предлагаете сделать
> обмен работающими конфигурациями? Для этого надо писать отдельный
> материал. Или вы имели в виду уточнение использования cbq.init? Так я-же

Что касается cbq.init - мы вообще о какой версии пакета iproute2 говорим,
мбть у меня apt не так настроен? У меня вот этот стоит:

> 01:28:38 (cray на fire)  /home/cray>  rpm -qi iproute2
> Name        : iproute2                     Relocations: (not relocateable)
> Version     : 2.4.7                             Vendor: ALT Linux Team
> Release     : alt3.ss010824                 Build Date: Wed Oct 30 23:48:40 2002
> Install date: Thu Dec  5 00:47:10 2002      Build Host: office.altlinux.com

в нем файла cbq.init просто нет.

>> /etc/sysconfig/cbq/cbq-0000.example

не содержит ни одного комментария.

>>/usr/share/doc/iproute2-2.4.7/examples/SYN-DoS.rate.limit
>>/usr/share/doc/iproute2-2.4.7/examples/cbqinit.eth1
>>/usr/share/doc/iproute2-2.4.7/examples/dhcp-client-script

Не содержат значимых упоминаний фильтров

/usr/share/doc/iproute2-2.4.7/examples/diffserv/*

Тут немножко интереснее, но все-таки это немного не то.
Я имел ввиду :

"Что бы ограничить пользователя васю от скачивания 15гектар голых теток
попробуйте написать :
.....
tc qdisc add dev eth0 parent 1:1 handle 10: tbf burst 270000 rate 10kbit latency 1
tc filter add dev eth0 parent 1:0 pref 6 protocol ip u32 match ip dst 1.2.3.4/32 flowid 1:1
"

"Что бы дать пользователю пете получать почту в тот момент когда пользователь
вася все-таки скачивает 15гектар голых теток, попробуйте :"

.....
"

И т.п. Только примеры должны быть реальными и гарантировано работающими (эти не работают,
кстати) - а что до откомментированного cbq.init, то я тоже написал откомментированный 
zope_proxy.conf - что не мешает пользователям задавать вопросы, читать howto на 
neural.ru (судя по статистике посещений) и наступать на все грабли, которые я позабыл упомянуть.

> смысл? Для неподготовленного статья и так трудно читается, а для
> остальных указаны ссылки, по которым искать дополнительную информацию,
> конфиги, примеры, и прочее.

Я уже писал - неподготовленный читатель (например я) не нашел в статье ничего,
что не было бы изложено раньше в doc/*ps.gz. Хотя многих спасет то, что
на этот раз рассказано по-русски и более-менее доступным языком. Кроме того,
неподготовленный читатель (например я) единственную помощь в реальных
настройках нашел только в упомянутом HOWTO. Это несмотря на то, что
неподготовленный читатель (например я) с большим интересом прочитал
рекомендованную Кузнецовым статью Флойд, прикинул откуда следуют формулы
и подивился забавному способу перенумеровки вершин дерева,  и именно поэтому
осмелился предположить что часть функционала, обещанного CBQ, не функционирует,
по крайней мере в ALM2.0. Кстати когда тот же неподготовленный читатель попробовал
применить "работающий пример" из doc/exmples - он не заработал (это было давно, но тогда помнится
сам перлячий скрипт тупо осыпался, и даже после того как читатель это победил и вся байда
создалась - траффик контролл не появился...). Теперь (подготовивишись) непоготовленный 
читатель понимает почему он не заработал, и утверждает что комментарии 
в примере абсолютно бесполезны.

Все, извините за этот невольный наезд - я просто думаю что критика будет
отчасти полезна. Проблема в том, что я не до конца понимаю целевую
аудиторию статьи - если это читатель обзоров, интересующийся "а как там в мире?" -
то мало сравнительной аналитики с той же CISCO & MS, и много формул (и вообще-то такие
статьи лучше в КТ), если админ который полезет настраивать - то много рекламы и нет 
конкретных советов (я говорю это как тот самый админ), если читатель который ищет с чего 
начать и куда пойти дальше - то см. ниже про tc-filters (себя приводить в пример не буду, так 
как  моменту прочтения уже начал). Вот это меня и смущает.

На самом деле ни в коем случае не хочу умалять достоинства ну и так далее ;)

> > кроме того должен заметить - ссылка в п.8 на man 8 tc
> > немножко лукавая : man 8 tc во всех пунтктах посвященный фильтрам,
> > ссылается на man 8 tc-filters, который похоже еще не написали : во всяком случае в
> > дистрибутиве его не имеет места 

> Похоже у вас старая версия iproute2. Текущий билд из Сизифа включает в
> себя: ip.8.bz2
> tc-cbq.8.bz2

[skip]

> tc.8.gz

> Обновитесь, или, если нет такой возможности, маны доступны на LARTC

Обновился. Похоже, мое письмо было невнимательно прочитано.
Где среди них tc-filters? Не хорошо не проверять предлагаемые решения перед отправкой,
тем более что проверочный тест был приведен в моем письме:

1. man 8 tc | grep -iE "u32|fw" - по прежнему пусто (а ссылка в статье стоит именно на него)
2. tc-filters - по прежнему нет (в том числе в вашем списке), равно как нет tc-u32 или tc-fw ;).
3. man 8 tc по прежнему при любых упоминаниях фильтров ссылается на man 8 tc-filters.

> Я не могу опровергнуть, или подтвердить ваши предположения, так как не
> являюсь программистом, тем более на ядерном уровне. Однако у меня тоже

Я не расчитывал - меня интересует в данный момент не аргументы
на уровне листингов, а как-бы-это сказать - интуитивные ощущения
от использования и от контактов с разработчиками / другими пользователями

> есть собственные наблюдения. Я работаю в одном из крупнейших Белорусских
> ISP. И провайдим мы как ни странно на Alt :-). Уже около двух лет на

Похоже у меня на лице написано что я - микрософт сертифаед. Так это было
давно и неправда ;). Нет, это не странно. Я тоже проважу-провайдю-как-бы это сказать - 
предоставляю услуги хостинга на основе Alt. Правда я не крупнейший провайдер Москвы, а
так, для личного удовольcтвия. Tech-саппорт крупнейших провайдеров, я иногда консультирую
по телефону, к сожалению.

> нескольких серверах работает связка из CBQ+u32+TBF общим числом около
> 500 классов. Серверы, на которых крутится все это хозяйство далеко не
> мощные, особенно по нынешним временам. Тем не менее особых проблем
> замечено не было. На ядрах 2.2 _иногда_ были странные "отъезжания
> крыши", если говорить несколько раз за сутки "service cbq restart".

Это тоже похоже на неинициализированную память и неосвобождение ресурсов,
хотя у меня стук был более явный.

Я юзал примерно тоже, только prio+u32+tbf. А кстати - почему CBQ+TBF, ведь CBQ само
по себе имеет шейпер и AFAIK не нуждается в TBF ? Я везде видел рекомендации
типа CBQ + SFQ, и у вас в методичке тоже, AFAIR (нет под рукой), CBQ+u32+SFQ, 
и вдруг выясняется что вы сами-то используете CBQ+u32+TBF...

У меня это подглюкивает на ядре 2.4.18(см оригинал письма).... Т.е. сейчас
uptime 3дня без сбоев, но это после долгого перебора ключиков и подбора
безглючной комбинации - хотя если верить методичкам все глючащие варианты должны были
работать. И все работали - первые час-полтора-два, потом им сводило башню,
что и навело меня на грустные предположения (см оригинал письма). И тот вариант который сейчас
работает - это не тот вариант, который мне бы хотелось что бы работал, так как тому сводило-таки
башню без видимых причин. Но как я говорил уже - писать багрепорты пока не считаю себя готовым.

> тестируют. Хотя возможно я и ошибаюсь. Следовательно, это вопрос
> напрямую к Кузнецову. Попробуйте, может быть он вам и ответит ;-)

Я правильно вас понимаю, что обычно он не отвечает? И тот же отказ от
консультаций содержится в его инструкциях... И обещанная им дока по tc,
судя по содержимому пакета, не написана до сих пор... (и, видимо, не будет - уже
два года отложенных обещаний прошло, не так ли?)

> Если Вам удастся вытащить какую-либо информацию из Кузнецова, я думаю
> она будет многим здесь интересна и полезна.

Похоже Кузнецов сдерживает свое обещание  никого не консультировать ;)

> > 1. Поискать другое решение (в случае если этот код вообще никто не
> > поддерживает и это лишь
> > забавный реликт, оставшийся от ядер 2.2.*);

> Ни в коем случае не реликт! 

Место Кузнецова среди разработчиков этого кода уже не вакантно, его кто-то занял?

> Чтобы отказаться от этого "реликта", вам
> придется отказаться не только от Альта, но и от Линукса вообще. Код

Не думаю. Вы сами пишите что AltLinuxTeam его серъезно не разрабатывает
и не использует  - и тем не менее не отказывается от Линукса вообще ;).
Да и честно говоря я очень сомневаюсь что при сегодняшнем обилии альтернатив найдется
что-либо конкретное в линуксе, отказ от чего вынудит отказаться от линукса
"вообще". Разве что ядро? Но что-то заставляет меня думать, что если припрет -
тоже можно найти альтернативу.

> находится в состоянии постоянного развития. Неужели ничего не говорит
> хотя-бы факт появления HTB в последних ядрах? Для интереса, можете взять

Мне значительно больше говорит факт того, что основной разработчик (насколько я
понял ваши слова) отказывает кому-либо в консультациях о написанном им коде. Мне
это напоминает меня самого: однажды я делал один проект, успешно его сделал - в
исследовательских целях - и больше он меня не интересовал. Исходники я передал
другим людям, но советы им практически не даю: так как считаю что код и так понятен,
а 150 с лишним страниц статьи написанной по этому поводу и содержащей изложение
всей теории более чем достаточно. Почему меня этот код не интересует и я его не
развиваю - отдельная история, но если в случае с tc то же самое (а некоторые паралели
просматриваются), то я не завидую tc.

> Это да, никогда не завредит. Особенно исходники. Код отлаженный,
> проверенный, многими используется! 

Ой ли? Я не увидел в рассылке ни одного отзыва человека, который бы заявил
что использует его, хотя даже на такую экзотику как maple в свое время откликнулось
достаточно людей чбы попросили уйти ;). А несколько моих знакомых пользуются
"другими способами" - например squid'ом как один из подписчиков здесь, причем не 
потому что "не получилось" - а потому что "нет необходимости". 

> Не знаю, как насчет баг-репортов, но специалисты по этим делам тусуются
> в своем комьюнити. Подпишитесь, очень полезно почитать о том, как люди
> решают свои проблемы с помощью iproute2.
> http://www.lartc.org/#mailinglist Средний трафик там 20-30 писем в сутки.

Вначале надо будет отписаться от талкрума, но попробую.

> > Буду благодарен если ктонть мне это прояснит.
> Надеюсь помог =)

Да, помогли, спасибо. Резюме подводить не буду, иначе боюсь станет
страшно не только мне ;). Попробую понадеятся на пункт 3 все-таки.

--
WthBstRgrds -- Андрей Орлов --
 --- www.neural.ru, cray на neural.ru ---
----------------------------------------




Подробная информация о списке рассылки community