Возник вопрос такой.
Сделал шейпер как в статье, все работает, НО у некоторых абонентов скорость выше чем должна быть.
Как это проверить, почему больше?
POPTOP,RADUIS-атрибуты и SHAPER
Re: POPTOP,RADUIS-атрибуты и SHAPER
Спасибо... посмотрим...XAMeLeOH писал(а):Не сработал в local потому что в ip-up есть строка:A!eX-gRey писал(а): собственно сам шейпер
предлагают создать фаил /etc/ppp/ip-up.local c содержанием:*у меня такой способ не сработал.. этот скрипт добавлял в /etc/ppp/ip-upКод: Выделить всё
if [ -f /var/run/radattr.$1 ] then DOWNSPEED=`/bin/awk '/PPPD-Downstream-Speed-Limit/ {print $2}' /var/run/radattr.$1` UPSPEED=`/bin/awk '/PPPD-Upstream-Speed-Limit/ {print $2}' /var/run/radattr.$1` FILTERS=`/bin/awk '/Filter-Id/ {print $2}' /var/run/radattr.$1` /sbin/tc qdisc del dev $1 root > /dev/null /sbin/tc qdisc del dev $1 ingress > /dev/null ##### speed server->client if [ "$UPSPEED" != "0" ] ; then /sbin/tc qdisc add dev $1 root handle 1: htb default 20 r2q 1 /sbin/tc class add dev $1 parent 1: classid 1:1 htb rate ${UPSPEED}kbit burst 4k /sbin/tc class add dev $1 parent 1:1 classid 1:10 htb rate ${UPSPEED}kbit burst 4k prio 1 /sbin/tc class add dev $1 parent 1:1 classid 1:20 htb rate ${UPSPEED}kbit burst 4k prio 2 /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 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 u160x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10 fi ##### speed client->server if [ "$DOWNSPEED" != "0" ] ; then /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 12k drop flowid :1 fi fi
ничего сложного..Таким образом все полученные аргументы в скрипте local идут как один. Можно в самом начале скрипта сделать запись вида:Код: Выделить всё
exec /etc/ppp/ip-up.local "$*"
И заменить везде $1 на $IFACEКод: Выделить всё
IFACE=`/bin/echo "$@" | /usr/bin/gawk '{print $1}' /dev/stdin`
давно здесь не был....