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