Перейти к содержимому
Калькуляторы

linux tc

Есть шейпер с хеш таблицами, требуется сделать приоритезацию трафика.

Так шейпится 500 абонентов без приоритезации (при одновременно скачивании с торрента и веб сервера скорость делится 5/95, торрент съедает всё):

/sbin/tc qdisc del dev ifb0 root
/sbin/tc qdisc add dev ifb0 root handle 1: htb
/sbin/tc class add dev ifb0 parent 1: classid 1:1 htb rate 400Mbit ceil 400Mbit
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32
/sbin/tc filter add dev ifb0 parent 1:0 handle 2: protocol ip u32 divisor 256
/sbin/tc filter add dev ifb0 parent 1:0 handle 3: protocol ip u32 divisor 256
/sbin/tc filter add dev ifb0 parent 1:0 handle 4: protocol ip u32 divisor 256
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 801:: match ip dst 0.0.0.0/0 hashkey mask 0xff000000 at 16 link 2:
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 2:c0: match ip dst 192.0.0.0/8 hashkey mask 0xff0000 at 16 link 3:
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 3:a8: match ip dst 192.168.0.0/16 hashkey mask 0xff00 at 16 link 4:
/sbin/tc filter add dev ifb0 parent 1:0 handle 8: protocol ip u32 divisor 256
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 4:23: match ip dst 192.168.35.0/24 hashkey mask 0xff at 16 link 8:
#
/sbin/tc class add dev ifb0 parent 1:1 classid 1:293 htb rate 1kbit ceil 10240kbit
/sbin/tc qdisc add dev ifb0 parent 1:293 handle 293: sfq
/sbin/tc filter add dev ifb0 parent 1:0 handle ::8 protocol ip prio 1 u32 ht 8:2: match ip dst 192.168.35.2/32 flowid 1:293


Для приоритезации создаю дисциплины и подклассы для каждого типа трафика (для начала для http и остального трафика):

/sbin/tc qdisc del dev ifb0 root
/sbin/tc qdisc add dev ifb0 root handle 1: htb
/sbin/tc class add dev ifb0 parent 1: classid 1:1 htb rate 400Mbit ceil 400Mbit
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32
/sbin/tc filter add dev ifb0 parent 1:0 handle 2: protocol ip u32 divisor 256
/sbin/tc filter add dev ifb0 parent 1:0 handle 3: protocol ip u32 divisor 256
/sbin/tc filter add dev ifb0 parent 1:0 handle 4: protocol ip u32 divisor 256
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 801:: match ip dst 0.0.0.0/0 hashkey mask 0xff000000 at 16 link 2:
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 2:c0: match ip dst 192.0.0.0/8 hashkey mask 0xff0000 at 16 link 3:
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 3:a8: match ip dst 192.168.0.0/16 hashkey mask 0xff00 at 16 link 4:
/sbin/tc filter add dev ifb0 parent 1:0 handle 8: protocol ip u32 divisor 256
/sbin/tc filter add dev ifb0 parent 1:0 protocol ip u32 ht 4:23: match ip dst 192.168.35.0/24 hashkey mask 0xff at 16 link 8:
#
/sbin/tc class add dev ifb0 parent 1:1 classid 1:293 htb rate 1kbit ceil 10240kbit
#
/sbin/tc class add dev ifb0 parent 1:293 classid 1:294 htb rate 1kbit ceil 10240kbit
/sbin/tc qdisc add dev ifb0 parent 1:294 handle 294: sfq
/sbin/tc filter add dev ifb0 parent 1:0 handle ::8 protocol ip prio 1 u32 ht 8:2: match ip dst 192.168.35.2/32 match ip protocol 6 0xff match ip sport 80 0xffff flowid 1:294
#
/sbin/tc class add dev ifb0 parent 1:293 classid 1:295 htb rate 1kbit ceil 10240kbit
/sbin/tc qdisc add dev ifb0 parent 1:295 handle 295: sfq
/sbin/tc filter add dev ifb0 parent 1:0 handle ::8 protocol ip prio 2 u32 ht 8:2: match ip dst 192.168.35.2/32 flowid 1:295


Качаю файлы одновременно с торрента и веб сервера, получаю разделение канала примерно 75/25, а не 50/50 как хотелось. 75% скорости забирает http трафик.
Пролистал кучу форумов, везде так же реализуют, но всё работает. Что я делаю не так?

Изменено пользователем tranger

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас