Skip to end of metadata
Go to start of metadata


Включаются в параметре $conf{AUTH_EXPR}.

Так как производители оборудования (коммутаторов) не всегда придерживаются стандартов при формирование запросов DHCP Option 82, в системе была создана возможность задавать регулярное выражение для получения нужных параметров из DHCP запроса. Использовать дополнительные выражения для получения корректных данных с запросов от коммутаторов в которых параметры опции 82 отличаются от стандартных.

Формат выражения через точку с запятой:

радиус_пара:условия:переменные[:hex2ansii|:increment_port];условия:переменные….

Радиус_параРадиус пара запроса
Условия
ПеременныеПеременные результата VLAN, PORT, NAS_MAC, USER_MAC, VLAN_DEC (если VLAN не нужно преобразовывать в шестнадцатеричный из десятеричного), PORT_DEC (если не нужно преобразовывать порт из десятеричного в шестнадцатеричный формата), SERVER_VLAN и SERVER_VLAN_DEC
hex2ansiiесли указан этот параметр, система перед вычислением нужных переменных преобразует строку с шестнадцатеричного формата в текстовый
increment_port

Прибавить единицу к номеру порта. Нужно для коммутаторов H3C, они передают номер порта на единицу меньший (0 вместо 1, 6 вместо 7, ...).

Тестировалось на модели H3C S5100-26C (Software Version 3.10, Release 2203P08).

Не работает вместе с hex2ansii.

Не работает с параметром PORT_MULTI.

Система при получении параметра проверяет нужно ли использовать внешние выражения (При включении выражений система отключает шаблон по умолчанию для распознавания коммутаторов). 

Если да - начинает проходить по списку указанных шаблонов. 
При попадании в параметры система подставляет выбранные VLAN, PORT, NAS_MAC, USER_MAC, VLAN_DEC (если VLAN не нужно преобразовывать в десятичный форма из шестнадцатеричного) 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_HEXMAC адрес сервера доступа в виде ASCII закодированного в HEX
PORTПорт в шестнадцатеричном формате конвертируется в десятеричный при обработке
PORT_MULTIПорт в шестнадцатеричном формате без конвертации
PORT_DECПорт в десятеричном формате
VLANVLAN в шестнадцатиричном формате
VLAN_DECVLAN в десятеричном формате
SERVER_VLANСерверный VLAN в десятеричном формате
AGENT_REMOTE_ID
CIRCUIT_ID
LOGINЛогин абонента
USER_MACЕсли парсер находит данную переменную приводи её в вид xx:xx:xx:xx:xx:xx. Сопоставляется с полем CID  сервиса интернет при авторизации.


Примеры Выражений

Версия билинга не ниже 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

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

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

Пример запроса

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

типы опций

  • hn-type - Настройка авторизации по ONU + VLAN в опции Agent-Remote-Id передаётся MAC ONU (Клиентская приставка)

  • cm-type - Настройка авторизации по ONU + VLAN в опции Agent-Remote-Id передаётся MAC OLT (Главная станция)

Настройка 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;
  • DGS-1100-10

  • DGS-1100-06ME
Пример
 DHCP-Relay-Circuit-Id = 0x01040b710005
 DHCP-Relay-Remote-Id = 0x0103313233

Выражение:

$conf{AUTH_EXPR} .= "Accel-Agent-Remote-Id:0x0006([0-9a-f]{12}):NAS_MAC;Accel-Agent-Circuit-Id:0x0004([0-9a-f]{4})([0-9a-f]{4}):VLAN,PORT;";

  • 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;
  • des-3028

  • des-1210-28
  • dgs-3120

Пример запроса:

ADSL-Agent-Circuit-Id = 0x00040105000a
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]{2}([0-9a-f]{2})$: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';  

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

PON OLT GCOM EL-5610-8P
$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';
PON OLT GCOM EL-5610-16P
$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

Конфигурация

