Користувальницькькі налаштування

Налаштування сайту


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації до оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Допомога проекту
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

dnswitch

Це стара версія документу!


Динамический шейпер

Ubilling начиная с версии 0.1.7 поддерживает нативную механику изменения пользоватльских скоростей в обход тарифных, в зависимости от времени суток. Для управления динамическими шейперами в произвольных временных отрезках, существует соответствующий модуль.
Скоростя в нем задаются в виде интервалов времени в формате ЧЧ:ММ:СС “от и до”. Логика построения тарифа “5 мегабит днем / 10 ночью” легко прослеживается по скриншоту приведенному ниже.

Будьте внимательны при заполнении временных рамок - для каждого тарифа требуется минимум два условия, чтобы скорость вернулась “на место”. Количество правил динамического шейпера практически не лимитировано (1440 правил на каждый тариф достаточно?). Итого получаем “день” от 08:11:00 утра и до 23:59:59, после чего начинается “ночь”, которая продлится до 08:10:59.
Для того, чтобы эта вся радость работала предусмотреным образом нам потребуется вызов скрипта dnswitch (в дистрибутиве он находится в docs/dshaper/) в нужные интервалы времени.

В норме предусмотрено, что скрипт dnswitch должен лежать в директории /etc/stargazer рядом с директорией dn:

# cp docs/dshaper/dnswitch.php /etc/stargazer/

Также dnswitch должен иметь доступ к БД биллинга, чтобы получать сведения о скоростях пользователей на разных тарифах в текущий интервал времени.

dnswitch.php
//mysql settings
$db_host='localhost';
$db_database='stg';
$db_login='mylogin';
$db_password='newpassword';

В crontab это должно выглядеть следующим образом:

02 0  * * *     /usr/local/bin/php /etc/stargazer/dnswitch.php >> /var/log/dn.log
12 8  * * *     /usr/local/bin/php /etc/stargazer/dnswitch.php >> /var/log/dn.log


В случае если вы используете изначальные заготовки скриптов OnConnect/OnDisconnect ничего больше для успешной работы динамического шейпера не требуется. Если же это не так, убедитесь, что в них присутствуют следующие секции:

OnConnect
/bin/echo $SPEED:`expr $ID + 18101` > /etc/stargazer/dn/$LOGIN
/bin/chmod 777 /etc/stargazer/dn/$LOGIN
OnDisconnect
/bin/rm /etc/stargazer/dn/$LOGIN

Собственно это нужно для того, чтобы dnswitch знал какие абоненты сейчас находятся онлайн (ясно, что для неактивных крутить шейпер бесперспективно) и какие пайпы dummynet им соответствуют.
Начиная с Ubilling 0.4.7 динамический шейпер включается опцией DSHAPER_ENABLED.

dnswitch.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1