abramoff Posted May 17, 2013 Добрый день, Хочется реализовать такой алгоритм управления трафиком: есть два класса - скажем c1 и c2. Есть некий хост IP (вообще их много, нужно подумать о хешировании), который занимает (потребляет) некоторую полосу R (байт/сек). Пока R<L (L - некий заданный лимит полосы), трафик для IP классифицируется в c1. При превышении (когда R>L) - весь трафик для IP (а не только "перелив") переклассифицируется в с2. При уменьшении занимаемой полосы R ниже лимита L трафик для IP возвращается обратно в c1. В итоге, идея простая: "начал качать, превысил некий лимит байт/сек - пожалуй в другой класс". Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
bomberman Posted May 17, 2013 Почему нельзя сразу дать качать на максимальной скорости, которой можно? Или я не верно понял задачу? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
abramoff Posted May 17, 2013 Почему нельзя сразу дать качать на максимальной скорости, которой можно? Или я не верно понял задачу? Можно качать сразу на макс. скорости. Надо, чтобы весь трафик (а не только overlimit) к качающему уходил в менее приоритетный класс, если он (качающий) начал занимать полосу сверх определенного лимита. Или, другими словами, более приоритетный класс должен "освобождаться" от трафика "качающего много" чтобы быть доступным (свободным) "качающим мало". Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
bomberman Posted May 17, 2013 (edited) Чудесная система какая то. Ну в прочем, вы в праве творить что хотите. Думаю в таком случае разумнее будет следить за тем, сколько по ремени "качающий" использует по максимуму свой менее приоритетный класс, и если это время превышает определённый лимит, то значит "ему нужно" и он отправляется в более быстрый класс. Ибо иначе как вы пймёте, что ему " это нужно"? А в сторону понижения приоритета, так же само. Edited May 17, 2013 by bomberman Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
bos9 Posted May 17, 2013 А чего тут чудесного? ) До недавнего времени очень востребованная схема. Но только средствами tc это не реализуется. Можно например раз в час создавать отчеты в биллинге по трафику каждого абонента и делить его на скорость по тарифу. Если этот коэффициент превысит некое определенное вами значение, то запускать скрипт, который перекинет качка в какой вам нужно класс. как то так... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
^rage^ Posted May 20, 2013 connbytes/connrate в помощь. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
voron Posted May 20, 2013 connbytes/connrate в помощь.imho RATEEST+rateest лучше подойдёт, так как не привязан к conntrack-соединению. А для большого количества IP можно и нелинейные правила сделать. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...