firmware ISCOM5508-GPSC_ROAP_2.62.1_20180904(

interface gpon-olt 1/1
transceiver ddm enable
create gpon-onu 7 sn RCMG1918554C line-profile-id 50 service-profile-id 50
switchport trunk allowed vlan 2011
switchport trunk untagged vlan remove 1
switchport mode trunk
vlan drop-untagged
ip dhcp information option circuit-id \%c-\%s/\%p/\%i

возможнs такие ключи
\%v ------svlan;
\%c ------cvlan;
\%l ------the olt host name;
\%j ------Rack number, For some devices there is no concept of racks,the value is "0";
\%k ------frame number, For some devices there is no concept of frame,the value is "0";
\%s ------Slot number;
\%y ------Sub-slot number,For some devices there is no concept of frame,the value is "0";
\%p ------ gpon port number;
\%i ------ ont number.
\%n ---- ONT S/N

interface ten-gigabitethernet 1/5
ip dhcp snooping trust

vlan 2011
ip dhcp snooping


ip dhcp snooping
ip dhcp information option


Выражение

$conf{AUTH_EXPR} = 'Accel-Agent-Remote-Id:^0x([0-9a-f]{12})$:NAS_MAC;Accel-Agent-Circuit-Id:^(\d+)-(\d+\/\s*\d+_\d+)$:VLAN_DEC,PORT_DEC:hex2ansii;';

H3C

  • H3C S5100-26C (Software Version 3.10, Release 2203P08)
$conf{AUTH_EXPR} = 'ADSL-Agent-Circuit-Id:^0x0004([0-9a-f]{4})00([0-9a-f]{2})$:VLAN,PORT:increment_port;ADSL-Agent-Remote-Id:^0x0006([0-9a-f]{12})$:NAS_MAC;';

Juniper

  • QFX5100
$conf{AUTH_EXPR} = 'ADSL-Agent-Circuit-Id:^([a-z0-9./-]+)\x3a(\d+)$:PORT_MULTI,VLAN_DEC:hex2ansii;
ADSL-Agent-Remote-Id:^([0-9a-f]{2}\x3a[0-9a-f]{2}\x3a[0-9a-f]{2}\x3a[0-9a-f]{2}\x3a[0-9a-f]{2}\x3a[0-9a-f]{2})\x3a([a-z0-9./-]+)$:NAS_MAC,PORT_MULTI:hex2ansii;';

ZTE

Выражение для определения абонента по ONU

ZTE Firmware v1.*
Формат Telecom Italia (ti)
$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{AUTH_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;';
Формат для ZTE C610 с ручной настройкой Options82
$conf{AUTH_EXPR}='Agent-Circuit-Id:^(\d\/\d\/\d+.\d+)_([0-9]+)_([0-9A-F]{12})_([0-9a-f]{4}\.[0-9a-f]{4}\.[0-9a-f]{4}):PORT_MULTI,VLAN_DEC,ONU_SN,NAS_MAC:hex2ansii;


ZTE V1.2.5P3

плата 1/1/1   GTGHK      MVR        V1.2.5P3          2017-05-16 04:34:12 6010580

Пример запроса
Accel-Agent-Circuit-Id = 0x346361632e306164612e373463325f30305f30302f302f312f313a33362e302e313a333138
расшифровка 4cac.0ada.74c2_00_00/0/1/1:36.0.1:318
Формат telecom italia ti (c320)
$conf{AUTH_EXPR}='Accel-Agent-Circuit-Id:([0-9a-f\.]+)_00_(\d+\/\d+\/\d+\/\d+\W\d+)[\.0-9]+\W+(\d+):NAS_MAC,PORT_DEC,VLAN_DEC:hex2ansii;';


ZTE Firmware v2.*

DSL-FORUM-PON

DSL-FORUM-PON
$conf{AUTH_EXPR}='DHCP-Relay-Circuit-Id:([0-9A-F]{12})\/(\d\/\d\/\d+.\d+)\/\d\/([0-9]+):USER_MAC,PORT_DEC,VLAN_DEC:hex2ansii';

Zyxel

  • ES-2024A

В параметре настройки Option 82  прописываем


Relay-Agent-Information: 000012


12  это номер сервера доступа. Обязательно в строке должно быть 6 символов. Сгенерированные параметры Option 82 прописываем в серверах доступа  поле MAC.

В строке Agent-Circuit-Id  4 байта порт, 4 байта VLAN и 16 байт Ваша срока прописанная в параметре Relay-Agent-Information.


ES-2024A
$conf{AUTH_EXPR} = 'Agent-Circuit-Id:^0x([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})$:PORT,VLAN,NAS_MAC;';

Авторизация SERVER_VLAN + CLIENT_VLAN (q-in-q)

При возврате выражением параметров SERVER_VLAN  + VLAN система автоматически начинает авторизировать абонетов по Server Vlan + Client Vlan

Пример запроса
 NAS-Identifier = "ipoe4"
 NAS-Port-Id = "vlan123.77"
 Event-Timestamp = "чер  1 2023 14:32:49 EEST"
 Called-Station-Id = "vlan123.77"
 User-Name = "vlan123.77"
 NAS-Port = 505
 User-Password = "vlan123.77"
 Acct-Interim-Interval = 600
 Filter-Id = "IPOE_LOGIN_NOT_EXIST"
 Calling-Station-Id = "00:0b:2b:7d:5e:a9"
 NAS-Port-Type = Ethernet
 NAS-IP-Address = 192.168.1.10


Пример выражения
$conf{AUTH_EXPR}='User-Name:vlan(\d+).(\d+):SERVER_VLAN_DEC,VLAN_DEC';

Лог подключений

Авторизация по логину

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

Каскадная авторизация


Авторизация по очереди за несколькими параметрами:

  • IP адрес, если он передается при авторизации
  • Комутатор/Порт
  • MAC


$conf{AUTH_IP}=1;
$conf{NAS_PORT_AUTH}=1;
$conf{NAS_SECOND_MAC_AUTH}=1;
  • No labels