Child pages
  • Настройка сервера доступа Juniper

Skip to end of metadata
Go to start of metadata

Правка 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) сервиса


Настройка сервера доступа  меню Настройка>Сервер доступа

IP:IP адрес маршрутизатора
Название:Название
Тип:Указать тип: mx80


:Управление:

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';


Пример 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";
 }
  • No labels