Перейти до

Микротик. Динамический шейпер


Рекомендованные сообщения

Доброй ночи.

Пытаюсь настроит динамический шейпер, но он не отрабатывает. С помощью tcpdump выловил такое
/queue/simple/set id=*1E2.=  max-limit=11000k/11000k.=burst-limit=k/11000k.=  burst-threshold=8800k/8800k.=burst-time=0/0
trap(=message=failure: no download-burst-time  done.

Чего ему не хватает?
 

Відредаговано ronin_zp
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, ronin_zp сказал:

Доброй ночи.

Пытаюсь настроит динамический шейпер, но он не отрабатывает. С помощью tcpdump выловил такое
/queue/simple/set id=*1E2.=  max-limit=11000k/11000k.=burst-limit=k/11000k.=  burst-threshold=8800k/8800k.=burst-time=0/0
trap(=message=failure: no download-burst-time  done.

Чего ему не хватает?
 

Цитата

message=failure: no download-burst-time 

Видимо не хватает поля download-burst-time

Ссылка на сообщение
Поделиться на других сайтах

То, что этого поля не хватает - понятно. 

Непонятно куда его прописывать. Используются simple queues. Без динамического шейпера всё работает нормально. Динамический шейпер настраивается по официальной инструкции в которой есть только то, как добавить в крон. На серверах с rscriptd динамический шейпер работает без проблем. Где и что нужно добавить в биллинге чтобы динамический шейпер заработал и на микротике? 

Ссылка на сообщение
Поделиться на других сайтах

по всей вероятности надо просить бак фиксы у тех кто пилил это к микротам

вроде это бобер делал

 

я конечно ткну пальцем в небо - покажите скрин скорости тарифов

 

вестимо собака где-то тут порылась

github

Відредаговано l1ght
Ссылка на сообщение
Поделиться на других сайтах

мдя, код довольно таки грязный

'burst-time' => $eachlogin['burstimetupload'] . '/' . $eachlogin['bursttimedownload']


'max-limit' => $eachlogin['speedup'] . 'k/' . $eachlogin['speed'] . 'k',

'burst-limit' => $eachlogin['burstupload'] . 'k/' . $eachlogin['speed'] . 'k',

'burst-threshold' => ($eachlogin['speedup'] * 0.8) . 'k/' . ($eachlogin['speed'] * 0.8) . 'k',

'burst-time' => $eachlogin['burstimetupload'] . '/' . $eachlogin['bursttimedownload']

 

Ссылка на сообщение
Поделиться на других сайтах

>> мдя, код довольно таки грязный

Во-первых - никто не запрещает сделать чище.

Во-вторых - код частично основан на коде другого человека.

В третьих - возможно завтра будет время на проверить...

Відредаговано bobr-kun
  • Like 1
Ссылка на сообщение
Поделиться на других сайтах
38 минут назад, bobr-kun сказал:

Во-первых - никто не запрещает сделать чище.

ну я уже начал помогать обратив на это внимание :)

 

39 минут назад, bobr-kun сказал:

Во-вторых - код частично основан на коде другого человека.

 

ну это не повод мёрджить в мастер ветку без проверки
 

40 минут назад, bobr-kun сказал:

 В третьих - возможно завтра будет время на проверить...

Если нужна помощь - пишите. В пхп не силён - но вычитать код, протестировать и подебажить - всегда пожалуйста.

Ссылка на сообщение
Поделиться на других сайтах

>> ну это не повод мёрджить в мастер ветку без проверки

Это с чего это оно вдруг стало без тестирования мерджится? С чего вы взяли? Аж неделю работало на RouterOS 6.41. Потом было отключено за ненадобностью, но вот в ближайшем будущем планируется "полномасштабное использование". Так что завтра постараюсь выкроить время перепроверить на 6.43.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
9 минут назад, bobr-kun сказал:

Аж неделю работало на RouterOS 6.41. Потом было отключено за ненадобностью, но вот в ближайшем будущем планируется "полномасштабное использование". Так что завтра постараюсь выкроить время перепроверить на 6.43.

не заработало на 6.40.4 и 6.42.6
 

 

9 минут назад, bobr-kun сказал:

Это с чего это оно вдруг стало без тестирования мерджится? С чего вы взяли?

  как минимум из за этого, поправьте если я ошибаюсь

'max-limit' => $eachlogin['speedup'] . 'k/' . $eachlogin['speed'] . 'k',

'burst-limit' => $eachlogin['burstupload'] . 'k/' . $eachlogin['speed'] . 'k',

'burst-threshold' => ($eachlogin['speedup'] * 0.8) . 'k/' . ($eachlogin['speed'] * 0.8) . 'k',

'burst-time' => $eachlogin['burstimetupload'] . '/' . $eachlogin['bursttimedownload']


первые три строки для download одна и та же переменная, хотя в правилах динамического шейпера скорость для даунлоад тоже меняется
и в последней строке явная опечатка - burstimetupload против bursttimedownload

 

 

P.S.: кстати, как оно себя поведёт при выключенном режиме BURST в alter.ini ?

 

Відредаговано ronin_zp
Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, ronin_zp сказал:

не заработало на 6.40.4 и 6.42.6
 

 

  как минимум из за этого, поправьте если я ошибаюсь


'max-limit' => $eachlogin['speedup'] . 'k/' . $eachlogin['speed'] . 'k',

'burst-limit' => $eachlogin['burstupload'] . 'k/' . $eachlogin['speed'] . 'k',

'burst-threshold' => ($eachlogin['speedup'] * 0.8) . 'k/' . ($eachlogin['speed'] * 0.8) . 'k',

'burst-time' => $eachlogin['burstimetupload'] . '/' . $eachlogin['bursttimedownload']


первые три строки для download одна и та же переменная, хотя в правилах динамического шейпера скорость для даунлоад тоже меняется
и в последней строке явная опечатка - burstimetupload против bursttimedownload

 

 

P.S.: кстати, как оно себя поведёт при выключенном режиме BURST в alter.ini ?

 

я скриншота так и не увидел

Ссылка на сообщение
Поделиться на других сайтах

Ну так первый скриншот. Первые две колонки. Уж простите - но скриншотить всю тарифную сетку я не стал, по вполне понятным причинам.

Ссылка на сообщение
Поделиться на других сайтах

Я не просто так скриншот просил. Просто ваш так криво сделан, что я не сразу понял что это что я просил.

И раз вы уже код начали читать то почитайте внимательно где вы провтыкали.

Відредаговано l1ght
Ссылка на сообщение
Поделиться на других сайтах

вставлял я туда другие значения, ошибка остаётся по причине burstimetupload
локально у себя я поправить могу, но со следующим обновлением опять грабли вылезут
ладно, будет время перепишу код с исправлением и с учётом отключенной опции burst и закоммичу в репозиторий 

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, ronin_zp сказал:

ладно, будет время перепишу код с исправлением и с учётом отключенной опции burst и закоммичу в репозиторий 

с этим к Бобру - он теперь занимается микротиками и прочим порно

Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, ronin_zp сказал:

и в последней строке явная опечатка - burstimetupload против bursttimedownload

нет, это не опечатка - это так исторически сложилось имя поля в БД

 

18 часов назад, ronin_zp сказал:

P.S.: кстати, как оно себя поведёт при выключенном режиме BURST в alter.ini ?

а вот это интересный вопрос. но, емнип, я это "предвидел" и пробовал. а может это моя фантазия. в любом случае - сейчас буду ковырять.

Ссылка на сообщение
Поделиться на других сайтах

Итак: похоже, в те несколько раз, когда мне приходилось складировать еще не готовый код "на полку", чтобы быстро сделать мелкий фикс, я где-то прое...ошибся и вытащил из полки не совсем свежий код микротикового динамик шейпера, ибо вот этот кусок

log_register('MT_DN_SHAPER ' . $Action . ' done to `' . $UsersCnt . '` users');
die('OK:MT_DN_SHAPER');

я точно "выносил из froeach" - хорошо помню этот момент, когда фича работала только для одного абона, но исправно рапортовала, что для всех =). А в остальном все таки работает.

