Jump to content

Recommended Posts

Posted

Всем привет. Используем тазик на линуксе. Канал от аплинка - гигабит. Дальше расширять пока не можем - требуется замена оборудования у аплинка, ждем. Появилось желание указать шейперу максимальную скорость аплинка. Авторизация - PPPoE. Сейчас скорость нарезаю таким скриптом в ip-up

 

/sbin/tc qdisc del dev $1 root > /dev/null
/sbin/tc qdisc del dev $1 ingress > /dev/null

##### speed server->client
/sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 68
/sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit burst 51k cburst 2k
/sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit burst 51k cburst 2k prio 2
/sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit burst 51k cburst 2k prio 3
/sbin/tc class add dev $1 parent 1:1 classid 1:30 htb rate 100Mbit ceil 100Mbit burst 51k cburst 2k prio 1    ##IPTV###
/sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1500
/sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1500
/sbin/tc qdisc add dev $1 parent 1:30 handle 30: sfq perturb 10 quantum 1500    ##IPTV###
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 4 u32 match ip protocol 6 0xff match ip src 10.11.11.1 match ip sport 8888 0xffff flowid 1:30 ##IPTV###
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10

##### speed client->server
/sbin/tc qdisc add dev $1 handle ffff: ingress
/sbin/tc filter add dev $1 parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kbit burst 1024kb drop flowid :1

Как настроить желаемое? Или где об этом почитать?

Posted

Т.е, указываю тут 1000Mbit открытым текстом и все работает?

 

нельзя указывать 1Гбит. Попадёте на шейпер аплинка или упрётесь в скорость порта, будут дропы.

Нужно указывать на 10% меньше - 900Мбит ну или 950. Смотреть как работает.

 

У нас такая же проблема с аплинком. Канал 1,1Гбит обрезан на 1Гбит.

Posted

Т.е, указываю тут 1000Mbit открытым текстом и все работает?

Вот мой кусок скрипта для 2G канала, насколько помню обязательно нужно указывать rate/ceil.

qdisc add dev bond0.2 root handle 2 htb default d
class add dev bond0.2 root  htb rate 1900Mbit ceil 1900Mbit  quantum 65535

class add dev bond0.2 parent 2:0 classid 2:d htb rate 1900Mbit ceil 1900Mbit  quantum 65535
qdisc add dev bond0.2 parent 2:d handle d pfifo  limit 10000

  • 9 months later...
Posted

Поднимаю свою тему вновь. Переросли 1г, теперь нас полисят и как-то все это перестало работать. Сейчас канал 1,2гигабита. Пробовал уменьшать rate вплоть до 100 мегабит, все равно стучимся в полисер вышестоящего оператора. При нехватке входящего канала скорости не уменьшаются пропорционально, а кто как может, тот так и качает. Что изменить?

 

Текущий вариант скрипта ip-up. Ограничиваются скорости на ppp интерфейсах.

/sbin/tc qdisc del dev $1 root > /dev/null
/sbin/tc qdisc del dev $1 ingress > /dev/null
fi
##### speed server->client
/sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 10
/sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit quantum 65535
if [ "$UPSPEED" -ge "6000" ] ;
then
/sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate 2Mbit ceil ${UPSPEED}kbit burst 60k cburst 200k prio 1
/sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate 2Mbit ceil ${UPSPEED}kbit burst 60k cburst 200k prio 2
/sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1600
/sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1600
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flo$
#######Мелкие тарифы до 6000Kbit/sec#########################################
else
/sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit burst 20k prio 1
/sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit burst 20k prio 2
/sbin/tc qdisc add dev $1 parent 1:10 handle 10: sfq perturb 10 quantum 1600
/sbin/tc qdisc add dev $1 parent 1:20 handle 20: sfq perturb 10 quantum 1600
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
/sbin/tc filter add dev $1 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flo$
fi

Это при старте вешается на внутренний интерфейс

/sbin/tc qdisc del dev eth1 root
/sbin/tc qdisc add dev eth1 root handle 2 htb default d
/sbin/tc class add dev eth1 root  htb rate 1080Mbit ceil 1080Mbit  quantum 65535
/sbin/tc class add dev eth1 parent 2:0 classid 2:d htb rate 1080Mbit ceil 1080Mbit  quantum 65535
/sbin/tc qdisc add dev eth1 parent 2:d handle d pfifo  limit 10000

 

Posted

Решил собирать нормальное дерево. Подключил ifb0, направил туда трафик с аплинка. Возникают вопросы о хэш фильтрах. И вот тут мои познания резко заканчиваются. Как работать с хэшами? Или, может быть, скриптом кто-то поделится?

Posted
15 часов назад, myth сказал:

Решил собирать нормальное дерево. Подключил ifb0, направил туда трафик с аплинка. Возникают вопросы о хэш фильтрах. И вот тут мои познания резко заканчиваются. Как работать с хэшами? Или, может быть, скриптом кто-то поделится?

https://sourceforge.net/p/leaf/bering-uclibc/ci/master/tree/repo/hash-shaper/

использование https://sourceforge.net/p/leaf/bering-uclibc/ci/master/tree/repo/ppp-hsh/

Posted

Подправил немного скрипт. Классы создались, скорость согласно классам нарезается. Но не могу заставить работать set speed. Правила применяются, но, такое ощущение, что куда-то не туда...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.