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

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


dnswitch

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Попередня ревізія
Остання ревізія По сторонах наступні версії
dnswitch [2014/10/17 16:34]
dnswitch [2023/06/16 12:45]
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