Правка RADIUS словарей
Freebsd путь /usr/local/share/freeradius/
В словарях нужно изменить атрибуты на следующие:
dictionary.erx
ATTRIBUTE ERX-Dhcp-Options 55 octets
dictionary.rfc4679
ATTRIBUTE ADSL-Agent-Circuit-Id 1 octets ATTRIBUTE ADSL-Agent-Remote-Id 2 octets
ABillS
cp Mx802.pm /usr/abills/Abills/mysql
Файл настройки config.pl
Включение модуля авторизации. Данные параметры должны быть прописаны после секций %AUTH = (); %ACCT = ();
$AUTH{mx80} = 'Mx802'; $ACCT{mx80} = 'Mx802';
Параметры
$conf{MX80_IPOE_SWITCH_PORT}=1; | Авторизация по коммутатору и порту. Данные для авторизации берутся из IP (DHCP) сервиса |
---|---|
$conf{MX80_MAC_AUTH}=1; | Авторизация по MAC'у. |
Настройка сервера доступа меню Настройка>Сервер доступа
IP: | IP адрес маршрутизатора |
---|---|
Название: | Название |
Тип: | Указать тип: mx80 |
Alive | Время Alive пакетов для PPPoE и время DHCP lease для IPoE |
:Управление:
IP:PORT: | Адрес и порт для отправки RADIUS CoA команд. (По умолчанию 3799) xxx.xxx.xxx.xxx:3799 |
---|---|
Пароль: | Пароль для отправки RADIUS и CoA пакетов |
Дополнительные Радиус параметры для IPoE авторизации
Framed-Route=0.0.0.0 0.0.0.0 31.135.96.1, MS-Primary-DNS-Server=10.0.0.1, MS-Secondary-DNS-Server=8.8.8.8,
Гостевой профайл
Гостевой профайл разрешает перенаправлять не авторизированных пользователей на страничку уведомления о состоянии счёта и причине отказа авторизации
config.pl
$conf{MX80_GUEST_POOLS_PARAMS}='POOL_ID:EXT_PARAMS'; | Объявление гостевого пула адресов. Данный пул выдаётся не авторизированным абонентам которые не зарегистрированы в системе. Параметры: POOL_ID - Номер пула адресов в системе ABillS (заводится Настройка>Сервер доступа>IP Pools) EXT_PARAMS - Дополнительные радиус параметры для данного пула. Система предоставляет возможность заводить на каждый Vlan свой гостевой пул. Правила пулов разделяются точкой с запятой (;). Пример: $conf{MX80_GUEST_POOLS_PARAMS}='3:ERX-Primary-Dns = 192.168.1.1,Framed-IP-Netmask=255.255.224.0;'; |
---|---|
$conf{MX80_DEFAULT_GUEST_PROFILE}='NOAUTH'; | Гостевой профайл по умолчанию. Если не указан явно будет использоваться NOAUTH |
$conf{MX80_O82_EXPR}='Название опции:регулярное выражение:переменные;…'; | Определение параметров опции 82 |
$conf{MX80_PROFILE_PREFIX}='svc'; | Префикс профайла соединения по умолчанию 'svc' |
$conf{MX80_PROFILES}='WRONG_PASS:profile_wrong_pass;'; | Определение разных профайлов для разных ошибок авторизации Параметры: WRONG_PASS - Неправильный правильный пароль для туннельных соединений (PPPoE) NEG_DEPOSIT - Отрицательный баланс на счету AUTH_ERROR - Другая ошибка авторизации NOT_REGISTER - Учётная запись с такими параметрами не зарегистрирована NOT_ALLOW_SERVICE - Использование услугу запрещено DISABLE - Пользователь отключен Пример $conf{MX80_PROFILES}='WRONG_PASS:profile_wrong_pass; NEG_DEPOSIT:profile_neg_deposit; AUTH_ERROR:profile_other_error; NOT_REGISTER:profile_not_register; NOT_ALLOW_SERVICE:profile_not_allow_service; DISABLE:profile_disable'; |
$conf{MX80_NAT_PROFILE}=1; | Включение NAT профайла ( svc-cgn-nat-pppoe / svc-cgn-nat-ipoe ) для серых адресов |
Пример config.pl Возможность использовать разные профайлы для разных ошибок подключения
#MX80-PPPoE $conf{MX80_PROFILES}=' WRONG_PASS:svc-guest-pppoe(svc-filter-in-wrongpassword); NEG_DEPOSIT:svc-guest-pppoe(svc-filter-in-nomoney); AUTH_ERROR:svc-guest-pppoe(svc-filter-in-unknownerror); USER_NOT_EXIST:svc-guest-pppoe(svc-filter-in-notregister); NOT_ALLOW_SERVICE:svc-guest-pppoe(svc-filter-in-notallowservice); DISABLE:svc-guest-pppoe(svc-filter-in-disable); WRONG_PORT:svc-guest-pppoe(svc-filter-in-wrongport); WRONG_CID:svc-guest-pppoe(svc-filter-in-wrongcid); ';
Пример настройки MX80
dynamic-profiles svc-guest-pppoe interfaces { pp0 { unit "$junos-interface-unit" { family inet { filter { input guest-filter-in; } } } } }
Выражения для определения параметров Option 82
$conf{MX80_O82_EXPR}='Название опции:регулярное выражение:переменные;…';
Пример:
для коммутаторов Foxgate
Agent-Remote-Id = 0x70726f626e696b2e6c6f63616c ADSL-Agent-Circuit-Id = "Vlan202+Ethernet1/5"
config.pl
$conf{MX80_O82_EXPR}='ADSL-Agent-Circuit-Id:Vlan(\d+)\+Ethernet\d\/(\d+):VLAN,PORT;ADSL-Agent-Remote-Id:0x([a-f0-9]{12}):MAC';
Пример:
Edge-core ES-3528(M)
Edge-core ES-3510M
$conf{MX80_O82_EXPR}='ADSL-Agent-Circuit-Id:[a-f0-9]{10}([a-f0-9]{2}):PORT;ADSL-Agent-Remote-Id:0x0006([a-f0-9]{12}):MAC';
Alcatel LS6224
EdgeCore 3528M
$conf{MX80_O82_EXPR}='ADSL-Agent-Circuit-Id:\d{4}(\d{4})\d{2}(\d{2}):VLAN,PORT;ADSL-Agent-Remote-Id:0x0006([a-f0-9]{12}):MAC';
Переключение шейпера в зависимости от времени суток
На границе интервалов нужно запускать программу контроля скорости
/usr/abills/libexec/billd mx80_change_profile
Программа автоматически определяет текущую скорость и переключает профайлы абонентов
Параметры:
LOGIN= | Установка для выбранного абонента |
---|---|
NAS_IDS= | Название сервера доступа |
SPEED=IN:OUT | Установить скорость в ручную |
DEBUG= | Режим отладки |
Пример RADIUS запросов
Пример авторизации IPoE с использование Option 82
User-Name = "000e.0cc1.6c8a" User-Password = "sub321" Service-Type = Framed-User Chargeable-User-Identity = "" Acct-Session-Id = "129" ERX-Dhcp-Options = 0x3501013d0701000e0cc16c8a0c0563616374693707011c02030f0 60c52120106000400150105020800067072cf36b340 ERX-Dhcp-Mac-Addr = "000e.0cc1.6c8a" NAS-Identifier = "gw-subsriber" NAS-Port = 4190229 NAS-Port-Id = "ae0.1073741824:21" NAS-Port-Type = Ethernet ADSL-Agent-Circuit-Id = 0x000400150105 ADSL-Agent-Remote-Id = 0x00067072cf36b340
Ответ авторизации для рабочих сессий
Acct-Interim-Interval = 90 NAS-Identifier = "gw-subsriber" ERX-Dhcp-Options = "0x0304c0a80001" ERX-Service-Activate:2 = "svc-local_1-ipoe(3072000,2048000)" Service-Type = Framed-User Framed-IP-Address = 192.168.47.232 Framed-IP-Netmask = 255.255.0.0 ERX-Service-Activate:3 = "svc-global-ipoe(524288,1048576)"
Пример ответа авторизации при гостевой сессии
Reply-Message = "NEG_DEPOSIT '-5'" Session-Timeout = 90 Service-Type = Framed-User ERX-Service-Activate:1 = "svc-guest-ipoe(svc-filter-in-nomoney)" ERX-Dhcp-Options = "0x03041f876001" ERX-Primary-Dns = 10.10.0.1 Framed-IP-Address = 192.168.11.236 Framed-IP-Netmask = 255.255.0.0
Название профайла
ERX-Service-Activate:[3-{traffic_class_id}] = svc-{traffic_class_name}-{profile_sufix}
{traffic_class_id} | Номер класса трафика 3 - Глобальный 2 - Локальный 3 - Внутренний Для гостевых сервисов используется номер 1 |
---|---|
{traffic_class_name} | Название класса трафика |
{profile_sufix} | PPPoE IPoE Если присутствует RADIUS пара Framed-Protocol система подставляет PPPoE в противном случае IPoE |
Мониторинг расхождений сессий
Отображает не зарегистрированные в биллинге сессии, а также сессии которых нет уже на MX-80, но они зарегистрированы в биллинге. Для работы программы нужно открыть доступ к MX-80 с биллинг сервера по SNMP. В качестве коммунити (snmp community) нужно использовать пароль управления с биллинга.
/usr/abills/libexec/billd mx80_checklines SHOW
Результат работы
=================== MX80 Unknown ip: 192.168.0.7 .0.5477 User: e03f.4923.2739 Connect: IPoE Type: STATE: configured Login time: 2014-09-02 11:54:58 EEST
Консоль управления
На сервере билинга
/usr/abills/misc/certs_create.sh ssh abills_admin
Juniper
start shell user root scp login_billing@ip_billinga:/usr/abills/Certs/id_rsa.abills_admin.pub /var/home/abills_admin set system login user abills_admin class support authentication load-key-file /var/home/abills_admin class support { idle-timeout 10; permissions [ interface routing view ]; allow-commands "monitor|ping|traceroute|show|clear dhcp server binding"; deny-commands "clear|file|op|request|set|start"; }