Биллинговая система Nodeny
26 Ноября 2024, 02:04:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Скрипт управления скоростью (rev. 319)  (Прочитано 7668 раз)
Sidius
Постоялец
***

Карма: 0
Offline Offline

Сообщений: 130


Просмотр профиля
« : 27 Апреля 2015, 11:18:59 »

Пытались начать использовать скрипт управления скоростью. Столкнулись с непонятной проблемой.
Был создан тестовый тариф с скорость 30 мегабит в секунду на вход и 3 на выход.
В скрипте было прописано
if ( get_hour() > 10 ) { set_speed(10000) }
Клиент подключается, создаются два правила фаервола (один для исходящего трафика с скоростью 3 мегабита, другой для входящего с скоростью 30 мегабит). Вроде бы все ок.
Когда срабатывает скрипт - меняется почему-то только исходящая скорость, входящая остается такой же 30 мегабит.
При изменении входящей скорости в самом тарифе - она корректно меняется в фаерволе.
Стали копать глубже.
Сделали общую скорость для входящей и исходящей скорости. Все корректно создались записи в двух таблицах фаервола с одним и тем же номером пайпа с скоростью заданой в тарифе. При срабатывании скрипта - создается новый пайп в таблице исходящей скорости с скоростью 10 мегабит а пайп входящей скорости так и не изменяется. При использовании set_speed_in - ничего не происходит (остаются два правила в таблицах вход/выход с скоростью прописаной в тарифе). При использовании set_speed_out - создается другой пайп с скоростью из скрипта (10мегабит).
В файле noserver/scripts.pm вроде бы все ок

Код:
sub set_speed
{
    $Usr->{speed_in1} = $Usr->{speed_out1} = $_[0]*1000;
}


Подводим итог - скриптом не получается изменить входящую скорость абонента Грустный
Записан
Sidius
Постоялец
***

Карма: 0
Offline Offline

Сообщений: 130


Просмотр профиля
« Ответ #1 : 27 Апреля 2015, 21:41:29 »

Такое ощущение что я один только такой у всех все хорошо? Не верю (С)
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #2 : 27 Апреля 2015, 21:58:18 »

noserver.pl построен таким образом, что к нему можно подключать множество модулей, которые управляют скоростью. Таким образом, получается конфликт, когда один модуль ставит одну скорость, другой - иную. Какую взять? Для разруливания этой ситуации принял правило: берется бОльшая скорость.

Следовательно, необходимо изменить скрипт и скорости в услуге таким образом, чтобы в услуге были минимальные значения.

Например, в услуге поставь входящую скорость в 3 и исходящую в 3. Даже если у тебя такого тарифа и нет, он рисуется скриптом:

в период времени до 10 часов устанавливай скорость 3 на 30
в период времени после 10 часов: 10 на 10
Записан
vasil.german
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 6


Просмотр профиля Email
« Ответ #3 : 05 Мая 2015, 22:48:32 »

Код:
if (
   get_hour() >= 18
&& get_hour() <  22
&& traf(60) < 2048000
)
{ set_speed_in(100000); return }

if (
traf(720) < 20480000
)
{ set_speed_in(100000) }

Зравствуйте, подскажите пожалуйста, такой скрипт будет правильно решать задачу: с 18 до 22.59 если трафик за час меньше 2гб то «Входящая скорость 1» 100мб, иначе по умолчанию. В иное время если трафик за последние 720 мин меньше 20гб то  «Входящая скорость 1» 100мб, иначе  по умолчанию.

Входящая скорость 1 в настройках тарифа задана = 20 Мбит/сек.
NoDeny+ (rev. 319).

ПС: если я правильно понял то конструкция
Код:
 if (
traf(720) < 20480000
)
{ set_speed_in(100000) }
не должна действовать в промежуток времени с 18 до 22.59. Но есть подозрение что она (конструкция) сделает свое дело в 17.59 и правило будет действовать 720 мин или пока не наберется 20гб. Если да то как решить задачу?
ПС2: В ipfw не силен. Прошу понять и простить. Буду штурмовать.

Итог: надо нарезать в час пик(18–22.59) хомячкам 20мб если скачали за последний час больше 2гб. В иное время пусть качают но не больше 20гб за 720мин. иначе тоже 20мб. 720мин. именно потому чтобы если ночью закончил качать, то когда проснется было снова 100мб.

Заранее всем спосибо!
Записан
ux0qt
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 16


Просмотр профиля Email
« Ответ #4 : 11 Мая 2015, 12:30:14 »

Такое ощущение что я один только такой у всех все хорошо? Не верю (С)
Тоже самое происходит (rev. 320)   , пока просто отказался от использования скриптов.
Записан
vasil.german
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 6


