Наиболее правильным выбором, если
>меня никто не опровергнет, мне кажется посоветованный Den'ом htb. Если ли
>у кого-нибудь практика внедрения такого шейпинга при кол-ве пользователей, которых нужно
>единовременно шейпить близко к 400, а траффик от них чуть больше
>10-12 Мбит/с?
>Какие методы используются для такого рода шейпинга интернет-провайдерами еще (как программные, так
>и аппаратные)?
В случае HTB есть свои проблемы.
Я так понимаю, что 400 абсолютно разных клиентов сос своими правилами?
Нормально сделал такое только под FreeBSD. Использовал pipe в ipfw и
приоритеты на очереди. Также можно использовать table в ipfw для обжимания траффика по направлениям.
С линухом пробовал СBQ, HTB. Есть для меня пока серьезное препятствие - грамотно обжать в линуксах гораздо сложнее, чем во фре.
Дело в том, что vpn интерфейсы динамические, и вставить правило HTB на несуществующий интерфейс невозможно. Т.е. надо добавлять правило при подъеме интерфейса. При этом сложно планировать иерархию... В принципе это решается хранением HTB конфига в базе данных вместе с инфой для авторизации. Надо не забывать, что CBQ и HTB умеет работать только с исходящим трафиком, поэтому вход от пользователя жмется через Жо.у !!!
Возникают также проблемы с NAT. Вот если жать на исходящем интерфейсе, как узнать от кого оно идет, если через NAT уже прошло? Есть модуль conntrack в iptables. С ним легче, но как мы с iptables в tc передадим правила обжима? - УРА. Есть маркировка в iptables, которую понимает tc.
Вроде всё решили, но подведя итог - в голову лезут одни маты.
P.S. Наблюдалось в ядре 2.4.20 c gr-security патчем раз в 1-2 мясяца затыкание траффика полностью HTB'ой. Приходилось перегружать правила HTB.
Они были сделаны с помощью описательной утилиты XML-htb. Не помню точно, как пишется. Конфиг был в XML и транслировался в скрипт с tc.