Вот с burst'ами - да, если их в тарифе не было предусмотрено - все разваливалось. Но эмпирическим путем я выяснил, что критичным для микрота является именно параметр burst-time - если он не установлен(пустой) - гембель. А вот к скоростям burst'ов таких жестких требований нет. Так что теперь мы учитываем это вот все и, если хотя бы один из четырех параметров burst'ов пуст - делаем изменения только для скорости download.

 

Теперь пойду еще потестирую немного и буду опять корячится, чтобы собрать пуллреквест...

Ссылка на сообщение
Поделиться на других сайтах
18 часов назад, l1ght сказал:

image.thumb.png.7ed223b2754691fc3b4f645490c0443f.png

 

Я просил скрин скорости тарифов

Должны быть заполнены соответствующие поля

В демке почему "burst полей" как на скрине нет и создать не получается ?

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, sanyadnepr сказал:

В демке почему "burst полей" как на скрине нет и создать не получается ?

бурсты по дефолту отключены

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від x-net
      Продам вживаний світч Mikrotik CSS326-24G-2S+: 24 мідних гігових та 2 SFP+ порти, вуха, коробка, БЖ. 4 тис. грн.
    • Від igra
      Привіт. Підскажіть таке питання.  Є два канала.  один по оптиці другий резерв на 4g. канали перелючаються все ок.  на оптиці все парцює в правилах фаєрвола проброс портів указан на sfp інтерфейс. при відключення накалана sfp  не можу зайти с канала 4г. вказую що інтерфейс 4г порти не прокидує. як вказати сразу два інтерфейса
    • Від nightfly
      Ubilling 1.5.9 rev 9525 The Perfect Lock
       
      Зміни в структурі БД. alter.ini: нова опція GENERATORS_ENABLED, що вмикає модуль моніторингу генераторів. alter.ini: нова опція TB_GENERATORS_NOTIFY, що вмикає нотифікацію про запущені генератори в області сповіщень. alter.ini: нова опція PON_ONU_UNI_STATUS_COMPACT, що вмикає компактне відображення стану мідних портів на ONU. alter.ini: нова опція PONBOXES_MINIMAP, що дозволяє вмикати та вимикати міні-мапу, при редагування ПОН коробки. Новий модуль Єдинорожий телепорт: дозволяє просто та зручно переносити ваш робочий білінг на новий сервер. Модуль “Реєстрація користувачів”: виправлено проблеми сумісності з PHP 8.5. Модуль “Останні події”: викинуто дубову статку на мороз. Askozia PBX: інтеграція була давно непідтримуваною, викинуто на мороз, разом зі всіма опціями. Модуль Mapon: тепер використовує OmaeURL для взаємодії з API. Модуль “Мапа ONU”: в черговий раз покращення навігації між мапою та іншими модулями системи. Новий модуль Генератори: дозволяє моніторити стан генераторів, базово облікувати мотогодини, пальне та планувати ТО. Модуль ПОНізатор: тепер причини останньої дереєстрації ONU можуть визначатись також по серійнику ONU а не тільки за MAC. Модуль “ПОН Коробки”: покращено продуктивність відмальовки зв'язків коробок на мапах. Глобально: проведено чергову спробу зробити логування подій, що відбуваються навколо користувачів, якимось трішки більш притомним. RemoteAPI: новий виклик generators, що запускає скрипти обробки станів генераторів з автоматичним запуском. RemoteAPI: новий виклик gencontrol, для примусового запуску/зупинки генераторів за допомогою зовнішнього ПЗ. Бібліотека UbillingCache: виправлено проблеми сумісності з PHP 8.5. Бібліотека OmaeURL: виправлено проблеми сумісності з PHP 8.5. Бібліотека UbillingTelegram: вся робота з CURL перенесена до одного методу, покращено сумісність з PHP 8.5. Кабінет користувача: виправлено проблеми сумісності з PHP 8.5. UBinstaller: тепер при встановленні попередньо розгортає та конфігурує SphinxSearch. UBinstaller: Зібрано бінарні пакунки для FreeBSD 14.3 amd64 + PHP 8.5. UBinstaller: Зібрано бінарні пакунки для FreeBSD 15.0 amd64 + PHP 8.5.  
      Повний чейнджлог
      Оновлена демка
       
       

    • Від maxkorn
      Доброго дня!
      На Mikrotik NAS, створив нову підмережу для клієнтів, все наче порядок, тільки помітив, що не створюються шейпери в Queues для клієнтів цієї підмережі.
      В логах Stargazer наступне:
      2025-12-29 09:05:57 - [Ubilling] - OnConnect started for user `xxasdb5rzm`:
      2025-12-29 09:05:57 - [Executer] - Success: Firewall entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Error: Queue entry can't be updated, missing
      2025-12-29 09:05:57 - [Executer] - Success: Queue_tree entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Success: DHCP entry was updated/created
      2025-12-29 09:05:57 - [Executer] - Success: ARP entry was updated/created
      2025-12-29 09:05:57 - [Ubilling] - QC: 6, elapsed time: 0.064 sec.
       
      При чому, на тому ж мікротіку є ще кілька підмереж, в яких все проходить нормально:
       
      2025-12-29 08:30:17 - [Ubilling] - OnConnect started for user `22zxp7u58x`:
      2025-12-29 08:30:17 - [Executer] - Success: Firewall entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: Queue entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: Queue_tree entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: DHCP entry was updated/created
      2025-12-29 08:30:17 - [Executer] - Success: ARP entry was updated/created
      2025-12-29 08:30:17 - [Ubilling] - QC: 6, elapsed time: 0.602 sec.
       
      Налаштування аналогічні, в чому може бути причина?
    • Від ProstoName
      Змінювали мережеву карту. Здається все поправив. Працює. Але є невелика проблема - після внесення коштів (коли абонент був відключений), інет в нього не з'являється. Тільки після заміни тарифу на інший (і потім вернувши тариф) в абонента з'являється інет. 
×
×
  • Створити нове...