tc cbq, answer, 01-Апр-10, 20:19 [смотреть все]Есть вопрос по tc. Изначальная сверхзадача следующая: Для всех подключений равномерно распределять скорость (не касается медленных клиентов, у которых своя скорость мала – настроить, чтобы такие клиенты не отваливались из-за специфичных сетевых настроек). Для нового подключения выделять скорость 1 MBit/s, если канал свободен более чем на 30% увеличить скорость до максимальной к клиенту. При падении общей скорости, участников, менее 256Kbit/s блокировать новые подключения.Написаны соответствующие правила для tc: $TC qdisc add dev $IF root handle 1: cbq bandwidth 500Mbit avpkt 5000 cell 8 allot 1514 $TC class add dev $IF parent 1:0 classid 1:112 cbq bandwidth 150mbit rate 100mbit cell 8 allot 1514 sharing borrow prio 2 $TC class add dev $IF parent 1:0 classid 1:113 cbq bandwidth 500mbit rate 1mbit cell 8 allot 1514 sharing borrow prio 2 $TC class add dev $IF parent 1:0 classid 1:114 cbq bandwidth 500mbit cell 8 allot 1514 rate 256kbit sharing borrow prio 2 $TC qdisc add dev $IF parent 1:112 handle 20: esfq perturb 5 hash dst $TC qdisc add dev $IF parent 1:113 handle 30: esfq perturb 5 hash dst $TC qdisc add dev $IF parent 1:114 handle 40: esfq perturb 5 hash dst Вроде бы работает, но почему-то трафик попадает только в самый широкий класс. В другие же при нагрузке он не попадает в принципе. Может быть кто-то подскажет, как правильнее реализовать задачку?
|
- tc cbq, John, 22:14 , 02-Апр-10 (1)
- tc cbq, John, 22:16 , 02-Апр-10 (2)
- tc cbq, answer, 23:17 , 02-Апр-10 (3)
>[оверквотинг удален] >>>Вроде бы работает, но почему-то трафик попадает только в самый широкий класс. >>>В другие же при нагрузке он не попадает в принципе. Может >>>быть кто-то подскажет, как правильнее реализовать задачку? >> >>Вы создали классовую дисциплину. Теперь надо добавить фильтры к самой дисциплине и >>к внутренним классам, которые будут по каким-то критериям отправлять трафик в >>тот или иной внутренний класс. Смотрите tc filter. > >Даже, немного не так: в Вашем случае необходимы фильтры только к самой >дисциплине. Трафик всегда исходящий и с двух сервисов - http и ftp. Как в этом случае их можно различать по уровням? Ведь те, кто запросил тот или иной файл всегда разные. Можно ли какими-нибудь средствами iproute2 вычислять общую нагруженность полосы, если известна номинальная ширина?
- tc cbq, John, 09:56 , 03-Апр-10 (4)
|