Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: Efendy от 17 Ноября 2013, 11:49:43



Название: Mikrotik API
Отправлено: Efendy от 17 Ноября 2013, 11:49:43
Расскажите в чем была проблема в Н50 в управлении Микротика по АПИ? По АПИ в принципе тормознуто или неправильно его использовал? Т.е. есть смысл портировать с Н50 и исправить недочеты или писать под ssh?


Название: Re: Mikrotik API
Отправлено: elite от 17 Ноября 2013, 14:22:33
может работать через радиус?


Название: Re: Mikrotik API
Отправлено: Efendy от 18 Ноября 2013, 13:04:20
т.е. радиус +  CoA - это самое оптимальное решение и всех устроит?


Название: Re: Mikrotik API
Отправлено: stek от 29 Ноября 2013, 22:21:26
Модуль управления NAS-ом (Сателлит) должен соответствовать правилам работы с сателлитами этого биллинга и работать как демон, должно контролироваться потребление модулем памяти.
Можно сделать на базе уже существующего.
Требования по доработке:
-ликвидировать главный недостаток модуля в дублировании списков AccessList.
-убрать ошибки модуля при создании записей в разделе Queue
-обьеденить Queue для учетной записи с несколькоими IP для того чтоб пользователь со всеми своими IP ходит в один канал а не на каждый IP отдельная дырка.
-Перенастроить модуль на создание (и обязательно удаление) TreeQueues. Логика, описана вот тут
_ttp://habrahabr.ru/blogs/sysadm/131295/
-поделить списки разрешённых к доступу абонентов по ID тарифов (например, 01_online, 02_online…)
-не обязательно, но желательно. Отдельно вести списки отключённых абонентов (напрпимер, 01_offline, 02_inline…)
-сделать «правильную» синхронизацию с биллингом, когда изменения в Списки и в Очереди вносятся только если происходят изменения в биллинге, а не каждый цикл обхода скриптом списков пользователей. То есть, данные получаются из Тика, сверяются и изменяются только если данные изменились.
-добавить возможность запуска нескольких сателлитов, управляющих разными NAS-ами. Для каждого будет заведена отдельная группа пользователей в биллинге. Обычный скрипт, который просто делает перезапуск исполняемого скрипта второго сателлита каждые N-минут не годится, нужно что бы так же как и задумано изначально, это был отдельный демон.
- в модуле сделать возможность указания версии RouterOS для mikrotik 5-6 так как Queue отличатся поле =target=$ip", и =target-address=$ip",
- В админке добавить возможность добавлять очередной роутер с возможностью указания версии rOS (так как обычно их несколько)


Название: Re: Mikrotik API
Отправлено: Efendy от 30 Ноября 2013, 23:29:43
Ой, мамааа, почему вы микротики такие сложные? Нет, спасибо, лучше я тут на Freebsd постою. Это недели 2 работы. Если переводить в оплату, скажем, в соответствии с моей текущей работой, то это 2 тыс. у.е. К сожалению микротик будет отдыхать


Название: Re: Mikrotik API
Отправлено: boomer666 от 01 Декабря 2013, 09:32:13
мне бы  полезна была поддержка сателлитов из микротика) . 2000$ для одного меня это много

но готов поддержать тех людей кто готов скинутся


Название: Re: Mikrotik API
Отправлено: omega от 01 Декабря 2013, 15:38:09
Меня тоже интересует поддержка микротика!

1.Нужно микротик научить DHCP+radius, IPoE
2.Добавить возможность отправки личный сообщений клиентам с требованием прочтения
и возможность использовать заглушку.
3.Использовать адрес лист  не всей базы данных а только обслуживающей группы клиентов.
4.Добавление новых сателлитов из админки, без ковыряния msql.

Разницы на чем будет данный модуль работать API или SSH нет.
PS: Нужно сделать  что бы разницы работы между сателлитом на МТ и freebsd не было. Микротик перспективнее  части компактности и энергопотребления для построения разнесенных сетей в пределах области.

Готов поучаствовать в спонсорстве данной разработки.



Название: Re: Mikrotik API
Отправлено: stek от 04 Декабря 2013, 09:08:14
Ой, мамааа, почему вы микротики такие сложные? Нет, спасибо, лучше я тут на Freebsd постою. Это недели 2 работы. Если переводить в оплату, скажем, в соответствии с моей текущей работой, то это 2 тыс. у.е. К сожалению микротик будет отдыхать
зачем тогда вы взялись ПРОДАВАТЬ продукт если тут же говорите, дай тех задание а потом открещиваетесь от него?
Безмерная радость конечно за хорошую зарплату, НО.
Вы дали продукт и подписались его поддерживать.
А в итоге слово не держите.


Название: Re: Mikrotik API
Отправлено: Efendy от 04 Декабря 2013, 10:04:39
Т.е. я должен поддерживать все возможные комбинации оборудования и хотелок? Спасибо, когда я стану богом, я займусь чем-нибудь другим, а не NoDeny.

Все, что перечислено - это оверхед логики, а это признак, что будет глючить как поменяется направление ветра или влажность воздуха. Есть куча протоколов, которая четко описывает логику и соблюдая правила, все корректно работает. А микротик... ну 5 лет назад я нашел кучу багов в их перловом апи, написал в форуме, что-то изменилось? Нихуя, похуй им на нюансы, хавайте, что дают типа. Спасибо, я постою с нормальными продуктами


Название: Re: Mikrotik API
Отправлено: boomer666 от 04 Декабря 2013, 12:02:20
не нужно много хотелок сразу.

достаточно сделать чтото похожее как у abills



Название: Re: Mikrotik API
Отправлено: stek от 09 Декабря 2013, 19:02:55
Т.е. я должен поддерживать все возможные комбинации оборудования и хотелок? Спасибо, когда я стану богом, я займусь чем-нибудь другим, а не NoDeny.

не нужно хотелки, ребята ну это как то совсем не гут.
сначала ещё в 49й версии вы выбрасывает модуль для микротика.
Затем он изчезает, и за тем у вас народ уже 4 года просит дописать модуль под !ОДИН! микротик.
причём как то старанно получается, тут же вы говорите ставь тех задание и тут же открещиваетесь


Название: Re: Mikrotik API
Отправлено: Efendy от 09 Декабря 2013, 20:20:12
Я же объяснял причины. Коротко пройдусь по ним:

- В н49/н50 через АПИ работает нестабильно, хотя я четко следовал документации и предусмотрел синхронизацию состояний.
- Количество требований, учитывающих лажовость АПИ, такое - что мне пока нерационально их делать - работы, я бы даже сказал еботни, много, а результат еще неизвестен.
- Сами создатели микротика не очень-то заинтересованы чтобы их АПИ в частности на перле работало нормально - у них там фатальные ошибки, на которые они забили.
- Опытные люди утверждают, что следует смотреть в сторону управления микротиком через радиус - выдавать скорость через радиус (я это скоро сделаю, как освобожусь чуток). Останется CoA для вырубания сессий.


Название: Re: Mikrotik API
Отправлено: Efendy от 11 Декабря 2013, 17:46:13
-убрать ошибки модуля при создании записей в разделе Queue

что за ошибки? если это связано с тем, что очередь создается если она уже создана - это описано еще в Н50, там же сказано почему это сделано - для ускорения все запросы на изменения данных асинхронные, льются потоком. Т.е. не анализируется ответ от микротика успешно ли изменилась очередь или нет. Принят простой алгоритм: создам очередь (если уже создана - ничего страшного, ошибку игнорим), устанавливаем данные очереди. Если это критично (я тестирую и вижу, что вроде нет), то можно помучиться и исправить

