LINUX.ORG.RU
ФорумAdmin

Чем воспользоваться CBQ или HTB ??


0

0

Собственно сабж !
Имею канал на 256 kbit/s eth0 (ВХОДЯЩИЙ )и eth1 нутренняя сеть.
В сети 11 машин,для себя хочу оставить 128 kb/s, остальным 128 kb/s на всех (остальных 10 машин).
тоеть по 12,8 kb/s на одну машину и не больше.
Но при условии что если 5 машин(клиентских) нет в сети или просто канал пустует то тогда всем клиентам(которые в данный момент в сети и пользуются инетом) поднять канал до 20 kb/s
а когда все машины в сети то опять понизить до 12,8 kb/s.
Вопрос чем это лучше сделать.И если можно то обьясните как.
(Пользователи в основном играют по инету так что сквид не предлогать.)
192.168.100.1(Я)
192.168.100.2 (КЛИЕНТ 1)
192.168.100.3 (КЛИЕНТ 2)
192.168.100.4 (КЛИЕНТ 3)
192.168.100.5 (КЛИЕНТ 4)
192.168.100.6 (КЛИЕНТ 5)
192.168.100.7 (КЛИЕНТ 6)
192.168.100.8 (КЛИЕНТ 7)
192.168.100.9 (КЛИЕНТ 8)
192.168.100.10(КЛИЕНТ 9)
192.168.100.11(КЛИЕНТ 10)

anonymous

tc qdisc add dev <dev> root htb
tc class add dev <dev> htb classid :10 rate 12kbit ceil 12kbit
tc class add dev <dev> htb classid :11 rate 12kbit ceil 12kbit
tc class add dev <dev> htb classid :12 rate 12kbit ceil 12kbit
etc...

tc filter add dev <dev> prio 1 u32 match ip src <clinet1_ip> 0xffff flowid 1:10
tc filter add dev <dev> prio 1 u32 match ip src <clinet2_ip> 0xffff flowid 1:11
etc...

Чтоб динамечески поднимать скорость придется помудрить немного - для начала с параметром ceil поиграйся - это собственно максимальная ширина канала для классса будет, еще можно sfq прикрутить(или gred), чтоб канал поровну делился.

Толковый мануал обитает на lartc.org

ЗЫ, Мог ошибиться где-то, ибо давно с tc не работал, но схема приерно такая

majordomo
()

приоритетами пользуйся, и всё будет нормально

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

ОТ автора сабжа

Я просто не могу понять как организовать.Что когда несколько компов в сети им дать 20 kb/s и вто же время чтобы сумма всех тех кто в сети не привышала 128.Тоеть к примеру в сети 6 мопов тогда получим 6*20=120 тоеть при 6 компаш (не важно каких из клиентских мне надо им выделить канал каждому по 20 и общий примерно 128 , если компов в сети 8 и они пользуются инетом то тогда по 16 kb/s),ну а если 2 компа в сети то им как и говорилось не давать больше 20 kb/s. Я думаю что эта тема актуальная.И по нем в последствии многих трудов кто нить напишет faq. С примерами из этого сабжа. Если знатокам не тяжело то пишите более подробно !!!

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

Зарежь скорость на корневом qdisc. Покури гугль на тему скрипта htb.init - там все просто.

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

Где-то так:
tc qdisc add dev eth1 parent root handle 1: htb
tc class add dev eth1 parent 1: classid 1:1 htb rate 128Kbit

tc class add dev eth1 parent 1:1 classid 1:2 htb prio 2 rate 10Kbit ceil 20Kbit
tc qdisc add dev eth1 parent 1:2 handle 2: sfq perturb 10
tc filter add dev eth1 parent 1: protocol ip handle 0x26 fw classid 1:2

tc class add dev eth1 parent 1:1 classid 1:3 htb prio 3 rate 10Kbit ceil 20Kbit
tc qdisc add dev eth1 parent 1:3 handle 3: sfq perturb 10
tc filter add dev eth1 parent 1: protocol ip handle 0x27 fw classid 1:3

tc class add dev eth1 parent 1:1 classid 1:4 htb prio 4 rate 10Kbit ceil 20Kbit
tc qdisc add dev eth1 parent 1:4 handle 4: sfq perturb 10
tc filter add dev eth1 parent 1: protocol ip handle 0x28 fw classid 1:4

Это будет три пользователя с максимальной скоростью закачки 20Кбит и не больше 128, независимо от того сколько их (хоть 20). В классы заворачивается трафик с помощью метки, которую нужно ставить с помощью iptables

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

ОТ Автора сабжа !!! Всем спасибки пошел вначале поучиться (я студент) а потом goooooogle курить и забивать !!!

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