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

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


dnswitch

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
dnswitch [2014/10/17 16:34]
dnswitch [2023/06/16 12:47] (поточний)
dnason
Рядок 1: Рядок 1:
 +====== Динамічний шейпер ======
 + Ubilling починаючи з версії 0.1.7 підтримує нативную механіку зміни користувацьких швидкостей в обхід тарифних, в залежності від часу доби. Для керування динамічними  шейперами в довільних часових проміжках існує відповідний модуль.\\
 +Швидоксті в ньому задаются у вигляді інтервалів часу в форматі ГГ:ХХ:СС "від та до". Логіка тарифа "5 мегабіт вдень / 10 вночі" легко відстежуется по скріншоту наведенному нижче.\\
  
 +{{ :dshaper.png?500 |}}
 +
 +
 +Будьте уважні при заповненні часових відрізків - для кожного тарифу необхідні мінімум дву умови, щоб швидкість повернулась "на місце". Кількість  правил динамічного шейпера практично не обмежено (1440 правил на кожен тариф достатньо?).
 +В результаті отримаємо "день" від 08:11:00 ранку та до 23:59:59, після чого починаєтся "нічь", яка буде тривати до 08:10:59.\\
 +Для того, щоб ця вся радість працювала передбаченим чином буде потрібно запустити скрипт dnswitch (в дистрибутиві він знаходится в **docs/dshaper/**) в потрібні інтервали часу. \\
 +\\
 +В нормі передбачено, що скрипт dnswitch повинен знаходитись в директорії **/etc/stargazer** поруч з директорією **dn**:\\
 +<code>
 +# cp docs/dshaper/dnswitch.php /etc/stargazer/
 +</code>
 +
 +Також dnswitch повинен мати доступ до БД біллінгу, щоб отримувати відомості про швикдості користувачів на різних тарифах в поточний інтервал часу.
 +
 +<file php dnswitch.php>
 +//mysql settings
 +$db_host='localhost';
 +$db_database='stg';
 +$db_login='mylogin';
 +$db_password='newpassword';
 +
 +</file>
 +
 +
 +В crontab це повинно виглядати наступним чином:\\
 +<code>
 +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
 +</code>
 +
 +\\
 +У випадку, якщо Ви викорситовуєте початкові заготівлі скриптів OnConnect/OnDisconnect, //нічого більше// для успішної роботи динамічного шейпера //не потрібно//. Якщо це не так, перевірте, що в них існують наступні секції:\\
 +<file bash OnConnect>
 +/bin/echo $SPEED:`expr $ID + 18101` > /etc/stargazer/dn/$LOGIN
 +/bin/chmod 777 /etc/stargazer/dn/$LOGIN
 +</file>
 +
 +<file bash OnDisconnect>
 +/bin/rm /etc/stargazer/dn/$LOGIN
 +</file>
 +
 +Власне, це потрібно для того, щоб dnswitch знав хто з абонентів наразі онлайн (зрозуміло, що змінювати швикість неактивним абонентам безперспективно) та які пайпи dummynet їм відповідають. \\
 +\\
 +Починаючи з Ubilling 0.4.7 динамичічний шейпер вмикаєтся опцією DSHAPER_ENABLED.
dnswitch.txt · Востаннє змінено: 2023/06/16 12:47 повз dnason