-поделить списки разрешённых к доступу абонентов по ID тарифов (например, 01_online, 02_online…)
-не обязательно, но желательно. Отдельно вести списки отключённых абонентов (напрпимер, 01_offline, 02_inline…)
просто заносить/удалять ip из этих списков?

-сделать «правильную» синхронизацию с биллингом, когда изменения в Списки и в Очереди вносятся только если происходят изменения в биллинге, а не каждый цикл обхода скриптом списков пользователей. То есть, данные получаются из Тика, сверяются и изменяются только если данные изменились.
Ну оно так и работало и работает сейчас: получаем списки и пытаемся послать на микротик команды только если есть отличия.

P.S. Понял, почему оно не работало в предыдущей версии, в ответе не обрабатывались суфиксы 'k' и 'M', поэтому считалось, что скорость на микротике не соответствует действительности и постоянно менялась. В Н+ этого бага нет


Название: Re: Mikrotik API
Отправлено: Efendy от 12 Декабря 2013, 18:49:54
Хочу сказать, что 2й день полет нормальный. Я более чем доволен, отмечу некоторые моменты:

1) биллинг и микротик находятся в разных городах
2) обслуживается реальная сеть с >500  абонов, ~300 абонов авторизованных, динамическое изменение скоростей
3) тестировались перезагрузка микротика, очищение аксесс листов и очередей, блокировка трафика через фаервол - после устранения проблемы все синхронизировалось отлично
4) есть возможность управлять несколькими микротиками, запускалась 2-я копия на управление тем же микротиком и были отключены скрипты по управлению скоростями, в итоге скрипты управления микротиком соревновались кто же докажет микротичку, что у клиента должна быть именно такая скорость. Никто не упал
5) посылка на микротик команды только если данные на нем не соответствуют действительности, для очередей сделал тоже самое, причем без лишней команды add

6) Ну и где, бля, та толпа людей, которая е* мне мозги "дайте модуль микротика"? На кого я потратил 2 дня моего времени?


Название: Re: Mikrotik API
Отправлено: omega от 12 Декабря 2013, 20:41:24
А какая авторизация абонентов на новом скрипте, и как он работает через радиус?


Название: Re: Mikrotik API
Отправлено: Efendy от 12 Декабря 2013, 22:33:52
Причем здесь авторизация? Этот скрипт управляет доступом и скоростями


Название: Re: Mikrotik API
Отправлено: YuSHa от 13 Декабря 2013, 09:22:45
будет модулем? уже доступно для покупки? или сколько денег перечислить?


Название: Re: Mikrotik API
Отправлено: YuSHa от 13 Декабря 2013, 09:28:31
в данный момент у N+ коллектором выступает ipcad, а как быть с микротиком?


Название: Re: Mikrotik API
Отправлено: YuSHa от 13 Декабря 2013, 09:41:06
готов поучаствовать в тестировании и внести свою материальную помощь :)


Название: Re: Mikrotik API
Отправлено: Efendy от 15 Декабря 2013, 20:08:27
в данный момент у N+ коллектором выступает ipcad, а как быть с микротиком?
ну, мы с тобой в скайпе договорились о тестировании, после этого посмотрю что можно сделать по нетфлоу - коллекторы н+ от н50 не сильно отличаются


Название: Re: Mikrotik API
Отправлено: Efendy от 16 Декабря 2013, 15:18:17
Кстати, 5й день полет нормальный. Зашел на микротик, очистил все очереди - через несколько секунд обновились. Все ок


Название: Re: Mikrotik API
Отправлено: boomer666 от 18 Декабря 2013, 15:13:19
готов приобрести модуль и сразу тестировать


Название: Re: Mikrotik API
Отправлено: YuSHa от 18 Декабря 2013, 15:23:16
подготавливаю модуль к нагрузке 1к онлайна :)


Название: Re: Mikrotik API
Отправлено: boomer666 от 18 Декабря 2013, 15:24:17
подготавливаю модуль к нагрузке 1к онлайна :)
а трафика скок?


Название: Re: Mikrotik API
Отправлено: YuSHa от 18 Декабря 2013, 15:56:15
под 500 мбит в чнн


Название: Re: Mikrotik API
Отправлено: Efendy от 22 Декабря 2013, 11:39:42
Выложил модуль Микротика, 800 грн. Пока инструкцию не написал, как напишу - создам отдельную ветку


Название: Re: Mikrotik API
Отправлено: vktr от 05 Февраля 2014, 00:25:47
Думаем купить, хотелось бы инструкцию


Название: Re: Mikrotik API
Отправлено: YuSHa от 05 Февраля 2014, 10:10:14
ничего сложного.
1 распаковать модуль и положить в папку modules
2 подредактировать create.cfg.mikrotik.cfg.pm
3 создать юзера на микротике и пропустить IP биллинга через фаервол + IP микротика через фаервол биллинга
4 запустить модуль (прописать в rc.local  строку "/usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik.cfg.pm -d &")
получите управление шейпером и аксеслистом.

есть ещё модуль съема статистики с микротика по netflow. настраивается тоже с пол пинка по интрукции для нодени 49



Название: Re: Mikrotik API
Отправлено: YuSHa от 12 Февраля 2014, 09:50:12
попробовали позавчера запустить в бой с управлением 3-я микротиками.
начали отпадать коннекты с микротиками и проблемы коннектов радиуса к  БД.

лог mysqld
Код:
140108 14:35:33 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.5.28'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
140210  6:59:09 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  6:59:09 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  6:59:09 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  6:59:09 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  6:59:09 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  6:59:09 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:03:35 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:03:35 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:07:25 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:07:25 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:07:25 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:07:25 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:07:25 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:07:25 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:19:16 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:19:16 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:28:01 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:28:01 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:30:14 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:30:14 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:31:26 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:31:26 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:32:47 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:32:47 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:32:47 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:32:47 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:33:33 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:33:33 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:36:47 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:36:47 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:37:07 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:37:07 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:39:56 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:39:56 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:39:56 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:39:56 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:40:42 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:40:42 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:40:42 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:40:42 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:07 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:07 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:07 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:07 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:07 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:07 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:37 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:37 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:37 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:48:37 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:56:19 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:56:19 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:56:19 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:56:19 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  7:59:15 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  7:59:15 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:00:52 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:00:52 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:00:52 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:00:52 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:00:52 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:00:52 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:03:06 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:03:06 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:03:06 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:03:06 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:04:02 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:04:02 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:04:02 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:04:02 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:04:02 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:04:02 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:04:35 [Note] /usr/local/libexec/mysqld: Normal shutdown

140210  8:04:35 [Note] Event Scheduler: Purging the queue. 0 events
140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33833  user: 'nodeny'

140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33832  user: 'nodeny'

140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33831  user: 'nodeny'

140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33830  user: 'nodeny'

140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 33829  user: 'nodeny'

140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 7  user: 'nodeny'

140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 5  user: 'nodeny'

140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 3  user: 'nodeny'

140210  8:04:37 [Warning] /usr/local/libexec/mysqld: Forcing close of thread 1  user: 'nodeny'

140210  8:04:38  InnoDB: Starting shutdown...
140210  8:04:41  InnoDB: Shutdown completed; log sequence number 186218651
140210  8:04:41 [Note] /usr/local/libexec/mysqld: Shutdown complete

