Шлюзом типа Switch может выступать любой управляемый коммутатор с поддержкой SNMP и MIB-IFACES. Предполагается, что SNMP на коммутаторе уже настроен и заведено community с r-w правами, например billing.
Для начала необходимо установить номера интерфейсов, которые есть на вашем коммутаторе. Очень удобно для этого под Windows использовать утилиту GetIf, которую вы можете скачать по адресу: http://www.wtcs.org/snmp4tpc/FILES/Tools/SNMP/getif/getif-2.3.1.zip
Определения существующих интерфейсов установите в первой вкладке имя community и адрес хоста, соединитесь.
В данном случае соединение шло с SNMP-агентом MS WIN машины. Далее на вкладке MBrowser выберите ветку .1.3.6.1.2.1.2.2.1.2 и нажмите Start.
Далее необходимо составить карту-код интерфейса - его понятное администратору обозначение.
Например в нашем случае интерфейс 1 - это LO, 65539 - ETH1. К сожалению getif некорректно отображает значение поля ifDescr, поэтому приходится ориентироваться по другим полям, например ifType.
В случае, если вы предпочитаете работать с UNIX-системами, воспользуетесь утилитой snmpwalk из пакета (bbb - это имя community):
snmpwalk -Os -c bbb -v 1 192.168.184.2 .1.3.6.1.2.1.2.2.1.2
Вывод будет примерно следующий:
[root@gate ~]# snmpwalk -Os -c bbb -v 1 192.168.184.2 .1.3.6.1.2.1.2.2.1.2 ifDescr.1 = STRING: MS TCP Loopback interface ifDescr.65539 = STRING: 3Com Gigabit LOM (3C940)
Таким образом мы получаем карту интерфейсов.
Следующий шаг - создание типа шлюза. Допустим, мы хотим создать тип шлюза CISCO XXX с определённым набором фиксированных интерфейсов (портов), причём на каждом из шлюзов этого типа могут быть дополнительные интерфейсы типа VLAN.
В конфигурации должно быть указано следующее:
user_rule.editor.class=bitel.billing.module.services.ipn.editor.SwitchContractRuleEditor gate_manager.class=bitel.billing.server.ipn.SwitchGateWorker #версия snmp 1 или 2c snmp.version=1
При указании
биллинг не будет выполнять действий по управлению устройством при смене статуса шлюза, в этом случае шлюз может быть использован только для учёта.Далее указываются номера интерфейсов
iface.65539=ETH1
Типы правил для Switch-шлюзов создавать не нужно, можно сразу создавать шлюз. В шлюзе можно добавить специфичные для него интерфейсы.
Теперь при добавлении шлюза в договор после выбора шлюза 127.0.0.1 отобразится следующий редактор.
Программа отобразит только свободные на данном шлюзе порты. Выбрав порт вы укажете программе, что его нужно блокировать в случае перевода статуса договора в IPN модуле в закрыт или заблокировано.
Также в конфигурации шлюза можно поставить опцию
#Интервалы в миллисекундах между неудачными попытками связаться по snmp. 500,1000,2000,5000,5000 - значения по умолчанию. #retry.intervals=500,1000,2000,5000,5000