Настройка шлюза Cisco2

Шлюз Cisco является родительским шлюзом для коммутатора . Данный шлюз управляется по telnet.

Создайте тип шлюза со следующей конфигурацией:

user_rule.editor.class=bitel.billing.module.services.ipn.editor.vlan.CiscoVlanContactRuleEditor
gate_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
# Диапазон выделения VLAN
range=2-4096
# Время ожидания ответа, по истечению которого шлюз сбрасывает соединение и выдаёт ошибку
timeout=2000

Задайте ip-адрес шлюза, в качестве ключевого слова - забейте пароль к cisco, порт - 23.

Данный шлюз можно использовать автономно и в связке с дочерним коммутатором (в стандартной поставке это zyxel, но его можно подменить любым другим , например DLink, с помощью реализации собственного шлюза на языке beanShell. В договор этот шлюз добавляется только, если он используется автономно (Это важно!!). При редактировании в договоре этот шлюз выглядит так

images/download/attachments/43386124/ipn_cisco_vlan_contract.png

Логика работы шлюза :

password:xxxxx
xxxx>terminal length 0
xxxx>terminal width 0
xxxxx>enable
password:xxxxx
xxxx# далее пошли команды управления
xxxx#permit 1.1.1.1
xxxx#no permit 1.1.1.2
....
xxxx#exit

Имеет большое значение настойка и завершаемые символы приглашения. Вначале в конце выводимой cisco информации ожидается ":" ( пользователь вводит пароль, который забит в ключевом слове шлюза) , потом ожидается ">" и шлются 2 команды размеры терминала, посылается команды enable, затем ожидается ":"(пользователь вводит пароль), после этого уже ужидается "#" и посылаются команды управления. Настройки вашей cisco должны соответсвовать этому алгоритму. Если этого сделать не получается (например, вы хотите пропустить процедуру авторизации или у вас иной завершающйй символ приглашения и не хотите его менять), то вы можете использовать аналог этого шлюза на BeanShell из документации Wiki. О том как создавать собственные шлюзы читайте тут.