140210 08:04:42 mysqld_safe mysqld from pid file /var/db/mysql/bill.xxx.com.ua.pid ended
140210 08:07:05 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
140210  8:07:06 InnoDB: The InnoDB memory heap is disabled
140210  8:07:06 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140210  8:07:06 InnoDB: Compressed tables use zlib 1.2.7
140210  8:07:06 InnoDB: Initializing buffer pool, size = 128.0M
140210  8:07:06 InnoDB: Completed initialization of buffer pool
140210  8:07:06 InnoDB: highest supported file format is Barracuda.
140210  8:07:06  InnoDB: Waiting for the background threads to start
140210  8:07:07 InnoDB: 1.1.8 started; log sequence number 186218651
140210  8:07:07 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
140210  8:07:07 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
140210  8:07:07 [Note] Server socket created on IP: '0.0.0.0'.
140210  8:07:08 [Warning] 'user' entry 'root@bill.xxx.com.ua' ignored in --skip-name-resolve mode.
140210  8:07:08 [Warning] 'user' entry '@bill.xxx.com.ua' ignored in --skip-name-resolve mode.
140210  8:07:08 [Warning] 'proxies_priv' entry '@ root@bill.xxx.com.ua' ignored in --skip-name-resolve mode.
140210  8:07:08 [Note] Event Scheduler: Loaded 0 events
140210  8:07:08 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.5.28'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
140210  8:07:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:28 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:28 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:28 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:28 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:48 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140210  8:07:48 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction

лог radiusd
Код:
Mon Feb 10 06:55:09 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #4
Mon Feb 10 06:55:09 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #4
Mon Feb 10 06:55:09 2014 : Info: rlm_sql (sql): Connected new DB handle, #4
Mon Feb 10 06:55:17 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #2
Mon Feb 10 06:55:17 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #2
Mon Feb 10 06:55:17 2014 : Info: rlm_sql (sql): Connected new DB handle, #2
Mon Feb 10 06:55:21 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #0
Mon Feb 10 06:55:21 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #0
Mon Feb 10 06:55:21 2014 : Info: rlm_sql (sql): Connected new DB handle, #0
Mon Feb 10 06:55:22 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #3
Mon Feb 10 06:55:22 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #3
Mon Feb 10 06:55:22 2014 : Info: rlm_sql (sql): Connected new DB handle, #3
Mon Feb 10 06:55:32 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #1
Mon Feb 10 06:55:32 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #1
Mon Feb 10 06:55:32 2014 : Info: rlm_sql (sql): Connected new DB handle, #1
Mon Feb 10 06:56:50 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:56:59 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:57:00 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:57:19 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:57:20 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:57:32 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:57:54 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:57:59 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:58:19 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:58:39 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:58:44 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:58:57 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:59:05 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:59:09 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:59:09 2014 : Error: rlm_sql_getvpdata: database query error
Mon Feb 10 06:59:09 2014 : Error: [sql] SQL query error; rejecting user
Mon Feb 10 06:59:09 2014 : Error: rlm_sql_getvpdata: database query error
Mon Feb 10 06:59:09 2014 : Error: [sql] SQL query error; rejecting user
Mon Feb 10 06:59:09 2014 : Error: rlm_sql_getvpdata: database query error
Mon Feb 10 06:59:09 2014 : Error: [sql] SQL query error; rejecting user
Mon Feb 10 06:59:21 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:59:30 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:59:43 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:59:49 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 06:59:50 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 07:00:01 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 07:00:11 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 07:00:14 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 07:00:26 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 07:00:36 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Mon Feb 10 07:00:43 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0

запущенные процессы
Код:
# ps ax | grep pl
 1545 ??  Ss     183:23.70 /usr/local/bin/flow-capture -R /var/db/flows/netflow_8888.pl -p /var/run/flow-capture/flow-capture.pid -w /
 1592 ??  Ss       0:29.40 /usr/local/bin/perl /usr/local/lib/webmin/miniserv.pl /usr/local/etc/webmin/miniserv.conf
 1546 v0- S       10:06.02 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d (perl5.14.4)
 1547 v0- S       74:27.55 /usr/bin/perl /usr/local/nodeny/noserver.pl -d (perl5.14.4)
 1548 v0- S      125:23.75 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=collectors -d (perl5.14.4)
 1549 v0- S       61:02.55 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d (perl5.14.4)
 1550 v0- S       98:11.36 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_82.cfg.pm -d (perl5.14.4)
 1551 v0- S       98:21.77 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_84.cfg.pm -d (perl5.14.4)
 1552 v0- S      253:03.35 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_250.cfg.pm -d (perl5.14.4)
 2115  0  RL+      0:00.01 grep pl

Как я понял проблема с недоступностью таблиц на чтение  из-за локов в связи с большим количеством запросов?
в конфиге my.cnf значение max_connections по умолчанию = 100
может ли это быть связано с увеличением параметра start_servers  в конфиге radiusd.conf?


Название: Re: Mikrotik API
Отправлено: Efendy от 12 Февраля 2014, 10:48:05
Выполни в mysql под рутовой учеткой:

SHOW ENGINE INNODB STATUS\G


Название: Re: Mikrotik API
Отправлено: YuSHa от 12 Февраля 2014, 11:25:53
Код:
mysql> SHOW ENGINE INNODB STATUS\G;
*************************** 1. row ***************************
  Type: InnoDB
  Name:
