LINUX.ORG.RU
ФорумAdmin

Vlan-based QOS для dd-wrt


0

1

Имеется dir-320 с dd-wrt. На нем каждый порт является vlan`ом со своей подсетью (порт 1 - подсеть из одного адреса 192.168.5.2, порт 2 - 192.168.6.2 и так на всех 4 портах). Нужно написать скрипт-шейпер, который бы делил канал (2 мб) на 4 пользователя, сидящих на vlan`ах. Вопрос в следующем - возможно ли сделать так, чтобы каждый пользователь получал не 1/4 входящей полосы, а от 1/4 до полной в зависимости от загрузки?



Последнее исправление: headcuter (всего исправлений: 1)

Кажется сам разобрался.
IF=vlan0
RATE=50
CEIL=200
tc qdisc add dev ${IF} root handle 1: htb default 20
tc class add dev ${IF} parent 1: classid 1:1 htb rate ${CEIL}kbps
tc class add dev ${IF} parent 1:1 classid 1:20 htb rate ${RATE}kbps ceil ${CEIL}kbps prio 2

IF=vlan2
RATE=50
CEIL=200
tc qdisc add dev ${IF} root handle 1: htb default 20
tc class add dev ${IF} parent 1: classid 1:1 htb rate ${CEIL}kbps
tc class add dev ${IF} parent 1:1 classid 1:20 htb rate ${RATE}kbps ceil ${CEIL}kbps prio 2

IF=vlan3
RATE=50
CEIL=200
tc qdisc add dev ${IF} root handle 1: htb default 20
tc class add dev ${IF} parent 1: classid 1:1 htb rate ${CEIL}kbps
tc class add dev ${IF} parent 1:1 classid 1:20 htb rate ${RATE}kbps ceil ${CEIL}kbps prio 2

IF=vlan4
RATE=50
CEIL=200
tc qdisc add dev ${IF} root handle 1: htb default 20
tc class add dev ${IF} parent 1: classid 1:1 htb rate ${CEIL}kbps
tc class add dev ${IF} parent 1:1 classid 1:20 htb rate ${RATE}kbps ceil ${CEIL}kbps prio 2

headcuter
() автор топика
Ответ на: комментарий от cac2s

Как ни странно - работает. Но если вы подскажите как это написать более красиво - буду очень благодарен! Я не очень хорошо умею писать скрипты для разделения трафика...

headcuter
() автор топика
Ответ на: комментарий от headcuter

хм... просто ты повесил 4 класса на разные устройства (vlanX), а заимствование неиспользованной ширины, на сколько я знаю, осуществляется между классами одного устройства.
давай так: чтобы окончательно проверить работоспособность/неработоспособность выбранного варианта - поставь на одном компьютере какой-нить торрент с количеством соединений эдак в 30-40, а на другом запусти закачку какого-нибудь файла в один поток и понаблюдай за скоростью и там, и там.

cac2s
()
Ответ на: комментарий от cac2s

я потому и написал, что работает, поскольку проверил это «битвой торрентов». вначале были прописаны влан1 и влан2 с гарантированной полосой в 100 кбайт и максимальной в 200. когда запускал влан1, то торрент выбирал все 200. подключал второй компьютер на влане2 - у обоих выравнивалась в районе 100 (постоянно менялась плюс-минус 15 кбайт в обе стороны - вланы сражались за полосу). потом я проверил с 4 вланами - правда компьютеров для проверки было только два... ситуация похожая - в конце компьютеры делили трафик примерно поровну (то есть 50 кбайт каждый выбирал). для сравнения запустил эти же два компьютера с торрентами без скрипта - получил жуткий перекос (180 кбайт у первого запущенного и 20 у второго). насчет разных классов... мне кажется, что каждый влан вначале выбирает гарантированную полосу, а потом вланы пилят поровну остатки свободного канала.

headcuter
() автор топика
Ответ на: комментарий от headcuter

и всё-таки чую я что-то неладное... корневая дисциплина, отвечающая за метод «отдачи» пакетов вешается на устройство, дальше классы/фильтры..., так вот они никак не могут «влиять» на классы/фильтры других устройств. т.е.

если ото, что ты повыше накарякал прочитать более литературным языком, то будет что-то вроде:

каждому из вланов/классу дать 50кбит гарантированного с возможностью заимствования до 200кбит
НО: у кого заимствовать - непонятно, т.к. в каждой корневой дисциплине только один класс, который и будет являться владельцем и гарантированной, и максимальной, что абсолютно неверно

так чтобы уже совсем понятно: ты четырём человекам сказал, что в коробке есть четыре яблока и взять можно по одному точно, а если кто откажется - поделиться между тремя (напр.), но один просто чуть позже пришел, и яблоко ему отдадут покусанное и далеко не целое, т.к. нет никого, «над» этой четвёркой, чтобы восстановить «справедливость», им же сказали, что можно, а про отдавать ничего не говорили. =)

ещё раз: на одном - торрент, а на другом - просто один файл в браузере (напр., http://mirror.yandex.ru/debian-cd/6.0.0-live/amd64/iso-hybrid/debian-live-6.0.0-amd64-gnome-desktop.iso), и тогда смотри на скорости

cac2s
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.