myth Posted February 25, 2017 Posted February 25, 2017 Всем привет. Используем тазик на линуксе. Канал от аплинка - гигабит. Дальше расширять пока не можем - требуется замена оборудования у аплинка, ждем. Появилось желание указать шейперу максимальную скорость аплинка. Авторизация - 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 Как настроить желаемое? Или где об этом почитать? Вставить ник Quote
BETEPAH Posted February 25, 2017 Posted February 25, 2017 /sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit burst 51k cburst 2k Плохо помню tc, но вроде здесь и задаётся через $UPSPEED скорость аплинка. Вставить ник Quote
myth Posted February 25, 2017 Author Posted February 25, 2017 Т.е, указываю тут 1000Mbit открытым текстом и все работает? Вставить ник Quote
AKim Posted February 26, 2017 Posted February 26, 2017 Т.е, указываю тут 1000Mbit открытым текстом и все работает? нельзя указывать 1Гбит. Попадёте на шейпер аплинка или упрётесь в скорость порта, будут дропы. Нужно указывать на 10% меньше - 900Мбит ну или 950. Смотреть как работает. У нас такая же проблема с аплинком. Канал 1,1Гбит обрезан на 1Гбит. Вставить ник Quote
kayot Posted February 26, 2017 Posted February 26, 2017 Т.е, указываю тут 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 Вставить ник Quote
BETEPAH Posted February 26, 2017 Posted February 26, 2017 И ещё есть проблема, если порт гигабитный, то гигабита не добьётесь. У меня было где-то 950 мбит. Тут уже на десятку надо переходить. Вставить ник Quote
myth Posted February 26, 2017 Author Posted February 26, 2017 (edited) Утилизировать могу 987 мегабит. Указал 950, буду наблюдать. Спасибо. Указал там же, в ip-up. Это корректно? Edited February 26, 2017 by myth Вставить ник Quote
myth Posted November 26, 2017 Author Posted November 26, 2017 Поднимаю свою тему вновь. Переросли 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 Вставить ник Quote
myth Posted November 28, 2017 Author Posted November 28, 2017 Решил собирать нормальное дерево. Подключил ifb0, направил туда трафик с аплинка. Возникают вопросы о хэш фильтрах. И вот тут мои познания резко заканчиваются. Как работать с хэшами? Или, может быть, скриптом кто-то поделится? Вставить ник Quote
BETEPAH Posted November 29, 2017 Posted November 29, 2017 http://www.opennet.ru/docs/RUS/LARTC/x1661.html Вставить ник Quote
NiTr0 Posted November 29, 2017 Posted November 29, 2017 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/ Вставить ник Quote
myth Posted November 29, 2017 Author Posted November 29, 2017 меняю в скрипте src на dst и получаю дерево для входящего трафика? Вставить ник Quote
myth Posted November 29, 2017 Author Posted November 29, 2017 Подправил немного скрипт. Классы создались, скорость согласно классам нарезается. Но не могу заставить работать set speed. Правила применяются, но, такое ощущение, что куда-то не туда... Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.