> ipfw pipe 100 config bw 521 Kbit/s
> ipfw queue 1 config pipe 100 mask dst-ip 0xffffffff
> ipfw add queue 1 ip from any to 10.84.252.0/24
> в данном случае, по идее, на каждого из клиентов локальной сети должен
> выделяться отдельный канал в 512 Kbit/s, что в принципе и просиходит. Нет, вот именно такого происходить и не должно.
Все клиенты из подсети попадают в один общий пайп с равными приоритетами и все клиенты получают равные доли от 512 кбит/с. Один пользователь выжрет все 512 в одно рыло. Два - по 256, четыре - по 128 и так далее. Но эта дележка не абсолютная-перманентная, а динамически-адаптивная. Поровну канал поделится лишь в том случае, если все клиенты качают одинаково интенсивно. Ну, например, если один качает торрент, а другой бровзает в нете, то нагрузки неодинаковые. Качальщик качает непрерывно, а серфер - только когда жмет на ссылки. В момент, когда серфер жмет на ссылку, он делит канал с качальщиком поровну. Как только его страница загрузилась, качальщик получит себе весь канал. До следующего клика серфера.
> НО. Если один из клиентов врубает торрент, то у всех остальных
> клинтов сразу резко подскакивают задержки времени прохождения пакетов (до 700-2000мс)
> и появляются потери пакетов. Как только торрент выключается - всё возвращается
> на круги своя.
Разумеется. Потому что 512 кбит/сек - это ОБЩАЯ полоса, а не индивидуальная. Кроме того, для гладкой работы шейпера в дамминет непременно нужно поднимать частоту таймера прерываний до 2-3 кГц. При штатных 100Гц элементарно переполняются буферы очередей и дропаются пакеты.
> но, по какой то причине, какое бы значение там я не
> задавал - на деле, при замерах скорости, показывается результат ровно в
> 2 раза меньше указанного в конфиге.
Потому что надо делать два пайпа - для входящих и для исходящих пакетов.