Страница 1 из 1

Шейпер=32

Добавлено: Пн июл 28, 2008 6:30 am
yes
Я понимаю, что данная проблема не относится к abills, но я тут задал вопрос, потому что взял скриптик с этого форума.

Для тестирование шейпера, я выставил клиенту значение 32
И при закачке с самого сервера, в браузере Firefox 3 отображается скорость закачки 3,0 - 3,7 килобайт, если подсчитать, 32 килобит\8 бит=4 килобайт

Почему нет соответствия?
Канал не загружен, то есть я только закачку делаю с самого сервера.

файлик
# cat /var/run/radattr.ppp0

Код: Выделить всё

MS-CHAP2-Success \231S=53ED947F79E758C75E4D0B8749DDE9C2BB20CC6C
MS-MPPE-Recv-Key \306\203S\2766\230\332f\210\272M\330\373\3641\331\231\335\363\016\231\307Ab\006\354\236\244`\210gm\352e
MS-MPPE-Send-Key \315\3356,\305-\353'[\232'{\355\341\342f\025\006\341\035\326P\203\005\245c\024\372k\005\002\016\377#
MS-MPPE-Encryption-Policy
MS-MPPE-Encryption-Types
Session-Timeout 286598
Session-Octets-Limit 2146435072
PPPD-Downstream-Speed-Limit 32
Acct-Interim-Interval 60
PPPD-Upstream-Speed-Limit 32
Octets-Direction Input
Framed-IP-Address 172.26.20.21
Framed-IP-Netmask 255.255.255.255
Скриптик
# cat /etc/ppp/ip-up.local

Код: Выделить всё

 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`
 #echo $DOWNSPEED
 #echo $UPSPEED
 #echo $FILTERS
    /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

Добавлено: Пн июл 28, 2008 7:14 am
ran
rate ${UPSPEED}kbit
kbit по понятиям ипроут2 это 1000 * bit (а не 1024 как ты думаешь :P ). Зато есь kibit - вот это уже 1024. Соотвтетственно есь mibit и gibit. К сож это нигде не документировано, даже в инете не нашёл. Но ежли внимательно посмотреть сырцы ипроут2... :wink: Ток не надо орать типа мля какого @#$%!!! - это к Кузнецову (а мож и не к нему, мож это уже потом кто-то) :D

Добавлено: Пн июл 28, 2008 8:58 am
yes
ran писал(а):
rate ${UPSPEED}kbit
kbit по понятиям ипроут2 это 1000 * bit (а не 1024 как ты думаешь :P ). Зато есь kibit - вот это уже 1024. Соотвтетственно есь mibit и gibit. К сож это нигде не документировано, даже в инете не нашёл. Но ежли внимательно посмотреть сырцы ипроут2... :wink: Ток не надо орать типа мля какого @#$%!!! - это к Кузнецову (а мож и не к нему, мож это уже потом кто-то) :D
хорошо, попробую подсчитать :)

Добавлено: Пн июл 28, 2008 9:03 am
ran
а чё пробовать - пиши rate ${UPSPEED}kibit

Добавлено: Пн июл 28, 2008 9:13 am
ran
кроме того, следует учитывать служебный трафик т.е. скорость реальной закачки бедет немного меньше. Кроме того ежли нада просто ограничивать скорость на ифейсе (без разделения на какие бы то ни было полклассы) советую использовать не HTB а TBF

Добавлено: Вт июл 29, 2008 7:03 am
yes
А есть ли ще скриптики шейпера?
Писать я сам не могу (не дорос еще), хочу потестить, сравнить.

Насчет HTB понятно, так как это щас у меня, а как TBF использовать, есть ли готовое решение?

Добавлено: Вт июл 29, 2008 7:11 am
yes
Может эта тема как раз?

Желающим помочь

Добавлено: Вт июл 29, 2008 7:31 am
ran
Вот мой бывший скрипт /etc/ppp/ip-pre-up он рабочий (можешь сразу юзать) просто сейчас у меня всё совсем по-другому:

Код: Выделить всё

#!/bin/bash

TC=/usr/sbin/tc

if [ -f /var/run/radattr.$1 ] ;
then
    DOWNSPEED=`/usr/bin/awk  '/PPPD-Downstream-Speed-Limit/ {print $2}'  /var/run/radattr.$1`
    UPSPEED=`/usr/bin/awk  '/PPPD-Upstream-Speed-Limit/ {print $2}'  /var/run/radattr.$1`
    
    $TC qdisc del dev $1 root    > /dev/null
    $TC qdisc del dev $1 ingress > /dev/null
    
 ##### speed server->client
    if [ "$UPSPEED" != "0" ] ;
    then
	$TC qdisc add dev $1 root tbf rate ${UPSPEED}kibit burst 1540 limit 20kb
    fi 

 ##### speed client->server
   if [ "$DOWNSPEED" != "0" ] ;
   then
	$TC qdisc add dev $1 handle ffff: ingress
        $TC filter add dev $1 parent ffff: protocol ip \
	    prio 50 u32 match ip src 0.0.0.0/0 police rate ${DOWNSPEED}kibit \
	    burst 12k drop flowid :1
   fi
fi

Добавлено: Вт июл 29, 2008 8:58 am
yes
Спасибо, попробую, отпишусь.

А этот файлик вместо ip-up.local использовать? или просто создать этот файл с таким же именем ip-pre-up

Добавлено: Вт июл 29, 2008 9:09 am
ran
man pppd писал(а): /etc/ppp/ip-pre-up
A program or script which is executed just before the ppp network interface is brought up.
It is executed with the same parameters as the ip-up script (below). At this point the
interface exists and has IP addresses assigned but is still down. This can be used to add
firewall rules before any IP traffic can pass through the interface. Pppd will wait for this
script to finish before bringing the interface up, so this script should run quickly.

/etc/ppp/ip-up
A program or script which is executed when the link is available for sending and receiving IP
packets (that is, IPCP has come up). It is executed with the parameters

interface-name tty-device speed local-IP-address remote-IP-address ipparam

Добавлено: Ср июл 30, 2008 1:17 am
yes
Гм, попробовал (изменил путь к tc). БЛОГАДАРЮ.

Хотя, результат отличный HTB
Немного больше положенного, то есть вместо 64 у меня бывает 67, но это не критично и как раз подойдёт, не жадные мы :). может замеры не точные хотя результат меня удовлетворяет.

А что подразумевает подкласы?
Кроме того ежли нада просто ограничивать скорость на ифейсе (без разделения на какие бы то ни было полклассы) советую использовать не HTB а TBF
И как грузят систему в целом HTB и TBF?

Добавлено: Ср июл 30, 2008 5:32 am
ran
Немного больше положенного, то есть вместо 64 у меня бывает 67
а ты уверен, что у твоей считалки кило = 1024, а не 1000? :wink:
А что подразумевает подкласы?
TBF - простая безклассовая дисциплина обслуживания, HTB - классовая... дальше зучай сам, если интересно. Иожешь начать с этого и ватетого

Добавлено: Сб сен 27, 2008 5:01 pm
GawkV
http://www.dzti.edu.lv/isp-serv/
очень неплохая статейка и довольно доступно всё расписано, даже есть готовые решения