Status:
=====================================
140212 11:23:54 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 40 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 184143 1_second, 184142 sleeps, 18341 10_second, 732 background, 731 flush
srv_master_thread log flush and writes: 184206
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 1867, signal count 1957
Mutex spin waits 22749, rounds 56076, OS waits 415
RW-shared spins 1453, rounds 41278, OS waits 1329
RW-excl spins 46, rounds 2207, OS waits 58
Spin rounds per wait: 2.46 mutex, 28.41 RW-shared, 47.98 RW-excl
------------------------
LATEST DETECTED DEADLOCK
------------------------
140210  8:07:48
*** (1) TRANSACTION:
TRANSACTION 7F3902, ACTIVE 0 sec fetching rows
mysql tables in use 1, locked 1
LOCK WAIT 6 lock struct(s), heap size 1248, 20 row lock(s)
MySQL thread id 13, OS thread handle 0x8272fec00, query id 4266 localhost nodeny Searching rows for update
UPDATE ip_pool SET uid=0 WHERE type='dynamic' AND uid>0 AND `release`<UNIX_TIMESTAMP()
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 365 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id 7F3902 lock_mode X locks rec but not gap waiting
Record lock, heap no 4 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013f6; asc     ;;
 1: len 6; hex 0000007f38a0; asc     8 ;;
 2: len 7; hex 190000022b1cc6; asc     +  ;;
 3: len 4; hex ac100003; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86dde; asc R m ;;
 7: len 8; hex 0000000000000028; asc        (;;
 8: len 0; hex ; asc ;;

*** (2) TRANSACTION:
TRANSACTION 7F38F8, ACTIVE 0 sec fetching rows
mysql tables in use 4, locked 3
5 lock struct(s), heap size 3112, 29 row lock(s)
MySQL thread id 10, OS thread handle 0x8272fe000, query id 4254 localhost nodeny init
UPDATE ip_pool SET uid =  NAME_CONST('user_id',1647), `release` = UNIX_TIMESTAMP() + 300
        WHERE (uid = 0 OR uid =  NAME_CONST('user_id',1647))
            AND type = 'dynamic'
            AND realip = IF( NAME_CONST('real_ip',NULL)>0,1,0)
        ORDER BY uid DESC, id ASC LIMIT 1
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 0 page no 365 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id 7F38F8 lock_mode X locks rec but not gap
Record lock, heap no 2 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013f4; asc     ;;
 1: len 6; hex 0000007f2746; asc     'F;;
 2: len 7; hex 07000003b11737; asc       7;;
 3: len 4; hex ac100001; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86cdb; asc R l ;;
 7: len 8; hex 0000000000000311; asc         ;;
 8: len 0; hex ; asc ;;

Record lock, heap no 3 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013f5; asc     ;;
 1: len 6; hex 0000007f3834; asc     84;;
 2: len 7; hex 4d0000045c10b4; asc M   \  ;;
 3: len 4; hex ac100002; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86ddb; asc R m ;;
 7: len 8; hex 00000000000001b0; asc         ;;
 8: len 0; hex ; asc ;;

Record lock, heap no 4 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013f6; asc     ;;
 1: len 6; hex 0000007f38a0; asc     8 ;;
 2: len 7; hex 190000022b1cc6; asc     +  ;;
 3: len 4; hex ac100003; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86dde; asc R m ;;
 7: len 8; hex 0000000000000028; asc        (;;
 8: len 0; hex ; asc ;;

Record lock, heap no 5 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013f7; asc     ;;
 1: len 6; hex 0000007f2ff7; asc     / ;;
 2: len 7; hex 61000004640ad4; asc a   d  ;;
 3: len 4; hex ac100004; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86d17; asc R m ;;
 7: len 8; hex 000000000000077b; asc        {;;
 8: len 0; hex ; asc ;;

Record lock, heap no 6 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013f8; asc     ;;
 1: len 6; hex 0000007f33cb; asc     3 ;;
 2: len 7; hex 11000001602401; asc     `$ ;;
 3: len 4; hex ac100005; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86dbd; asc R m ;;
 7: len 8; hex 000000000000026e; asc        n;;
 8: len 0; hex ; asc ;;

Record lock, heap no 7 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013f9; asc     ;;
 1: len 6; hex 0000007f32d5; asc     2 ;;
 2: len 7; hex 7e0000038121ac; asc ~    ! ;;
 3: len 4; hex ac100006; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86dbc; asc R m ;;
 7: len 8; hex 000000000000044e; asc        N;;
 8: len 0; hex ; asc ;;

Record lock, heap no 8 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013fa; asc     ;;
 1: len 6; hex 0000007f3052; asc     0R;;
 2: len 7; hex 200000038d1d19; asc        ;;
 3: len 4; hex ac100007; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86d1c; asc R m ;;
 7: len 8; hex 000000000000032e; asc        .;;
 8: len 0; hex ; asc ;;

Record lock, heap no 9 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013fb; asc     ;;
 1: len 6; hex 0000007f2642; asc     &B;;
 2: len 7; hex 59000002002293; asc Y    " ;;
 3: len 4; hex ac100008; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86cd5; asc R l ;;
 7: len 8; hex 0000000000000777; asc        w;;
 8: len 0; hex ; asc ;;

Record lock, heap no 10 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013fc; asc     ;;
 1: len 6; hex 0000007f2352; asc     #R;;
 2: len 7; hex 550000039b1054; asc U     T;;
 3: len 4; hex ac100009; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86cbc; asc R l ;;
 7: len 8; hex 0000000000000669; asc        i;;
 8: len 0; hex ; asc ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 365 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id 7F38F8 lock_mode X locks rec but not gap waiting
Record lock, heap no 11 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000013fd; asc     ;;
 1: len 6; hex 0000007f2246; asc     "F;;
 2: len 7; hex 1f00000399168b; asc        ;;
 3: len 4; hex ac10000a; asc     ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 52f86cb7; asc R l ;;
 7: len 8; hex 000000000000000d; asc         ;;
 8: len 0; hex ; asc ;;

*** WE ROLL BACK TRANSACTION (2)
------------
TRANSACTIONS
------------
Trx id counter 8173F6
Purge done for trx's n:o < 816F1C undo n:o < 0
History list length 1899
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0, not started
MySQL thread id 3301, OS thread handle 0x827300000, query id 538144 localhost root
SHOW ENGINE INNODB STATUS
---TRANSACTION 8173F5, not started
MySQL thread id 13, OS thread handle 0x8272fec00, query id 538137 localhost nodeny
---TRANSACTION 7F5401, not started
MySQL thread id 4, OS thread handle 0x8272fc800, query id 538128 localhost nodeny
---TRANSACTION 816869, not started
MySQL thread id 1, OS thread handle 0x8272fbc00, query id 538143 localhost nodeny
---TRANSACTION 816F28, not started
MySQL thread id 2, OS thread handle 0x8272fc000, query id 538134 localhost nodeny
---TRANSACTION 816F22, not started
MySQL thread id 5, OS thread handle 0x8272fcc00, query id 538110 localhost nodeny
---TRANSACTION 81686A, not started
MySQL thread id 3, OS thread handle 0x8272fc400, query id 538140 localhost nodeny
--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)
I/O thread 1 state: waiting for i/o request (log thread)
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (read thread)
I/O thread 4 state: waiting for i/o request (read thread)
I/O thread 5 state: waiting for i/o request (read thread)
I/O thread 6 state: waiting for i/o request (write thread)
I/O thread 7 state: waiting for i/o request (write thread)
I/O thread 8 state: waiting for i/o request (write thread)
I/O thread 9 state: waiting for i/o request (write thread)
Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
 ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
774 OS file reads, 20281 OS file writes, 9272 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf: size 1, free list len 0, seg size 2, 5 merges
merged operations:
 insert 305, delete mark 0, delete 0
discarded operations:
 insert 0, delete mark 0, delete 0
Hash table size 276707, node heap has 36 buffer(s)
8.20 hash searches/s, 6.00 non-hash searches/s
---
LOG
---
Log sequence number 188680511
Log flushed up to   188680511
Last checkpoint at  188680511
0 pending log writes, 0 pending chkp writes
5717 log i/o's done, 0.00 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 137363456; in additional pool allocated 0
Dictionary memory allocated 202542
Buffer pool size   8192
Free buffers       7295
Database pages     861
Old database pages 317
Modified db pages  0
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 3, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 764, created 97, written 16630
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 861, unzip_LRU len: 0
I/O sum[0]:cur[0], unzip sum[0]:cur[0]
--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
1 read views open inside InnoDB
Main thread id 34401729536, state: sleeping
Number of rows inserted 2082, updated 3135, deleted 1380, read 83562130
0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 365.79 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT
============================

1 row in set (0.01 sec)

ERROR:
No query specified

mysql>


Название: Re: Mikrotik API
Отправлено: Efendy от 12 Февраля 2014, 12:59:45
Понятно. Видел уже эту проблему - мускул попадает в дедлок, когда по логике не должен. Пока временно переведи всех на статические ip, а я подумаю об изменении процедуры выдачи ip  чтобы в дедлок не попадало


Название: Re: Mikrotik API
Отправлено: YuSHa от 27 Марта 2014, 16:21:02
есть подвижки? а то очень не удобно(((


Название: Re: Mikrotik API
Отправлено: Efendy от 27 Марта 2014, 17:40:13
давно пофикшено


Название: Re: Mikrotik API
Отправлено: YuSHa от 28 Марта 2014, 12:07:55
спс :)


Название: Re: Mikrotik API
Отправлено: YuSHa от 29 Марта 2014, 07:39:14
дабавил всем статику, запустилось всего 700 онлайн из 900 на микротике, в биллинге при этом было авторизировано не более 200 учеток онлайна(хотя маков по регистрации pppoe насыпало 254 шт)...причем то прыгало то чуть больше то чуть меньше....такое чувство что пачками оваливались.

потом удалил статику у всех. поднялось 100 учеток и все(
Код:
[root@bill ~]# ps ax | grep pl
1359 ??  Ss     0:37.80 /usr/local/bin/flow-capture -R /var/db/flows/netflow_8888.pl -p /var/run/flow-capture/flow-capture.pid -w /var/db/flows -n1 -N0 0.0.
1406 ??  Ss     0:00.57 /usr/local/bin/perl /usr/local/lib/webmin/miniserv.pl /usr/local/etc/webmin/miniserv.conf
4354 ??  I      0:21.12 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql --plugin-dir=/usr/
1360 v0- S      0:12.14 /usr/bin/perl /usr/local/nodeny/nokernel.pl -d (perl5.14.4)
1361 v0- S      1:35.20 /usr/bin/perl /usr/local/nodeny/noserver.pl -d (perl5.14.4)
1362 v0- S      0:35.77 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=collectors -d (perl5.14.4)
1363 v0- S      0:59.04 /usr/bin/perl /usr/local/nodeny/nokernel.pl -m=cap -d (perl5.14.4)
1364 v0- S      2:38.25 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_82.cfg.pm -d (perl5.14.4)
1365 v0- S      2:38.60 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_84.cfg.pm -d (perl5.14.4)
1366 v0- S      2:36.85 /usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik_250.cfg.pm -d (perl5.14.4)
4591  5  RL+    0:00.00 grep pl
[root@bill ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.5.28 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use nodeny;
Database changed
mysql> SHOW ENGINE INNODB STATUS\G
*************************** 1. row ***************************
  Type: InnoDB
  Name:
Status:
=====================================
140329  7:29:06 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 2 seconds
-----------------
BACKGROUND THREAD
-----------------
srv_master_thread loops: 662 1_second, 661 sleeps, 66 10_second, 2 background, 2 flush
srv_master_thread log flush and writes: 669
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 319, signal count 360
Mutex spin waits 7099, rounds 32155, OS waits 153
RW-shared spins 193, rounds 4524, OS waits 101
RW-excl spins 11, rounds 538, OS waits 10
Spin rounds per wait: 4.53 mutex, 23.44 RW-shared, 48.91 RW-excl
------------------------
LATEST DETECTED DEADLOCK
------------------------
140329  7:25:53
*** (1) TRANSACTION:
TRANSACTION ADE886, ACTIVE 0 sec fetching rows
mysql tables in use 1, locked 1
LOCK WAIT 6 lock struct(s), heap size 1248, 66 row lock(s)
MySQL thread id 3, OS thread handle 0x8277ef800, query id 11390 localhost nodeny Searching rows for update
UPDATE ip_pool SET uid=0 WHERE type='dynamic' AND uid>0 AND `release`<UNIX_TIMESTAMP()
*** (1) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 465 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id ADE886 lock_mode X locks rec but not gap waiting
Record lock, heap no 2 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000028ee; asc   ( ;;
 1: len 6; hex 000000ade777; asc      w;;
 2: len 7; hex 1b0000020a08c5; asc        ;;
 3: len 4; hex 0a640002; asc  d  ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 53365a5e; asc S6Z^;;
 7: len 8; hex 0000000000000168; asc        h;;
 8: len 0; hex ; asc ;;

*** (2) TRANSACTION:
TRANSACTION ADE881, ACTIVE 0 sec fetching rows
mysql tables in use 4, locked 3
5 lock struct(s), heap size 3112, 14 row lock(s)
MySQL thread id 11, OS thread handle 0x82bd86000, query id 11386 localhost nodeny init
UPDATE ip_pool SET uid =  NAME_CONST('user_id',1950), `release` = UNIX_TIMESTAMP() + 300
        WHERE (uid = 0 OR uid =  NAME_CONST('user_id',1950))
            AND type = 'dynamic'
            AND realip = IF( NAME_CONST('real_ip',NULL)>0,1,0)
        ORDER BY uid DESC, id ASC LIMIT 1
*** (2) HOLDS THE LOCK(S):
RECORD LOCKS space id 0 page no 465 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id ADE881 lock_mode X locks rec but not gap
Record lock, heap no 2 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000028ee; asc   ( ;;
 1: len 6; hex 000000ade777; asc      w;;
 2: len 7; hex 1b0000020a08c5; asc        ;;
 3: len 4; hex 0a640002; asc  d  ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 53365a5e; asc S6Z^;;
 7: len 8; hex 0000000000000168; asc        h;;
 8: len 0; hex ; asc ;;

Record lock, heap no 3 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000028ef; asc   ( ;;
 1: len 6; hex 000000ade59c; asc       ;;
 2: len 7; hex 47000004532173; asc G   S!s;;
 3: len 4; hex 0a640003; asc  d  ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 53365a14; asc S6Z ;;
 7: len 8; hex 00000000000007be; asc         ;;
 8: len 0; hex ; asc ;;

Record lock, heap no 4 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000028f0; asc   ( ;;
 1: len 6; hex 000000ade78b; asc       ;;
 2: len 7; hex 27000003fa1978; asc '     x;;
 3: len 4; hex 0a640004; asc  d  ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 53365a5e; asc S6Z^;;
 7: len 8; hex 00000000000005e3; asc         ;;
 8: len 0; hex ; asc ;;

Record lock, heap no 5 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000028f1; asc   ( ;;
 1: len 6; hex 000000ade776; asc      v;;
 2: len 7; hex 1a000003890ff9; asc        ;;
 3: len 4; hex 0a640005; asc  d  ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 53365a5e; asc S6Z^;;
 7: len 8; hex 0000000000000392; asc         ;;
 8: len 0; hex ; asc ;;

*** (2) WAITING FOR THIS LOCK TO BE GRANTED:
RECORD LOCKS space id 0 page no 465 n bits 440 index `PRIMARY` of table `nodeny`.`ip_pool` trx id ADE881 lock_mode X locks rec but not gap waiting
Record lock, heap no 6 PHYSICAL RECORD: n_fields 9; compact format; info bits 0
 0: len 4; hex 000028f2; asc   ( ;;
 1: len 6; hex 000000ade7ec; asc       ;;
 2: len 7; hex 6d0000040f302a; asc m    0*;;
 3: len 4; hex 0a640006; asc  d  ;;
 4: len 1; hex 02; asc  ;;
 5: len 1; hex 00; asc  ;;
 6: len 4; hex 53365a76; asc S6Zv;;
 7: len 8; hex 0000000000000117; asc         ;;
 8: len 0; hex ; asc ;;

*** WE ROLL BACK TRANSACTION (2)
------------
TRANSACTIONS
------------
Trx id counter ADEB9D
Purge done for trx's n:o < ADEB92 undo n:o < 0
History list length 2407
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 0, not started
MySQL thread id 17, OS thread handle 0x82bd87800, query id 13345 localhost root
SHOW ENGINE INNODB STATUS
---TRANSACTION ADEA90, not started
MySQL thread id 11, OS thread handle 0x82bd86000, query id 12844 localhost nodeny
---TRANSACTION ADEA86, not started
MySQL thread id 14, OS thread handle 0x82bd86c00, query id 12804 localhost nodeny
---TRANSACTION ADEA81, not started
MySQL thread id 13, OS thread handle 0x82bd86800, query id 12787 localhost nodeny
---TRANSACTION ADEA79, not started
MySQL thread id 12, OS thread handle 0x82bd86400, query id 12757 localhost nodeny
---TRANSACTION ADEA8B, not started
MySQL thread id 10, OS thread handle 0x82bd85c00, query id 12820 localhost nodeny
---TRANSACTION ADEB6B, not started
MySQL thread id 9, OS thread handle 0x82bd85800, query id 13291 localhost nodeny
---TRANSACTION ADEB93, not started
MySQL thread id 4, OS thread handle 0x8277efc00, query id 13323 localhost nodeny
---TRANSACTION ADE731, not started
MySQL thread id 5, OS thread handle 0x8277f0000, query id 13334 localhost nodeny
---TRANSACTION ADEB9C, not started
MySQL thread id 3, OS thread handle 0x8277ef800, query id 13344 localhost nodeny
---TRANSACTION ADEB97, not started
MySQL thread id 2, OS thread handle 0x8277ef400, query id 13337 localhost nodeny
---TRANSACTION ADEB83, not started
MySQL thread id 1, OS thread handle 0x8277ef000, query id 13341 localhost nodeny
--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)
I/O thread 1 state: waiting for i/o request (log thread)
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (read thread)
I/O thread 4 state: waiting for i/o request (read thread)
I/O thread 5 state: waiting for i/o request (read thread)
I/O thread 6 state: waiting for i/o request (write thread)
I/O thread 7 state: waiting for i/o request (write thread)
I/O thread 8 state: waiting for i/o request (write thread)
I/O thread 9 state: waiting for i/o request (write thread)
Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
 ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
633 OS file reads, 4908 OS file writes, 1921 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 5.50 writes/s, 3.50 fsyncs/s
-------------------------------------
INSERT BUFFER AND ADAPTIVE HASH INDEX
-------------------------------------
Ibuf: size 1, free list len 0, seg size 2, 0 merges
merged operations:
 insert 0, delete mark 0, delete 0
discarded operations:
 insert 0, delete mark 0, delete 0
Hash table size 276707, node heap has 22 buffer(s)
115.44 hash searches/s, 73.96 non-hash searches/s
---
LOG
---
Log sequence number 221196525
Log flushed up to   221196525
Last checkpoint at  221194130
0 pending log writes, 0 pending chkp writes
1670 log i/o's done, 1.50 log i/o's/second
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 137363456; in additional pool allocated 0
Dictionary memory allocated 174239
Buffer pool size   8192
Free buffers       7517
Database pages     653
Old database pages 256
Modified db pages  5
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 0, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 622, created 31, written 4209
0.00 reads/s, 0.00 creates/s, 3.00 writes/s
Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 653, unzip_LRU len: 0
I/O sum[0]:cur[0], unzip sum[0]:cur[0]
--------------
ROW OPERATIONS
--------------
0 queries inside InnoDB, 0 queries in queue
1 read views open inside InnoDB
Main thread id 34401730560, state: sleeping
Number of rows inserted 726, updated 1082, deleted 376, read 5947415
0.00 inserts/s, 7.00 updates/s, 0.00 deletes/s, 987.51 reads/s
----------------------------
END OF INNODB MONITOR OUTPUT
============================

1 row in set (0.01 sec)

mysql>


кусок лога радиуса со статическими IP
Код:
Sat Mar 29 06:24:44 2014 : Info: Signalled to terminate
Sat Mar 29 06:24:44 2014 : Info: Exiting normally.
Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 4
Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 3
Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 2
Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 1
Sat Mar 29 06:24:45 2014 : Info: rlm_sql (sql): Closing sqlsocket 0
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect to nodeny@localhost:3306/nodeny
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #0
Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #0
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #0
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #1
Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #1
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #1
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #2
Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #2
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #2
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #3
Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #3
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #3
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Attempting to connect rlm_sql_mysql #4
Sat Mar 29 06:26:07 2014 : Info: rlm_sql_mysql: Starting connect to MySQL server for #4
Sat Mar 29 06:26:07 2014 : Info: rlm_sql (sql): Connected new DB handle, #4
Sat Mar 29 06:26:07 2014 : Info: Loaded virtual server <default>
Sat Mar 29 06:26:07 2014 : Info: Loaded virtual server inner-tunnel
Sat Mar 29 06:26:07 2014 : Info: Ready to process requests.
Sat Mar 29 06:48:35 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 06:48:36 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 06:48:50 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 06:48:51 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 06:49:11 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 06:49:32 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 06:49:33 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 06:49:44 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 06:49:55 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0

конец лога с динамикой
Код:
Sat Mar 29 07:21:49 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:21:56 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:22:11 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:22:23 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:22:33 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:22:45 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:22:46 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:22:51 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:22:58 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:23:01 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:23:22 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:23:25 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:23:34 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:23:51 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:24:00 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:24:01 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:24:28 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:24:46 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:25:06 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:25:28 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:25:31 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:25:53 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:25:53 2014 : Error: [sql] Couldn't update SQL accounting ALIVE record - Deadlock found when trying to get lock; try restarting transaction
Sat Mar 29 07:25:53 2014 : Error: rlm_sql_mysql: Cannot store result
Sat Mar 29 07:25:53 2014 : Error: rlm_sql_mysql: MySQL error 'Deadlock found when trying to get lock; try restarting transaction'
Sat Mar 29 07:25:53 2014 : Error: [sql] Couldn't update SQL accounting ALIVE record - Deadlock found when trying to get lock; try restarting transaction
Sat Mar 29 07:25:53 2014 : Error: rlm_sql_mysql: Cannot store result
Sat Mar 29 07:25:53 2014 : Error: rlm_sql_mysql: MySQL error 'Deadlock found when trying to get lock; try restarting transaction'
Sat Mar 29 07:26:14 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:26:17 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:26:29 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0
Sat Mar 29 07:26:39 2014 : Error: rlm_sql (sql): There are no DB handles to use! skipped 0, tried to connect 0


Название: Re: Mikrotik API
Отправлено: Efendy от 29 Марта 2014, 09:24:52
http://g.zeos.in/?q=Error%3A%20rlm_sql%20(sql)%3A%20There%20are%20no%20DB%20handles%20to%20use!

http://forum.nodeny.com.ua/index.php?topic=1890.0


Название: Re: Mikrotik API
Отправлено: YuSHa от 31 Марта 2014, 11:08:49
те же яйца только в профиль(
в my.cnf
Код:
max_connections = 1200
в radiusd.conf
Код:
max_servers = 1024
поменял только тут с 5 до 50 sql.conf
Код:
num_sql_socks = 50


Название: Re: Mikrotik API
Отправлено: YuSHa от 11 Апреля 2014, 08:56:17
проблема дедлоков не решена(
лог mysql
Код:
140410 19:24:11 [Note] /usr/local/libexec/mysqld: ready for connections.
Version: '5.5.28'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
140411  5:44:57 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:44:57 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:44:57 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:44:57 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:48:16 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:48:16 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:48:16 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:48:16 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:48:16 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:48:16 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:50:32 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:50:32 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:51:38 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:51:38 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:51:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:51:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:51:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:51:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:51:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:51:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:54:31 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:23 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:23 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:24 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:24 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:24 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:24 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:24 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:24 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:24 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:55:24 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:17 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:17 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:53 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:54 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:56:54 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction
140411  5:57:55 [ERROR] /usr/local/libexec/mysqld: Deadlock found when trying to get lock; try restarting transaction
140411  5:57:55 [ERROR] /usr/local/libexec/mysqld: Sort aborted: Deadlock found when trying to get lock; try restarting transaction




Название: Re: Mikrotik API
Отправлено: YuSHa от 11 Апреля 2014, 08:58:34
лог радиуса


Название: Re: Mikrotik API
Отправлено: Efendy от 11 Апреля 2014, 16:26:11
Прикрепи вывод SHOW ENGINE INNODB STATUS;


Название: Re: Mikrotik API
Отправлено: YuSHa от 11 Апреля 2014, 16:39:33
у нас свет выбивало, так что сервак ребутался....
вывод после ребута


Название: Re: Mikrotik API
Отправлено: Efendy от 12 Апреля 2014, 08:36:04
В общем, я затупил - дедлоки я убрал давно, но не коммитил, т.к. хотел чтоб потестилось на моей сети. А после тестирования забыл. Сейчас закоммитил. После обновления надо перезапустить ядро N+


Название: Re: Mikrotik API
Отправлено: YuSHa от 12 Апреля 2014, 09:14:27
 ::) фух..... будем пробовать снова ;D


Название: Re: Mikrotik API
Отправлено: Stronglan от 22 Октября 2014, 09:43:24
А возможно ли реализовать аналог модуля заглушки на микротике?


Название: Re: Mikrotik API
Отправлено: sov от 22 Октября 2014, 20:13:05
Документация по модулю планируется?

А то вот купил, настроил по своему разумению, а оно не работает как положено. И сижу, чешу репу - какую из настроечек, предполагаемую автором, я не удосужился догадаться включить.

Неужели написать десяток строк краткого описания займёт так много времени?

PS В конфиге есть параметр target / target-addresses для старых/новых микротиков. Как определить старость микротика?

PSS Клиент по PPPoE законнектился, очередь с его адресом на микротике имеется, в гудбойзах его адреса нет (поскольку нет ни одной услуги и доступ в биллинге запрещён). При этом интернет у клиента есть!


Название: Re: Mikrotik API
Отправлено: Efendy от 22 Октября 2014, 22:15:58
Насколько я помню, изначально ко мне кто-то обратился с просьбой написать модуль и сам готов был его протестировать. Я написал по аналогии с Н50, только исправил баги. Человек протестировал и сказал "все ок". Я выложил модуль и получил комментарий:
Цитировать
ничего сложного.
1 распаковать модуль и положить в папку modules
2 подредактировать create.cfg.mikrotik.cfg.pm
3 создать юзера на микротике и пропустить IP биллинга через фаервол + IP микротика через фаервол биллинга
4 запустить модуль (прописать в rc.local  строку "/usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik.cfg.pm -d &")
получите управление шейпером и аксеслистом.
Поскольку никто не жаловался на проблемы - я и забыл кому изначально делал, так бы попросил чтоб он написал что менял в микротике. Если он сам найдется - пусть здесь напишет, я потом перенесу в документацию


Название: Re: Mikrotik API
Отправлено: sov от 23 Октября 2014, 07:16:19
Да понятно, что там ничего сложного. Тем более, что на предыдущих версиях Нодени я микротик использовал, и догадываюсь, как оно настраивается. Но вот тупанул, забыл что-то где-то включить. Не работает. Тут-бы и свериться с инструкцией, ан нет её! :(


Название: Re: Mikrotik API
Отправлено: YuSHa от 23 Октября 2014, 09:43:59
1 - В конфиге есть параметр target / target-addresses для старых/новых микротиков.  новые это 6 ветка. старые 5-я и ниже.
2 - Если pppoe поднялось - значит связка биллинг - радиус сервер - радиус клиент(микротик) работает. это уже пол дела.
3 - далее не забываем включить управление по API тут
Код:
> ip service enable api
4 - Инет у клиентов можно отрубить несколькими способами
    а - натить только тех, кто есть в списке good boys. пример:
Код:
/ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=ether5-ins src-address=10.10.0.0/16 src-address-list=goodboys
    б - в фаерволе сделать несколько правил на акссес для определённых IP (перевод на заглушку, приват, etc.) следующим же правилом разрешить forvard только для тех, кто в address-list куда угодно. последним блокируем всех и везде

З.Ы. пример для перевода на заглушку:
Код:
/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-address=!192.168.110.150 dst-port=80 fragment=no protocol=tcp src-address-list=!goodboys to-addresses=192.168.110.150 to-ports=8080
НО не забываем поменять порт web сервера самого микротика. а то будете биться в агонии и говорить, что не работает.

как попустит с работой постараюсь сделать пошаговый мануал


Название: Re: Mikrotik API
Отправлено: Efendy от 23 Октября 2014, 09:58:13
YuSHa, спасибо


Название: Re: Mikrotik API
Отправлено: sedo26 от 23 Октября 2014, 11:13:33
Так же купил n+ модуль микротика, работает стабильно.
Вопрос по 49(50) модулю микрота, какие ошибки можно исправить, чтоб более корректно работал с 400 и больше кол-вом клиентов, иногда прописывает некорректно нарезку на клиента.


Название: Re: Mikrotik API
Отправлено: sov от 23 Октября 2014, 21:16:05
Сбросил микротик в ноль, настроил заново и всё заработало :)

Ниже привожу заготовку для мануала. Надеюсь, YuSHa и прочие дополнят и поправят, если я ошибся или сделал неоптимальные настройки. И добавка для переброски на заглушку тоже не помешает.

Исходные данные для примера:

Сервер биллинга - 192.168.1.1
Микротик - 192.168.1.2
Сеть, обслуживаемая микротиком - 192.168.2.0/24
Микротик обслуживает клиентов по PPPoE

1. Добавляем в биллинге новый сателлит с сетью 192.168.2.0/24

2. Добавляем клиента для микротика в настройках Radius-а  - файл clients.conf:
client 192.168.1.2 {
  secret = abrakadabra # это пароль - заменить на свой
  shortname = mikrotik1
  nastype = other
}

Перезапускаем радиус

3. В файрволе биллинга пропускаем IP микротика

4. Модуль распаковываем в папку /usr/local/nodeny/modules/mikrotik

5. Редактируем файл create.cfg.mikrotik.cfg.pm:
$host = '192.168.1.2';
$user = 'mikrotik';
$pass = 'slavyanskij_shkaf'; # это пароль - заменить на свой

6. Возвращаемся в каталог /usr/local/nodeny и делаем perl install.pl -x

7. Делаем автозапуск модуля, прописывая в rc.local  строку "/usr/bin/perl /usr/local/nodeny/noserver.pl -g=mikrotik.cfg.pm -d &"

8. Сбрасываем микротик на заводские настройки

9. Заходим на управление микротиком и выполняем следующие команды (это в терминале, но можно их-же через GUI винбокса):

/user add name=mikrotik group=full password=slavyanskij_shkaf

/ip address
add address=192.168.2.1/24 interface=ether2-master-local network=\
    192.168.2.0

/ip dns
set allow-remote-requests=yes servers=8.8.8.8,77.88.8.8

/ip pool
add name=pool2 ranges=192.168.2.2-192.168.2.254

/radius
add address=192.168.1.1 secret=abrakadabra service=ppp

/ppp aaa
set interim-update=30s use-radius=yes

/ppp profile
add local-address=pool2 name=pppoe-client

/interface pppoe-server server
add authentication=chap,mschap2 default-profile=pppoe-client disabled=no \
    interface=ether2-master-local max-mru=1480 max-mtu=1480 mrru=1600 \
    service-name=pppoe-server

/ip firewall nat
add action=masquerade chain=srcnat \
    out-interface=ether1-gateway src-address-list=goodboys

10. В очередях (Queues) должен появиться список адресов со скоростями, а в Address-List - список адресов, которым разрешён доступ в интернет.

11. Добавляем в биллинге клиента для созданного в п.1 сателлита и пытаемся войти в интернет (настроив на компьютере Высокоскоростное соединение). В биллинге запрещаем/разрешаем доступ для клиента, меняем скорости, и проверяем, как это всё отрабатывает.


Название: Re: Mikrotik API
Отправлено: k291 от 15 Апреля 2015, 09:53:05
Как настроить модуль, чтобы Микротик мог обслуживает клиентов по DHCP? А то я Radius не использую


Название: Re: Mikrotik API
Отправлено: k291 от 15 Апреля 2015, 12:16:42
Судя по Queues в микротике, данный модуль не умеет разделять трафик в Украину и Мир. Или может?


Название: Re: Mikrotik API
Отправлено: k291 от 20 Апреля 2015, 01:03:57
Как настроить модуль, чтобы Микротик мог обслуживает клиентов по DHCP? А то я Radius не использую
В create.noserver.hw_mikrotik.pm описаны обычные команды управление микротиком, через терминал:
Цитировать
 
# добавление и удаление IP в ip/firewall/address-list
        $m->set_tag();
        my $id = $list_id;
        map{ $id = $id*256 + $_ } split /\./, $ip;
        my @cmd = $action? (
            "/ip/firewall/address-list/add",
            "=list=$list_name",
            "=address=$ip",
            "=comment=$id",
            "=disabled=no",
            ".tag=".$m->{tag}
        ) : (
            "/ip/firewall/address-list/remove",
            "=.id=$id",
            ".tag=".$m->{tag}

Помогите добавить IP в /ip/dhcp-server/lease для DHCP+IP+MAC:
Цитировать
#Пример команда привязки IP+МАС в микротике
/ip dhcp-server lease add address=10.0.0.184 mac-address=00:03:FD:HG:CA:00 address-list=goodboys insert-queue-before=167772343 comment=Pepkin

Может так:
Цитировать
$m->set_tag();
        my $id = $list_id;
        map{ $id = $id*256 + $_ } split /\./, $ip;
        my @cmd = $action? (
            "/ip/dhcp-server/lease/add",
            "=address=$ip",
            "=mac-address=$mac",
            "=list=$list_name",
            "=insert-queue-before=$list_queue",
            "=comment=$id",
            "=disabled=no",
            ".tag=".$m->{tag}
        ) : (
            "/ip/dhcp-server/lease/remove",
            "=.id=$id",
            ".tag=".$m->{tag}


Название: Re: Mikrotik API
Отправлено: k291 от 20 Апреля 2015, 01:06:29
Если развивать тему, то можно:
1) Добавлять pool:
Цитировать
/ip pool add name=dhcp-pool-1 ranges=192.168.1.100-192.168.1.254
2) Добавляем DHCP сервер на порт ether2 с pool`ом выше:
Цитировать
/ip dhcp-server add address-pool=dhcp-pool-1 disabled=no interface=ether2 name=dhcp1
3) Присваиваем IP на ether2:
Цитировать
/ip address add address=192.168.1.1/24 interface=ether2


Название: Re: Mikrotik API
Отправлено: k291 от 20 Апреля 2015, 01:21:44
Как настроить модуль, чтобы Микротик мог обслуживает клиентов по DHCP? Это нужно для автономной работы Mikrotik`a в случае падения билинга и для тех кто использует модуль DHCP. Например: билинг стоит в Уругвае, а Mikrotik в Румынии. И тут билинг падает, время аренды IP заканчивается, и Интернет отваливается, до тех пор, пока билинг не восстановится. Вся проблема в том, что DHCP стоит на сервере с билингом, при том, что Mikrotik сам умеет раздавать адреса.
После осмотра кода модуля mikrotik, я понял, что модуле не хватает строк для добавления IP+MAC в Mikrotik.
В create.noserver.hw_mikrotik.pm описаны обычные команды управление, через терминал микротика:
Цитировать
 
# добавление и удаление IP в ip/firewall/address-list
        $m->set_tag();
        my $id = $list_id;
        map{ $id = $id*256 + $_ } split /\./, $ip;
        my @cmd = $action? (
            "/ip/firewall/address-list/add",
            "=list=$list_name",
            "=address=$ip",
            "=comment=$id",
            "=disabled=no",
            ".tag=".$m->{tag}
        ) : (
            "/ip/firewall/address-list/remove",
            "=.id=$id",
            ".tag=".$m->{tag}

Помогите добавить IP+MAC в /ip/dhcp-server/lease для DHCP+IP+MAC:
Цитировать
#Пример команда привязки IP+МАС в терминале микротика:
/ip dhcp-server lease add address=10.0.0.184 mac-address=00:03:FD:HG:CA:00 address-list=goodboys insert-queue-before=167772343 comment=Pepkin

Может так:
Цитировать
$m->set_tag();
        my $id = $list_id;
        map{ $id = $id*256 + $_ } split /\./, $ip;
        my @cmd = $action? (
            "/ip/dhcp-server/lease/add",
            "=address=$ip",
            "=mac-address=$mac",
            "=list=$list_name",
            "=insert-queue-before=$list_queue",
            "=comment=$id",
            "=disabled=no",
            ".tag=".$m->{tag}
        ) : (
            "/ip/dhcp-server/lease/remove",
            "=.id=$id",
            ".tag=".$m->{tag}


Название: Re: Mikrotik API
Отправлено: k291 от 20 Апреля 2015, 01:28:58
Перенесено в : htt_://forum.nodeny.com.ua/index.php?topic=448.90


Название: Re: Mikrotik API
Отправлено: k291 от 27 Июня 2015, 02:34:00
1 - В конфиге есть параметр target / target-addresses для старых/новых микротиков.  новые это 6 ветка. старые 5-я и ниже.
2 - Если pppoe поднялось - значит связка биллинг - радиус сервер - радиус клиент(микротик) работает. это уже пол дела.
3 - далее не забываем включить управление по API тут
Код:
> ip service enable api
4 - Инет у клиентов можно отрубить несколькими способами
    а - натить только тех, кто есть в списке good boys. пример:
Код:
/ip firewall nat add action=masquerade chain=srcnat disabled=no out-interface=ether5-ins src-address=10.10.0.0/16 src-address-list=goodboys
    б - в фаерволе сделать несколько правил на акссес для определённых IP (перевод на заглушку, приват, etc.) следующим же правилом разрешить forvard только для тех, кто в address-list куда угодно. последним блокируем всех и везде

З.Ы. пример для перевода на заглушку:
Код:
/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-address=!192.168.110.150 dst-port=80 fragment=no protocol=tcp src-address-list=!goodboys to-addresses=192.168.110.150 to-ports=8080
НО не забываем поменять порт web сервера самого микротика. а то будете биться в агонии и говорить, что не работает.

как попустит с работой постараюсь сделать пошаговый мануал
Можно увидеть примеры? -"б - в фаерволе сделать несколько правил на акссес для определённых IP (перевод на заглушку, приват, etc.)"


Название: Re: Mikrotik API
Отправлено: k291 от 27 Июня 2015, 22:19:42
В Mikrotik на 1м порту, что смотрит в сеть, создал 2а DHCP server`а на реальные и серые IP-адреса. Клиенту с серым IP, дает и блокирует доступ в Интернет. При выдаче клиенту белого IP адреса, адрес выдается правильно, но доступа в интернет нет.

По сути, в связке NoDeny+Mikrotik, не работает
а)доступ в Интернет при белом IP
б)перевод на заглушку при блокировке доступа
в)при смене IP адреса в билинге с серого на белый в Firewall-Address List добавляется строка "goodboys 216.55.77.246"(БЕЗ COMMENT) с буквой D, который нельзя исправить. В Queues не создается правило на скорость. При этом не удалилась строка с серым IP "4462739708 goodboys 10.0.0.252". У белого IP, доступа в интернет нет.
При смене с белого IP адреса на серый в Firewall-Address List удаляется "goodboys 216.55.77.246" и выдает доступ в Интернет.


Название: Re: Mikrotik API
Отправлено: YuSHa от 28 Июня 2015, 11:05:14
а - если это белый ip, то что у вас с маршрутизацией? пропишите вручную белый IP на клиенте, и проверьте инет, предварительно выключив правила фаервола, если таковые есть для белых IP.
б - покажите правило фаервола, которое вы используете для перевода на заглушку.


Название: Re: Mikrotik API
Отправлено: k291 от 28 Июня 2015, 14:33:45
а - если это белый ip, то что у вас с маршрутизацией? пропишите вручную белый IP на клиенте, и проверьте инет, предварительно выключив правила фаервола, если таковые есть для белых IP.
б - покажите правило фаервола, которое вы используете для перевода на заглушку.
а) попробую отпишусь.
б) Из Вашего примера с заменой на внешний IP сервера:
Код:
/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-address=!192.168.110.150 dst-port=80 fragment=no protocol=tcp src-address-list=!goodboys to-addresses=192.168.110.150 to-ports=8080
Но с этим правилом, вообще не пускает в Интернет.

Сейчас использую, так как у меня будет 2а провайдера на разных портах:
Цитировать
/ip firewall nat add action=masquerade chain=srcnat disabled=no src-address-list=goodboys