forum.bitel.ru
http://forum.bitel.ru/

Обработчик активации сервисов
http://forum.bitel.ru/viewtopic.php?f=44&t=10544
Страница 1 из 2

Автор:  PavelGloba [ 24 май 2015, 03:57 ]
Заголовок сообщения:  Обработчик активации сервисов

На вики лежит список переменных:
ip - ip адрес сервиса или сессии (192.168.1.1)
net - сеть сервиса (192.168.1.1/32)
mask,bitmask - битовая маска сервиса (32)
netmask - маска сервиса в виде (255.255.255.255)
netmaskWild - маска wildcard сервиса (0.0.0.0)
vlan - vlan сервиса
iface, port - интерфейс сервиса
ifaceTitle - наименование интерфейса сервиса
mac - MAC-адрес сервиса (00:14:fd:11:dd:79)
macBytes - MAC-адрес сервиса (0014fd11dd79)
servTitle - наименование сервиса
contractId - код договора
servId - код сервиса
--
А для адреса шлюза переменной нет?

Автор:  PavelGloba [ 26 май 2015, 16:19 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Ещё, можно ли сделать так, чтобы разные сервисы создавались/удалялись/включались на устройствах по разному или такого функционала из коробки нет?

Автор:  PavelGloba [ 27 май 2015, 16:35 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Неужели никто не задавался подобными вопросами?

Автор:  stark [ 27 май 2015, 16:39 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Адреса шлюза вроде нет пока. А нужен ? Он обычно только в самом подключении используется(по ssh, telnet и т.п). Зачем в самих командах нужен Ip шлюза?

Автор:  stark [ 27 май 2015, 16:40 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

PavelGloba писал(а):
Ещё, можно ли сделать так, чтобы разные сервисы создавались/удалялись/включались на устройствах по разному или такого функционала из коробки нет?

Что значит разные сервисы? В зависимости от типа сервиса разные команды ? Что-то такое вроде делали.

Автор:  PavelGloba [ 27 май 2015, 17:57 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

stark писал(а):
Адреса шлюза вроде нет пока. А нужен ? Он обычно только в самом подключении используется(по ssh, telnet и т.п). Зачем в самих командах нужен Ip шлюза?

Например в routerOS при использовании а-ля ip-unnumbered надо прописывать каждый раз адрес шлюза с адресом клиента
Изображение

stark писал(а):
PavelGloba писал(а):
Ещё, можно ли сделать так, чтобы разные сервисы создавались/удалялись/включались на устройствах по разному или такого функционала из коробки нет?

Что значит разные сервисы? В зависимости от типа сервиса разные команды ? Что-то такое вроде делали.

Да, именно это. Подскажите, пожалуйста, где искать.

Автор:  Amir [ 27 май 2015, 18:10 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

viewtopic.php?f=42&t=9154&p=80859&hilit=commandSet+servTypeIds#p80903

Делать CustomAbstractTerminalServiceActivator не нужно, этот функционал уже есть в обычной сборке.

Автор:  PavelGloba [ 27 май 2015, 18:39 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Amir писал(а):
http://forum.bitel.ru/viewtopic.php?f=42&t=9154&p=80859&hilit=commandSet+servTypeIds#p80903

Делать CustomAbstractTerminalServiceActivator не нужно, этот функционал уже есть в обычной сборке.


Спасибо. Работает. Наверное, надо в инструкцию это добавить.

По поводу адреса шлюза, рассмотрите, пожалуйста, возможность сделать эту переменную. Думаю, она многим пригодится.

Автор:  snark [ 28 май 2015, 13:23 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

PavelGloba писал(а):
По поводу адреса шлюза, рассмотрите, пожалуйста, возможность сделать эту переменную. Думаю, она многим пригодится.

Вряд-ли он пригодится. В большинстве случаев адрес шлюза можно руками вбить в конфиг, т.к. он постоянен, если сеть одна, а если сетей много, то проще сделать по устройству на сеть и, опять же, вбить адрес шлюза в конфиг руками.
IMHO, на МТ проще всего сделать так:
Код:
/ip dhcp-server network add address=172.16.0.0/24 gateway=172.16.0.1 dns-server=77.88.8.8,77.88.8.1

Потом останется создать VLAN для абонента и просто повесить туда DHCP сервер
Код:
/interface vlan add arp=reply-only interface=ether1 name=vlan_1002 vlan-id=1002

/ip address add address=172.16.0.1/32 network=172.16.0.2 interface=vlan_1002

/ip pool add name=dhcp_pool_1002 ranges=172.16.0.2

/ip dhcp-server add add-arp=yes interface=vlan_1002 name=dhcp_1002 address-pool=dhcp_pool_1002 lease-time=10m

Код:
/interface vlan add arp=reply-only interface=ether1 name=vlan_1003 vlan-id=1003

/ip address add address=172.16.0.1/32 network=172.16.0.3 interface=vlan_1003

/ip pool add name=dhcp_pool_1003 ranges=172.16.0.3

/ip dhcp-server add add-arp=yes interface=vlan_1003 name=dhcp_1003 address-pool=dhcp_pool_1003 lease-time=10m

...
Код:
/interface vlan add arp=reply-only interface=ether1 name=vlan_1254 vlan-id=1254

/ip address add address=172.16.0.1/32 network=172.16.0.254 interface=vlan_1254

/ip pool add name=dhcp_pool_1254 ranges=172.16.0.254

/ip dhcp-server add add-arp=yes interface=vlan_1254 name=dhcp_1254 address-pool=dhcp_pool_1254 lease-time=10m

Особое внимание следует уделить "arp=reply-only" - тогда МТ будет отвечать на ARP запросы только тем адресам, которые он выдал через DHCP (см. "add-arp=yes" в dhcp-server), т.е. ручками адрес будет вбить нельзя. Если надо разрешить вбивать ручками, то надо писать "arp=proxy-arp".

Чего реально не хватает - это какого нить contractTitle, который позволил бы писать дескрипшены на основе названия договора. Разумеется это все будет нормально работать только если имена контрактов состоят из латинских букв и цифр, хотя если добавить транслитерацию, то была бы вообще красотища.

Автор:  PavelGloba [ 28 май 2015, 18:36 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

По устройству на сеть мне не сделать иерархически.
Mikrotik -> 3120 -> Свичи
Но можно сделать несколько сервисов с разными подсетями. Главное потом в этом не запутаться.
У меня в качестве dhcp выступает биллинг. Свичи туда релеят напрямую. На миркотике на влане проксиарп. А contractTitle - да, не хватает. Думал как-нибудь логин автоматом по номеру договора создавать, т.к. по логину можно обзывать сервис, а переменная servTitle присутствует. Но это уже извращение какое-то.

Автор:  snark [ 28 май 2015, 19:16 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

PavelGloba писал(а):
contractTitle - да, не хватает. Думал как-нибудь логин автоматом по номеру договора создавать, т.к. по логину можно обзывать сервис, а переменная servTitle присутствует. Но это уже извращение какое-то.

Ты так говоришь извращение, как будто это что-то плохое :)
БГБ - это такой конструктор, где, как и с любым конструктором, самое главное - фантазия. Если в БГБ нет чего-то очень нужного, то надо либо писать скрипт, либо немного повернуть мозг и использовать X для Y, даже если изначально все задумывалось не совсем так или не совсем для этого.
Например я в dialup использую объекты для того чтобы "прибивать" юзера к порту, т.к. для меня объекты - это просто удобный справочник, а кто-то их использует еще для чего-то.

Автор:  Amir [ 28 май 2015, 23:16 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Адрес шлюза уже оказывается был - $host.
Выкладывается $contractTitle и $translit($contractTitle).
Немного обновил Описание общих параметров для терминальных(ssh/telnet/manad/mikrotik api) обработчиков активации сервисов

Автор:  PavelGloba [ 29 май 2015, 11:00 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Мы, видимо, друг друга не поняли. Нужен был ipGate, которого просто в вики не было...

Автор:  snark [ 29 май 2015, 12:14 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Amir писал(а):
Выкладывается $contractTitle и $translit($contractTitle).

Amir, ты, как всегда, на высоте!
ОГРОМНОЕ СПАСИБО!

Автор:  ok-2004 [ 29 май 2015, 13:00 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

a-ля ip_unnumbered в микротике можно организовать 2 способами:
1. С прописыванием постоянного ип=ип шлюза на vlan-интерфейсе клиента и "сетевым" адресом = ип адресу клиента.( Походу случай TC)
2. Созданием бриджа без портов с ип-ип адресом шлюза и административным MAC-ом "развиланеного" езер-интерфейса и прописыванием маршрутов на ип клиента через этот vlan-interface.

+ второго случая:
a. Не надо по ДХЦП выдавать клиенту ип default-gateway-я.
б. Можно в один влан засунуть несколько ип-ов для клиента.

- второго случая:
а. Надо включать прокси-арп. А так как микротик не ведает различий между proxy-arp и local-proxy-arp - между-вланный клиентский траффик пойдёт через микротик. Придётся задействовать bridge filter.
б. Не возможно отмаршрутизить сетку через ип клиента т.к. статические маршруты с distance=1 в микротике через шлюзы в виде интерфейса не работают

Автор:  PavelGloba [ 02 июл 2015, 15:17 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Amir писал(а):
Выкладывается $contractTitle и $translit($contractTitle).


Выложилось? В ченжлоге ничего такого не видел. Последний раз когда проверял - в переменную записывалось "null"

Автор:  Amir [ 14 июл 2015, 21:55 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

С 6.1 есть.
Динамические классы перекомпилировали после обновления?
Ошибок в логах не было когда использовали $contractTitle или $translit?

Автор:  PavelGloba [ 16 июл 2015, 23:17 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

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

Автор:  Amir [ 17 июл 2015, 01:11 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

А что имеете ввиду под наименованием?

Автор:  PavelGloba [ 17 июл 2015, 13:56 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Изображение

Автор:  stark [ 20 июл 2015, 12:14 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

т.е нужно еще и комментарий договора добавить?

Автор:  snark [ 20 июл 2015, 19:43 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

"title" - по-английски, "название", поэтому большинство, обоснованно, понимает так:
Код:
$contractTitle == Название договора (т.н. "номер договора")

Автор:  Phricker [ 20 июл 2015, 22:54 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

а dbinfo и конкретно bgbilling.contract считает, что title = номер договора, а comment = т.н. комментарий

Автор:  snark [ 21 июл 2015, 13:12 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

PavelGloba писал(а):
переменная $contractTitle возвращает наименование клиента, а не номер договора

Тут, как обычно в БГБ, проблема с русским языком.
"Номер договора" - это и есть "название договора". Оно, обычно, типизируется через настройки после чего генерится автоматом и в базе хранится как название, а вот "комментарий" - это просто комментарий к названию отношения не имеющий. У многих, в т.ч. у меня, "комментарий" вообще не используется.


Phricker писал(а):
bgbilling.contract считает, что title = номер договора, а comment = т.н. комментарий

В таблице contract поле title как раз означает то что надо.

Я вчера с телефона писал, а сеня глянул в клиенте кто есть who и поправил вчерашнее сообщение.

Автор:  stark [ 21 июл 2015, 13:41 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

удобно когда в комментарии фио или название организации и автоматом через шаблон обновляется .

Автор:  snark [ 21 июл 2015, 15:28 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

stark, это удобно в клиенте, а на железке, в дескрипшене порта, вполне достаточно названия/номера договора.

Автор:  PavelGloba [ 27 авг 2015, 17:19 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Ещё пара вопросов.
Добавление нового профиля железки при куче существующих, для меня мучение, т.к. все параметры, которых нет в другом профиле, наследуются от вышестоящего устройства в иерархии. Например, мне нужно добавить одну строку в конфиг для одного типа устройства:
sa.command.connect=conf t
Допустим, у этого устройства куча дочерних устройств, т.к. оно является маршрутизатором сегмента, и они все примут это в свой конфиг по иерархии. Чтобы этого не происходило, я должен зайти и замаскировать эту строку практически в каждом профиле, который у меня есть. Более того, если я завожу команды не через разделитель, а отдельной строкой с общим префиксом, то надо ещё и следить, чтобы этих команд оказалось меньше, чем на дочерних устроствах, а если нет, то в каждом профиле добавлять лишние пустые строки. Если у меня зоопарк из устройств, то это просто беда. Есть ли какой-то способ не наследовать настройки обработчика активатора сервисов (для меня в принципе загадка зачем это делается) ? Если нет, то планируется ли добавить такую возможность?

Автор:  PavelGloba [ 27 авг 2015, 17:35 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Второй вопрос. Есть не очень хорошая железка.
Для неё подходит строка sa.endSequence=#
Подходит ровно до тех пор, пока не сохраняешь конфиг.
router#write
Overwrite file [startup-config] ?[Yes/press any key for no]....

Вот тут активатор ждёт "#" и не отправляет следующую команду. Что можно сделать в этом случае?

Автор:  Amir [ 27 авг 2015, 18:04 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

Укажите в конфиге
sa.config.inherit=0
Тогда не будет использовать наследованные параметры - только из конфига устройства и типа усройства.

Однако с этим в 6.2 была ошибка - параметры указанные в конфиге устройства не учитывались - возможно нужно будет обновиться.

Автор:  Amir [ 27 авг 2015, 18:09 ]
Заголовок сообщения:  Re: Обработчик активации сервисов

http://wiki.bitel.ru/index.php/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA_%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_%D0%BF%D0%BE_telnet

Попробуйте
Код:
sa.command.serv.enable=write; $setEndSequence([Yes/press any key for no]); yes; $setEndSequence(#);
или так, если первый вариант вдруг не сработает
Код:
sa.command.serv.enable=write; $setEndSequence(no]); yes; $setEndSequence(#);

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/