Введение Взаимодействие контроллера с порталом WNAM При первом подключении клиента ТД пытается пройти MAB-авторизацию на NAC-сервере, подставляя MAC-адрес клиента в атрибуты User-Name и User-Password запроса access-request к RADIUS-серверу WLC. Контроллер проксирует запрос на внешний RADIUS-сервер WNAM. Так как WNAM ничего не известно о данном клиенте, он присылает access-reject на WLC, тот, в свою очередь, на ТД. После того как ТД получила access-reject, она отправляет клиенту, за ранее преднастроенную, ссылку перенаправления на гостевой портал WNAM, при этом предоставляя доступ только гостевого портала и ресурсов указанных в преднастроенном white-list . Пример ссылки: http://93.180.6.157/cp/eltexwlc/?switch_url=http://redirect.loc:10081/&ap_mac=68:13:E2:C2:28:E0&client_mac=78:98:e8:1e:67:07&wlan=!WNAM-Cisco_Like&redirect=http://nmcheck.gnome.org/ После авторизации пользователя на гостевом портале клиенту возвращается ссылка редиректа на ТД, содержащая в себе ссылку финального редиректа (заданного в рамках настройки портала) , логин и пароль, созданный порталом при идентификации клиента. Пример ссылки: http://redirect.loc:10081//?username=78:98:E8:1E:67:07&password=password&buttonClicked=4&redirect_url=http%3A%2F%2Fwww.ru%2F Для сокрытия передаваемых учетных данных (username, password) возможно использовать HTTPS (TLS шифрование) Когда клиент переходит по этой ссылке, ТД считывает из нее логин и пароль и подставляет в атрибуты User-Name и User-Password запроса access-request, RADIUS успешно авторизует клиента, и ТД снимает ограничения на доступ клиента и перенаправляет по ссылке финального редиректа. После отключения от SSID и подключения заново или подключения к другой ТД (к тому же SSID), авторизация будет проходить по MAC-адресу (так как этот сценарий реализован в логике ТД «external portal» и срабатывает при подключении к SSID, (если истекло значение параметра age-timeout на ТД). Редирект пользователя на портал происходить не будет до тех пор, пока учетная запись клиента не будет удалена из базы, вручную или автоматически (время жизни аккаунта задается при создании портала). Устройство абонента получает доступ в сеть Интернет без дополнительных "всплывающих окон" и редиректов.
Диаграмма процесса авторизации нового клиента:
eyJleHRTcnZJbnRlZ1R5cGUiOiIiLCJnQ2xpZW50SWQiOiIiLCJjcmVhdG9yTmFtZSI6ItCe0YLQtNC10Lsg0JTQvtC60YPQvNC10L3RgtCw0YbQuNC4Iiwib3V0cHV0VHlwZSI6ImJsb2NrIiwibGFzdE1vZGlmaWVyTmFtZSI6ItCe0YLQtNC10Lsg0JTQvtC60YPQvNC10L3RgtCw0YbQuNC4IiwibGFuZ3VhZ2UiOiJydSIsImRpYWdyYW1EaXNwbGF5TmFtZSI6IiIsInNGaWxlSWQiOiIiLCJhdHRJZCI6IjY4NTA4MTk1MiIsImRpYWdyYW1OYW1lIjoi0JTQuNCw0LPRgNCw0LzQvNCwIiwiYXNwZWN0IjoiIiwibGlua3MiOiJhdXRvIiwiY2VvTmFtZSI6IldMQyArIFdOQU1fV2ViLUF1dGggKNCx0LXQtyDQuNGB0L/QvtC70YzQt9C+0LLQsNC90LjRjyBDb0EpIiwidGJzdHlsZSI6InRvcCIsImNhbkNvbW1lbnQiOmZhbHNlLCJkaWFncmFtVXJsIjoiIiwiY3N2RmlsZVVybCI6IiIsImJvcmRlciI6dHJ1ZSwibWF4U2NhbGUiOiIxIiwib3duaW5nUGFnZUlkIjo2ODUwODE5MzUsImVkaXRhYmxlIjpmYWxzZSwiY2VvSWQiOjY4NTA4MzE5OCwicGFnZUlkIjoiIiwibGJveCI6dHJ1ZSwic2VydmVyQ29uZmlnIjp7ImVtYWlscHJldmlldyI6IjEifSwib2RyaXZlSWQiOiIiLCJyZXZpc2lvbiI6MSwibWFjcm9JZCI6ImZhZjdhNzg4LWFjODQtNDAxYi05MzlkLTM0MDI5M2NjZTdhMiIsInByZXZpZXdOYW1lIjoi0JTQuNCw0LPRgNCw0LzQvNCwLnBuZyIsImxpY2Vuc2VTdGF0dXMiOiJPSyIsInNlcnZpY2UiOiIiLCJpc1RlbXBsYXRlIjoiIiwid2lkdGgiOiIxMTMzIiwic2ltcGxlVmlld2VyIjpmYWxzZSwibGFzdE1vZGlmaWVkIjoxNzc0MjM5NzY2MDAwLCJleGNlZWRQYWdlV2lkdGgiOmZhbHNlLCJvQ2xpZW50SWQiOiIifQ==
Пример страницы гостевого портала:
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_3.jpg
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_2.jpg
Настройка контро ллера Далее приведен приведен пример настройки Eltex WLC-30 (v.1.30.6) с точкой WEP-30L(2.8.0). Предполагается, что на контроллере уже настроен IP-адрес, обеспечена сетевая связность с сервером WNAM. Руководство по обновлению ПО Eltex WLC-30 можно найти по ссылке . Полностью ознакомиться с документацией по настройке контроллера можно на официальном сайте компании https://eltex.ru . За основу будет взята заводская конфигурация, пример настройки которой доступен по ссылке . Подробней про сброс к заводской конфигурации можно ознакомиться в инструкции Quickstart .
Схема организации связи База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_17.jpg
Внесение дополнений в конфигурацию Настройка проксирования Radius обмена Ниже рассмотрен пример настройки RADIUS-сервера и проксирования RADIUS-запросов ТД на внешний RADIUS-сервер (подробнее в инструкции Настройка проксирования на внешний RADIUS ):
radius-server local
nas AP_subnet # Подсеть ТД, на которые будет выполняться проксирование CoA-запросов
key ascii-text testing123
network 192.168.1.0/24
exit
virtual-server default
mode proxy
upstream-pool wnam
das-server enable
nas-ip-address 100.127.2.200 # Адрес WLC, который будет заменять в поле NAS-IP-Address адрес ТД при выполнении проксирования RADIUS-запросов
enable
exit
upstream-server wnam
host 93.180.6.157 # Адрес WNAM, на который выполняется проксирование RADIUS-запросов от ТД
server-type all
key ascii-text eltex123
exit
upstream-pool wnam
server-type all
upstream-server wnam
exit
enable
exit
Настройка WIFI части контроллера для выполнения портальной авторизации В конфигурацию WLC необходимо внести настройки (общий принцип работы описан в статье Авторизация через RADIUS ): В настройке WLC настроить профиль SSID, включить портальную авторизацию, создать профиль для портала, на ТД в настройках RADIUS-профиля указать настройку, чтобы MAC-адрес пользователя подставлялся в пароль.
wlc
outside-address 192.168.1.1 # Адрес WLC для точек доступа
service-activator
aps join auto
exit
ap-location default-location
mode tunnel
ap-profile default-ap
ssid-profile default-ssid
exit
ssid-profile default-ssid
ssid "!WNAM.test-portal"
radius-profile default-radius
portal-enable
portal-profile default-portal
vlan-id 3
band 2g
band 5g
enable
exit
ap-profile default-ap
password ascii-text password
exit
portal-profile default-portal
preauth-filter-mode acl
disconnect-on-reject
verification-mode external-portal
exit
radius-profile default-radius
auth-address 192.168.1.1 # Адрес WLC во влане точек. Необходимо указать его, как адрес RADIUS-сервера для ТД
# Иначе WLC не сможет выполнять проксирование и подмену NAS-IP при отправке RADIUS-запроса к WNAM
auth-password ascii-text testing123
session password mac
auth-acct-id-send # Данная настройка является критичной, так как уникальность сессии определяется по атрибуту Acct-Session-Id
acct-enable
acct-address 192.168.1.1
acct-password ascii-text testing123
acct-periodic
domain default
exit
ip-pool default-ip-pool
description "default-ip-pool"
ap-location default-location
exit
enable
exit
Добавить правила firewall
security zone-pair untrusted self
rule 2
action permit
match protocol udp
match destination-port object-group radius_auth # Разрешить UDP-трафик для RADIUS-аутентификации
enable
exit
rule 3
action permit
match protocol tcp
match destination-port object-group ssh # Разрешить подключение по SSH (Используйте осторожно, если контроллер подключен напрямую к ISP)
enable
exit
rule 4
action permit
match protocol icmp
enable
exit
exit
Полная конфигурация Eltex WLC-30 (v.1.30.6)
object-group service ssh
port-range 22
exit
object-group service dhcp_server
port-range 67
exit
object-group service dhcp_client
port-range 68
exit
object-group service ntp
port-range 123
exit
object-group service netconf
port-range 830
exit
object-group service radius_auth
port-range 1812-1813
exit
object-group service sa
port-range 8043-8044
exit
object-group service dns
port-range 53
exit
object-group service airtune
port-range 8099
exit
object-group service web
port-range 443
exit
syslog max-files 3
syslog file-size 512
syslog file tmpsys:syslog/default
severity info
exit
logging radius
radius-server local
nas AP_subnet
key ascii-text testing123
network 192.168.1.0/24
exit
nas local
key ascii-text testing123
network 127.0.0.1/32
exit
domain default
exit
virtual-server default
mode proxy
upstream-pool wnam
nas-ip-address 100.127.2.200
enable
exit
upstream-server wnam
host 93.180.6.157
server-type all
key ascii-text eltex123
exit
upstream-pool wnam
server-type all
upstream-server wnam
exit
enable
exit
radius-server host 127.0.0.1
key ascii-text testing123
exit
aaa radius-profile default_radius
radius-server host 127.0.0.1
exit
vlan 3
force-up
exit
vlan 2
exit
no spanning-tree
domain lookup enable
security zone trusted
exit
security zone untrusted
exit
security zone users
exit
bridge 1
vlan 1
security-zone trusted
ip address 192.168.1.1/24
no spanning-tree
enable
exit
bridge 2
vlan 2
security-zone untrusted
ip address dhcp
no spanning-tree
enable
exit
bridge 3
vlan 3
mtu 1458
security-zone users
ip address 192.168.2.1/24
no spanning-tree
enable
exit
interface gigabitethernet 1/0/1
mode switchport
switchport access vlan 2
exit
interface gigabitethernet 1/0/2
mode switchport
exit
interface gigabitethernet 1/0/3
mode switchport
exit
interface gigabitethernet 1/0/4
mode switchport
exit
interface gigabitethernet 1/0/5
mode switchport
switchport access vlan 2
exit
interface gigabitethernet 1/0/6
mode switchport
exit
tunnel softgre 1
mode data
local address 192.168.1.1
default-profile
enable
exit
security zone-pair trusted untrusted
rule 1
action permit
enable
exit
exit
security zone-pair trusted trusted
rule 1
action permit
enable
exit
exit
security zone-pair trusted self
rule 10
action permit
match protocol tcp
match destination-port object-group ssh
enable
exit
rule 20
action permit
match protocol icmp
enable
exit
rule 30
action permit
match protocol udp
match source-port object-group dhcp_client
match destination-port object-group dhcp_server
enable
exit
rule 40
action permit
match protocol udp
match destination-port object-group ntp
enable
exit
rule 50
action permit
match protocol tcp
match destination-port object-group dns
enable
exit
rule 60
action permit
match protocol udp
match destination-port object-group dns
enable
exit
rule 70
action permit
match protocol tcp
match destination-port object-group netconf
enable
exit
rule 80
action permit
match protocol tcp
match destination-port object-group sa
enable
exit
rule 90
action permit
match protocol udp
match destination-port object-group radius_auth
enable
exit
rule 100
action permit
match protocol gre
enable
exit
rule 110
action permit
match protocol tcp
match destination-port object-group airtune
enable
exit
rule 120
action permit
match protocol tcp
match destination-port object-group web
enable
exit
exit
security zone-pair untrusted self
rule 1
action permit
match protocol udp
match source-port object-group dhcp_server
match destination-port object-group dhcp_client
enable
exit
rule 2
action permit
match protocol udp
match destination-port object-group radius_auth
enable
exit
rule 3
action permit
match protocol tcp
match destination-port object-group ssh
enable
exit
rule 4
action permit
match protocol icmp
enable
exit
exit
security zone-pair users self
rule 10
action permit
match protocol icmp
enable
exit
rule 20
action permit
match protocol udp
match source-port object-group dhcp_client
match destination-port object-group dhcp_server
enable
exit
rule 30
action permit
match protocol tcp
match destination-port object-group dns
enable
exit
rule 40
action permit
match protocol udp
match destination-port object-group dns
enable
exit
exit
security zone-pair users untrusted
rule 1
action permit
enable
exit
exit
security passwords default-expired
nat source
ruleset factory
to zone untrusted
rule 10
description "replace 'source ip' by outgoing interface ip address"
action source-nat interface
enable
exit
exit
exit
ip dhcp-server
ip dhcp-server pool ap-pool
network 192.168.1.0/24
address-range 192.168.1.2-192.168.1.254
default-router 192.168.1.1
dns-server 192.168.1.1
option 42 ip-address 192.168.1.1
vendor-specific
suboption 12 ascii-text "192.168.1.1"
suboption 15 ascii-text "https://192.168.1.1:8043"
exit
exit
ip dhcp-server pool users-pool
network 192.168.2.0/24
address-range 192.168.2.2-192.168.2.254
default-router 192.168.2.1
dns-server 192.168.2.1
exit
softgre-controller
nas-ip-address 127.0.0.1
data-tunnel configuration wlc
aaa radius-profile default_radius
keepalive-disable
service-vlan add 3
enable
exit
wlc
outside-address 192.168.1.1
service-activator
aps join auto
exit
ap-location default-location
mode tunnel
ap-profile default-ap
ssid-profile default-ssid
exit
ssid-profile default-ssid
ssid "!WNAM.test-portal"
radius-profile default-radius
portal-enable
portal-profile default-portal
vlan-id 3
band 2g
band 5g
enable
exit
ap-profile default-ap
password ascii-text password
exit
portal-profile default-portal
redirect-url http://93.180.6.157/cp/eltexwlc
age-timeout 1
verification-mode external-portal
exit
radius-profile default-radius
auth-address 192.168.1.1
auth-password ascii-text testing123
session password mac
auth-acct-id-send
acct-enable
acct-address 192.168.1.1
acct-password ascii-text testing123
acct-periodic
domain default
exit
ip-pool default-ip-pool
description "default-ip-pool"
ap-location default-location
exit
enable
exit
ip ssh server
clock timezone gmt +7
ntp enable
ntp server 194.190.168.1
exit
Использование сертификатов для сокрытия передаваемых учетных данных (username, password) между клиентом и ТД Использование сертификатов для сокрытия передаваемых учетных данных (username, password), между клиентом и ТД
Для повышения безопасности передачи данных между клиентом и ТД необходимо обеспечить шифрование трафика с использованием SSL.
Для этого требуется:
Для защиты приватного ключа в схеме с портальной авторизацией рекомендуется использовать пароль.
Стандартный процесс выпуска сертификатов не предусматривает автоматическое шифрование приватного ключа. Однако это можно выполнить вручную с помощью утилиты OpenSSL .
Команда для шифрования ключа:
openssl rsa -aes256 -in private_key.pem -out private_key_encrypted.pem
Параметры:
-aes256 – алгоритм шифрования (можно заменить на -aes128 или -aes192);
-in private_key.pem – исходный незашифрованный ключ;
-out private_key_encrypted.pem – зашифрованный ключ.
После выполнения команды OpenSSL запросит пароль, который будет использоваться для защиты ключа.
Этот подход обеспечит дополнительный уровень защиты приватного ключа от несанкционированного доступа.
После шифрования ключа его необходимо добавить к сертификату, например через текстовый редактор. Файл сертификата с шифрованным ключом должен иметь вид:
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN ENCRYPTED PRIVATE KEY-----
-----END ENCRYPTED PRIVATE KEY-----
Загрузите файл сертификата с шифрованным ключом на контроллер WLC в директорию crypto:cert/
Настройте проверку сертификата и включите режим HTTPs:
wlc
ap-profile default-ap
captive-portal
ap-ip-alias certificate_alias
crypto cert certificate_encrypted.pem
crypto private-key-password ascii-text password
proxy-https
exit
Перед применением конфигурации произойдёт проверка псевдонима сертификата и пароля шифрованного ключа.
Допустимо использовать сертификат без шифрованного ключа. В таком случае приватный ключ добавляется к сертификату. Настройка crypto private-key-password не требуется.
Формат файла для сертификата без шифрованного ключа:
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
Конфигурация:
wlc
ap-profile default-ap
captive-portal
ap-ip-alias certificate_alias
crypto cert certificate.pem
proxy-https
exit
Настройка точки доступа В заводской конфигурации WLC-30 предусмотрено автоматическое подключение точек доступа к контроллеру. Для этого требуется подключить точку доступа в порт gi1/0/2 и контроллер WLC сам выполнит обновление, если версия ПО на точке доступа не соответствует версии, которая размещена на контроллере, выполнит конфигурирование в соответствие с настройками: выбранными профилями конфигурации и SSID. Инструкцию по загрузке актуальной версии ПО точек доступа на контроллер можно найти по ссылке .
Настройка WNAM Создание "Сервера доступа" (NAS) В разделе "Конфигурация" → "Сервера доступа" создайте запись о сервере доступа типа Cisco WLC (сервер доступа – контроллер), укажитеадрес, имя и местоположение (логин и пароль не используются).
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_9.jpg
Во вкладке RADIUS укажите секретный RADIUS-ключ (который указали на контроллере в настройках ААА-сервера) и включите МАС-авторизацию.
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_10.jpg
Создание "Площадки" (портала) Затем необходимо настроить запись о площадке оказания услуги (раздел "Конфигурация" → "Площадки"). Также можно указать название сети (SSID) и в качестве "Дополнительный ID" указать название "Сервера доступа" (NAS).
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_11.jpg
На вкладке "Авторизация" выберите метод "Отправка СМС абоненту", провайдера СМС "Тестовый провайдер (без отправки)" и тогда идентификация на портале (в рамках теста авторизации) будет проходить по присланному коду, после ввода фейкового номера телефона (в рамках тестов гостевого портала).
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_12.jpg
На вкладке "Приветствие" выберите, куда будет направляться клиент после финального редиректа. В нашем случае на сайт https://eltex.ru/
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_13.jpg
Правила аутентифи кации Правило для редиректа на гостевой портал (используем дефолтное или создаем свое по аналогии) Настройте правило, как на скрине ниже.
Источник запроса – беспроводной; Эндпоинт – не известен и просрочен/не валиден (т. к. при первом подключении наш клиент неизвестен и его MAC-адрес не изучен); Результат – Redirect на гостевой портал авторизации (будет возвращен accept-reject и ТД будет перенаправлять запрос пользователя на преднастроенный адрес портала). При большом количестве правил и при использовании разных политик аутентификаций и авторизаций клиентов, данное правило можно кастомизировать дополнительными параметрами под свои потребности (чтоб данное правило отрабатывало только необходимые запросы radius). Правило аутентификации привязывается к правилу авторизации при помощи тега.
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Снимок экрана_17-2-2026_10746_auth.wnam.ru.jpeg
Создание правила аутентификации для доступа клиента в Internet Данное правило проверяет наличие MAC-адреса в хранилище гостевых эндпоинтов. Мак-адрес попадает туда после того, как клиент идентифицировал себе на гостевом портале. Поэтому в настройках "Эндпоит" выберите пункт "Известен и валиден", а в "Результат" — "Allow (и проверять правила авторизации)".
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Снимок экрана_17-2-2026_10849_auth.wnam.ru.jpeg
Создание правил авторизации Первое правило для редиректа на портал Результатом должно стать отправка пакета Radius 'Access-Reject' контроллеру (NAS). Пример настройки представлен на скрине ниже.
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Снимок экрана_17-2-2026_10949_auth.wnam.ru.jpeg
Второе правило авторизации для предоставления доступа в Internet Результатом должно стать: отправка пакета Radius 'Access-Accept' контроллеру (NAS). Пример настройки представлен на скрине ниже.
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Снимок экрана_17-2-2026_101027_auth.wnam.ru.jpeg
На этом настройка WNAM окончена.
Диагностика на стороне WLC Radius-обмен между WLC и WNAM в процессе авторизации Radius-пакеты и атрибуты:
No. Time Source Destination Protocol Length Info
1 0.000000 100.127.2.200 93.180.6.157 RADIUS 354 Access-Request id=159
2 0.103235 93.180.6.157 100.127.2.200 RADIUS 84 Access-Reject id=159
3 26.950520 100.127.2.200 93.180.6.157 RADIUS 338 Access-Request id=219
4 27.066876 93.180.6.157 100.127.2.200 RADIUS 97 Access-Accept id=219
5 27.071716 100.127.2.200 93.180.6.157 RADIUS 296 Accounting-Request id=93
6 27.192914 93.180.6.157 100.127.2.200 RADIUS 66 Accounting-Response id=93
7 39.051705 100.127.2.200 93.180.6.157 RADIUS 389 Accounting-Request id=173
8 39.116628 93.180.6.157 100.127.2.200 RADIUS 66 Accounting-Response id=173
9 65.711184 100.127.2.200 93.180.6.157 RADIUS 354 Access-Request id=103
10 65.788076 93.180.6.157 100.127.2.200 RADIUS 97 Access-Accept id=103
11 66.662961 100.127.2.200 93.180.6.157 RADIUS 291 Accounting-Request id=44
12 66.770910 93.180.6.157 100.127.2.200 RADIUS 66 Accounting-Response id=44
13 88.551562 100.127.2.200 93.180.6.157 RADIUS 384 Accounting-Request id=45
14 88.629895 93.180.6.157 100.127.2.200 RADIUS 66 Accounting-Response id=45
RADIUS Protocol
Code: Access-Request (1)
Packet identifier: 0x9f (159)
Length: 312
Authenticator: f5a376c98a72dd93d0f46a34b09becc6
[The response to this request is in frame 2]
Attribute Value Pairs
AVP: t=User-Name(1) l=19 val=78:98:e8:1e:67:07
AVP: t=User-Password(2) l=34 val=Encrypted
AVP: t=Framed-IP-Address(8) l=6 val=0.0.0.0
AVP: t=Framed-MTU(12) l=6 val=1500
AVP: t=Connect-Info(77) l=23 val=CONNECT 0Mbps 802.11a
AVP: t=Vendor-Specific(26) l=24 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=15 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=NAS-Port-Id(87) l=13 val=7;Vlan-ID=3
AVP: t=Called-Station-Id(30) l=37 val=68-13-e2-c2-f7-40:!WNAM.test-portal
AVP: t=Calling-Station-Id(31) l=19 val=78-98-e8-1e-67-07
AVP: t=NAS-Port(5) l=6 val=1
AVP: t=Framed-MTU(12) l=6 val=1500
AVP: t=NAS-Port-Type(61) l=6 val=Wireless-802.11(19)
AVP: t=Acct-Session-Id(44) l=19 val=3CC3E9CF-764E73AC
AVP: t=NAS-IP-Address(4) l=6 val=100.127.2.200
AVP: t=NAS-Identifier(32) l=19 val=68-13-E2-C2-F7-40
AVP: t=Service-Type(6) l=6 val=Call-Check(10)
AVP: t=Message-Authenticator(80) l=18 val=4301eba80b4bffc803b7921c1232958c
AVP: t=Event-Timestamp(55) l=6 val=Feb 16, 2026 16:25:17.000000000 Новосибирское стандартное время
AVP: t=Proxy-State(33) l=4 val=3237
RADIUS Protocol
Code: Access-Reject (3)
Packet identifier: 0x9f (159)
Length: 42
Authenticator: 231c3a7d967997956f2d40d9020a634e
[This is a response to a request in frame 1]
[Time from request: 0.103235000 seconds]
Attribute Value Pairs
AVP: t=Proxy-State(33) l=4 val=3237
AVP: t=Message-Authenticator(80) l=18 val=812049084cc5338da60a9738a027c313
RADIUS Protocol
Code: Access-Request (1)
Packet identifier: 0xdb (219)
Length: 296
Authenticator: 56358e92bb13e79dda42be5a8cc2d81a
[The response to this request is in frame 4]
Attribute Value Pairs
AVP: t=User-Name(1) l=19 val=78:98:E8:1E:67:07
AVP: t=User-Password(2) l=18 val=Encrypted
AVP: t=Framed-IP-Address(8) l=6 val=192.168.2.47
AVP: t=Framed-MTU(12) l=6 val=1500
AVP: t=Connect-Info(77) l=23 val=CONNECT 0Mbps 802.11a
AVP: t=Vendor-Specific(26) l=24 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=Vendor-Specific(26) l=15 vnd=Eltex Enterprise, Ltd.(35265)
AVP: t=NAS-Port-Id(87) l=13 val=7;Vlan-ID=3
AVP: t=Called-Station-Id(30) l=37 val=68-13-e2-c2-f7-40:!WNAM.test-portal
AVP: t=Calling-Station-Id(31) l=19 val=78-98-e8-1e-67-07
AVP: t=NAS-Port(5) l=6 val=1
AVP: t=Framed-MTU(12) l=6 val=1500
AVP: t=NAS-Port-Type(61) l=6 val=Wireless-802.11(19)
AVP: t=Acct-Session-Id(44) l=19 val=3CC3E9CF-764E73AC
AVP: t=NAS-IP-Address(4) l=6 val=100.127.2.200
AVP: t=NAS-Identifier(32) l=19 val=68-13-E2-C2-F7-40
AVP: t=Service-Type(6) l=6 val=Login(1)
AVP: t=Message-Authenticator(80) l=18 val=d3ef8b6c16ac100d4fc272ca92fd37f4
AVP: t=Event-Timestamp(55) l=6 val=Feb 16, 2026 16:25:44.000000000 Новосибирское стандартное время
AVP: t=Proxy-State(33) l=4 val=3238
RADIUS Protocol
Code: Access-Accept (2)
Packet identifier: 0xdb (219)
Length: 55
Authenticator: 3a7c971cd21e244dad2735adac382da9
[This is a response to a request in frame 3]
[Time from request: 0.116356000 seconds]
Attribute Value Pairs
AVP: t=User-Name(1) l=13 val=79998887711
AVP: t=Proxy-State(33) l=4 val=3238
AVP: t=Message-Authenticator(80) l=18 val=91697f801ad0ac28f3c2d6ae5a27a97f
F.E.wlc-30(debug)# sh radius-debug t 0
(2) Mon Feb 16 15:35:34 2026: Debug: Received Access-Request Id 7 from 192.168.1.3:48741 to 192.168.1.1:1812 length 302
(2) Mon Feb 16 15:35:34 2026: Debug: User-Name = "78:98:e8:1e:67:07"
(2) Mon Feb 16 15:35:34 2026: Debug: User-Password = "78:98:e8:1e:67:07"
(2) Mon Feb 16 15:35:34 2026: Debug: Framed-IP-Address = 0.0.0.0
(2) Mon Feb 16 15:35:34 2026: Debug: Framed-MTU = 1500
(2) Mon Feb 16 15:35:34 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(2) Mon Feb 16 15:35:34 2026: Debug: Eltex-AP-Domain = "default-location"
(2) Mon Feb 16 15:35:34 2026: Debug: Eltex-Domain = "default"
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(2) Mon Feb 16 15:35:34 2026: Debug: Called-Station-Id = "68-13-e2-c2-f7-40:!WNAM.test-portal"
(2) Mon Feb 16 15:35:34 2026: Debug: Calling-Station-Id = "78-98-e8-1e-67-07"
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-Port = 1
(2) Mon Feb 16 15:35:34 2026: Debug: Framed-MTU = 1500
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-Port-Type = Wireless-802.11
(2) Mon Feb 16 15:35:34 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-IP-Address = 192.168.1.3
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(2) Mon Feb 16 15:35:34 2026: Debug: Service-Type = Call-Check
(2) Mon Feb 16 15:35:34 2026: Debug: Message-Authenticator = 0x6114bf8fece534b99a36486f52dc6725
(2) Mon Feb 16 15:35:34 2026: Debug: # Executing section authorize from file /etc/raddb/sites-enabled/_default
(2) Mon Feb 16 15:35:34 2026: Debug: authorize {
(2) Mon Feb 16 15:35:34 2026: Debug: policy filter_username {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name) -> TRUE
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ / /) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ / /) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ /@[^@]*@/ ) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ /\.\./ ) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ /\.\./ ) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) {
(2) Mon Feb 16 15:35:34 2026: Debug: if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ /\.$/) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ /\.$/) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ /@\./) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&User-Name =~ /@\./) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: } # if (&User-Name) = notfound
(2) Mon Feb 16 15:35:34 2026: Debug: } # policy filter_username = notfound
(2) Mon Feb 16 15:35:34 2026: Debug: [preprocess] = ok
(2) Mon Feb 16 15:35:34 2026: Debug: if (&Cisco-AVPair && &Cisco-AVPair == "subscriber:command=ip-shaper") {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&Cisco-AVPair && &Cisco-AVPair == "subscriber:command=ip-shaper") -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: else {
(2) Mon Feb 16 15:35:34 2026: Debug: policy get_ssid {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(2) Mon Feb 16 15:35:34 2026: Debug: EXPAND %{8}
(2) Mon Feb 16 15:35:34 2026: Debug: --> !WNAM.test-portal
(2) Mon Feb 16 15:35:34 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") -> TRUE
(2) Mon Feb 16 15:35:34 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(2) Mon Feb 16 15:35:34 2026: Debug: update request {
(2) Mon Feb 16 15:35:34 2026: Debug: EXPAND %{8}
(2) Mon Feb 16 15:35:34 2026: Debug: --> !WNAM.test-portal
(2) Mon Feb 16 15:35:34 2026: Debug: } # update request = noop
(2) Mon Feb 16 15:35:34 2026: Debug: [updated] = updated
(2) Mon Feb 16 15:35:34 2026: Debug: } # if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") = updated
(2) Mon Feb 16 15:35:34 2026: Debug: ... skipping else: Preceding "if" was taken
(2) Mon Feb 16 15:35:34 2026: Debug: } # policy get_ssid = updated
(2) Mon Feb 16 15:35:34 2026: Debug: policy auth_by_ssid_default {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&Called-Station-SSID) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&Called-Station-SSID) -> TRUE
(2) Mon Feb 16 15:35:34 2026: Debug: if (&Called-Station-SSID) {
(2) Mon Feb 16 15:35:34 2026: Debug: policy auth_default {
(2) Mon Feb 16 15:35:34 2026: Debug: update request {
(2) Mon Feb 16 15:35:34 2026: Debug: } # update request = noop
(2) Mon Feb 16 15:35:34 2026: Debug: update control {
(2) Mon Feb 16 15:35:34 2026: Debug: } # update control = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # policy auth_default = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # if (&Called-Station-SSID) = noop
(2) Mon Feb 16 15:35:34 2026: Debug: ... skipping else: Preceding "if" was taken
(2) Mon Feb 16 15:35:34 2026: Debug: } # policy auth_by_ssid_default = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # else = updated
(2) Mon Feb 16 15:35:34 2026: Debug: [chap] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: [mschap] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: [digest] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: suffix: Checking for suffix after "@"
(2) Mon Feb 16 15:35:34 2026: Debug: suffix: No '@' in User-Name = "78:98:e8:1e:67:07", looking up realm NULL
(2) Mon Feb 16 15:35:34 2026: Debug: suffix: No such realm "NULL"
(2) Mon Feb 16 15:35:34 2026: Debug: [suffix] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: files_multi: users: Matched entry DEFAULT at line 1
(2) Mon Feb 16 15:35:34 2026: Debug: [files_multi] = ok
(2) Mon Feb 16 15:35:34 2026: Debug: if (&reply:Eltex-Tls-Enabled == 1) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&reply:Eltex-Tls-Enabled == 1) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: else {
(2) Mon Feb 16 15:35:34 2026: Debug: eap: No EAP-Message, not doing EAP
(2) Mon Feb 16 15:35:34 2026: Debug: [eap] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # else = noop
(2) Mon Feb 16 15:35:34 2026: Debug: if (ok) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (ok) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: [expiration] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: [logintime] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: [pap] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # authorize = updated
(2) Mon Feb 16 15:35:34 2026: Debug: Starting proxy to home server 93.180.6.157 port 1812
(2) Mon Feb 16 15:35:34 2026: Debug: server default {
(2) Mon Feb 16 15:35:34 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(2) Mon Feb 16 15:35:34 2026: Debug: pre-proxy {
(2) Mon Feb 16 15:35:34 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(2) Mon Feb 16 15:35:34 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: } # pre-proxy = noop
(2) Mon Feb 16 15:35:34 2026: Debug: }
(2) Mon Feb 16 15:35:34 2026: Debug: Sent Access-Request Id 123 from 0.0.0.0:51831 to 93.180.6.157:1812 length 311
(2) Mon Feb 16 15:35:34 2026: Debug: User-Name = "78:98:e8:1e:67:07"
(2) Mon Feb 16 15:35:34 2026: Debug: User-Password = "78:98:e8:1e:67:07"
(2) Mon Feb 16 15:35:34 2026: Debug: Framed-IP-Address = 0.0.0.0
(2) Mon Feb 16 15:35:34 2026: Debug: Framed-MTU = 1500
(2) Mon Feb 16 15:35:34 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(2) Mon Feb 16 15:35:34 2026: Debug: Eltex-AP-Domain = "default-location"
(2) Mon Feb 16 15:35:34 2026: Debug: Eltex-Domain = "default"
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(2) Mon Feb 16 15:35:34 2026: Debug: Called-Station-Id = "68-13-e2-c2-f7-40:!WNAM.test-portal"
(2) Mon Feb 16 15:35:34 2026: Debug: Calling-Station-Id = "78-98-e8-1e-67-07"
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-Port = 1
(2) Mon Feb 16 15:35:34 2026: Debug: Framed-MTU = 1500
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-Port-Type = Wireless-802.11
(2) Mon Feb 16 15:35:34 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-IP-Address := 100.127.2.200
(2) Mon Feb 16 15:35:34 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(2) Mon Feb 16 15:35:34 2026: Debug: Service-Type = Call-Check
(2) Mon Feb 16 15:35:34 2026: Debug: Message-Authenticator = 0x6114bf8fece534b99a36486f52dc6725
(2) Mon Feb 16 15:35:34 2026: Debug: Event-Timestamp = "Feb 16 2026 15:35:34 GMT+7"
(2) Mon Feb 16 15:35:34 2026: Debug: Proxy-State = 0x37
(2) Mon Feb 16 15:35:34 2026: Debug: Clearing existing &reply: attributes
(2) Mon Feb 16 15:35:34 2026: Debug: Received Access-Reject Id 123 from 93.180.6.157:1812 to 100.127.2.200:51831 length 41
(2) Mon Feb 16 15:35:34 2026: Debug: Proxy-State = 0x37
(2) Mon Feb 16 15:35:34 2026: Debug: Message-Authenticator = 0xf0b9091c255e1c75cfebfb6520819e78
(2) Mon Feb 16 15:35:34 2026: Debug: server default {
(2) Mon Feb 16 15:35:34 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(2) Mon Feb 16 15:35:34 2026: Debug: post-proxy {
(2) Mon Feb 16 15:35:34 2026: Debug: eap: No pre-existing handler found
(2) Mon Feb 16 15:35:34 2026: Debug: [eap] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # post-proxy = noop
(2) Mon Feb 16 15:35:34 2026: Debug: }
(2) Mon Feb 16 15:35:34 2026: Debug: Using Post-Auth-Type Reject
(2) Mon Feb 16 15:35:34 2026: Debug: # Executing group from file /etc/raddb/sites-enabled/_default
(2) Mon Feb 16 15:35:34 2026: Debug: Post-Auth-Type REJECT {
(2) Mon Feb 16 15:35:34 2026: Debug: attr_filter.access_reject: EXPAND %{User-Name}
(2) Mon Feb 16 15:35:34 2026: Debug: attr_filter.access_reject: --> 78:98:e8:1e:67:07
(2) Mon Feb 16 15:35:34 2026: Debug: attr_filter.access_reject: Matched entry DEFAULT at line 11
(2) Mon Feb 16 15:35:34 2026: Debug: [attr_filter.access_reject] = updated
(2) Mon Feb 16 15:35:34 2026: Debug: [eap] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: policy remove_reply_message_if_eap {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&reply:EAP-Message && &reply:Reply-Message) {
(2) Mon Feb 16 15:35:34 2026: Debug: if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(2) Mon Feb 16 15:35:34 2026: Debug: else {
(2) Mon Feb 16 15:35:34 2026: Debug: [noop] = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # else = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # policy remove_reply_message_if_eap = noop
(2) Mon Feb 16 15:35:34 2026: Debug: } # Post-Auth-Type REJECT = updated
(2) Mon Feb 16 15:35:34 2026: Debug: Delaying response for 1.000000 seconds
(2) Mon Feb 16 15:35:35 2026: Debug: Sending delayed response
(2) Mon Feb 16 15:35:35 2026: Debug: Sent Access-Reject Id 7 from 192.168.1.1:1812 to 192.168.1.3:48741 length 38
(2) Mon Feb 16 15:35:35 2026: Debug: Message-Authenticator = 0xf0b9091c255e1c75cfebfb6520819e78
(2) Mon Feb 16 15:35:39 2026: Debug: Cleaning up request packet ID 7 with timestamp +237
(3) Mon Feb 16 15:35:50 2026: Debug: Received Access-Request Id 8 from 192.168.1.3:48741 to 192.168.1.1:1812 length 286
(3) Mon Feb 16 15:35:50 2026: Debug: User-Name = "78:98:E8:1E:67:07"
(3) Mon Feb 16 15:35:50 2026: Debug: User-Password = "password"
(3) Mon Feb 16 15:35:50 2026: Debug: Framed-IP-Address = 192.168.2.47
(3) Mon Feb 16 15:35:50 2026: Debug: Framed-MTU = 1500
(3) Mon Feb 16 15:35:50 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(3) Mon Feb 16 15:35:50 2026: Debug: Eltex-AP-Domain = "default-location"
(3) Mon Feb 16 15:35:50 2026: Debug: Eltex-Domain = "default"
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(3) Mon Feb 16 15:35:50 2026: Debug: Called-Station-Id = "68-13-e2-c2-f7-40:!WNAM.test-portal"
(3) Mon Feb 16 15:35:50 2026: Debug: Calling-Station-Id = "78-98-e8-1e-67-07"
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-Port = 1
(3) Mon Feb 16 15:35:50 2026: Debug: Framed-MTU = 1500
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-Port-Type = Wireless-802.11
(3) Mon Feb 16 15:35:50 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-IP-Address = 192.168.1.3
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(3) Mon Feb 16 15:35:50 2026: Debug: Service-Type = Login-User
(3) Mon Feb 16 15:35:50 2026: Debug: Message-Authenticator = 0x8f1d7ee650d2c7de6437dd85420e109d
(3) Mon Feb 16 15:35:50 2026: Debug: # Executing section authorize from file /etc/raddb/sites-enabled/_default
(3) Mon Feb 16 15:35:50 2026: Debug: authorize {
(3) Mon Feb 16 15:35:50 2026: Debug: policy filter_username {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name) -> TRUE
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ / /) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ / /) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ /@[^@]*@/ ) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ /\.\./ ) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ /\.\./ ) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) {
(3) Mon Feb 16 15:35:50 2026: Debug: if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ /\.$/) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ /\.$/) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ /@\./) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&User-Name =~ /@\./) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: } # if (&User-Name) = notfound
(3) Mon Feb 16 15:35:50 2026: Debug: } # policy filter_username = notfound
(3) Mon Feb 16 15:35:50 2026: Debug: [preprocess] = ok
(3) Mon Feb 16 15:35:50 2026: Debug: if (&Cisco-AVPair && &Cisco-AVPair == "subscriber:command=ip-shaper") {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&Cisco-AVPair && &Cisco-AVPair == "subscriber:command=ip-shaper") -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: else {
(3) Mon Feb 16 15:35:50 2026: Debug: policy get_ssid {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(3) Mon Feb 16 15:35:50 2026: Debug: EXPAND %{8}
(3) Mon Feb 16 15:35:50 2026: Debug: --> !WNAM.test-portal
(3) Mon Feb 16 15:35:50 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") -> TRUE
(3) Mon Feb 16 15:35:50 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(3) Mon Feb 16 15:35:50 2026: Debug: update request {
(3) Mon Feb 16 15:35:50 2026: Debug: EXPAND %{8}
(3) Mon Feb 16 15:35:50 2026: Debug: --> !WNAM.test-portal
(3) Mon Feb 16 15:35:50 2026: Debug: } # update request = noop
(3) Mon Feb 16 15:35:50 2026: Debug: [updated] = updated
(3) Mon Feb 16 15:35:50 2026: Debug: } # if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") = updated
(3) Mon Feb 16 15:35:50 2026: Debug: ... skipping else: Preceding "if" was taken
(3) Mon Feb 16 15:35:50 2026: Debug: } # policy get_ssid = updated
(3) Mon Feb 16 15:35:50 2026: Debug: policy auth_by_ssid_default {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&Called-Station-SSID) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&Called-Station-SSID) -> TRUE
(3) Mon Feb 16 15:35:50 2026: Debug: if (&Called-Station-SSID) {
(3) Mon Feb 16 15:35:50 2026: Debug: policy auth_default {
(3) Mon Feb 16 15:35:50 2026: Debug: update request {
(3) Mon Feb 16 15:35:50 2026: Debug: } # update request = noop
(3) Mon Feb 16 15:35:50 2026: Debug: update control {
(3) Mon Feb 16 15:35:50 2026: Debug: } # update control = noop
(3) Mon Feb 16 15:35:50 2026: Debug: } # policy auth_default = noop
(3) Mon Feb 16 15:35:50 2026: Debug: } # if (&Called-Station-SSID) = noop
(3) Mon Feb 16 15:35:50 2026: Debug: ... skipping else: Preceding "if" was taken
(3) Mon Feb 16 15:35:50 2026: Debug: } # policy auth_by_ssid_default = noop
(3) Mon Feb 16 15:35:50 2026: Debug: } # else = updated
(3) Mon Feb 16 15:35:50 2026: Debug: [chap] = noop
(3) Mon Feb 16 15:35:50 2026: Debug: [mschap] = noop
(3) Mon Feb 16 15:35:50 2026: Debug: [digest] = noop
(3) Mon Feb 16 15:35:50 2026: Debug: suffix: Checking for suffix after "@"
(3) Mon Feb 16 15:35:50 2026: Debug: suffix: No '@' in User-Name = "78:98:E8:1E:67:07", looking up realm NULL
(3) Mon Feb 16 15:35:50 2026: Debug: suffix: No such realm "NULL"
(3) Mon Feb 16 15:35:50 2026: Debug: [suffix] = noop
(3) Mon Feb 16 15:35:50 2026: Debug: files_multi: users: Matched entry DEFAULT at line 1
(3) Mon Feb 16 15:35:50 2026: Debug: [files_multi] = ok
(3) Mon Feb 16 15:35:50 2026: Debug: if (&reply:Eltex-Tls-Enabled == 1) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (&reply:Eltex-Tls-Enabled == 1) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: else {
(3) Mon Feb 16 15:35:50 2026: Debug: eap: No EAP-Message, not doing EAP
(3) Mon Feb 16 15:35:50 2026: Debug: [eap] = noop
(3) Mon Feb 16 15:35:50 2026: Debug: } # else = noop
(3) Mon Feb 16 15:35:50 2026: Debug: if (ok) {
(3) Mon Feb 16 15:35:50 2026: Debug: if (ok) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: [expiration] = noop
(3) Mon Feb 16 15:35:50 2026: Debug: [logintime] = noop
(3) Mon Feb 16 15:35:50 2026: Debug: [pap] = noop
(3) Mon Feb 16 15:35:50 2026: Debug: } # authorize = updated
(3) Mon Feb 16 15:35:50 2026: Debug: Starting proxy to home server 93.180.6.157 port 1812
(3) Mon Feb 16 15:35:50 2026: Debug: server default {
(3) Mon Feb 16 15:35:50 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(3) Mon Feb 16 15:35:50 2026: Debug: pre-proxy {
(3) Mon Feb 16 15:35:50 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(3) Mon Feb 16 15:35:50 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> FALSE
(3) Mon Feb 16 15:35:50 2026: Debug: } # pre-proxy = noop
(3) Mon Feb 16 15:35:50 2026: Debug: }
(3) Mon Feb 16 15:35:50 2026: Debug: Sent Access-Request Id 143 from 0.0.0.0:51831 to 93.180.6.157:1812 length 295
(3) Mon Feb 16 15:35:50 2026: Debug: User-Name = "78:98:E8:1E:67:07"
(3) Mon Feb 16 15:35:50 2026: Debug: User-Password = "password"
(3) Mon Feb 16 15:35:50 2026: Debug: Framed-IP-Address = 192.168.2.47
(3) Mon Feb 16 15:35:50 2026: Debug: Framed-MTU = 1500
(3) Mon Feb 16 15:35:50 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(3) Mon Feb 16 15:35:50 2026: Debug: Eltex-AP-Domain = "default-location"
(3) Mon Feb 16 15:35:50 2026: Debug: Eltex-Domain = "default"
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(3) Mon Feb 16 15:35:50 2026: Debug: Called-Station-Id = "68-13-e2-c2-f7-40:!WNAM.test-portal"
(3) Mon Feb 16 15:35:50 2026: Debug: Calling-Station-Id = "78-98-e8-1e-67-07"
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-Port = 1
(3) Mon Feb 16 15:35:50 2026: Debug: Framed-MTU = 1500
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-Port-Type = Wireless-802.11
(3) Mon Feb 16 15:35:50 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-IP-Address := 100.127.2.200
(3) Mon Feb 16 15:35:50 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(3) Mon Feb 16 15:35:50 2026: Debug: Service-Type = Login-User
(3) Mon Feb 16 15:35:50 2026: Debug: Message-Authenticator = 0x8f1d7ee650d2c7de6437dd85420e109d
(3) Mon Feb 16 15:35:50 2026: Debug: Event-Timestamp = "Feb 16 2026 15:35:50 GMT+7"
(3) Mon Feb 16 15:35:50 2026: Debug: Proxy-State = 0x38
(3) Mon Feb 16 15:35:51 2026: Debug: Clearing existing &reply: attributes
(3) Mon Feb 16 15:35:51 2026: Debug: Received Access-Accept Id 143 from 93.180.6.157:1812 to 100.127.2.200:51831 length 54
(3) Mon Feb 16 15:35:51 2026: Debug: User-Name = "79997775511"
(3) Mon Feb 16 15:35:51 2026: Debug: Proxy-State = 0x38
(3) Mon Feb 16 15:35:51 2026: Debug: Message-Authenticator = 0x38dc1636f079461038167967922a6e9a
(3) Mon Feb 16 15:35:51 2026: Debug: server default {
(3) Mon Feb 16 15:35:51 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(3) Mon Feb 16 15:35:51 2026: Debug: post-proxy {
(3) Mon Feb 16 15:35:51 2026: Debug: eap: No pre-existing handler found
(3) Mon Feb 16 15:35:51 2026: Debug: [eap] = noop
(3) Mon Feb 16 15:35:51 2026: Debug: } # post-proxy = noop
(3) Mon Feb 16 15:35:51 2026: Debug: }
(3) Mon Feb 16 15:35:51 2026: Debug: Found Auth-Type = Accept
(3) Mon Feb 16 15:35:51 2026: Debug: Auth-Type = Accept, accepting the user
(3) Mon Feb 16 15:35:51 2026: Debug: # Executing section post-auth from file /etc/raddb/sites-enabled/_default
(3) Mon Feb 16 15:35:51 2026: Debug: post-auth {
(3) Mon Feb 16 15:35:51 2026: Debug: if (session-state:User-Name && reply:User-Name && request:User-Name && (reply:User-Name == request:User-Name)) {
(3) Mon Feb 16 15:35:51 2026: Debug: if (session-state:User-Name && reply:User-Name && request:User-Name && (reply:User-Name == request:User-Name)) -> FALSE
(3) Mon Feb 16 15:35:51 2026: Debug: update {
(3) Mon Feb 16 15:35:51 2026: Debug: No attributes updated for RHS &session-state:
(3) Mon Feb 16 15:35:51 2026: Debug: } # update = noop
(3) Mon Feb 16 15:35:51 2026: Debug: [exec] = noop
(3) Mon Feb 16 15:35:51 2026: Debug: policy remove_reply_message_if_eap {
(3) Mon Feb 16 15:35:51 2026: Debug: if (&reply:EAP-Message && &reply:Reply-Message) {
(3) Mon Feb 16 15:35:51 2026: Debug: if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(3) Mon Feb 16 15:35:51 2026: Debug: else {
(3) Mon Feb 16 15:35:51 2026: Debug: [noop] = noop
(3) Mon Feb 16 15:35:51 2026: Debug: } # else = noop
(3) Mon Feb 16 15:35:51 2026: Debug: } # policy remove_reply_message_if_eap = noop
(3) Mon Feb 16 15:35:51 2026: Debug: if (EAP-Key-Name && &reply:EAP-Session-Id) {
(3) Mon Feb 16 15:35:51 2026: Debug: if (EAP-Key-Name && &reply:EAP-Session-Id) -> FALSE
(3) Mon Feb 16 15:35:51 2026: Debug: update reply {
(3) Mon Feb 16 15:35:51 2026: Debug: } # update reply = noop
(3) Mon Feb 16 15:35:51 2026: Debug: } # post-auth = noop
(3) Mon Feb 16 15:35:51 2026: Debug: Sent Access-Accept Id 8 from 192.168.1.1:1812 to 192.168.1.3:48741 length 51
(3) Mon Feb 16 15:35:51 2026: Debug: User-Name = "79997775511"
(3) Mon Feb 16 15:35:51 2026: Debug: Message-Authenticator = 0x38dc1636f079461038167967922a6e9a
(3) Mon Feb 16 15:35:51 2026: Debug: Finished request
(4) Mon Feb 16 15:35:51 2026: Debug: Received Accounting-Request Id 9 from 192.168.1.3:38749 to 192.168.1.1:1813 length 250
(4) Mon Feb 16 15:35:51 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(4) Mon Feb 16 15:35:51 2026: Debug: Acct-Status-Type = Start
(4) Mon Feb 16 15:35:51 2026: Debug: User-Name = "78:98:E8:1E:67:07"
(4) Mon Feb 16 15:35:51 2026: Debug: Service-Type = Login-User
(4) Mon Feb 16 15:35:51 2026: Debug: Eltex-Domain = "default"
(4) Mon Feb 16 15:35:51 2026: Debug: Event-Timestamp = "Feb 16 2026 15:35:51 GMT+7"
(4) Mon Feb 16 15:35:51 2026: Debug: Called-Station-Id = "68-13-E2-C2-F7-40:!WNAM.test-portal"
(4) Mon Feb 16 15:35:51 2026: Debug: Calling-Station-Id = "78-98-E8-1E-67-07"
(4) Mon Feb 16 15:35:51 2026: Debug: NAS-Port-Type = Wireless-802.11
(4) Mon Feb 16 15:35:51 2026: Debug: NAS-IP-Address = 192.168.1.3
(4) Mon Feb 16 15:35:51 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(4) Mon Feb 16 15:35:51 2026: Debug: Framed-IP-Address = 192.168.2.47
(4) Mon Feb 16 15:35:51 2026: Debug: Framed-MTU = 1500
(4) Mon Feb 16 15:35:51 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(4) Mon Feb 16 15:35:51 2026: Debug: Eltex-AP-Domain = "default-location"
(4) Mon Feb 16 15:35:51 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(4) Mon Feb 16 15:35:51 2026: Debug: # Executing section preacct from file /etc/raddb/sites-enabled/_default
(4) Mon Feb 16 15:35:51 2026: Debug: preacct {
(4) Mon Feb 16 15:35:51 2026: Debug: [preprocess] = ok
(4) Mon Feb 16 15:35:51 2026: Debug: policy acct_unique {
(4) Mon Feb 16 15:35:51 2026: Debug: update request {
(4) Mon Feb 16 15:35:51 2026: Debug: } # update request = noop
(4) Mon Feb 16 15:35:51 2026: Debug: if (("%{hex:&Class}" =~ /^%{hex:&Tmp-String-9}/) && ("%{string:&Class}" =~ /^ai:([0-9a-f]{32})/i)) {
(4) Mon Feb 16 15:35:51 2026: Debug: EXPAND %{hex:&Class}
(4) Mon Feb 16 15:35:51 2026: Debug: -->
(4) Mon Feb 16 15:35:51 2026: Debug: EXPAND ^%{hex:&Tmp-String-9}
(4) Mon Feb 16 15:35:51 2026: Debug: --> ^61693a
(4) Mon Feb 16 15:35:51 2026: Debug: if (("%{hex:&Class}" =~ /^%{hex:&Tmp-String-9}/) && ("%{string:&Class}" =~ /^ai:([0-9a-f]{32})/i)) -> FALSE
(4) Mon Feb 16 15:35:51 2026: Debug: else {
(4) Mon Feb 16 15:35:51 2026: Debug: update request {
(4) Mon Feb 16 15:35:51 2026: Debug: EXPAND %{md5:%{User-Name},%{Acct-Session-ID},%{%{NAS-IPv6-Address}:-%{NAS-IP-Address}},%{NAS-Identifier},%{NAS-Port-ID},%{NAS-Port}}
(4) Mon Feb 16 15:35:51 2026: Debug: --> bfa1411e8e2d666b3df46e20af1810fc
(4) Mon Feb 16 15:35:51 2026: Debug: } # update request = noop
(4) Mon Feb 16 15:35:51 2026: Debug: } # else = noop
(4) Mon Feb 16 15:35:51 2026: Debug: } # policy acct_unique = noop
(4) Mon Feb 16 15:35:51 2026: Debug: policy get_ssid {
(4) Mon Feb 16 15:35:51 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(4) Mon Feb 16 15:35:51 2026: Debug: EXPAND %{8}
(4) Mon Feb 16 15:35:51 2026: Debug: --> !WNAM.test-portal
(4) Mon Feb 16 15:35:51 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") -> TRUE
(4) Mon Feb 16 15:35:51 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(4) Mon Feb 16 15:35:51 2026: Debug: update request {
(4) Mon Feb 16 15:35:51 2026: Debug: EXPAND %{8}
(4) Mon Feb 16 15:35:51 2026: Debug: --> !WNAM.test-portal
(4) Mon Feb 16 15:35:51 2026: Debug: } # update request = noop
(4) Mon Feb 16 15:35:51 2026: Debug: [updated] = updated
(4) Mon Feb 16 15:35:51 2026: Debug: } # if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") = updated
(4) Mon Feb 16 15:35:51 2026: Debug: ... skipping else: Preceding "if" was taken
(4) Mon Feb 16 15:35:51 2026: Debug: } # policy get_ssid = updated
(4) Mon Feb 16 15:35:51 2026: Debug: suffix: Checking for suffix after "@"
(4) Mon Feb 16 15:35:51 2026: Debug: suffix: No '@' in User-Name = "78:98:E8:1E:67:07", looking up realm NULL
(4) Mon Feb 16 15:35:51 2026: Debug: suffix: No such realm "NULL"
(4) Mon Feb 16 15:35:51 2026: Debug: [suffix] = noop
(4) Mon Feb 16 15:35:51 2026: Debug: files_multi: acct_users: Matched entry DEFAULT at line 1
(4) Mon Feb 16 15:35:51 2026: Debug: [files_multi] = ok
(4) Mon Feb 16 15:35:51 2026: Debug: } # preacct = updated
(4) Mon Feb 16 15:35:51 2026: Debug: # Executing section accounting from file /etc/raddb/sites-enabled/_default
(4) Mon Feb 16 15:35:51 2026: Debug: accounting {
(4) Mon Feb 16 15:35:51 2026: Debug: [exec] = noop
(4) Mon Feb 16 15:35:51 2026: Debug: attr_filter.accounting_response: EXPAND %{User-Name}
(4) Mon Feb 16 15:35:51 2026: Debug: attr_filter.accounting_response: --> 78:98:E8:1E:67:07
(4) Mon Feb 16 15:35:51 2026: Debug: attr_filter.accounting_response: Matched entry DEFAULT at line 12
(4) Mon Feb 16 15:35:51 2026: Debug: [attr_filter.accounting_response] = updated
(4) Mon Feb 16 15:35:51 2026: Debug: policy acct_by_ssid_default {
(4) Mon Feb 16 15:35:51 2026: Debug: if (&Called-Station-SSID) {
(4) Mon Feb 16 15:35:51 2026: Debug: if (&Called-Station-SSID) -> TRUE
(4) Mon Feb 16 15:35:51 2026: Debug: if (&Called-Station-SSID) {
(4) Mon Feb 16 15:35:51 2026: Debug: policy acct_default {
(4) Mon Feb 16 15:35:51 2026: Debug: update request {
(4) Mon Feb 16 15:35:51 2026: Debug: } # update request = noop
(4) Mon Feb 16 15:35:51 2026: Debug: update control {
(4) Mon Feb 16 15:35:51 2026: Debug: } # update control = noop
(4) Mon Feb 16 15:35:51 2026: Debug: } # policy acct_default = noop
(4) Mon Feb 16 15:35:51 2026: Debug: } # if (&Called-Station-SSID) = noop
(4) Mon Feb 16 15:35:51 2026: Debug: ... skipping else: Preceding "if" was taken
(4) Mon Feb 16 15:35:51 2026: Debug: } # policy acct_by_ssid_default = noop
(4) Mon Feb 16 15:35:51 2026: Debug: if (&control:Proxy-To-Realm) {
(4) Mon Feb 16 15:35:51 2026: Debug: if (&control:Proxy-To-Realm) -> TRUE
(4) Mon Feb 16 15:35:51 2026: Debug: if (&control:Proxy-To-Realm) {
(4) Mon Feb 16 15:35:51 2026: Debug: [noop] = noop
(4) Mon Feb 16 15:35:51 2026: Debug: } # if (&control:Proxy-To-Realm) = noop
(4) Mon Feb 16 15:35:51 2026: Debug: ... skipping else: Preceding "if" was taken
(4) Mon Feb 16 15:35:51 2026: Debug: } # accounting = updated
(4) Mon Feb 16 15:35:51 2026: Debug: Starting proxy to home server 93.180.6.157 port 1813
(4) Mon Feb 16 15:35:51 2026: Debug: server default {
(4) Mon Feb 16 15:35:51 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(4) Mon Feb 16 15:35:51 2026: Debug: pre-proxy {
(4) Mon Feb 16 15:35:51 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(4) Mon Feb 16 15:35:51 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> FALSE
(4) Mon Feb 16 15:35:51 2026: Debug: } # pre-proxy = noop
(4) Mon Feb 16 15:35:51 2026: Debug: }
(4) Mon Feb 16 15:35:51 2026: Debug: Sent Accounting-Request Id 50 from 0.0.0.0:51831 to 93.180.6.157:1813 length 253
(4) Mon Feb 16 15:35:51 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(4) Mon Feb 16 15:35:51 2026: Debug: Acct-Status-Type = Start
(4) Mon Feb 16 15:35:51 2026: Debug: User-Name = "78:98:E8:1E:67:07"
(4) Mon Feb 16 15:35:51 2026: Debug: Service-Type = Login-User
(4) Mon Feb 16 15:35:51 2026: Debug: Eltex-Domain = "default"
(4) Mon Feb 16 15:35:51 2026: Debug: Event-Timestamp = "Feb 16 2026 15:35:51 GMT+7"
(4) Mon Feb 16 15:35:51 2026: Debug: Called-Station-Id = "68-13-E2-C2-F7-40:!WNAM.test-portal"
(4) Mon Feb 16 15:35:51 2026: Debug: Calling-Station-Id = "78-98-E8-1E-67-07"
(4) Mon Feb 16 15:35:51 2026: Debug: NAS-Port-Type = Wireless-802.11
(4) Mon Feb 16 15:35:51 2026: Debug: NAS-IP-Address := 100.127.2.200
(4) Mon Feb 16 15:35:51 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(4) Mon Feb 16 15:35:51 2026: Debug: Framed-IP-Address = 192.168.2.47
(4) Mon Feb 16 15:35:51 2026: Debug: Framed-MTU = 1500
(4) Mon Feb 16 15:35:51 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(4) Mon Feb 16 15:35:51 2026: Debug: Eltex-AP-Domain = "default-location"
(4) Mon Feb 16 15:35:51 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(4) Mon Feb 16 15:35:51 2026: Debug: Proxy-State = 0x39
(4) Mon Feb 16 15:35:51 2026: Debug: Clearing existing &reply: attributes
(4) Mon Feb 16 15:35:51 2026: Debug: Received Accounting-Response Id 50 from 93.180.6.157:1813 to 100.127.2.200:51831 length 23
(4) Mon Feb 16 15:35:51 2026: Debug: Proxy-State = 0x39
(4) Mon Feb 16 15:35:51 2026: Debug: server default {
(4) Mon Feb 16 15:35:51 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(4) Mon Feb 16 15:35:51 2026: Debug: post-proxy {
(4) Mon Feb 16 15:35:51 2026: Debug: eap: No pre-existing handler found
(4) Mon Feb 16 15:35:51 2026: Debug: [eap] = noop
(4) Mon Feb 16 15:35:51 2026: Debug: } # post-proxy = noop
(4) Mon Feb 16 15:35:51 2026: Debug: }
(4) Mon Feb 16 15:35:51 2026: Debug: Sent Accounting-Response Id 9 from 192.168.1.1:1813 to 192.168.1.3:38749 length 20
(4) Mon Feb 16 15:35:51 2026: Debug: Finished request
(4) Mon Feb 16 15:35:51 2026: Debug: Cleaning up request packet ID 9 with timestamp +254
(3) Mon Feb 16 15:35:56 2026: Debug: Cleaning up request packet ID 8 with timestamp +253
(5) Mon Feb 16 15:37:12 2026: Debug: Received Accounting-Request Id 10 from 192.168.1.3:38749 to 192.168.1.1:1813 length 337
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Status-Type = Interim-Update
(5) Mon Feb 16 15:37:12 2026: Debug: User-Name = "78:98:E8:1E:67:07"
(5) Mon Feb 16 15:37:12 2026: Debug: Service-Type = Login-User
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Domain = "default"
(5) Mon Feb 16 15:37:12 2026: Debug: Event-Timestamp = "Feb 16 2026 15:37:12 GMT+7"
(5) Mon Feb 16 15:37:12 2026: Debug: Called-Station-Id = "68-13-E2-C2-F7-40:!WNAM.test-portal"
(5) Mon Feb 16 15:37:12 2026: Debug: Calling-Station-Id = "78-98-E8-1E-67-07"
(5) Mon Feb 16 15:37:12 2026: Debug: NAS-Port-Type = Wireless-802.11
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Session-Time = 82
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Packets = 1284
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Packets = 1692
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Octets = 1108763
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Gigawords = 0
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Octets = 1434817
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Gigawords = 0
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Input-Packets-Drop = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Packets-Drop = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Input-Bytes-Drop = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Bytes-Drop = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Packet-Lost = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-AP-Domain = "default-location"
(5) Mon Feb 16 15:37:12 2026: Debug: NAS-IP-Address = 192.168.1.3
(5) Mon Feb 16 15:37:12 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(5) Mon Feb 16 15:37:12 2026: Debug: Framed-IP-Address = 192.168.2.47
(5) Mon Feb 16 15:37:12 2026: Debug: Framed-MTU = 1500
(5) Mon Feb 16 15:37:12 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(5) Mon Feb 16 15:37:12 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(5) Mon Feb 16 15:37:12 2026: Debug: # Executing section preacct from file /etc/raddb/sites-enabled/_default
(5) Mon Feb 16 15:37:12 2026: Debug: preacct {
(5) Mon Feb 16 15:37:12 2026: Debug: [preprocess] = ok
(5) Mon Feb 16 15:37:12 2026: Debug: policy acct_unique {
(5) Mon Feb 16 15:37:12 2026: Debug: update request {
(5) Mon Feb 16 15:37:12 2026: Debug: } # update request = noop
(5) Mon Feb 16 15:37:12 2026: Debug: if (("%{hex:&Class}" =~ /^%{hex:&Tmp-String-9}/) && ("%{string:&Class}" =~ /^ai:([0-9a-f]{32})/i)) {
(5) Mon Feb 16 15:37:12 2026: Debug: EXPAND %{hex:&Class}
(5) Mon Feb 16 15:37:12 2026: Debug: -->
(5) Mon Feb 16 15:37:12 2026: Debug: EXPAND ^%{hex:&Tmp-String-9}
(5) Mon Feb 16 15:37:12 2026: Debug: --> ^61693a
(5) Mon Feb 16 15:37:12 2026: Debug: if (("%{hex:&Class}" =~ /^%{hex:&Tmp-String-9}/) && ("%{string:&Class}" =~ /^ai:([0-9a-f]{32})/i)) -> FALSE
(5) Mon Feb 16 15:37:12 2026: Debug: else {
(5) Mon Feb 16 15:37:12 2026: Debug: update request {
(5) Mon Feb 16 15:37:12 2026: Debug: EXPAND %{md5:%{User-Name},%{Acct-Session-ID},%{%{NAS-IPv6-Address}:-%{NAS-IP-Address}},%{NAS-Identifier},%{NAS-Port-ID},%{NAS-Port}}
(5) Mon Feb 16 15:37:12 2026: Debug: --> bfa1411e8e2d666b3df46e20af1810fc
(5) Mon Feb 16 15:37:12 2026: Debug: } # update request = noop
(5) Mon Feb 16 15:37:12 2026: Debug: } # else = noop
(5) Mon Feb 16 15:37:12 2026: Debug: } # policy acct_unique = noop
(5) Mon Feb 16 15:37:12 2026: Debug: policy get_ssid {
(5) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(5) Mon Feb 16 15:37:12 2026: Debug: EXPAND %{8}
(5) Mon Feb 16 15:37:12 2026: Debug: --> !WNAM.test-portal
(5) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") -> TRUE
(5) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(5) Mon Feb 16 15:37:12 2026: Debug: update request {
(5) Mon Feb 16 15:37:12 2026: Debug: EXPAND %{8}
(5) Mon Feb 16 15:37:12 2026: Debug: --> !WNAM.test-portal
(5) Mon Feb 16 15:37:12 2026: Debug: } # update request = noop
(5) Mon Feb 16 15:37:12 2026: Debug: [updated] = updated
(5) Mon Feb 16 15:37:12 2026: Debug: } # if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") = updated
(5) Mon Feb 16 15:37:12 2026: Debug: ... skipping else: Preceding "if" was taken
(5) Mon Feb 16 15:37:12 2026: Debug: } # policy get_ssid = updated
(5) Mon Feb 16 15:37:12 2026: Debug: suffix: Checking for suffix after "@"
(5) Mon Feb 16 15:37:12 2026: Debug: suffix: No '@' in User-Name = "78:98:E8:1E:67:07", looking up realm NULL
(5) Mon Feb 16 15:37:12 2026: Debug: suffix: No such realm "NULL"
(5) Mon Feb 16 15:37:12 2026: Debug: [suffix] = noop
(5) Mon Feb 16 15:37:12 2026: Debug: files_multi: acct_users: Matched entry DEFAULT at line 1
(5) Mon Feb 16 15:37:12 2026: Debug: [files_multi] = ok
(5) Mon Feb 16 15:37:12 2026: Debug: } # preacct = updated
(5) Mon Feb 16 15:37:12 2026: Debug: # Executing section accounting from file /etc/raddb/sites-enabled/_default
(5) Mon Feb 16 15:37:12 2026: Debug: accounting {
(5) Mon Feb 16 15:37:12 2026: Debug: [exec] = noop
(5) Mon Feb 16 15:37:12 2026: Debug: attr_filter.accounting_response: EXPAND %{User-Name}
(5) Mon Feb 16 15:37:12 2026: Debug: attr_filter.accounting_response: --> 78:98:E8:1E:67:07
(5) Mon Feb 16 15:37:12 2026: Debug: attr_filter.accounting_response: Matched entry DEFAULT at line 12
(5) Mon Feb 16 15:37:12 2026: Debug: [attr_filter.accounting_response] = updated
(5) Mon Feb 16 15:37:12 2026: Debug: policy acct_by_ssid_default {
(5) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-SSID) {
(5) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-SSID) -> TRUE
(5) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-SSID) {
(5) Mon Feb 16 15:37:12 2026: Debug: policy acct_default {
(5) Mon Feb 16 15:37:12 2026: Debug: update request {
(5) Mon Feb 16 15:37:12 2026: Debug: } # update request = noop
(5) Mon Feb 16 15:37:12 2026: Debug: update control {
(5) Mon Feb 16 15:37:12 2026: Debug: } # update control = noop
(5) Mon Feb 16 15:37:12 2026: Debug: } # policy acct_default = noop
(5) Mon Feb 16 15:37:12 2026: Debug: } # if (&Called-Station-SSID) = noop
(5) Mon Feb 16 15:37:12 2026: Debug: ... skipping else: Preceding "if" was taken
(5) Mon Feb 16 15:37:12 2026: Debug: } # policy acct_by_ssid_default = noop
(5) Mon Feb 16 15:37:12 2026: Debug: if (&control:Proxy-To-Realm) {
(5) Mon Feb 16 15:37:12 2026: Debug: if (&control:Proxy-To-Realm) -> TRUE
(5) Mon Feb 16 15:37:12 2026: Debug: if (&control:Proxy-To-Realm) {
(5) Mon Feb 16 15:37:12 2026: Debug: [noop] = noop
(5) Mon Feb 16 15:37:12 2026: Debug: } # if (&control:Proxy-To-Realm) = noop
(5) Mon Feb 16 15:37:12 2026: Debug: ... skipping else: Preceding "if" was taken
(5) Mon Feb 16 15:37:12 2026: Debug: } # accounting = updated
(5) Mon Feb 16 15:37:12 2026: Debug: Starting proxy to home server 93.180.6.157 port 1813
(5) Mon Feb 16 15:37:12 2026: Debug: server default {
(5) Mon Feb 16 15:37:12 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(5) Mon Feb 16 15:37:12 2026: Debug: pre-proxy {
(5) Mon Feb 16 15:37:12 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(5) Mon Feb 16 15:37:12 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> FALSE
(5) Mon Feb 16 15:37:12 2026: Debug: } # pre-proxy = noop
(5) Mon Feb 16 15:37:12 2026: Debug: }
(5) Mon Feb 16 15:37:12 2026: Debug: Sent Accounting-Request Id 41 from 0.0.0.0:51831 to 93.180.6.157:1813 length 341
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Status-Type = Interim-Update
(5) Mon Feb 16 15:37:12 2026: Debug: User-Name = "78:98:E8:1E:67:07"
(5) Mon Feb 16 15:37:12 2026: Debug: Service-Type = Login-User
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Domain = "default"
(5) Mon Feb 16 15:37:12 2026: Debug: Event-Timestamp = "Feb 16 2026 15:37:12 GMT+7"
(5) Mon Feb 16 15:37:12 2026: Debug: Called-Station-Id = "68-13-E2-C2-F7-40:!WNAM.test-portal"
(5) Mon Feb 16 15:37:12 2026: Debug: Calling-Station-Id = "78-98-E8-1E-67-07"
(5) Mon Feb 16 15:37:12 2026: Debug: NAS-Port-Type = Wireless-802.11
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Session-Time = 82
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Packets = 1284
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Packets = 1692
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Octets = 1108763
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Gigawords = 0
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Octets = 1434817
(5) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Gigawords = 0
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Input-Packets-Drop = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Packets-Drop = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Input-Bytes-Drop = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Bytes-Drop = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Packet-Lost = "0"
(5) Mon Feb 16 15:37:12 2026: Debug: Eltex-AP-Domain = "default-location"
(5) Mon Feb 16 15:37:12 2026: Debug: NAS-IP-Address := 100.127.2.200
(5) Mon Feb 16 15:37:12 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(5) Mon Feb 16 15:37:12 2026: Debug: Framed-IP-Address = 192.168.2.47
(5) Mon Feb 16 15:37:12 2026: Debug: Framed-MTU = 1500
(5) Mon Feb 16 15:37:12 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(5) Mon Feb 16 15:37:12 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(5) Mon Feb 16 15:37:12 2026: Debug: Proxy-State = 0x3130
(5) Mon Feb 16 15:37:12 2026: Debug: Clearing existing &reply: attributes
(5) Mon Feb 16 15:37:12 2026: Debug: Received Accounting-Response Id 41 from 93.180.6.157:1813 to 100.127.2.200:51831 length 24
(5) Mon Feb 16 15:37:12 2026: Debug: Proxy-State = 0x3130
(5) Mon Feb 16 15:37:12 2026: Debug: server default {
(5) Mon Feb 16 15:37:12 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(5) Mon Feb 16 15:37:12 2026: Debug: post-proxy {
(5) Mon Feb 16 15:37:12 2026: Debug: eap: No pre-existing handler found
(5) Mon Feb 16 15:37:12 2026: Debug: [eap] = noop
(5) Mon Feb 16 15:37:12 2026: Debug: } # post-proxy = noop
(5) Mon Feb 16 15:37:12 2026: Debug: }
(5) Mon Feb 16 15:37:12 2026: Debug: Sent Accounting-Response Id 10 from 192.168.1.1:1813 to 192.168.1.3:38749 length 20
(5) Mon Feb 16 15:37:12 2026: Debug: Finished request
(6) Mon Feb 16 15:37:12 2026: Debug: Received Accounting-Request Id 11 from 192.168.1.3:38749 to 192.168.1.1:1813 length 337
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Status-Type = Interim-Update
(6) Mon Feb 16 15:37:12 2026: Debug: User-Name = "78:98:E8:1E:67:07"
(6) Mon Feb 16 15:37:12 2026: Debug: Service-Type = Login-User
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Domain = "default"
(6) Mon Feb 16 15:37:12 2026: Debug: Event-Timestamp = "Feb 16 2026 15:37:12 GMT+7"
(6) Mon Feb 16 15:37:12 2026: Debug: Called-Station-Id = "68-13-E2-C2-F7-40:!WNAM.test-portal"
(6) Mon Feb 16 15:37:12 2026: Debug: Calling-Station-Id = "78-98-E8-1E-67-07"
(6) Mon Feb 16 15:37:12 2026: Debug: NAS-Port-Type = Wireless-802.11
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Session-Time = 82
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Packets = 1284
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Packets = 1692
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Octets = 1108763
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Gigawords = 0
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Octets = 1434817
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Gigawords = 0
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Input-Packets-Drop = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Packets-Drop = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Input-Bytes-Drop = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Bytes-Drop = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Packet-Lost = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-AP-Domain = "default-location"
(6) Mon Feb 16 15:37:12 2026: Debug: NAS-IP-Address = 192.168.1.3
(6) Mon Feb 16 15:37:12 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(6) Mon Feb 16 15:37:12 2026: Debug: Framed-IP-Address = 192.168.2.47
(6) Mon Feb 16 15:37:12 2026: Debug: Framed-MTU = 1500
(6) Mon Feb 16 15:37:12 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(6) Mon Feb 16 15:37:12 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(6) Mon Feb 16 15:37:12 2026: Debug: # Executing section preacct from file /etc/raddb/sites-enabled/_default
(6) Mon Feb 16 15:37:12 2026: Debug: preacct {
(6) Mon Feb 16 15:37:12 2026: Debug: [preprocess] = ok
(6) Mon Feb 16 15:37:12 2026: Debug: policy acct_unique {
(6) Mon Feb 16 15:37:12 2026: Debug: update request {
(6) Mon Feb 16 15:37:12 2026: Debug: } # update request = noop
(6) Mon Feb 16 15:37:12 2026: Debug: if (("%{hex:&Class}" =~ /^%{hex:&Tmp-String-9}/) && ("%{string:&Class}" =~ /^ai:([0-9a-f]{32})/i)) {
(6) Mon Feb 16 15:37:12 2026: Debug: EXPAND %{hex:&Class}
(6) Mon Feb 16 15:37:12 2026: Debug: -->
(6) Mon Feb 16 15:37:12 2026: Debug: EXPAND ^%{hex:&Tmp-String-9}
(6) Mon Feb 16 15:37:12 2026: Debug: --> ^61693a
(6) Mon Feb 16 15:37:12 2026: Debug: if (("%{hex:&Class}" =~ /^%{hex:&Tmp-String-9}/) && ("%{string:&Class}" =~ /^ai:([0-9a-f]{32})/i)) -> FALSE
(6) Mon Feb 16 15:37:12 2026: Debug: else {
(6) Mon Feb 16 15:37:12 2026: Debug: update request {
(6) Mon Feb 16 15:37:12 2026: Debug: EXPAND %{md5:%{User-Name},%{Acct-Session-ID},%{%{NAS-IPv6-Address}:-%{NAS-IP-Address}},%{NAS-Identifier},%{NAS-Port-ID},%{NAS-Port}}
(6) Mon Feb 16 15:37:12 2026: Debug: --> bfa1411e8e2d666b3df46e20af1810fc
(6) Mon Feb 16 15:37:12 2026: Debug: } # update request = noop
(6) Mon Feb 16 15:37:12 2026: Debug: } # else = noop
(6) Mon Feb 16 15:37:12 2026: Debug: } # policy acct_unique = noop
(6) Mon Feb 16 15:37:12 2026: Debug: policy get_ssid {
(6) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(6) Mon Feb 16 15:37:12 2026: Debug: EXPAND %{8}
(6) Mon Feb 16 15:37:12 2026: Debug: --> !WNAM.test-portal
(6) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") -> TRUE
(6) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") {
(6) Mon Feb 16 15:37:12 2026: Debug: update request {
(6) Mon Feb 16 15:37:12 2026: Debug: EXPAND %{8}
(6) Mon Feb 16 15:37:12 2026: Debug: --> !WNAM.test-portal
(6) Mon Feb 16 15:37:12 2026: Debug: } # update request = noop
(6) Mon Feb 16 15:37:12 2026: Debug: [updated] = updated
(6) Mon Feb 16 15:37:12 2026: Debug: } # if (&Called-Station-Id && (&Called-Station-Id =~ /^([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})[^0-9a-f]?([0-9a-f]{2})([^0-9a-f](.+))?$/i) && "%{8}") = updated
(6) Mon Feb 16 15:37:12 2026: Debug: ... skipping else: Preceding "if" was taken
(6) Mon Feb 16 15:37:12 2026: Debug: } # policy get_ssid = updated
(6) Mon Feb 16 15:37:12 2026: Debug: suffix: Checking for suffix after "@"
(6) Mon Feb 16 15:37:12 2026: Debug: suffix: No '@' in User-Name = "78:98:E8:1E:67:07", looking up realm NULL
(6) Mon Feb 16 15:37:12 2026: Debug: suffix: No such realm "NULL"
(6) Mon Feb 16 15:37:12 2026: Debug: [suffix] = noop
(6) Mon Feb 16 15:37:12 2026: Debug: files_multi: acct_users: Matched entry DEFAULT at line 1
(6) Mon Feb 16 15:37:12 2026: Debug: [files_multi] = ok
(6) Mon Feb 16 15:37:12 2026: Debug: } # preacct = updated
(6) Mon Feb 16 15:37:12 2026: Debug: # Executing section accounting from file /etc/raddb/sites-enabled/_default
(6) Mon Feb 16 15:37:12 2026: Debug: accounting {
(6) Mon Feb 16 15:37:12 2026: Debug: [exec] = noop
(6) Mon Feb 16 15:37:12 2026: Debug: attr_filter.accounting_response: EXPAND %{User-Name}
(6) Mon Feb 16 15:37:12 2026: Debug: attr_filter.accounting_response: --> 78:98:E8:1E:67:07
(6) Mon Feb 16 15:37:12 2026: Debug: attr_filter.accounting_response: Matched entry DEFAULT at line 12
(6) Mon Feb 16 15:37:12 2026: Debug: [attr_filter.accounting_response] = updated
(6) Mon Feb 16 15:37:12 2026: Debug: policy acct_by_ssid_default {
(6) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-SSID) {
(6) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-SSID) -> TRUE
(6) Mon Feb 16 15:37:12 2026: Debug: if (&Called-Station-SSID) {
(6) Mon Feb 16 15:37:12 2026: Debug: policy acct_default {
(6) Mon Feb 16 15:37:12 2026: Debug: update request {
(6) Mon Feb 16 15:37:12 2026: Debug: } # update request = noop
(6) Mon Feb 16 15:37:12 2026: Debug: update control {
(6) Mon Feb 16 15:37:12 2026: Debug: } # update control = noop
(6) Mon Feb 16 15:37:12 2026: Debug: } # policy acct_default = noop
(6) Mon Feb 16 15:37:12 2026: Debug: } # if (&Called-Station-SSID) = noop
(6) Mon Feb 16 15:37:12 2026: Debug: ... skipping else: Preceding "if" was taken
(6) Mon Feb 16 15:37:12 2026: Debug: } # policy acct_by_ssid_default = noop
(6) Mon Feb 16 15:37:12 2026: Debug: if (&control:Proxy-To-Realm) {
(6) Mon Feb 16 15:37:12 2026: Debug: if (&control:Proxy-To-Realm) -> TRUE
(6) Mon Feb 16 15:37:12 2026: Debug: if (&control:Proxy-To-Realm) {
(6) Mon Feb 16 15:37:12 2026: Debug: [noop] = noop
(6) Mon Feb 16 15:37:12 2026: Debug: } # if (&control:Proxy-To-Realm) = noop
(6) Mon Feb 16 15:37:12 2026: Debug: ... skipping else: Preceding "if" was taken
(6) Mon Feb 16 15:37:12 2026: Debug: } # accounting = updated
(6) Mon Feb 16 15:37:12 2026: Debug: Starting proxy to home server 93.180.6.157 port 1813
(6) Mon Feb 16 15:37:12 2026: Debug: server default {
(6) Mon Feb 16 15:37:12 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(6) Mon Feb 16 15:37:12 2026: Debug: pre-proxy {
(6) Mon Feb 16 15:37:12 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(6) Mon Feb 16 15:37:12 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> FALSE
(6) Mon Feb 16 15:37:12 2026: Debug: } # pre-proxy = noop
(6) Mon Feb 16 15:37:12 2026: Debug: }
(6) Mon Feb 16 15:37:12 2026: Debug: Sent Accounting-Request Id 197 from 0.0.0.0:51831 to 93.180.6.157:1813 length 341
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Session-Id = "1247FB45-6376931F"
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Status-Type = Interim-Update
(6) Mon Feb 16 15:37:12 2026: Debug: User-Name = "78:98:E8:1E:67:07"
(6) Mon Feb 16 15:37:12 2026: Debug: Service-Type = Login-User
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Domain = "default"
(6) Mon Feb 16 15:37:12 2026: Debug: Event-Timestamp = "Feb 16 2026 15:37:12 GMT+7"
(6) Mon Feb 16 15:37:12 2026: Debug: Called-Station-Id = "68-13-E2-C2-F7-40:!WNAM.test-portal"
(6) Mon Feb 16 15:37:12 2026: Debug: Calling-Station-Id = "78-98-E8-1E-67-07"
(6) Mon Feb 16 15:37:12 2026: Debug: NAS-Port-Type = Wireless-802.11
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Session-Time = 82
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Packets = 1284
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Packets = 1692
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Octets = 1108763
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Input-Gigawords = 0
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Octets = 1434817
(6) Mon Feb 16 15:37:12 2026: Debug: Acct-Output-Gigawords = 0
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Input-Packets-Drop = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Packets-Drop = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Input-Bytes-Drop = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Bytes-Drop = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-Acct-Output-Packet-Lost = "0"
(6) Mon Feb 16 15:37:12 2026: Debug: Eltex-AP-Domain = "default-location"
(6) Mon Feb 16 15:37:12 2026: Debug: NAS-IP-Address := 100.127.2.200
(6) Mon Feb 16 15:37:12 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(6) Mon Feb 16 15:37:12 2026: Debug: Framed-IP-Address = 192.168.2.47
(6) Mon Feb 16 15:37:12 2026: Debug: Framed-MTU = 1500
(6) Mon Feb 16 15:37:12 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(6) Mon Feb 16 15:37:12 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(6) Mon Feb 16 15:37:12 2026: Debug: Proxy-State = 0x3131
(6) Mon Feb 16 15:37:12 2026: Debug: Clearing existing &reply: attributes
(6) Mon Feb 16 15:37:12 2026: Debug: Received Accounting-Response Id 197 from 93.180.6.157:1813 to 100.127.2.200:51831 length 24
(6) Mon Feb 16 15:37:12 2026: Debug: Proxy-State = 0x3131
(6) Mon Feb 16 15:37:12 2026: Debug: server default {
(6) Mon Feb 16 15:37:12 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(6) Mon Feb 16 15:37:12 2026: Debug: post-proxy {
(6) Mon Feb 16 15:37:12 2026: Debug: eap: No pre-existing handler found
(6) Mon Feb 16 15:37:12 2026: Debug: [eap] = noop
(6) Mon Feb 16 15:37:12 2026: Debug: } # post-proxy = noop
(6) Mon Feb 16 15:37:12 2026: Debug: }
(6) Mon Feb 16 15:37:12 2026: Debug: Sent Accounting-Response Id 11 from 192.168.1.1:1813 to 192.168.1.3:38749 length 20
(6) Mon Feb 16 15:37:12 2026: Debug: Finished request
(5) Mon Feb 16 15:37:13 2026: Debug: Cleaning up request packet ID 10 with timestamp +335
(6) Mon Feb 16 15:37:13 2026: Debug: Cleaning up request packet ID 11 with timestamp +335
Dump-файл Radius-обмена WLC и WNAM radius_dump.pcap
Диагностика на стороне WNAM Корпоративные подключения Диагностика → Корпоративные подключения
База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_5.jpg
Первоначальный запрос авторизации и последующий Reject с целью редиректа на портал База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_6.jpg
Авторизация без ограничений после идентификации клиента на портале База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_7.jpg
Авторизация без ограничений, после отключения от ТД и подключения снова или подключения к другой ТД (если сессия клиента не истекла) База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_8.jpg
Параметры записи о пользователе База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_14.jpg
Вкладка "Пользователи" База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_16.jpg
Вкладка "Сессии" База СЦ Wi-Fi > WLC + WNAM_Web-Auth (без использования CoA) > Screenshot_15.jpg