Настройка шлюза 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. В договор этот шлюз добавляется только, если он используется автономно (Это важно!!). При редактировании в договоре этот шлюз выглядит так
Логика работы шлюза :
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. О том как создавать собственные шлюзы читайте тут.