Настройка шлюза Cisco2
Шлюз Cisco является родительским шлюзом для коммутатора . Данный шлюз управляется по telnet.
Создайте тип шлюза со следующей конфигурацией:
user_rule.editor.class=bitel.billing.module.services.ipn.editor.vlan.CiscoVlanContactRuleEditorgate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanGateWorkerВ командах этого типа шлюза задайте:
[DEFAULT][REMOVE] no vlan {VID} no interface Vlan {VID}[/REMOVE][OPEN] vlan {VID} interface Vlan {VID} no shutdown ip unnumbered Loopback1 ip helper-address 172.17.0.7 exit[/OPEN][CLOSE] interface Vlan {VID} shutdown exit[/CLOSE][/DEFAULT][OPEN][/OPEN] - это команды, которые посылаются на cisco при открытии шлюза. [CLOSE][/CLOSE] - команды, которые посылаются на cisco при закрытии шлюза. [REMOVE][REMOVE] - команды, которые посылаются при удалении шлюза из договора.
Команды проходят предобработку на стороне сервера Биллинга. Обработка команд происходит аналогичным образом , как и обработка команд Manad. Т.е макросы вида {A} заменяются на адрес из выбранных диапазонов для тегов <LOOP>, а макросы {NET} и {NET_MASK} заменяются на выбранные сети для тегов <LOOP_NET> и <LOOP_NET_MASK> соответственно.
Ещё для шлюза Cisco2 производятся дополнительные преобразования: макрос {VID} заменяется на номер VLAN, которой выделен на данный договор и шлюз (как задаётся выделение vlan описано тут ), независимо от того, где встретится (внутри цикла LOOP или нет ).
В типах правил для этого скрипта можете добавить пустое правило.
Создайте шлюз данного типа. В конфигурацию данного шлюза добавьте :
# Пароль шлюза который задаётся для enable cfg.pswd=12345# Диапазон выделения VLANrange=2-4096# Время ожидания ответа, по истечению которого шлюз сбрасывает соединение и выдаёт ошибкуtimeout=2000Задайте ip-адрес шлюза, в качестве ключевого слова - забейте пароль к cisco, порт - 23.
Данный шлюз можно использовать автономно и в связке с дочерним коммутатором (в стандартной поставке это zyxel, но его можно подменить любым другим , например DLink, с помощью реализации собственного шлюза на языке beanShell. В договор этот шлюз добавляется только, если он используется автономно (Это важно!!). При редактировании в договоре этот шлюз выглядит так
Логика работы шлюза :
password:xxxxxxxxx>terminal length 0xxxx>terminal width 0xxxxx>enablepassword:xxxxx xxxx# далее пошли команды управленияxxxx#permit 1.1.1.1xxxx#no permit 1.1.1.2....xxxx#exitИмеет большое значение настойка и завершаемые символы приглашения. Вначале в конце выводимой cisco информации ожидается ":" ( пользователь вводит пароль, который забит в ключевом слове шлюза) , потом ожидается ">" и шлются 2 команды размеры терминала, посылается команды enable, затем ожидается ":"(пользователь вводит пароль), после этого уже ужидается "#" и посылаются команды управления. Настройки вашей cisco должны соответсвовать этому алгоритму. Если этого сделать не получается (например, вы хотите пропустить процедуру авторизации или у вас иной завершающйй символ приглашения и не хотите его менять), то вы можете использовать аналог этого шлюза на BeanShell из документации Wiki. О том как создавать собственные шлюзы читайте тут.