BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 28 мар 2024, 15:24

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Новая конфигурация MikroTik
СообщениеДобавлено: 26 ноя 2019, 17:51 
Не в сети

Зарегистрирован: 05 июн 2014, 01:18
Сообщения: 149
Откуда: Котлас
Карма: 0
Есть конфигурация типа устройства старого образца (который предполагается прекратить поддерживать):
Код:
sa.command.serv.create.1=/ip/firewall/filter/print\n?=comment=!!BLOCK!!
sa.command.serv.create.2=/ip/firewall/filter/add\n=chain=forward\n=place-before=$prevIdList\n=src-mac-address=$mac\n=disabled=no\n=src-address=$ip\n=comment=!!$servId!!
sa.command.serv.create.3=/ip/firewall/address-list/add\n=list=ALLOW\n=address=$ip\n=comment=!!$servId!!

#1
sa.command.inetOption.10.enable=/queue/simple/add\n=name=$contractTitle\n=max-limit=1M/1M\n=target=$ip\n=comment=!!$servId!!

...море опций...

#50
sa.command.inetOption.26.enable=/queue/simple/add\n=name=$contractTitle\n=max-limit=50M/50M\n=target=$ip\n=comment=!!$servId!!

#правила фаервола
sa.command.serv.enable=/ip/firewall/filter/enable\n=numbers=!!$servId!!;/ip/firewall/address-list/enable\n=numbers=!!$servId!!
sa.command.serv.disable=/ip/firewall/filter/disable\n=numbers=!!$servId!!;/ip/firewall/address-list/disable\n=numbers=!!$servId!!

sa.command.serv.cancel=/ip/firewall/filter/remove\n=numbers=!!$servId!!;/queue/simple/remove\n=numbers=!!$servId!!;/ip/firewall/address-list/remove\n=numbers=!!$servId!!
Привёл к новому образцу, поменяв активатор на ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator:
Код:
# Порт подключения (если не указан, то используется порт из поля Хост/порт)
sa.terminal.port=8728
# протокол подключения (telnet/ssh/tcp/mikrotik-api/mikrotik-api-ssl/shell)
sa.terminal.protocol=mikrotik-api
# Команда выхода (отключения)
sa.terminal.exit=

sa.terminal.serv.create.1=/ip/firewall/filter/print where comment=!!BLOCK!!
sa.terminal.serv.create.2=/ip/firewall/filter/add chain=forward place-before=${mikrotikLastIds()} src-mac-address=${mac()} disabled=no src-address=${ip()} comment=${servId()}
sa.terminal.serv.create.3=/ip/firewall/address-list/add list=ALLOW address=${ip()} comment=${servId()}

#1
sa.terminal.serv.inetOption.10.enable=/queue/simple/add name=${contractTitle()} max-limit=1M/1M target=${ip()} comment=${servId()}

...то же самое море опций...

#50
sa.terminal.serv.inetOption.26.enable=/queue/simple/add name=${contractTitle()} max-limit=50M/50M target=${ip()} comment=${servId()}

#правила фаервола
sa.terminal.serv.modify.enable=/ip/firewall/filter/enable numbers=${servId()};/ip/firewall/address-list/enable numbers=${servId()}
sa.terminal.serv.modify.disable=/ip/firewall/filter/disable numbers=${servId()};/ip/firewall/address-list/disable numbers=${servId()}

sa.terminal.serv.cancel=/ip/firewall/filter/remove numbers=${servId()};/queue/simple/remove numbers=${servId()};/ip/firewall/address-list/remove numbers=${servId()}
При синхронизации сервисов, биллинг логинится к железке, но ни каких правил не создает. В логе аксесса следующее:
Код:
connection 11-26/14:36:32 ERROR [sa-p-13-t-64] EventWorker - Error on device:99 - me.legrange.mikrotik.MikrotikApiException: no such item
ru.bitel.bgbilling.common.BGException: Error on device:99 - me.legrange.mikrotik.MikrotikApiException: no such item
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doTask(ServiceActivatorDeviceWorker.java:516)
   at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.internalDoTaskImpl(AsyncEventWorker.java:248)
   at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.internalDoTask(AsyncEventWorker.java:220)
   at ru.bitel.bgbilling.kernel.event.AsyncEventWorker.doTasks(AsyncEventWorker.java:120)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runWorker(ServiceActivatorDeviceWorker.java:253)
   at ru.bitel.bgbilling.kernel.event.EventWorker.internalRunWorker(EventWorker.java:154)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.runImpl(ServiceActivatorDeviceWorker.java:157)
   at ru.bitel.common.worker.WorkerTask.run(WorkerTask.java:87)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)
   at ru.bitel.common.worker.WorkerThread.run(WorkerThread.java:46)
