Страница 2 из 2

Re: Опция 82 Dynamix HPNA Master

Добавлено: Вт сен 04, 2018 12:10 pm
urix24
Завел коммутатор как сервер доступа на демо:
101 zyxel_lab с маком 5c:f4:ab:c6:db:de
Добавил его как сервер доступа в опции 82 абону zyxel_82

Проделал тесты на своем локальном биллинге. Те же настройки, сервер доступа - коммутатор с маком 5c:f4:ab:c6:db:de
тип сервера доступа - dhcp DCHP Freeradius in dhcp mode
Порт - 24, VLAN ID - 1100

Код: Выделить всё

DHCP-Option82 = 0x01040018044c02065cf4abc6dbde
0x0104     0018     044c     0206    5cf4abc6dbde
          Порт      VLAN                MAC-коммутатора
Изменил выражение:

Код: Выделить всё

$conf{AUTH_EXPR}='DHCP-Option82:0x[0-9a-f]{6}([0-9a-f]{2})([0-9a-f]{4})[0-9a-f]{4}([0-9a-f]{12}):PORT,VLAN,NAS_MAC;';
Дебаг выражения:

Код: Выделить всё

: DHCP-Option82, 0x[0-9a-f]{6}([0-9a-f]{2})([0-9a-f]{4})[0-9a-f]{4}([0-9a-f]{12}), 0x01040018044c02065cf4abc6dbde/0x01040018044c02065cf4abc6dbde
PORT / 18
VLAN / 044c
NAS_MAC / 5cf4abc6dbde
Админка - Отчет - Интернет - последнее подключение:

Код: Выделить всё

GUEST_MODE	00:1b:fc:cb:7f:86	NAS_MAC: 5c:f4:ab:c6:db:de PORT: 24 VLAN: 1100 MAC: 00:1b:fc:cb:7f:86NEG_FILTER IPOE_LOGIN_NOT_EXIST NAS_MAC: 5c:f4:ab:	zyxel_lab/
accel_1/
Filter-Id = "IPOE_LOGIN_NOT_EXIST"

Re: Опция 82 Dynamix HPNA Master

Добавлено: Вт сен 04, 2018 1:02 pm
~AsmodeuS~
на демо все выдало

проблема была в том что есть много абонентов не привязаных и елис они без маков они попадают под условия

Re: Опция 82 Dynamix HPNA Master

Добавлено: Ср сен 05, 2018 10:10 am
urix24
Да, все верно, заработало на локальном биллинге.
~AsmodeuS~ предоставил SQL запрос, который помог разобраться:
SELECT
u.uid,
u.id AS user_name,
n.id AS nas_id,
u.company_id,
u.disable AS user_disable,
u.bill_id,
u.credit,
internet.activate,
u.reduction,
u.ext_bill_id,
UNIX_TIMESTAMP(u.expire) AS account_expire,
UNIX_TIMESTAMP(internet.expire) AS internet_expire,
internet.tp_id,
internet.disable AS internet_disable,
IF(internet.ip>0, INET_NTOA(internet.ip), 0) AS ip,
internet.cid,
internet.logins,
internet.filter_id,
INET_NTOA(internet.netmask) AS netmask,

internet.speed AS user_speed,
internet.id AS service_id,
u.disable

FROM internet_main internet
INNER JOIN users u ON (u.uid=internet.uid)
LEFT JOIN nas n ON (internet.nas_id=n.id)
WHERE ((n.mac='5c:f4:ab:c6:db:de' OR n.mac IS null)
AND (internet.cid='00:1b:fc:cb:7f:86' OR internet.cid='')
AND (internet.vlan='1100' OR internet.vlan='')
AND (internet.port='24' OR internet.port=''));

Сейчас выдает лишь 1-го абонента, удовлетворяющего требованиям. Если есть абоненты не привязанные к макам, портам, вланам, коммутаторам они также попадают под OR Null в запросе.