В Срд, 16/01/2008 в 16:14 +0300, Stanislav Kruchinin пишет: > Покотиленко Костик wrote: > > > > есть роутер на котором настроено разделение канала по группам клиентов > > (HTB). Сейчас в одной группе нужно сделать подгруппу для клиентов и > > безлимитными пакетами. Для этого им нужно ограничить максимальную > > скорость. > > > > Вопрос: есть ли дисциплина позволяющая ограничивать максимальную > > скорость до указанного значения для каждого IP отдельно, так чтобы не > > нужно было для каждого следующего безлимитчика добавлять класс > > ограничения? > > Классы обслуживания должны создаваться в любом случае, иначе как тогда > будет работать планировщик. Динамическое создание классов по приходу > пакета с указанного IP не реализовано.
В iptables есть такой модуль limit, классификатор которого срабатывает, например, раз в 5 секунд. А есть модуль hashlimit, который делает то же самое, только, например, для каждого IP отправителя отдельный счётчик. Это очень красивое решение, оно позволяет одним правилом выставить честно ограничения, а не так что один пользователь пингует сайт 10 раз в секунду, а другие не могут вообще. По аналогии, мне бы TBF, только чтобы hashTBF. Такое есть? > Много классов -- это не проблема, их можно нагенерировать скриптами > сколько угодно. Проблема в том, что для классификации трафика нужно > много фильтров, что приводит к расходу процессорного времени, т.к. их > нужно обходить при каждом получении пакета. Если будет по одному IP на > класс, то лучше всего воспользоваться фильтром fw и модулем IPMARK, либо > модулем IPCLASSIFY, который работает напрямую без фильтров tc. Примеры > легко ищутся в документациях к модулям. Также в u32 реализованы т.н. > хэширующие фильтры (см. lartc.org), но с ними наборы правил будут > намного сложнее. В принципе для каждого пользователя вставлять HTB от 1кбит/с до 128кбит/с на лету, я надеюсь не большая проблема. Вариант принят. По поводу массивных фильтров. В случае если существует такой шейпер ala hashTBF, то можно использовать один фильтр по FWMARK для каждого ограничения (128, 256, 512), а в iptables с помощью ipset (iphash) проставлять марки. В случае если такого нет, вообще всё грусно. -- Покотиленко Костик <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

