Перейти к содержимому
Local
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.

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

Изменено пользователем 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 ?

 

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

Поделиться сообщением


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

Скриншот тарифа из какого раздела?

 

Поделиться сообщением


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

image.thumb.png.7ed223b2754691fc3b4f645490c0443f.png

 

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

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

Изменено пользователем 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 полей" как на скрине нет и создать не получается ?

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

Поделиться сообщением


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

.

Изменено пользователем sanyadnepr

Поделиться сообщением


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

  • Похожие публикации

    • Автор: dycost
      Такая проблема.
      Был написан модуль для получения mac абонента с порта коммутатора. Модуль перестал работать после обновления биллинга. Обновлялся точно не скажу с какого релиза, ориентировочно 0.8.9 или 0.9.0.
       
      Суть вот в чем.
      Модуль использует скрипт на питоне вызываемый через popen, в принципе весь код вот:
      if (cfr('GET_MAC')) { $inputs = wf_TextInput('switch_address', __('Enter switch address'), '', true, '10'); $inputs.= wf_TextInput('switch_port', __('Enter switch port'), '', true, '10'); $inputs.= wf_Submit(__('Get')); $form = wf_Form("", 'POST', $inputs, 'glamour'); show_window(__('Get mac address from switch port'), $form); if (isset ($_POST['switch_address'])) { $process = popen(escapeshellcmd('/usr/local/www/apache22/data/billing/modules/general/get_mac/get_mac.py ' . $_POST['switch_address'] . ' ' . $_POST['switch_port']), "r"); $mac = fread($process, 2096); show_window(__('Active mac address: '), $mac); pclose($process); }; } else { show_error(__('Access denied')); } Питон потому, что парсинг на php я не осилил..
      из питона вызывается snmpwalk через  popen (да, такая вот матрешка), собственно для получения mac.
      До обновления все работало, и сейчас если выполнить  из консоли что-то типа такого:
      <?php $process = popen(escapeshellcmd('/usr/local/www/apache22/data/billing/modules/general/get_mac/get_mac.py 172.16.0.182 2', "r"); $mac = fread($process, 2096); echo "$mac"; ?> то все работает.
      При выполнении из биллинга питон не создает процесс-потомок snmpwalk.
      Какие настройки php или биллинга копать?
    • Автор: Break
      Продаю Mikrotik Cloud Core Router CCR1036-8G-2S+  920 уе (24500 грн)
      Характеистики:
      8-ми портовый управляемый маршрутизатор с пассивным охлаждением. 8х10/100/1000 RJ45 ports, 2хSFP+ ports, 1xRS232 Serial port,  microUSB type AB port, microSD. Процессор TILE TLR4-03680CG-12CE-A3b, 36 cores, 1.2 GHz, ОЗУ 4 GB, флэш память 1 GB. Пропускная способность 28 Gbps, пакетная производительность 8 Mpps
       
      В наличии 4 шт – НОВЫЕ, только зашли!
      Все предложение пишите в личку
      Гарантия 1 год
      Отправка Новой Почтой в любой город
       
      Тел.  0681651360 Сергей Евгениевич            

    • Автор: salaga89
      Продам Маршрутизатор (роутер) Mikrotik RB1100AHx2. 
       
      Цена 7000 торг уместен
       
      Производитель:
      Mikrotik
      Тип устройства:
      Маршрутизатор (роутер)
      Вход (WAN порт):
      1x 10/100/1000 BASE-T Gigabit Ethernet (PoE), 2x 10/100/1000 BASE-T Gigabit Ethernet (Bypass)
      Интерфейс подключения (LAN-порт):
      10x 10/100/1000 BASE-T Gigabit Ethernet
      Маршрутизатор
      Межсетевой экран (Firewall):
      есть
      NAT:
      есть
      Поддержка VPN (виртуальных сетей):
      есть
      DHCP-сервер:
      есть
      Демилитаризованная зона (DMZ):
      есть
      Мониторинг и конфигурирование
      Веб-интерфейс:
      RouterOS v.6
      Telnet:
      нет
      Поддержка SNMP:
      есть
      Дополнительно
      Питание(PoE/адаптер):
      + / -
      Возможность установки вне помещения :
      нет
      Режим моста:
      есть
      Прочее:
      Процессор: PowerPC P2020 1066MГц, оперативная память: 2ГБ, флеш-память: 512МБ на чипе памяти NAND, последовательный порт RS232C, MicroSD.
      Размеры (мм):
      44x176x442
      Вес (г):
      1275
    • Автор: init
      Добрый день! Появилась необходимость обновить Ubilling с версии 0.7.2 до текущей, как бы это сделать быстро и безболезненно?
      Я так понимаю надо с версии на версию прыгать? или есть какой-то инструмент который инкрементно обновит до текущей версии?
      Благодарю
    • Автор: Turist
      куплю Mikrotik RB3011UiAS-RM, рабочий, можно б/у
×