Caused by: me.legrange.mikrotik.MikrotikApiException: no such item
   at me.legrange.mikrotik.impl.ApiConnectionImpl$SyncListener.getResults(ApiConnectionImpl.java:476)
   at me.legrange.mikrotik.impl.ApiConnectionImpl$SyncListener.access$100(ApiConnectionImpl.java:430)
   at me.legrange.mikrotik.impl.ApiConnectionImpl.execute(ApiConnectionImpl.java:114)
   at me.legrange.mikrotik.impl.ApiConnectionImpl.execute(ApiConnectionImpl.java:72)
   at ru.bitel.bgbilling.kernel.network.mikrotik.MikrotikApiSession.doCommand(MikrotikApiSession.java:92)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalSession$MikrotikApiTerminalSession.sendCommandImpl(TerminalSession.java:678)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalSession.sendCommand(TerminalSession.java:140)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalSession.sendCommand(TerminalSession.java:133)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator.executeCommand(TerminalServiceActivator.java:762)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator.executeCommands(TerminalServiceActivator.java:728)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator.executeCommands(TerminalServiceActivator.java:689)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator.invoke(TerminalServiceActivator.java:1474)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator.invoke(TerminalServiceActivator.java:1402)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator$TGroovyMacro.invoke(TerminalServiceActivator.java:243)
   at ru.bitel.common.groovy.GroovyMacro$MacroMetaClassDelegate.invokeMethod(GroovyMacro.java:241)
   at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:158)
   at Script1$_run_closure1.doCall(Script1.groovy:1)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:498)
   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
   at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
   at ru.bitel.common.groovy.MetaClassDelegate.invokeMethod(MetaClassDelegate.java:107)
   at ru.bitel.common.groovy.GroovyMacro$MacroMetaClassDelegate.invokeMethod(GroovyMacro.java:236)
   at groovy.lang.Closure.call(Closure.java:414)
   at ru.bitel.common.groovy.GroovyMacro.eval(GroovyMacro.java:201)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator.executeCommands(TerminalServiceActivator.java:713)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator.executeCommands(TerminalServiceActivator.java:688)
   at ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TerminalServiceActivator.serviceCancel(TerminalServiceActivator.java:2225)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorSet.serviceCancel(ServiceActivatorSet.java:359)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doCommand(ServiceActivatorDeviceWorker.java:569)
   at ru.bitel.bgbilling.modules.inet.access.sa.ServiceActivatorDeviceWorker.doTask(ServiceActivatorDeviceWorker.java:512)
   ... 15 more
Caused by: me.legrange.mikrotik.impl.ApiCommandException: no such item
   at me.legrange.mikrotik.impl.ApiConnectionImpl$Processor.run(ApiConnectionImpl.java:267)
Инфо:
Код:
Информация о версии:

  Сервер: вер. 7.1.1154 / 01.11.2019 21:34:27
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_101

  inet: вер. 7.1.742 / 01.11.2019 07:53:48
Код:
MikroTik RouterOS 6.45.7


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новая конфигурация MikroTik
СообщениеДобавлено: 26 ноя 2019, 20:43 
Не в сети

Зарегистрирован: 05 июн 2014, 01:18
Сообщения: 149
Откуда: Котлас
Карма: 0
Спасибо добрым людям в телеграм канале. Подправил конфиг. Теперь всё работает.
Код:
# Порт подключения (если не указан, то используется порт из поля Хост/порт)
sa.terminal.port=8728
# протокол подключения (telnet/ssh/tcp/mikrotik-api/mikrotik-api-ssl/shell)
sa.terminal.protocol=mikrotik-api
# Команда выхода (отключения)
sa.terminal.exit=

#
sa.terminal.serv.create.1=/ip/firewall/filter/print where comment=BLOCK
sa.terminal.serv.create.2=/ip/firewall/filter/add chain=forward place-before=${mikrotikLastIds()} src-mac-address=${mac()} disabled=no src-address=${ip()} comment=${servId()}
sa.terminal.serv.create.3=/ip/firewall/address-list/add address=${ip()} list=ALLOW comment=${servId()}

#Создание очередей для опций
#1
sa.terminal.serv.inetOption.10.enable=/queue/simple/add name=${contractTitle()} max-limit=1M/1M target=${ip()} comment=${servId()}

...тьма опций...

#50
sa.terminal.serv.inetOption.26.enable=/queue/simple/add name=${contractTitle()} max-limit=50M/50M target=${ip()} comment=${servId()}

#Включение договора
#Включение правила фаервола
sa.terminal.serv.modify.enable.1=/ip/firewall/filter/print where comment=${servId()}
sa.terminal.serv.modify.enable.2=${skipIfEmpty(mikrotikLastIds())}/ip/firewall/filter/enable numbers=${mikrotikLastIds()}
#Включение адрес-листа
sa.terminal.serv.modify.enable.3=/ip/firewall/address-list/print where comment=${servId()}
sa.terminal.serv.modify.enable.4=${skipIfEmpty(mikrotikLastIds())}/ip/firewall/address-list/enable numbers=${mikrotikLastIds()}

#Выключение договора
#Выключение правила фаервола
sa.terminal.serv.modify.disable.1=/ip/firewall/filter/print where comment=${servId()}
sa.terminal.serv.modify.disable.2=${skipIfEmpty(mikrotikLastIds())}/ip/firewall/filter/disable numbers=${mikrotikLastIds()}
#Выключение адрес-листа
sa.terminal.serv.modify.disable.3=/ip/firewall/address-list/print where comment=${servId()}
sa.terminal.serv.modify.disable.4=${skipIfEmpty(mikrotikLastIds())}/ip/firewall/address-list/disable numbers=${mikrotikLastIds()}

#Удаление договора
#Удаление правила фаервола
sa.terminal.serv.cancel.1=/ip/firewall/filter/print where comment=${servId()}
sa.terminal.serv.cancel.2=${skipIfEmpty(mikrotikLastIds())}/ip/firewall/filter/remove numbers=${mikrotikLastIds()}
#Удаление очереди
sa.terminal.serv.cancel.3=/queue/simple/print where comment=${servId()}
sa.terminal.serv.cancel.4=${skipIfEmpty(mikrotikLastIds())}/queue/simple/remove numbers=${mikrotikLastIds()}
#Удаление адрес-листа
sa.terminal.serv.cancel.5=/ip/firewall/address-list/print where comment=${servId()}
sa.terminal.serv.cancel.6=${skipIfEmpty(mikrotikLastIds())}/ip/firewall/address-list/remove numbers=${mikrotikLastIds()}


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.063s | 24 Queries | GZIP : On ]