vlh Цитата: если не сложно, напишите как, то есть например для входящих пакетов:
А чего сложного-то. Возьмём, допустим условия, предложенные
fdboss:
Цитата: скажем, если есть такая задача, есть 10 абонентов с шейпами в 128к, которые заполнены, то есть все абоненты чего то качают, требуется сделать так, что бы http трафик для всех абонентов имел больший приоритет нежели скажем ftp и весь остальной
Цепляем, допустим, к global-out или локальному интерфейсу корневой класс, который описывает общую пропускную способность канала в интернет (допустим, max-limit=2M, limit-at=2M).
К корневому классу цепляем 10 дочерних внутренних (inner) классов, которые будут символизировать у нас 10 клиентов, max-limit которым задаём в размере 128k каждому, limit-at для них тоже укажем в размере 128k.
К каждому из этих 10 классов цепляем 3 оконечных дочерних (leaf) класса, каждый из которых будет символизировать у нас http, ftp и "всё остальное", задаём приритеты : http - 1, ftp - 2 , "всё остальное" - 8. Для каждого из этих оконечных классов max-limit=128k, параметр limit-at - по вкусу (но в сумме значения limit-at для http, ftp и "всего остального" каждого отдельного клиента не должны превышать 128k). В итоге полкчаем в сумме 30 leaf-классов.
К каждому leaf-классу назначаем pfifo-очередь, допустим, "default".
В Мангле метим http, ftp и "всё остальное" по dst-address и протоколу для каждого клиента в отдельности, а затем направляем помеченные пакеты в соответствующие очереди.
Итого, для пометки только входящих пакетов для 10 юзеров придётся создатать 30 правил. И ещё столько же правил придётся создать для исходящего трафика, т.е. в сумме 60(!). А теперь представьте, что протоколов необходимо приоритезировать больше... А если юзеров не 10, а 100...?
P.S. Можно уменьшить, в данном случае, нагрузку на роутер, пометив сначала соединения по src-address в forward'е, а затем пометив там же пакеты, используя метку соединения. Пакеты в данном случае не надо будет метить отдельно как исходящие и входящие, т.к. если очереди размещать непосредственно на исходящих интерфейсах, то в очереди, размещённые на локальном интерфейсе, попадут только входящие пакеты, а в очереди на внешнем интерфейсе только исходящие. Как уже сказал, роутер это разгрузит, но количество правил в мангле не уменьшится их так и останется 60: (пометка соединения+пометка пакетов соединения)x3x10.