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

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


Сайдбар

Розділи

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

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.txt · Востаннє змінено: 2023/06/16 12:47 повз dnason