shaper

Установка, настройка, поддержка
Ответить
darklord
Сообщения: 2
Зарегистрирован: Сб дек 01, 2007 2:51 pm

shaper

Сообщение darklord »

объясните как настроить шейпер в линуксе... почитал маны про радиус и прочее какие тут были, все сделал так акк написано, но реакции 0, может у кого опыт свой был, поделитесь как сделали...

core
Сообщения: 32
Зарегистрирован: Пт июн 29, 2007 9:14 am

Сообщение core »

В мане вполне рабочий шейпер. Проверь отдает ли радиус нужные атрибуты ( в файле /var/run/radattr.pppX )

darklord
Сообщения: 2
Зарегистрирован: Сб дек 01, 2007 2:51 pm

Сообщение darklord »

атрибуты передаются... правда пока не понял заработало все это дело или нет... т.е. в файлах /var/run/radattr.pppX есть атрибуты и даунстрима и апстрима, но вроде у одного сработало, а у другого вапще зашкалило

ran
Сообщения: 2298
Зарегистрирован: Вс окт 21, 2007 2:29 pm

Сообщение 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`
    FILTERS=`/usr/bin/awk  '/Filter-Id/ {print $2}'  /var/run/radattr.$1`

    test -n "$FILTERS" && /sbin/ip ru add from $5 iif $1 table $FILTERS >/dev/null 2>&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 * 1024 ))bit 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 * 1024))bit \
            burst 12k drop flowid :1
   fi
fi
И /etc/ppp/ip-down.local:

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

#!/bin/bash


if [ -f /var/run/radattr.$1 ] ;
then
    FILTERS=`/usr/bin/awk  '/Filter-Id/ {print $2}'  /var/run/radattr.$1`
    test -n "$FILTERS" && /sbin/ip ru del from $5 iif $1 table $FILTERS >/dev/null 2>&1
fi

От того, что в мануале отличается только тем, что у меня через FILTERS передаётся имя таблицы маршрутизации, через которую надо пробрасывать клиента (у меня разные клиенты работают через разных провайдеров) и дисциплину обслуживания очереди я tbf ставлю. А проверяется элементарно:

billing:/etc/ppp # tc -s -d qdisc ls dev ppp1
qdisc tbf 80c5: rate 131072bit burst 1539b/8 mpu 0b lat 1.2s
Sent 3179109 bytes 4492 pkt (dropped 106, overlimits 9093 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
qdisc ingress ffff: ----------------
Sent 717803 bytes 4429 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0

Ответить