Пример настройки IPoE, управление доступом

Заводим новый тип устройства, назовём его Dlink.

Добавляем устройство этого типа как дочернее к устройству Access+Accounting.

images/download/attachments/43385897/inet_ipoe_device.png

В самом устройстве прописываем хост:порт(порт ставим 22 для ssh), и логин/пароль пользователя для управления.

images/download/attachments/43385897/inet_ipoe_device_edit.png

Заводим тип сервиса:

images/download/attachments/43385897/inet_pppoe_service_type.png

Тут тип инициации сессий:

1) по трафику(это если вы собирайте трафик по netflow и хотите его учитывать).

2) По сигналу(Если вы хотите чтобы сессия стартовала по dhcp запросу ).

Так как режим какой-то должен быть выбран, то поставьте пока по трафику, даже если сессии вообще не будет(не будет не сигналов, ни трафика). Потом можно будет поменять по мере настройки.

Тип адреса - статический адрес(про динамический будет описано позже). Ставим галочку возле устройства. В title.pattern настроили так, чтобы отображался ip адрес.

Так как мы выбрали статический ip, то нам надо создать для него категорию в ресурсах ip-адресов.

images/download/attachments/43385897/inet_ipoe_ip_resource.png

И не забываем id этот категории прописать в переменную ip.resource.categoryId в конфигурации устройства:

images/download/attachments/43385897/inet_ip_resource_category_config.png

Добавляем сервис на договор, выбираем устройство и ip.

images/download/attachments/43385897/inet_ipoe_service_contract.png

images/download/attachments/43385897/inet_ipoe_service_contract_view.png

Для управления доступом у нам используется обработчик активации сервисов, написанные на динамическом коде. Есть несколько стандартных обработчиков активации сервисов(доступные в стандартной поставке), такие как:

ru.bitel.bgbilling.modules.inet.dyn.device.terminal.SSHServiceActivator - Универсальный обработчик активации сервисов по ssh.

ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TelnetServiceActivator - Универсальный обработчик активации сервисов по telnet.

ru.bitel.bgbilling.modules.inet.dyn.device.snmp.SnmpServiceActivator - Универсальный обработчик активации сервисов по snmp.

ru.bitel.bgbilling.modules.inet.dyn.device.mikrotik.MikrotikServiceActivator - Универсальный обработчик активации сервисов по для Mikrotik, работающий по протоколу Mikrotik Api.

Все они есть в стандартной поставке и описаны в wiki. Есть так же другие .

Пусть для примера мы решили использовать ssh. Тогда мы выбираем ru.bitel.bgbilling.modules.inet.dyn.device.terminal.SSHServiceActivator в типе устройства.

images/download/attachments/43385897/inet_ipoe_service_activator.png

И конфигурации его указываем команды на подключение и отключение.

#Команды включения сервиса на устройстве
sa.command.serv.enable=permit ip host $ip any
#Команды выключения сервиса на устройстве
sa.command.serv.create=permit ip host $ip any
#Команды создания сервиса на устройстве.
sa.command.serv.disable=deny ip host $ip any
#Команды удаления сервиса с устройства.
sa.command.serv.cancel=deny ip host $ip any

Это команды указаны просто как пример. В данном случае при отправке команд переменная ip будет заменена на тот Ip адрес, который мы поставили в сервисе. Как задавать команды описано в описании ru.bitel.bgbilling.modules.inet.dyn.device.terminal.SSHServiceActivator.

С этого момента можно попробовать проверить открытие/закрытие доступа на устройстве. Если вы не хотите собирать netlow и обсчитывать трафик, а просто хотите открывать/закрывать доступ на устройстве по ip или интерфейсу, то этого будет достаточно . Можно проверять доступ, меняя баланс на договоре(например расходами и платежами) так чтобы состояние сервиса изменилось (когда баланс больше лимита, то подключено, когда меньше - отключено) и смотреть на устройстве правильно ли отработали команды. В этом режиме не создаются никакие сессии, а только управляется доступ в зависимости от баланса. Этот режим можно использовать, например, для безлимитчиков, для которых не нужно собирать трафик. Так же состояние сервиса можно менять вручную из меню вызываемого по правой кнопкой мыши, это бывает полезно для отладки обработчика активации сервиса.

В случае управления по интерфейсу(открывать/закрывать доступ на интерфейсе) нужно будет выбрать его в типе сервиса и поменять команды на типе устройства (макрос $iface). Все макросы ru.bitel.bgbilling.modules.inet.dyn.device.terminal.SSHServiceActivator активатора описаны в wiki. Если вы хотите использовать например не ssh, а telnet,то все настраивается аналогично, только указывает другой порт в устроите (23 вместо 22 ) и другой обработчик активации сервиса - ru.bitel.bgbilling.modules.inet.dyn.device.terminal.TelnetServiceActivator. Для mikrotik есть отдельный обработчик ru.bitel.bgbilling.modules.inet.dyn.device.mikrotik.MikrotikServiceActivator, работающий по mikrotik api(порт 8728). Для протокола snmp есть ru.bitel.bgbilling.modules.inet.dyn.device.snmp.SnmpServiceActivator.

Если кроме управления, вы хотите ещё собирать статистику по netflow, то нужно указать ip-адрес в типе сервиса, указать тип инициации по трафику (чтобы сессия создавались по трафику) и в типе сервиса. И настроить netflow согласно этой статье. Также в этом случае понадобится настроить тариф, в тарифе должны быть цены и услуги для всех типов трафика, и добавить тариф на договор . Если все будет нормально работать, то у вас должны появляться сессии с трафиком netflow.

Если вы хотите выдавать динамический ip с помощью dhcp option 82, то нужно настроить InetDhcpListener в Access-сервере. Настроить на устройстве переменные. Тип инициации сессии тогда в типе сервиса нужно установить "по сигналу" (она будет создаваться по dhcp запросу).