Просмотр профиля Email
« Ответ #5 : 11 Мая 2015, 21:14:09 »

Надо нарезать скриптом в час пик(18–22.59) хомячкам 20мб если скачали за последний час больше 2гб. В иное время пусть качают но не больше 20гб за 720мин. иначе тоже 20мб. 720мин. именно потому чтобы если ночью закончил качать, то когда проснется было снова 100мб.

Подскажите пожалуйста !
Записан
vasil.german
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 6


Просмотр профиля Email
« Ответ #6 : 11 Мая 2015, 21:24:08 »

Код:

if ( get_hour() >= 18
     && get_hour() <  22
     && traf(60) < 2048000
)  { set_speed_in(100000) }

if (
   get_hour() >= 23
   && get_hour() <  17
   &&traf(720) < 20480000
)  { set_speed_in(100000) }

или

Код:
if ( get_hour() >= 18
     && get_hour() <  22
)  {  if (traf(60) < 2048000)
         { set_speed_in(100000) }
       else {return}
   }

if (
traf(720) < 20480000
)
{ set_speed_in(100000) }
как будет правильно ?

Неплохо было бы добавить в скрипт возможность проверять общую нагрузку по  трафику. Например, если  канал за 10мин меньше 500мбит то установить скорость 100мбит.
« Последнее редактирование: 11 Мая 2015, 22:07:39 от vasil.german » Записан
vasil.german
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 6


Просмотр профиля Email
« Ответ #7 : 12 Мая 2015, 16:04:55 »

Итак, рабочий скрипт под мои нужды :

Код:
if (
   get_hour() >= 18
&& get_hour() <  22
)
{  if (traf(60) < 2048000)
   { set_speed_in(100000); return }
   else {return}
}

if (
traf(720) < 20480000
)
{ set_speed_in(100000) }

ПРОВЕРЕНО !!!
Записан
Nafanya
NoDeny
Старожил
*

Карма: 1
Offline Offline

Сообщений: 459


412112973
Просмотр профиля Email
« Ответ #8 : 09 Ноября 2019, 09:19:07 »

noserver.pl построен таким образом, что к нему можно подключать множество модулей, которые управляют скоростью. Таким образом, получается конфликт, когда один модуль ставит одну скорость, другой - иную. Какую взять? Для разруливания этой ситуации принял правило: берется бОльшая скорость.

Следовательно, необходимо изменить скрипт и скорости в услуге таким образом, чтобы в услуге были минимальные значения.

Например, в услуге поставь входящую скорость в 3 и исходящую в 3. Даже если у тебя такого тарифа и нет, он рисуется скриптом:

в период времени до 10 часов устанавливай скорость 3 на 30
в период времени после 10 часов: 10 на 10

Сделал по рекомендации (возникла необходимость). Не работает.
Цитировать
if (
   get_hour() >= 01
&& get_hour() <  09
)
   { set_speed_in(20000); return }
if (
   get_hour() >= 08
&& get_hour() <  20
)
   { set_speed_in(10000); return }
Может что-то не так? Помогите, Подскажите.
Релиз самый крайний.
Записан

Кому то Бог дал ручки, а кому то - грабельки.
Nafanya
NoDeny
Старожил
*

Карма: 1
Offline Offline

Сообщений: 459


412112973
Просмотр профиля Email
« Ответ #9 : 09 Ноября 2019, 12:30:20 »

как бы сделал, работает.
Цитировать
if( get_hour() >= 1 &&
    get_hour() <  9
) { set_speed_in(20000); return }
if( get_hour() >= 9 &&
    get_hour() <  20
) { set_speed_in(10000); return }
if( get_hour() >= 23 &&
    get_hour() <  24
) { set_speed_in(10000); return }
if( get_hour() >= 0 &&
    get_hour() <  1
) { set_speed_in(10000) }
Если есть ошибки - подскажите.
Есть вопрос, может кто подскажет. У клиентов стоит удвоение скорости. Она будет работать? Или будет работать скрипт?
Спасибо.
Записан

Кому то Бог дал ручки, а кому то - грабельки.
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #10 : 12 Ноября 2019, 02:04:40 »

что значит "У клиентов стоит удвоение скорости"? это модуль какой-то?
Записан
Nafanya
NoDeny
Старожил
*

Карма: 1
Offline Offline

Сообщений: 459


412112973
Просмотр профиля Email
« Ответ #11 : 12 Января 2020, 22:13:49 »

что значит "У клиентов стоит удвоение скорости"? это модуль какой-то?
Повышение скорости в услугах.Все работает. Разобрался. Спасибо.
Записан

Кому то Бог дал ручки, а кому то - грабельки.
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!