Включаются в параметре $conf{AUTH_EXPR}.
Так как производители оборудования (коммутаторов) не всегда придерживаются стандартов при формирование запросов DHCP Option 82, в системе была создана возможность задавать регулярное выражение для получения нужных параметров из DHCP запроса. Использовать дополнительные выражения для получения корректных данных с запросов от коммутаторов в которых параметры опции 82 отличаются от стандартных.
Формат выражения через точку с запятой:
радиус_пара:условия:переменные[:hex2ansii];условия:переменные….
Радиус_пара | Радиус пара запроса |
---|---|
Условия | |
Переменные | Переменные результата VLAN PORT NAS_MAC MAC MAC_DEC (если мак не нужно преобразовывать в шестнадцатеричный из десятеричного) PORT_DEC (если не нужно преобразовывать порт из десятеричного в шестнадцатеричный формата) |
hex2ansii | если указан этот параметр, система перед вычислением нужных переменных преобразует строку с шестнадцатеричного формата в текстовый |
Система при получении параметра проверяет нужно ли использовать внешние выражения (При включении выражений система отключает шаблон по умолчанию для распознавания коммутаторов).
Если да - начинает проходить по списку указанных шаблонов.
При попадании в параметры система подставляет выбранные VLAN PORT NAS_MAC MAC MAC_DEC (если мак не нужно преобразовывать в десятичный форма из шестнадцатеричного) PORT_DEC (если не нужно преобразовывать порт из десятеричного шестнадцатеричного формата) в DHCP-Agent-Circuit-Id и DHCP-Agent-Remote-Id. Параметры подставляются по последнему успешному в списке совпадению.
Если используются разные коммутаторы в сети максимально рекомендовано писать точные выражения с использованием ^ $
Дальше уже идут стандартные процедуры работы с DHCP:
NAS_MAC | MAC адрес сервера доступа. Если парсер находит данную переменную в формате xxxxxxxxxxxx приводи её в вид xx:xx:xx:xx:xx:xx. Так же некоторые устройства могут передавать просто идентификаторы не связанные MAC, их также можно вносить в параметр NAS_MAC и снавнивать с полем MAC настроек сервера доступа. Например: NAS-Identifier:(.+):NAS_MAC Где NAS-Identifier = "Router1" |
---|---|
NAS_MAC_HEX | MAC адрес сервера доступа в виде ASCII закодированного в HEX |
PORT | Порт в шестнадцатеричном формате конвертируется в десятеричный при обработке |
PORT_MULTI | Порт в шестнадцатеричном формате без конвертации |
DEC_PORT | Порт в десятеричном формате |
VLAN | VLAN в шестнадцатиричном формате |
VLAN_DEC | VLAN в десятеричном формате |
SERVER_VLAN | Серверный VLAN в десятеричном формате |
AGENT_REMOTE_ID | |
CIRCUIT_ID | |
LOGIN | Логин абонента |
USER_MAC | Если парсер находит данную переменную приводи её в вид xx:xx:xx:xx:xx:xx |
Примеры Выражений
Версия билинга не ниже 0.75.25
Cisco
3550
Agent-Circuit-Id:0x0004([0-9a-f]{4})[0-9a-f]{2}([0-9a-f]{2}):VLAN,PORT;Agent-Remote-Id:([0-9a-f:]{16})$:NAS_MAC:hex2ansii
Edge-Core
Edge-Core ES-3528M
Huawei S2318TP-EI
DHCP-Relay-Agent-Information:0x(01)(04)([0-9a-f]{4})\d{2}([0-9a-f]{2})(02)(06)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,NAS_MAC;
Edge-Core ES-3526XA V2
Edge-Core ES-3510MA
Huawei s2326tp-ei (Версия прошивки: s2300ei-v100r006c05.cc)
DHCP-Relay-Agent-Information:0x(01)(06)[0-9a-f]{4}([0-9a-f]{4})\d{2}([0-9a-f]{2})(02)(08)[0-9a-f]{4}([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,NAS_MAC;
Edge-Core ESC3510-28T
запрос:
DHCP-Relay-Circuit-Id = 0x0004020c0119 DHCP-Relay-Remote-Id = 0x0006cc37ab8fafbc
Расшифровка
DHCP-Relay-Circuit-Id:0x0004([0-9a-f]{4})[0-9a-f]{2}([0-9a-f]{2}):VLAN,PORT;DHCP-Relay-Remote-Id:0x0006([0-9a-f]{12}):NAS_MAC
Eltex
GePON NTE-2 и NTE-RG
DHCP-Relay-Agent-Information:0x(01)(0b)[0-9a-f]{4}([0-9a-f]{4})[0-9a-f]{10}([0-9a-f]{4})(02)(0b)[0-9a-f]{10}([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,NAS_MAC;
Huawei
S2326TP-EI
Пример запроса
Agent-Remote-Id = 0x000604bd70f9cd11 Agent-Circuit-Id = 0x00040fa00018
Настройка
Agent-Remote-Id:0x0006([0-9a-f]{12}):NAS_MAC;Agent-Circuit-Id:0x0004([0-9a-f]{4})00([0-9a-f]{2}):VLAN,PORT
Bdcom
OLT BDCOM 3310
Настройка Option 82 Type: cm-type (Use cm-type option 82 format)
при использовании DHCP-Relay-Agent-Information
$conf{AUTH_EXPR}='DHCP-Relay-Agent-Information:0x01060004([0-9a-f]{4})\d{2}([0-9a-f]{2})02080006([0-9a-f]{12}):VLAN,PORT,NAS_MAC;DHCP-Relay-Agent-Information:0x0105([0-9a-f]{4})\d{2}([0-9a-f]{4})\d{4}([0-9a-f]{12}):VLAN,PORT_DEC,NAS_MAC;';
при использовании DHCP-Relay-Circuit-Id или Agent-Circuit-Id
DHCP-Relay-Circuit-Id:0x([0-9a-f]{4})00([0-9a-f]{4}):VLAN,PORT_DEC;DHCP-Relay-Remote-Id:0x([0-9a-f]{12}):NAS_MAC
Использование схемы hn-type (Use cisco option 82 format) при данной аутентификации абоненты появляются в мониторинге на сервере DHCP
$conf{DHCP_O82_BDCOM_TYPE}='hn-type';
$conf{AUTH_EXPR}='Agent-Remote-Id:0x([0-9a-f]{12}):USER_MAC;Agent-Circuit-Id:0x([0-9a-f]{4})00([0-9a-f]{4}):VLAN,PORT_DEC';
Agent-Remote-Id - Мак ONU (USER_MAC)
Agent-Circuit-Id - VLAN, Ветка, Номер устройства в ветке
Foxgate
Foxgate-s-6224-s2
DHCP-Relay-Agent-Information:0x(01)(08)0006([0-9a-f]{4})\d{6}([0-9a-f]{2})(02)(06)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,NAS_MAC;
D-link
D-Link DGS-1100-10
DHCP-Relay-Circuit-Id = 0x01040b710005 DHCP-Relay-Remote-Id = 0x0103313233
Выражение:
DHCP-Relay-Circuit-Id:0x01040b710005:;DHCP-Relay-Remote-Id:0x0103313233:
DHCP-Relay-Agent-Information:0x(01)(06)0004([0-9a-f]{4})\d{2}([0-9a-f]{2})(02)(08)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,NAS_MAC;
- Dlink DES-3200-26 для Hw A1,B1 Firmware Version1.28.009 , HW C1 Firmware Version 4.00.24 DGS-3120-24SC hw a2 Firmware VersionBuild 2.00.010
DHCP-Relay-Agent-Information:0x(01)(06)0004([0-9a-f]{4})\d{2}([0-9a-f]{2})(02)(080006)([0-9a-f]{12}):ID,SIZE,VLAN,PORT,ID,SIZE,NAS_MAC;
D-link DES3028
Пример запроса:
ADSL-Agent-Circuit-Id = 0x0004 0105 00 0a ADSL-Agent-Remote-Id = 0x000600219191b6f1
Парсер:
ADSL-Agent-Remote-Id:0x0006([0-9a-f]{12}):NAS_MAC;ADSL-Agent-Circuit-Id:0x0004([0-9a-f]{4})([0-9a-f]{4})$:VLAN,PORT';
Alcatel-Lucent
Alcatel-Lucent OmniSwitch 6250
Настройка:
ip helper dhcp-snooping option-82 format ascii circuit-id interface vlan delimiter "."
Пример запроса*
ADSL-Agent-Circuit-Id = 0x312f332e323631 ADSL-Agent-Remote-Id = 0x0006 00 e0 b1 d6 b6 9b
Выражение:
$conf{MX80_O82_EXPR}='ADSL-Agent-Remote-Id:0x0006([0-9a-f]{12}):NAS_MAC;ADSL-Agent-Circuit-Id:(\d+)\.(\d+):PORT_DEC,VLAN_DEC:hex2ansii';
ZTE
Обработка
Формат Telecom Italia
$conf{AUTH_EXPR}='Agent-Circuit-Id:([0-9a-f\.]+) pon (\d+\/\d+\/\d+\/\d+)\W(\d+):NAS_MAC,PORT_DEC,VLAN_DEC:hex2ansii;';
формата airtel
$conf{MX80_O82_EXPR}='ADSL-Agent-Circuit-Id:(\d{1,4})\x3a(\d+\/\d+\/\d+\/\d+\/\d+)$:VLAN_DEC,PORT_DEC:hex2ansii;';
Формат dsl-forum (c200)
$conf{AUTH_EXPR}='Agent-Circuit-Id:([0-9a-f\.]+) pon (\d+\/\s*\d+\/\d+\/\s*\d+)\/\d+\W(\d+):NAS_MAC,PORT_DEC,VLAN_DEC:hex2ansii;';
VSOLUTION
- VSOL-1600D4
- VSOL-1600D8
- VSOL-1600D16
$conf{AUTH_EXPR}='Agent-Circuit-Id:^0x([0-9a-f]{4})([a-f0-9]{4}[a-f0-9]{4})([0-9a-f]{12})$:VLAN,PORT_DEC,USER_MAC;Agent-Remote-Id:0x([0-9a-f]{12})$:NAS_MAC;';
Accel-ipoe
Аксель передаёт обе пары в одной опции
$conf{AUTH_EXPR}=''; # Alcatel OmniStack OS-LS-6224 $conf{AUTH_EXPR} .= 'Accel-Agent-Remote-Id:^0x0006([0-9a-f]{12}):NAS_MAC;Accel-Agent-Circuit-Id:0x0004([0-9a-f]{4})01([0-9a-f]{2})$:VLAN,PORT'; # ZyXEL ES-3124 $conf{AUTH_EXPR} .= ';DHCP-Option82:^0x01[0-9a-f]{2}[0-9a-f]{2}([0-9a-f]{2})([0-9a-f]{4})([0-9a-f]{16})$:PORT,VLAN,NAS_MAC'; # LinkSYS SPS224G4, Alcatel LS-6224 $conf{AUTH_EXPR} .= ';DHCP-Option82:01[0-9a-f]{6}([0-9a-f]{4})01([0-9a-f]{2})[0-9a-f]{8}([0-9a-f]{12}):VLAN,PORT,NAS_MAC'; # D-Link DES-1100 $conf{AUTH_EXPR} .= ';DHCP-Option82:0x01[0-9a-f]{6}([0-9a-f]{4})\d{2}([0-9a-f]{2})[0-9a-f]{8}([0-9a-f]{12}):VLAN,PORT,NAS_MAC'; # OLT BDCOM 3310 $conf{AUTH_EXPR} .= ';DHCP-Option82:0x0105([0-9a-f]{4})\d{2}([0-9a-f]{2})\d{6}([0-9a-f]{12}):VLAN,PORT_DEC,NAS_MAC'; # OLT GCOM (тестировалось на EL5610-16P) $conf{AUTH_EXPR} .= ';DHCP-Option82:0x[0-9a-f]{8}([0-9a-f]{4})([0-9a-f]{6})([0-9a-f]{12})[0-9a-f]{8}([0-9a-f]{12}):VLAN,PORT_DEC,USER_MAC,NAS_MAC';
Gcom и Mikrotik
$conf{AUTH_EXPR} = 'Agent-Remote-Id:^0x[0-9a-f]{4}([0-9a-f]{12})$:NAS_MAC;Agent-Circuit-Id:^0x[0-9a-f]{4}([0-9a-f]{4})([0-9a-f]{6})([0-9a-f]{12})$:VLAN,PORT_DEC,USER_MAC';
$conf{AUTH_EXPR} = 'Agent-Remote-Id:^0x[0-9a-f]{4}([0-9a-f]{12})$:NAS_MAC;Agent-Circuit-Id:^0x00([0-9a-f]{4})(\d{6})([0-9a-f]{12})$:VLAN,PORT_DEC,USER_MAC$:VLAN,PORT_DEC,USER_MAC';
RAISECOM
- OLT RAISECOM 5508GP
$conf{AUTH_EXPR} = 'Agent-Remote-Id:^0x([0-9a-f]{6})$:NAS_MAC;Agent-Circuit-Id:^0x([0-9a-f]{4})([0-9a-f]{4})$:VLAN,PORT';
Авторизация по логину
$conf{AUTH_EXPR}='DHCP-Subscriber-Id:(.+):LOGIN';
Авторизация по IP
Для схем L3 введена авторизация по IP
$conf{AUTH_IP}=1; $conf{AUTH_EXPR}='User-Name:(.+):IP';
Авторизация по коммутатору и порту
Система по мак адресу коммутатора ищет в списке серверов доступа, а потом по найденному nas_id и порту сравнивает с данными в модуле Internet+
$conf{NAS_PORT_AUTH}=1;