=====Juniper===== {{http://www.juniper.net/shared/img/header/logo-top-m.gif|http://www.juniper.net/}} Управление, авторизация и аккаунтинг Juniper MX-80 ====Возможности==== * PPPoE, * [[#ipoe|IPoE]] * DHCP Option 82 * [[#avtorizacija_po_mac_i_portu_kommutatora|Авторизация по MAC и порту коммутатора]] * [[#q-in-q|Q-in-Q]] * [[#avtorizacija_po_mac_abornenta|Авторизация по MAC аборнента]] * Авторизация по логину паролю (PPPoE) * Авторизация по MAC (IPoE) * Шейпер с классами трафика, нарезка скорости в зависимости от времени суток * Radius CoA/PoD * Перенаправление должников в личный кабинет **Лицензии** * S-MX80-SA-FP * S-MX80-SSM-FP * S-SA-16K =====PPPoE===== =====IPoE===== Для работы в таком режиме нужно настроить DHCP сервер на MX80. Авторизация и аккаунтинг проходит в следующем порядке. * Абонентское оборудование при подключении к сети запрашивает IP адрес. Биллинг исходя из параметров выбранной авторизации: * [[#avtorizacija_po_mac_kommutatora_i_portu_ipoe|Switch + Port]] * MAC абонента проводит авторизацию абонента. Если авторизация не прошла абоненту выдаётся профайл с редиректом на страничку авторизации и сообщение об ошибке авторизации. Если авторизация прошла успешно клиенту присваивается профайл с заданной скоростью. \\ Для данного типа авторизации тарифный план абонента заводиться в модуле [[abills:docs:modules:dv:ru|Internet]], а параметры etherenet уровня IP, PORT, SWITCH (коммутатор) в модуле [[abills:docs:modules:dhcphosts:ru|IP/DHCP]] ====Авторизация по MAC абонента==== Авторизация по умолчанию Мак абонента прописывается в сервисе **Internet** абонента поле CID. ====Авторизация по MAC и порту коммутатора==== Для включения режима авторизации Switch MAC + Switch Port нужно включить опцию. $conf{MX80_IPOE_SWITCH_PORT}=1; Если на порту в билинге прописано больше одного клиента система после авторизации по порту производит атворизацию по MAC адресу. Если в билинге прописан только один клиента, а на порту пробует авторизироваться несколько устройств система им все выдаёт один и тот же IP адрес Для авторизации по данному методу в билинге нужно завести коммутаторы \\ **/ Система/ Сервер доступа/** \\ |IP:| IP коммутатора | |Название:| Название | |Тип:| **other** \\ тип коммутатора | |Mac:| Мак коммутатора | в карточке абонента добавить данные авторизации в сервисе **IP/DHCP**. Если данного меню не в системе установите модуль [[abills:docs:modules:dhcphosts:ru|Dhcphosts]] |Имя хоста:| Заполняется автоматически | |Сети: | Выбрать сеть абонента. При авторизации параметры сети педаются через радиус (Gateway, DNS, NTP) | |IP: | IP адрес абонента. \\ Если нужен авто выбор адресов оставляем полу по умолчанию (0.0.0.0), пулы динамически раздаваемых адресов заводятся через IP Pools (/ Система/ Сервер доступа/ IP POOLs/) и присваиваются серверам доступа | |Сетевой адрес:| Мак адрес абонента если не нужен оставляем по умолчанию. Мак адрес проверяется только если на порту больше одного абонента | |Порт (1,2,5): | Порт коммутатора | |VLAN ID: | Номер Vlan абонента | |Server: | Номер Vlan сервера. Указывать только при авторизации q-in-q | |Комутатор: | Коммутатор абонента | ====Q-in-Q===== Авторизация абонентов проходит по Vlan Server и Vlan Client передаваемые MX80 настройка абонента проводится аналогично [[#avtorizacija_po_mac_i_portu_kommutatora|Авторизация по MAC и порту коммутатора]]. Только не надо заводить сервера доступа и отмечать их у абонентов так как они не учитываются =====Настройка сервера доступа===== **Правка 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 Mx80.pm /usr/abills/Abills/mysql файл настройки **config.pl**\\ включение модуля авторизации. Данные параметры должны быть прописаны после секций %AUTH = (); %ACCT = (); $AUTH{mx80} = 'Mx80'; $ACCT{mx80} = 'Mx80'; Парамтеры |$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{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); '; Если ипользуется IPoE система автоматически изменит pppoe на ipoe Пример настройки 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{REDBACK_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 Программа автоматически определяет текущую скорость и переключает профайлы абонентов ====Пример 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} | Номер класса трафика | |{traffic_class_name} | название класса трафика | |{profile_sufix} |pppoe \\ ipoe \\ если присутствует RADIUS пара Framed-Protocol система подставляет pppoe в противном случае ipoe| ====Мониторинг расхождений сессий==== Отображает не зарегистрированные в биллинге сессии, а также сессии которых нет уже на mx80 но они зарегистрированы в биллинге. Для работы программы нужно открыть доступ к MX80 с биллинг сервера по 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 ====Дополнительно==== * [[http://www.juniper.net/techpubs/en_US/junos14.1/topics/concept/radius-terminate-code-app-terminate-reasons-mapping.html|Описание кодов завершения сессий Juniper]]