Этот шлюз работает только в связке со шлюзом 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.