forum.bitel.ru http://forum.bitel.ru/ |
|
Выполнение команд на двух устройствах http://forum.bitel.ru/viewtopic.php?f=44&t=12797 |
Страница 1 из 1 |
Автор: | dex [ 19 фев 2018, 14:43 ] |
Заголовок сообщения: | Выполнение команд на двух устройствах |
На договоре один сервис. В нем можно указать разные опции. Можно ли сделать так, чтобы допустим одна опция выполнялась на одном физическом устройстве (на микротике), а другая опция на другом микротике. Например: одна опция ограничивает скорость, добавляя IP адрес на одном микротике, а вторая опция добавляет этот же IP на второй микротик для резервного канала. |
Автор: | borisk [ 19 фев 2018, 16:06 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
А почему нет? Команды выполняются на всех родительских устройствах, имеющих ServiceActivator. Но конечно бы неплохо знать версию вашего биллинга и как дерево организовано. |
Автор: | dex [ 20 фев 2018, 08:46 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
Информация о версии: Клиент: вер. 7.0.924 / 15.12.2017 12:49:46 os: Windows 10; java: Java HotSpot(TM) Client VM, v.1.8.0_161 Сервер: вер. 7.0.1295 / 15.12.2017 12:51:00 os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_73 bill: вер. 7.0.126 / 01.12.2017 17:51:12 card: вер. 7.0.45 / 01.12.2017 17:51:21 dba: вер. 7.0.168 / 01.12.2017 17:51:43 dialup: вер. 7.0.322 / 01.12.2017 17:50:41 inet: вер. 7.0.796 / 20.12.2017 16:45:07 ipn: вер. 7.0.272 / 12.12.2017 18:57:24 mps: вер. 7.0.223 / 01.12.2017 17:52:04 npay: вер. 7.0.212 / 01.12.2017 18:45:14 reports: вер. 7.0.237 / 01.12.2017 17:52:36 robokassa: вер. 7.0.31 / 01.12.2017 17:52:39 ru.bitel.bgbilling.plugins.bonus: вер. 7.0.132 / 01.12.2017 17:51:19 ru.bitel.bgbilling.plugins.dispatch: вер. 7.0.95 / 01.12.2017 17:51:44 ru.bitel.bgbilling.plugins.documents: вер. 7.0.180 / 01.12.2017 17:51:44 trayinfo: вер. 7.0.179 / 01.12.2017 17:52:53 tv: вер. 7.0.257 / 04.12.2017 20:34:15 Дерево такое. Access+Accounting -Border --Nas Border - (Микротик1) (сюда при добавлении опции на сервис нужно, чтобы добавлялся IP адрес сервиса в определенный адрес лист) Nas (Микротик2) - сюда подключаются клиенты по PPPoE клиенты и здесь же режется скорость. Что нужно добавить в конфигурацию, чтобы при подключении клиента к NAS отрабатывала конфигурация не только типа устройства для NAS, но и типа устройства для Border? Например: у клиента две опции на сервисе, одна ограничение скорости 20М/бит, а вторая опция для добавления его же IP в адрес лист на Border. |
Автор: | borisk [ 20 фев 2018, 11:28 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
Считаю, что вы используете TerminalServiceActivator для управления Mikrotik. И, как я понял, в устройстве NAS у вас уже все настроено и работает. Чтобы это так же работало и в устройстве Border, вам всего лишь надо продублировать в нем конфигурацию для тех опций, которые должны на нем обрабатываться. Например мы хотим, чтобы опция с id == 5 обрабатывалась на устройстве Border, для этого в его конфигурации пишем например так: Код: # команды, вызываемые при включении опции ID=x (и дочерних опций по отношению к опции с ID=x) на соединении
sa.terminal.connection.inetOption.5.enable=команды_микротика # команды, вызываемые при отключении опции ID=x (и дочерних опций по отношению к опции с ID=x) на соединении sa.terminal.connection.inetOption.5.disable=команды_микротика |
Автор: | dex [ 21 фев 2018, 09:14 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
Спасибо за предыдущие ответы! Выбран MikrotikServiceActivator #Команды включения опций сервиса на устройстве sa.command.inetOption.50.enable=/ip/firewall/address-list/add\n=address=$ip\n=list=123\n=comment=$contractTitle #Команды выключения опций сервиса на устройстве sa.command.inetOption.50.disable=/ip/firewall/address-list/remove\n=numbers=$contractTitle Эти команды выполняются при условии, если ip прописан статикой на сервисе. Как сделать, чтобы они выполнялись и с динамическими ip адресами. Еще один вопросик. Эти команды выполняются только при добавлении опции на сервис в договоре и удалении его. Как сделать чтобы при отключении клиента - он удалялся, а при подключении и получении им нового динамического ip адреса опция добавлялась заново на Mikrotik? Заранее благодарен за ответ. |
Автор: | borisk [ 21 фев 2018, 11:19 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
Переходите на TerminalServiceActivator, более продвинут, а MikrotikServiceActivator похоронят. По вашему вопросу http://wiki.bitel.ru/index.php/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BE%D0%B1%D1%89%D0%B8%D1%85_%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D0%BE%D0%B2_%D0%B4%D0%BB%D1%8F_%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85(ssh/telnet/manad/mikrotik_api)_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D0%BE%D0%B2_%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D0%B8_%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%BE%D0%B2 Вам нужно onAccountingStart и onAccountingStop |
Автор: | borisk [ 21 фев 2018, 11:20 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
Еще обратите внимание на Код: #Команды включения опций соединения на устройстве( 1 - код опции).
sa.command.connection.inetOption.1.enable= #Команды включения опций соединения на устройстве( 1 - код опции). sa.command.connection.inetOption.1.disable= |
Автор: | dex [ 22 фев 2018, 12:20 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
Выбрал TerminalServiceActivator Настроил под него команды. И опять только если статикой прописан IP адрес, тогда и работает. А если динамикой получает, то не работает. Уже эту опцию и в тариф добавил. Тоже самое со статикой работает. С динамикой нет! Конфиг: # Хост подключения (если не указан, используется значение из поля Хост/порт) #sa.terminal.host= # Порт подключения (если не указан, используется значение из поля Хост/порт) #sa.terminal.port= # протокол подключения (telnet/ssh/tcp/mikrotik/shell) sa.terminal.protocol=ssh # логин (если не указан, используется значение из поля Логин) #sa.terminal.username= # пароль (если не указан, используется значение из поля Пароль) #sa.terminal.password= # Шаблон приглашения ввода команды (для telnet/ssh/tcp) # Для ssh можно указать regexp, если в начале и конце строки будет символ '\', например, "\(#)|(~\$)\" sa.terminal.endSequence=> # Для sa.terminal.protocol=mikrotik - хост и порт, с которых открывать соединение #sa.terminal.sourceHost= #sa.terminal.sourcePort= # Отложенное подключение. Если указано 1, то подключение происходит перед выполнением первой команды, # иначе - 0 (по умолчанию), подключение происходит в методе connect sa.terminal.lazyConnect=0 # Команды, которые необходимо выполнить после установки соединения #sa.terminal.connect= # команды, которые необходимо выполнить перед отключением соединения #sa.terminal.disconnect= # команда выхода (отключения) sa.terminal.exit=quit Этот код работает при прописанном статически IP адресе на сервисе (при добавлении и удалении опции на сервис): # команды, вызываемые при включении опции ID=x (и дочерних опций по отношению к опции с ID=x) на сервисе sa.terminal.serv.inetOption.50.enable=ip firewall address-list add address=${ip()} list=123 comment=${contractTitle()} # команды, вызываемые при отключении опции ID=x (и дочерних опций по отношению к опции с ID=x) на сервисе sa.terminal.serv.inetOption.50.disable=ip firewall address-list remove numbers="${contractTitle()}" Тоже нужно прописать статический IP адрес/ Этот код отрабатывает если эту тарифную опцию добавить в тариф, который на этом договоре. Отрабатывает при старте сессии и завершении сессии: # команды, вызываемые при включении опции ID=x (и дочерних опций по отношению к опции с ID=x) на соединении sa.terminal.connection.inetOption.50.enable=ip firewall address-list add address=${ip()} list=123 comment=${contractTitle()} # команды, вызываемые при отключении опции ID=x (и дочерних опций по отношению к опции с ID=x) на соединении sa.terminal.connection.inetOption.50.disable=ip firewall address-list remove numbers="${contractTitle()}" |
Автор: | borisk [ 22 фев 2018, 15:38 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
добавьте еще Код: #
sa.terminal.connection.onAccountingStart=${optionsEnable()} sa.terminal.connection.onAccountingStop=${optionsDisable()} |
Автор: | borisk [ 22 фев 2018, 15:39 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
Кстати, вопрос в к разработчикам так и остался - почему это в дефолтовых сетах не сделано? ![]() |
Автор: | dex [ 23 фев 2018, 11:01 ] |
Заголовок сообщения: | Re: Выполнение команд на двух устройствах |
borisk писал(а): добавьте еще Код: # sa.terminal.connection.onAccountingStart=${optionsEnable()} sa.terminal.connection.onAccountingStop=${optionsDisable()} Cпс огромное, помогло, теперь добавляется и статические и динамические адреса. Вот наша полная конфигурация типа устройства для TerminalServiceActivator в связке с Mikrotik (если убрать любую из строк, перестает работать либо полностью либо частично): Код: # протокол подключения (telnet/ssh/tcp/mikrotik/shell) sa.terminal.protocol=ssh # Шаблон приглашения ввода команды (для telnet/ssh/tcp) # Для ssh можно указать regexp, если в начале и конце строки будет символ '\', например, "\(#)|(~\$)\" sa.terminal.endSequence=> # команда выхода (отключения) sa.terminal.exit=quit # команды, вызываемые при включении опции ID=x (и дочерних опций по отношению к опции с ID=x) на сервисе sa.terminal.serv.inetOption.50.enable=ip firewall address-list add address=${ip()} list=123 comment="${servTitle()} (${contractTitle()})" # команды, вызываемые при отключении опции ID=x (и дочерних опций по отношению к опции с ID=x) на сервисе sa.terminal.serv.inetOption.50.disable=ip firewall address-list remove numbers="${servTitle()} (${contractTitle()})" # команды, вызываемые при изменении соединения (состояние/опции) sa.terminal.connection.modify=${optionsEnable()} # команды, вызываемые при включении опции ID=x (и дочерних опций по отношению к опции с ID=x) на соединении sa.terminal.connection.inetOption.50.enable=ip firewall address-list add address=${ip()} list=123 comment="${servTitle()} (${contractTitle()})" # команды, вызываемые при отключении опции ID=x (и дочерних опций по отношению к опции с ID=x) на соединении sa.terminal.connection.inetOption.50.disable=ip firewall address-list remove numbers="${servTitle()} (${contractTitle()})" # команды, вызываемые при старте соединения sa.terminal.connection.onAccountingStart=${optionsEnable()} # команды, вызываемые при стопе соединения sa.terminal.connection.onAccountingStop=${optionsDisable()} Всех защитников с 23 февраля! |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |