Этот шлюз работает только в связке со шлюзом Cisco2, описанным в предыдущей главе . Если вы хотите его запустить автономно, то все равно должен быть родительский шлюз Cisco2, логику которого можно подменить пустым скриптом BeanShell. В текущий момент поддерживаются Zyxel ES 2024A, Zyxel ES 2108G, Zyxel GS 3012F и совместимые с ними.
Для родительского типа шлюза Cisco2 в этом случае надо прописать вот такую конфигурацию :
gate_manager.class=bitel.billing.server.ipn.vlan.CiscoVlanParentGateWorker
Типовая схема - каждый клиент помещается в отдельный VLAN. Клиент может быть подключён к cisco через цепочку управляемых шлюзов, поддерживающих протокол GVRP. VLAN прописывается на шлюзе cisco и на конечном шлюзе, к порту которого подключён абонент. Остальные шлюзы могут получать информацию о VLAN по протоколу GVRP.
Данный шлюз управляется по ssh.
Создайте тип шлюза со следующей конфигурацией:
user_rule.editor.class=bitel.billing.module.services.ipn.editor.vlan.CiscoSSHSwitchRuleEditor gate_manager.class=bitel.billing.server.ipn.vlan.CiscoSSHSwitchGateWorker
В командах данного типа шлюза пропишите :
[DEFAULT]
[OPEN]
<LOOP_PORT>
interface port-channel {PORT}
pvid {VID}
exit
</LOOP_PORT>
vlan {VID}
name "abonent {VID}"
normal ""
<LOOP_PORT>
fixed {PORT}
</LOOP_PORT>
untagged 1-8
exit
[/OPEN]
[CLOSE]
no vlan {VID}
[/CLOSE]
[/DEFAULT]Обработка команд происходит аналогичным образом , как и обработка команд Manad. Т.е макросы вида {A} заменяются на адрес из выбранных диапазонов для тегов <LOOP>, а макросы {NET} и {NET_MASK} заменяются на выбранные сети для тегов <LOOP_NET> и <LOOP_NET_MASK> соответственно.
Ещё для шлюза Zyxel производятся дополнительные преобразования:
1. Макрос {VID} заменяется на номер VLAN, который выделен на данный договор и шлюз (как задаётся выделение VLAN описано тут ) , независимо от того, где встретится (внутри цикла LOOP или нет ).
2. Для каждого тега <LOOP_PORT> вместо макроса {PORT} подставляются порты клиента.
В правилах данного типа шлюза добавляется пустое правило.
Создайте шлюз данного типа как шлюз потомок для Cisco2. В конфигурацию данного шлюза добавьте :
# Логин пользователя login=admin # Время ожидания ответа, по истечению которого шлюз сбрасывает соединение и выдаёт ошибку timeout=20000
Задайте хост и порт (22) шлюза, в качестве ключевого слова забейте пароль.
Добавьте данный шлюз в договор пользователя. Вы увидите следующую картину :

На вкладке Cisco показаны команды, которые будут вызываться на шлюзе Cisco.
На вкладке Switch - команды, которые будут вызываться на коммутаторе.

На вкладке привязка вы можете задавать привязку ip-адресов к портам и mac адресу .

Порты подставляются в команды коммутатора вместо макроса {PORT} . Также эта таблица используется шлюзом DHCP для выдачи ip по mac.
Выбор адресов и сетей влияет на команды (вкладки) Cisco и Switch.