| Оглавление |
|---|
Введение
| Информация | ||||
|---|---|---|---|---|
| ||||
Начиная с версии 1.6.2524 система WNAM поддерживает работу с контроллерами Cisco нового поколения, использующими операционную систему IOS XE семейства Catalyst 9800 Wireless Controllers. При этом, взаимодействие реализовано по механизму Central Web Auth (CWA), который разработан компанией Cisco для взаимодействия контроллера с программным обеспечением Cisco ISE. Система WNAM полностью эмулирует поведение ISE в данной задаче. Документация по настройке контроллеров серии 9800 вместе с ISE доступна на сайте производителя контроллера.
Авторизация по методу CWA основана на следующем:
При этом, с точки зрения пользователя нет дополнительных редиректов и ассоциированных с этим проблем. При повторном подключении абонента, если включена МАС-авторизация на сервере доступа и "прозрачные повторные сессии" в настройках ограничений, цепочка действий сокращается:
Этот механизм полезен в случае необходимости поддержки роуминга абонентов между точками доступа либо после кратковременного отключения абонентского устройства от радио.
|
Требования
Eltex WLC не ниже версии 1.30.6
- Eltex AP не ниже версии 2.8.0 с моделью из списка: WEP-30L,WEP-30L-Z,WEP-30L-NB,WOP-30L,WOP-30LI,WOP-30LS.
Описание
Данная схема работает исключительно по средствам MAB авторизации
- На ТД настраивается preAuth_ACL (namedACL)
- Ссылка редиректа на портал и имя ACL пересылаются точке доступа в пакете Radius Access-Accept по средствам атрибутов:
Блок кода language bash cisco-av-pair = url-redirect-acl=<<Имя настроенного на контроллере ACL>> cisco-av-pair = url-redirect=<<Ссылка на портал WNAM>>
Описание взаимодействия ТД с порталом WNAM
Якорь Взаимодействие ТД с порталом Cisco ISE Взаимодействие ТД с порталом Cisco ISE
| Взаимодействие ТД с порталом Cisco ISE | |
| Взаимодействие ТД с порталом Cisco ISE |
- При первом подключении клиента (WNAM ничего о нем не знает, ТД тоже), ТД пытается пройти MAB авторизацию на NAC сервере, подставляя MAC адрес клиента в атрибуты User-Name и User-Password запроса access-request к Radius серверу. WNAM ничего не знает о данном клиенте (не находит его в своей базе гостевых endpoints), шлет access-accept содержащий два атрибута (ссылку редиректа на гостевой портал и имя ограничивающего доступ preAuth-ACL):
- При первом подключении клиента (WNAM ничего о нем не знает, ТД тоже), ТД пытается пройти MAB авторизацию на NAC сервере, подставляя MAC адрес клиента в атрибуты User-Name и User-Password запроса access-request к Radius серверу. WNAM ничего не знает о данном клиенте (не находит его в своей базе гостевых endpoints), шлет access-accept содержащий два атрибута (ссылку редиректа на гостевой портал и имя ограничивающего доступ preAuth-ACL):
Блок кода language bash cisco-av-pair = url-redirect-acl=test1 cisco-av-pair = url-redirect=http://100.127.2.150/cp/cisco?client_mac=78:98:E8:1E:67:07&switch_url=100.127.2.200&redirect=&wlan=!WNAM.test-portal&ap_mac=68:13:E2:C2:F7:40&sessionId=2564CCA4-772DE0CA - Клиент получает ограниченный доступ (правилами ACL) и редиректится на портал
- Пользователь попадает на страницу саморегистрации, где вводит идентификационные данные (в нашем случае ваучер)
- После ввода кода ваучера, портал инициирует процесс ре-аутентификации клиента, отправляя на ТД ТД CoA-request c атрибутом:
Блок кода Cisco-AVPair: subscriber:command=reauthenticate - ТД запускает повторную MAB авторизацию, отправляя запроса access-request к Radius серверу, и получает в ответ пакет Access-Accept не содержащий дополнительных атрибутов (ссылки редиректа и ACL)
- ТД предоставляет клиенту полный доступ и редиректит на заданную в сценарии портальной авторизации страницу (в нашем случае случае https://eltex-co.ru/)
| Примечание |
|---|
В нашем (демонстрационном случае) используется упрощенная схема подтверждения идентификационных данных, путем введения кода за ранее выпущенного ваучера. |
Диаграмма подключения
Диаграмма портальной авторизации на ТД, подключенной через контроллер WLC:
В общем случае клиент проходит следующие шаги в ходе выполнения портальной авторизации:
- Подключается к ТД.
- ТД выполняет MAB аутентификацию устройства пользователя.
- WLC выполняет проксирование RADIUS запроса авторизации, что бы со стороны
...
- WNAM выглядело как подключение со стороны одного устройства (WLC).
- RADIUS-запрос приходит в
...
- WNAM и он в соответствии с настройкой политик проверяет наличие гостевого эндпоинта в БД.
- Т.к. подключение происходит в первый раз - эндпоинт не найден, вместе с ответом Access-Accept возвращаются параметры с адресом портала для редиректа и именем ACL (настроенном на WLC, включающий список разрешенных ресурсов, в который должен быть включен адрес портала)
- WLC проксирует ответ на ТД, от которой был получен запрос.
- Клиент получает IP-адрес и пытается получить доступ в Интернет. В ответ ТД начинает возвращать редирект со ссылкой на портал.
- Пользовательское устройство получая ссылку редиректа открывает всплывающий браузер и открывает страницу портальной авторизации.
- Успешно пройдя саморегистрацию и авторизацию на портале (по средствам ввода ваучера) для устройства клиента добавляется запись о гостевом эндпоинте, содержащая мак-адрес клиента.
- После успешной авторизации на портале на WLC отправляется запрос CoA re-authenticate.
- WLC перенаправляет данный запрос на ТД.
- ТД выполняет повторную ре-аутентификацию устройства пользователя с использованием MAB аутентификации.
- WNAM, повторно получив запрос, в соответствии с настройкой политик проверяет наличие гостевого эндпоинта в БД.
- Т.к. ранее пользователь прошел регистрацию на портале - гостевой эндпоинт в БД есть. На ТД отправляется Access-Accept и пользователь получает доступ в сеть.
Настройка контроллера
Далее приведен приведен пример настройки Eltex WLC-30 (v.1.30.6) с точкой WEP-30L(2.8.0). Предполагается что на контроллере уже настроен IP-адрес, обеспечена сетевая связность с сервером WNAM. Руководство по обновлению ПО Eltex WLC-30 можно найти по ссылке. Полностью ознакомится с документацией по настройке контроллера можно на официальном сайте компании https://eltex-co.ru. За основу будет взята заводская конфигурация, пример настройки которой доступен по ссылке.
Настройка конфигурации контроллера
Добавить WNAM, как радиус сервер, и настроить проксирование RADIUS-запросов от ТД на него. Так же требуется настроить проксирование CoA запросов со стороны WNAM на ТД через WLC:
...
| Блок кода | ||||||
|---|---|---|---|---|---|---|
| ||||||
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
object-group service das
port-range 1700
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
nas wnam
key ascii-text testing123
network 100.127.2.150/32
exit
domain default
exit
virtual-server default
mode proxy
upstream-pool wnam
das-server enable
nas-ip-address 100.127.2.200
enable
exit
upstream-server wnam
host 100.127.2.150
server-type all
key ascii-text testing123
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
ip access-list extended test1
rule 1
action permit
match destination-address 100.127.2.150 255.255.255.255
exit
rule 2
action permit
match protocol udp
match destination-port port-range 53
enable
exit
rule 3
action permit
match protocol udp
match source-port port-range 67-68
match destination-port port-range 67
enable
exit
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 udp
match destination-port object-group das
enable
exit
rule 4
action permit
match protocol tcp
match destination-port object-group ssh
enable
exit
rule 5
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
services
das-server enable
das-server key ascii-text testing123
exit
ipv4-acl test1
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
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 |
Настройка точки доступа
В заводской конфигурации WLC-30 предусмотрено автоматическое подключение точек доступа к контроллеру. Для этого требуется подключить точку доступа в порт gi1/0/2 и контроллер WLC сам выполнит обновление, если версия ПО на точке доступа не соответствует версии, которая размещена на контроллере, выполнит конфигурирование в соответствие с настройками: выбранными профилями конфигурации и SSID. Инструкцию по загрузке актуальной версии ПО точек доступа на контроллер можно найти по ссылке.
Настройка WNAM
Якорь Настройка WNAM Настройка WNAM
| Настройка WNAM | |
| Настройка WNAM |
Создание "Сервера доступа" (NAS)
В разделе "Конфигурация" → "Сервера доступа" необходимо создать запись о сервере доступа типа Cisco WLC (сервер доступа - контроллер), где указать адрес, имя и местоположение (логин и пароль не используются).
Во вкладке RADIUS необходимо указать в параметрах "Атрибуты предварительной авторизации":
...
- cisco-avpair=url-redirect=https://%HOSTNAME%.provider.ru/cp/cisco?%URL%
позволит реализовать отказоустойчивый доступ в кластере двух серверов WNAM: ссылка на сервер с его именем будет отправлена ответе на RADIUS запрос и на тот сервер, куда попал этот запрос.
Также необходимо указать секретный RADIUS ключ (который указали на контроллере в настройках ААА-сервера) и включить МАС-авторизацию.
| Предупреждение |
|---|
Если сеть, в которой находится контроллер, ещё не была глобально разрешена для работы системы WNAM в настройках "Конфигурация" → "Дополнительные настройки" (ключ "radiusd_networks"), необходимо добавить сеть. |
Для возможности сброса сессии абонента с контроллера из интерфейса администратора системы WNAM необходимо установить параметр "uppercase_session_id" в поле "true" в разделе "Конфигурация" → "Дополнительные настройки".
Создание "Площадки" (портала)
Затем необходимо настроить запись о площадке оказания услуги (раздел "Конфигурация" → "Площадки"). Также можно указать название сети (SSID) и в качестве "Дополнительный ID" указать название "Сервера доступа" (NAS)
На вкладке "Авторизация" выбираем для нашего теста метод "Ввод кода с ваучера" и "Запомнить авторизацию" на 3 минуты (что для теста авторизации вполне достаточно)
Так-же для теста авторизации можно выбрать метод "Отправка СМС абоненту", провайдера СМС "Тестовый провайдер (без отправки)" и тогда идентификация на портале (в рамках теста авторизации) будет проходить по присланному коду, после ввода фейкового номера телефона (на нашем тестовом стенде данный функционал не доступен, поэтому используем ваучеры).
На вкладке "Приветствие" выбираем куда будет направляться клиент после финального редиректа. В нашем случае на сайт https://eltex-co.ru/
Создаем ваучеры для авторизации
...
'Конфигурация' → 'Гостевая авторизация' → 'Ваучеры' → 'Создать группу ваучеров'
В дальнейшем коды данных ваучеров будут использоваться для авторизации клиентов на гостевом портале.
Создаем правила аутентификации
Создаем правило для редиректа на гостевой портал (создаем свое правило или используем дефолтное)
В разделе "Конфигурация" → "Правила аутентификации" настраиваем правило как на скрине ниже. Источник запроса выбираем беспроводной. В настройках эндпоинта ставим "Не известен" и "Просрочен/не валиден", так-как при первом подключении наш клиент неизвестен и его мак-адрес не изучен. В Результате выбираем "Redirect на гостевой портал авторизации", это значит что будут переданы атрибуты указанные нами ранее при создании "Сервера доступа"
Если у вас много правил и используется много разных политик аутентификаций и авторизаций клиентов, данное правило можно кастомизировать дополнительными параметрами (чтоб данное правило отрабатывало только необходимые запросы radius), под свои потребности.
Правило аутентификации привязывается к правилу авторизации при помощи тега (в самом низу скрина). Обратите внимание, чтоб тэг бэл уникальным и совпадал с соответствующим правилом авторизации (если сработало правило аутентификации, далее по данному тегу запускается соответствующее правило авторизации)
Создаем правило аутентификации для доступа клиента в Internet
Данное правило проверяет наличие мак-адреса в хранилище гостевых эндпоинтов. Мак-адрес попадает туда после того как клиент идентифицировал себе на гостевом портале. Поэтому в настройках "Эндпоит" выбираем пункт "Известен и валиден", а в "Результат" выбираем "Allow (и проверять правила авторизации)". Так-же Также обращаю внимание на необходимости уникальности тега (объяснение выше)
Создаем правила авторизации
...
Первое правило для редиректа на портал
...
Результатом должно стать отправка пакета Radius 'Access-Accept' контроллеру (NAS) обогащенным двумя атрибутами (ссылкой редиректа на портал и именем ACL)
Пример настройки представлен на скрине (ниже).
Внимание. Правило привязывается по совпадению тега (должен быть такой же как в соответствующем правиле аутентификации)
Второе правило авторизации, для предоставления доступа в Internet.
Результатом должно стать: отправка пакета Radius 'Access-Accept' контроллеру (NAS), без дополнительных атрибутов (ссылки редиректа и ACL)
Пример настройки представлен на скрине (ниже).
Тестирование работоспособности
Якорь Тестирование работоспособности Тестирование работоспособности
| Тестирование работоспособности | |
| Тестирование работоспособности |
После подключения к сети (если клиент не идентифицировался ранее на портале или его сессия не истекла), то его редиректит на гостевой портал
На котором клиент вводит код ваучера в предназначенное для этого поле
После ввода кода ваучера и нажатия на кнопку "Подтвердить код", клиента редиректит на страницу, которую мы настроили для финального редиректа, при настройке "Площадки" в закладке "Приветствие"
Диагностика на стороне WLC
Radius обмен между WLC и WNAM в процессе авторизации
| Якорь | ||||
|---|---|---|---|---|
|
...
| Блок кода | ||||||
|---|---|---|---|---|---|---|
| ||||||
wlc-30(debug)# sh radius-debug t 0
(302) Wed Feb 11 10:01:03 2026: Debug: Received Access-Request Id 20 from 192.168.1.3:51780 to 192.168.1.1:1812 length 302
(302) Wed Feb 11 10:01:03 2026: Debug: User-Name = "78:98:e8:1e:67:07"
(302) Wed Feb 11 10:01:03 2026: Debug: User-Password = "78:98:e8:1e:67:07"
(302) Wed Feb 11 10:01:03 2026: Debug: Framed-IP-Address = 0.0.0.0
(302) Wed Feb 11 10:01:03 2026: Debug: Framed-MTU = 1500
(302) Wed Feb 11 10:01:03 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(302) Wed Feb 11 10:01:03 2026: Debug: Eltex-AP-Domain = "default-location"
(302) Wed Feb 11 10:01:03 2026: Debug: Eltex-Domain = "default"
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(302) Wed Feb 11 10:01:03 2026: Debug: Called-Station-Id = "68-13-e2-c2-f7-40:!WNAM.test-portal"
(302) Wed Feb 11 10:01:03 2026: Debug: Calling-Station-Id = "78-98-e8-1e-67-07"
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-Port = 1
(302) Wed Feb 11 10:01:03 2026: Debug: Framed-MTU = 1500
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-Port-Type = Wireless-802.11
(302) Wed Feb 11 10:01:03 2026: Debug: Acct-Session-Id = "3A03EB20-4E1933E6"
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-IP-Address = 192.168.1.3
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(302) Wed Feb 11 10:01:03 2026: Debug: Service-Type = Call-Check
(302) Wed Feb 11 10:01:03 2026: Debug: Message-Authenticator = 0x6a10e91f1eb8f383bf2236464af8a8a2
(302) Wed Feb 11 10:01:03 2026: Debug: # Executing section authorize from file /etc/raddb/sites-enabled/_default
(302) Wed Feb 11 10:01:03 2026: Debug: authorize {
(302) Wed Feb 11 10:01:03 2026: Debug: policy filter_username {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name) -> TRUE
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ / /) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ / /) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ /@[^@]*@/ ) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ /\.\./ ) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ /\.\./ ) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) {
(302) Wed Feb 11 10:01:03 2026: Debug: if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ /\.$/) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ /\.$/) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ /@\./) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&User-Name =~ /@\./) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: } # if (&User-Name) = notfound
(302) Wed Feb 11 10:01:03 2026: Debug: } # policy filter_username = notfound
(302) Wed Feb 11 10:01:03 2026: Debug: [preprocess] = ok
(302) Wed Feb 11 10:01:03 2026: Debug: if (&Cisco-AVPair && &Cisco-AVPair == "subscriber:command=ip-shaper") {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&Cisco-AVPair && &Cisco-AVPair == "subscriber:command=ip-shaper") -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: else {
(302) Wed Feb 11 10:01:03 2026: Debug: policy get_ssid {
(302) Wed Feb 11 10:01:03 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}") {
(302) Wed Feb 11 10:01:03 2026: Debug: EXPAND %{8}
(302) Wed Feb 11 10:01:03 2026: Debug: --> !WNAM.test-portal
(302) Wed Feb 11 10:01:03 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
(302) Wed Feb 11 10:01:03 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}") {
(302) Wed Feb 11 10:01:03 2026: Debug: update request {
(302) Wed Feb 11 10:01:03 2026: Debug: EXPAND %{8}
(302) Wed Feb 11 10:01:03 2026: Debug: --> !WNAM.test-portal
(302) Wed Feb 11 10:01:03 2026: Debug: } # update request = noop
(302) Wed Feb 11 10:01:03 2026: Debug: [updated] = updated
(302) Wed Feb 11 10:01:03 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
(302) Wed Feb 11 10:01:03 2026: Debug: ... skipping else: Preceding "if" was taken
(302) Wed Feb 11 10:01:03 2026: Debug: } # policy get_ssid = updated
(302) Wed Feb 11 10:01:03 2026: Debug: policy auth_by_ssid_default {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&Called-Station-SSID) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&Called-Station-SSID) -> TRUE
(302) Wed Feb 11 10:01:03 2026: Debug: if (&Called-Station-SSID) {
(302) Wed Feb 11 10:01:03 2026: Debug: policy auth_default {
(302) Wed Feb 11 10:01:03 2026: Debug: update request {
(302) Wed Feb 11 10:01:03 2026: Debug: } # update request = noop
(302) Wed Feb 11 10:01:03 2026: Debug: update control {
(302) Wed Feb 11 10:01:03 2026: Debug: } # update control = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # policy auth_default = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # if (&Called-Station-SSID) = noop
(302) Wed Feb 11 10:01:03 2026: Debug: ... skipping else: Preceding "if" was taken
(302) Wed Feb 11 10:01:03 2026: Debug: } # policy auth_by_ssid_default = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # else = updated
(302) Wed Feb 11 10:01:03 2026: Debug: [chap] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: [mschap] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: [digest] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: suffix: Checking for suffix after "@"
(302) Wed Feb 11 10:01:03 2026: Debug: suffix: No '@' in User-Name = "78:98:e8:1e:67:07", looking up realm NULL
(302) Wed Feb 11 10:01:03 2026: Debug: suffix: No such realm "NULL"
(302) Wed Feb 11 10:01:03 2026: Debug: [suffix] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: files_multi: users: Matched entry DEFAULT at line 1
(302) Wed Feb 11 10:01:03 2026: Debug: [files_multi] = ok
(302) Wed Feb 11 10:01:03 2026: Debug: if (&reply:Eltex-Tls-Enabled == 1) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&reply:Eltex-Tls-Enabled == 1) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: else {
(302) Wed Feb 11 10:01:03 2026: Debug: eap: No EAP-Message, not doing EAP
(302) Wed Feb 11 10:01:03 2026: Debug: [eap] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # else = noop
(302) Wed Feb 11 10:01:03 2026: Debug: if (ok) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (ok) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: [expiration] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: [logintime] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: [pap] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # authorize = updated
(302) Wed Feb 11 10:01:03 2026: Debug: Starting proxy to home server 100.127.2.150 port 1812
(302) Wed Feb 11 10:01:03 2026: Debug: server default {
(302) Wed Feb 11 10:01:03 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(302) Wed Feb 11 10:01:03 2026: Debug: pre-proxy {
(302) Wed Feb 11 10:01:03 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(302) Wed Feb 11 10:01:03 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: } # pre-proxy = noop
(302) Wed Feb 11 10:01:03 2026: Debug: }
(302) Wed Feb 11 10:01:03 2026: Debug: Sent Access-Request Id 1 from 0.0.0.0:37773 to 100.127.2.150:1812 length 312
(302) Wed Feb 11 10:01:03 2026: Debug: User-Name = "78:98:e8:1e:67:07"
(302) Wed Feb 11 10:01:03 2026: Debug: User-Password = "78:98:e8:1e:67:07"
(302) Wed Feb 11 10:01:03 2026: Debug: Framed-IP-Address = 0.0.0.0
(302) Wed Feb 11 10:01:03 2026: Debug: Framed-MTU = 1500
(302) Wed Feb 11 10:01:03 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(302) Wed Feb 11 10:01:03 2026: Debug: Eltex-AP-Domain = "default-location"
(302) Wed Feb 11 10:01:03 2026: Debug: Eltex-Domain = "default"
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(302) Wed Feb 11 10:01:03 2026: Debug: Called-Station-Id = "68-13-e2-c2-f7-40:!WNAM.test-portal"
(302) Wed Feb 11 10:01:03 2026: Debug: Calling-Station-Id = "78-98-e8-1e-67-07"
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-Port = 1
(302) Wed Feb 11 10:01:03 2026: Debug: Framed-MTU = 1500
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-Port-Type = Wireless-802.11
(302) Wed Feb 11 10:01:03 2026: Debug: Acct-Session-Id = "3A03EB20-4E1933E6"
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-IP-Address := 100.127.2.200
(302) Wed Feb 11 10:01:03 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(302) Wed Feb 11 10:01:03 2026: Debug: Service-Type = Call-Check
(302) Wed Feb 11 10:01:03 2026: Debug: Message-Authenticator = 0x6a10e91f1eb8f383bf2236464af8a8a2
(302) Wed Feb 11 10:01:03 2026: Debug: Event-Timestamp = "Feb 11 2026 10:01:03 GMT+7"
(302) Wed Feb 11 10:01:03 2026: Debug: Proxy-State = 0x3230
(302) Wed Feb 11 10:01:03 2026: Debug: Clearing existing &reply: attributes
(302) Wed Feb 11 10:01:03 2026: Debug: Received Access-Accept Id 1 from 100.127.2.150:1812 to 100.127.2.200:37773 length 244
(302) Wed Feb 11 10:01:03 2026: Debug: Cisco-AVPair = "url-redirect=http://100.127.2.150/cp/cisco?client_mac=78:98:E8:1E:67:07&switch_url=100.127.2.200&redirect=&wlan=!WNAM.test-portal&ap_mac=68:13:E2:C2:F7:40&sessionId=3A03EB20-4E1933E6"
(302) Wed Feb 11 10:01:03 2026: Debug: Cisco-AVPair = "url-redirect-acl=test1"
(302) Wed Feb 11 10:01:03 2026: Debug: Proxy-State = 0x3230
(302) Wed Feb 11 10:01:03 2026: Debug: server default {
(302) Wed Feb 11 10:01:03 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(302) Wed Feb 11 10:01:03 2026: Debug: post-proxy {
(302) Wed Feb 11 10:01:03 2026: Debug: eap: No pre-existing handler found
(302) Wed Feb 11 10:01:03 2026: Debug: [eap] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # post-proxy = noop
(302) Wed Feb 11 10:01:03 2026: Debug: }
(302) Wed Feb 11 10:01:03 2026: Debug: Found Auth-Type = Accept
(302) Wed Feb 11 10:01:03 2026: Debug: Auth-Type = Accept, accepting the user
(302) Wed Feb 11 10:01:03 2026: Debug: # Executing section post-auth from file /etc/raddb/sites-enabled/_default
(302) Wed Feb 11 10:01:03 2026: Debug: post-auth {
(302) Wed Feb 11 10:01:03 2026: Debug: if (session-state:User-Name && reply:User-Name && request:User-Name && (reply:User-Name == request:User-Name)) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (session-state:User-Name && reply:User-Name && request:User-Name && (reply:User-Name == request:User-Name)) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: update {
(302) Wed Feb 11 10:01:03 2026: Debug: No attributes updated for RHS &session-state:
(302) Wed Feb 11 10:01:03 2026: Debug: } # update = noop
(302) Wed Feb 11 10:01:03 2026: Debug: [exec] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: policy remove_reply_message_if_eap {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&reply:EAP-Message && &reply:Reply-Message) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: else {
(302) Wed Feb 11 10:01:03 2026: Debug: [noop] = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # else = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # policy remove_reply_message_if_eap = noop
(302) Wed Feb 11 10:01:03 2026: Debug: if (EAP-Key-Name && &reply:EAP-Session-Id) {
(302) Wed Feb 11 10:01:03 2026: Debug: if (EAP-Key-Name && &reply:EAP-Session-Id) -> FALSE
(302) Wed Feb 11 10:01:03 2026: Debug: update reply {
(302) Wed Feb 11 10:01:03 2026: Debug: } # update reply = noop
(302) Wed Feb 11 10:01:03 2026: Debug: } # post-auth = noop
(302) Wed Feb 11 10:01:03 2026: Debug: Sent Access-Accept Id 20 from 192.168.1.1:1812 to 192.168.1.3:51780 length 240
(302) Wed Feb 11 10:01:03 2026: Debug: Cisco-AVPair = "url-redirect=http://100.127.2.150/cp/cisco?client_mac=78:98:E8:1E:67:07&switch_url=100.127.2.200&redirect=&wlan=!WNAM.test-portal&ap_mac=68:13:E2:C2:F7:40&sessionId=3A03EB20-4E1933E6"
(302) Wed Feb 11 10:01:03 2026: Debug: Cisco-AVPair = "url-redirect-acl=test1"
(302) Wed Feb 11 10:01:03 2026: Debug: Finished request
(302) Wed Feb 11 10:01:08 2026: Debug: Cleaning up request packet ID 20 with timestamp +514260
(303) Wed Feb 11 10:01:48 2026: Debug: Received CoA-Request Id 195 from 100.127.2.150:40057 to 100.127.2.200:1700 length 166
(303) Wed Feb 11 10:01:48 2026: Debug: Calling-Station-Id = "78:98:E8:1E:67:07"
(303) Wed Feb 11 10:01:48 2026: Debug: Cisco-AVPair = "audit-session-id=3A03EB20-4E1933E6"
(303) Wed Feb 11 10:01:48 2026: Debug: Cisco-AVPair = "subscriber:command=reauthenticate"
(303) Wed Feb 11 10:01:48 2026: Debug: Cisco-AVPair = "subscriber:reauthenticate-type=rerun"
(303) Wed Feb 11 10:01:48 2026: Debug: # Executing section recv-coa from file /etc/raddb/sites-enabled/_default
(303) Wed Feb 11 10:01:48 2026: Debug: recv-coa {
(303) Wed Feb 11 10:01:48 2026: Debug: [wlc_coa_proxy] = ok
(303) Wed Feb 11 10:01:48 2026: Debug: [ok] = ok
(303) Wed Feb 11 10:01:48 2026: Debug: } # recv-coa = ok
(303) Wed Feb 11 10:01:48 2026: Debug: Starting proxy to home server 192.168.1.3 port 3799
(303) Wed Feb 11 10:01:48 2026: Debug: server default {
(303) Wed Feb 11 10:01:48 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(303) Wed Feb 11 10:01:48 2026: Debug: pre-proxy {
(303) Wed Feb 11 10:01:48 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(303) Wed Feb 11 10:01:48 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> TRUE
(303) Wed Feb 11 10:01:48 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(303) Wed Feb 11 10:01:48 2026: Debug: update proxy-request {
(303) Wed Feb 11 10:01:48 2026: Debug: } # update proxy-request = noop
(303) Wed Feb 11 10:01:48 2026: Debug: [ok] = ok
(303) Wed Feb 11 10:01:48 2026: Debug: } # if ((control:Eltex-WLC-CoA-Proxy)) = ok
(303) Wed Feb 11 10:01:48 2026: Debug: } # pre-proxy = ok
(303) Wed Feb 11 10:01:48 2026: Debug: }
(303) Wed Feb 11 10:01:48 2026: Debug: Sent CoA-Request Id 207 from 0.0.0.0:37773 to 192.168.1.3:3799 length 166
(303) Wed Feb 11 10:01:48 2026: Debug: Calling-Station-Id = "78:98:E8:1E:67:07"
(303) Wed Feb 11 10:01:48 2026: Debug: Cisco-AVPair = "audit-session-id=3A03EB20-4E1933E6"
(303) Wed Feb 11 10:01:48 2026: Debug: Cisco-AVPair = "subscriber:command=reauthenticate"
(303) Wed Feb 11 10:01:48 2026: Debug: Cisco-AVPair = "subscriber:reauthenticate-type=rerun"
(304) Wed Feb 11 10:01:48 2026: Debug: Received Access-Request Id 21 from 192.168.1.3:51780 to 192.168.1.1:1812 length 302
(304) Wed Feb 11 10:01:48 2026: Debug: User-Name = "78:98:e8:1e:67:07"
(304) Wed Feb 11 10:01:48 2026: Debug: User-Password = "78:98:e8:1e:67:07"
(304) Wed Feb 11 10:01:48 2026: Debug: Framed-IP-Address = 192.168.2.45
(304) Wed Feb 11 10:01:48 2026: Debug: Framed-MTU = 1500
(304) Wed Feb 11 10:01:48 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(304) Wed Feb 11 10:01:48 2026: Debug: Eltex-AP-Domain = "default-location"
(304) Wed Feb 11 10:01:48 2026: Debug: Eltex-Domain = "default"
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(304) Wed Feb 11 10:01:48 2026: Debug: Called-Station-Id = "68-13-e2-c2-f7-40:!WNAM.test-portal"
(304) Wed Feb 11 10:01:48 2026: Debug: Calling-Station-Id = "78-98-e8-1e-67-07"
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-Port = 1
(304) Wed Feb 11 10:01:48 2026: Debug: Framed-MTU = 1500
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-Port-Type = Wireless-802.11
(304) Wed Feb 11 10:01:48 2026: Debug: Acct-Session-Id = "3A03EB20-4E1933E6"
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-IP-Address = 192.168.1.3
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(304) Wed Feb 11 10:01:48 2026: Debug: Service-Type = Call-Check
(304) Wed Feb 11 10:01:48 2026: Debug: Message-Authenticator = 0xe0f6df61e6610ab12dd4f21374940c34
(304) Wed Feb 11 10:01:48 2026: Debug: # Executing section authorize from file /etc/raddb/sites-enabled/_default
(304) Wed Feb 11 10:01:48 2026: Debug: authorize {
(304) Wed Feb 11 10:01:48 2026: Debug: policy filter_username {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name) -> TRUE
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ / /) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ / /) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ /@[^@]*@/ ) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ /@[^@]*@/ ) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ /\.\./ ) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ /\.\./ ) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) {
(304) Wed Feb 11 10:01:48 2026: Debug: if ((&User-Name =~ /@/) && (&User-Name !~ /@(.+)\.(.+)$/)) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ /\.$/) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ /\.$/) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ /@\./) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&User-Name =~ /@\./) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: } # if (&User-Name) = notfound
(304) Wed Feb 11 10:01:48 2026: Debug: } # policy filter_username = notfound
(304) Wed Feb 11 10:01:48 2026: Debug: [preprocess] = ok
(304) Wed Feb 11 10:01:48 2026: Debug: if (&Cisco-AVPair && &Cisco-AVPair == "subscriber:command=ip-shaper") {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&Cisco-AVPair && &Cisco-AVPair == "subscriber:command=ip-shaper") -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: else {
(304) Wed Feb 11 10:01:48 2026: Debug: policy get_ssid {
(304) Wed Feb 11 10:01:48 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}") {
(304) Wed Feb 11 10:01:48 2026: Debug: EXPAND %{8}
(304) Wed Feb 11 10:01:48 2026: Debug: --> !WNAM.test-portal
(304) Wed Feb 11 10:01:48 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
(304) Wed Feb 11 10:01:48 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}") {
(304) Wed Feb 11 10:01:48 2026: Debug: update request {
(304) Wed Feb 11 10:01:48 2026: Debug: EXPAND %{8}
(304) Wed Feb 11 10:01:48 2026: Debug: --> !WNAM.test-portal
(304) Wed Feb 11 10:01:48 2026: Debug: } # update request = noop
(304) Wed Feb 11 10:01:48 2026: Debug: [updated] = updated
(304) Wed Feb 11 10:01:48 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
(304) Wed Feb 11 10:01:48 2026: Debug: ... skipping else: Preceding "if" was taken
(304) Wed Feb 11 10:01:48 2026: Debug: } # policy get_ssid = updated
(304) Wed Feb 11 10:01:48 2026: Debug: policy auth_by_ssid_default {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&Called-Station-SSID) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&Called-Station-SSID) -> TRUE
(304) Wed Feb 11 10:01:48 2026: Debug: if (&Called-Station-SSID) {
(304) Wed Feb 11 10:01:48 2026: Debug: policy auth_default {
(304) Wed Feb 11 10:01:48 2026: Debug: update request {
(304) Wed Feb 11 10:01:48 2026: Debug: } # update request = noop
(304) Wed Feb 11 10:01:48 2026: Debug: update control {
(304) Wed Feb 11 10:01:48 2026: Debug: } # update control = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # policy auth_default = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # if (&Called-Station-SSID) = noop
(304) Wed Feb 11 10:01:48 2026: Debug: ... skipping else: Preceding "if" was taken
(304) Wed Feb 11 10:01:48 2026: Debug: } # policy auth_by_ssid_default = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # else = updated
(304) Wed Feb 11 10:01:48 2026: Debug: [chap] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: [mschap] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: [digest] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: suffix: Checking for suffix after "@"
(304) Wed Feb 11 10:01:48 2026: Debug: suffix: No '@' in User-Name = "78:98:e8:1e:67:07", looking up realm NULL
(304) Wed Feb 11 10:01:48 2026: Debug: suffix: No such realm "NULL"
(304) Wed Feb 11 10:01:48 2026: Debug: [suffix] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: files_multi: users: Matched entry DEFAULT at line 1
(304) Wed Feb 11 10:01:48 2026: Debug: [files_multi] = ok
(304) Wed Feb 11 10:01:48 2026: Debug: if (&reply:Eltex-Tls-Enabled == 1) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&reply:Eltex-Tls-Enabled == 1) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: else {
(304) Wed Feb 11 10:01:48 2026: Debug: eap: No EAP-Message, not doing EAP
(304) Wed Feb 11 10:01:48 2026: Debug: [eap] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # else = noop
(304) Wed Feb 11 10:01:48 2026: Debug: if (ok) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (ok) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: [expiration] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: [logintime] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: [pap] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # authorize = updated
(304) Wed Feb 11 10:01:48 2026: Debug: Starting proxy to home server 100.127.2.150 port 1812
(304) Wed Feb 11 10:01:48 2026: Debug: server default {
(304) Wed Feb 11 10:01:48 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(304) Wed Feb 11 10:01:48 2026: Debug: pre-proxy {
(304) Wed Feb 11 10:01:48 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(304) Wed Feb 11 10:01:48 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: } # pre-proxy = noop
(304) Wed Feb 11 10:01:48 2026: Debug: }
(304) Wed Feb 11 10:01:48 2026: Debug: Sent Access-Request Id 165 from 0.0.0.0:37773 to 100.127.2.150:1812 length 312
(304) Wed Feb 11 10:01:48 2026: Debug: User-Name = "78:98:e8:1e:67:07"
(304) Wed Feb 11 10:01:48 2026: Debug: User-Password = "78:98:e8:1e:67:07"
(304) Wed Feb 11 10:01:48 2026: Debug: Framed-IP-Address = 192.168.2.45
(304) Wed Feb 11 10:01:48 2026: Debug: Framed-MTU = 1500
(304) Wed Feb 11 10:01:48 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(304) Wed Feb 11 10:01:48 2026: Debug: Eltex-AP-Domain = "default-location"
(304) Wed Feb 11 10:01:48 2026: Debug: Eltex-Domain = "default"
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(304) Wed Feb 11 10:01:48 2026: Debug: Called-Station-Id = "68-13-e2-c2-f7-40:!WNAM.test-portal"
(304) Wed Feb 11 10:01:48 2026: Debug: Calling-Station-Id = "78-98-e8-1e-67-07"
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-Port = 1
(304) Wed Feb 11 10:01:48 2026: Debug: Framed-MTU = 1500
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-Port-Type = Wireless-802.11
(304) Wed Feb 11 10:01:48 2026: Debug: Acct-Session-Id = "3A03EB20-4E1933E6"
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-IP-Address := 100.127.2.200
(304) Wed Feb 11 10:01:48 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(304) Wed Feb 11 10:01:48 2026: Debug: Service-Type = Call-Check
(304) Wed Feb 11 10:01:48 2026: Debug: Message-Authenticator = 0xe0f6df61e6610ab12dd4f21374940c34
(304) Wed Feb 11 10:01:48 2026: Debug: Event-Timestamp = "Feb 11 2026 10:01:48 GMT+7"
(304) Wed Feb 11 10:01:48 2026: Debug: Proxy-State = 0x3231
(303) Wed Feb 11 10:01:48 2026: Debug: Clearing existing &reply: attributes
(303) Wed Feb 11 10:01:48 2026: Debug: Received CoA-ACK Id 207 from 192.168.1.3:3799 to 192.168.1.1:37773 length 44
(303) Wed Feb 11 10:01:48 2026: Debug: Event-Timestamp = "Feb 11 2026 10:01:48 GMT+7"
(303) Wed Feb 11 10:01:48 2026: Debug: Message-Authenticator = 0xf581712c6a7380f18f25ac4fe895b155
(303) Wed Feb 11 10:01:48 2026: Debug: server default {
(303) Wed Feb 11 10:01:48 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(303) Wed Feb 11 10:01:48 2026: Debug: post-proxy {
(303) Wed Feb 11 10:01:48 2026: Debug: eap: No pre-existing handler found
(303) Wed Feb 11 10:01:48 2026: Debug: [eap] = noop
(303) Wed Feb 11 10:01:48 2026: Debug: } # post-proxy = noop
(303) Wed Feb 11 10:01:48 2026: Debug: }
(303) Wed Feb 11 10:01:48 2026: Debug: # Executing section send-coa from file /etc/raddb/sites-enabled/_default
(303) Wed Feb 11 10:01:48 2026: Debug: send-coa {
(303) Wed Feb 11 10:01:48 2026: Debug: [ok] = ok
(303) Wed Feb 11 10:01:48 2026: Debug: } # send-coa = ok
(303) Wed Feb 11 10:01:48 2026: Debug: Sent CoA-ACK Id 195 from 100.127.2.200:1700 to 100.127.2.150:40057 length 44
(303) Wed Feb 11 10:01:48 2026: Debug: Event-Timestamp = "Feb 11 2026 10:01:48 GMT+7"
(303) Wed Feb 11 10:01:48 2026: Debug: Message-Authenticator = 0xf581712c6a7380f18f25ac4fe895b155
(303) Wed Feb 11 10:01:48 2026: Debug: Finished request
(304) Wed Feb 11 10:01:48 2026: Debug: Clearing existing &reply: attributes
(304) Wed Feb 11 10:01:48 2026: Debug: Received Access-Accept Id 165 from 100.127.2.150:1812 to 100.127.2.200:37773 length 24
(304) Wed Feb 11 10:01:48 2026: Debug: Proxy-State = 0x3231
(304) Wed Feb 11 10:01:48 2026: Debug: server default {
(304) Wed Feb 11 10:01:48 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(304) Wed Feb 11 10:01:48 2026: Debug: post-proxy {
(304) Wed Feb 11 10:01:48 2026: Debug: eap: No pre-existing handler found
(304) Wed Feb 11 10:01:48 2026: Debug: [eap] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # post-proxy = noop
(304) Wed Feb 11 10:01:48 2026: Debug: }
(304) Wed Feb 11 10:01:48 2026: Debug: Found Auth-Type = Accept
(304) Wed Feb 11 10:01:48 2026: Debug: Auth-Type = Accept, accepting the user
(304) Wed Feb 11 10:01:48 2026: Debug: # Executing section post-auth from file /etc/raddb/sites-enabled/_default
(304) Wed Feb 11 10:01:48 2026: Debug: post-auth {
(304) Wed Feb 11 10:01:48 2026: Debug: if (session-state:User-Name && reply:User-Name && request:User-Name && (reply:User-Name == request:User-Name)) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (session-state:User-Name && reply:User-Name && request:User-Name && (reply:User-Name == request:User-Name)) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: update {
(304) Wed Feb 11 10:01:48 2026: Debug: No attributes updated for RHS &session-state:
(304) Wed Feb 11 10:01:48 2026: Debug: } # update = noop
(304) Wed Feb 11 10:01:48 2026: Debug: [exec] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: policy remove_reply_message_if_eap {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&reply:EAP-Message && &reply:Reply-Message) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (&reply:EAP-Message && &reply:Reply-Message) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: else {
(304) Wed Feb 11 10:01:48 2026: Debug: [noop] = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # else = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # policy remove_reply_message_if_eap = noop
(304) Wed Feb 11 10:01:48 2026: Debug: if (EAP-Key-Name && &reply:EAP-Session-Id) {
(304) Wed Feb 11 10:01:48 2026: Debug: if (EAP-Key-Name && &reply:EAP-Session-Id) -> FALSE
(304) Wed Feb 11 10:01:48 2026: Debug: update reply {
(304) Wed Feb 11 10:01:48 2026: Debug: } # update reply = noop
(304) Wed Feb 11 10:01:48 2026: Debug: } # post-auth = noop
(304) Wed Feb 11 10:01:48 2026: Debug: Sent Access-Accept Id 21 from 192.168.1.1:1812 to 192.168.1.3:51780 length 20
(304) Wed Feb 11 10:01:48 2026: Debug: Finished request
(305) Wed Feb 11 10:01:48 2026: Debug: Received Accounting-Request Id 22 from 192.168.1.3:52818 to 192.168.1.1:1813 length 245
(305) Wed Feb 11 10:01:48 2026: Debug: Acct-Session-Id = "3A03EB20-4E1933E6"
(305) Wed Feb 11 10:01:48 2026: Debug: Acct-Status-Type = Start
(305) Wed Feb 11 10:01:48 2026: Debug: User-Name = "7898e81e6707"
(305) Wed Feb 11 10:01:48 2026: Debug: Service-Type = Login-User
(305) Wed Feb 11 10:01:48 2026: Debug: Eltex-Domain = "default"
(305) Wed Feb 11 10:01:48 2026: Debug: Event-Timestamp = "Feb 11 2026 10:01:48 GMT+7"
(305) Wed Feb 11 10:01:48 2026: Debug: Called-Station-Id = "68-13-E2-C2-F7-40:!WNAM.test-portal"
(305) Wed Feb 11 10:01:48 2026: Debug: Calling-Station-Id = "78-98-E8-1E-67-07"
(305) Wed Feb 11 10:01:48 2026: Debug: NAS-Port-Type = Wireless-802.11
(305) Wed Feb 11 10:01:48 2026: Debug: NAS-IP-Address = 192.168.1.3
(305) Wed Feb 11 10:01:48 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(305) Wed Feb 11 10:01:48 2026: Debug: Framed-IP-Address = 192.168.2.45
(305) Wed Feb 11 10:01:48 2026: Debug: Framed-MTU = 1500
(305) Wed Feb 11 10:01:48 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(305) Wed Feb 11 10:01:48 2026: Debug: Eltex-AP-Domain = "default-location"
(305) Wed Feb 11 10:01:48 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(305) Wed Feb 11 10:01:48 2026: Debug: # Executing section preacct from file /etc/raddb/sites-enabled/_default
(305) Wed Feb 11 10:01:48 2026: Debug: preacct {
(305) Wed Feb 11 10:01:48 2026: Debug: [preprocess] = ok
(305) Wed Feb 11 10:01:48 2026: Debug: policy acct_unique {
(305) Wed Feb 11 10:01:48 2026: Debug: update request {
(305) Wed Feb 11 10:01:48 2026: Debug: } # update request = noop
(305) Wed Feb 11 10:01:48 2026: Debug: if (("%{hex:&Class}" =~ /^%{hex:&Tmp-String-9}/) && ("%{string:&Class}" =~ /^ai:([0-9a-f]{32})/i)) {
(305) Wed Feb 11 10:01:48 2026: Debug: EXPAND %{hex:&Class}
(305) Wed Feb 11 10:01:48 2026: Debug: -->
(305) Wed Feb 11 10:01:48 2026: Debug: EXPAND ^%{hex:&Tmp-String-9}
(305) Wed Feb 11 10:01:48 2026: Debug: --> ^61693a
(305) Wed Feb 11 10:01:48 2026: Debug: if (("%{hex:&Class}" =~ /^%{hex:&Tmp-String-9}/) && ("%{string:&Class}" =~ /^ai:([0-9a-f]{32})/i)) -> FALSE
(305) Wed Feb 11 10:01:48 2026: Debug: else {
(305) Wed Feb 11 10:01:48 2026: Debug: update request {
(305) Wed Feb 11 10:01:48 2026: Debug: EXPAND %{md5:%{User-Name},%{Acct-Session-ID},%{%{NAS-IPv6-Address}:-%{NAS-IP-Address}},%{NAS-Identifier},%{NAS-Port-ID},%{NAS-Port}}
(305) Wed Feb 11 10:01:48 2026: Debug: --> 98176558f40a11af646270971625a7ed
(305) Wed Feb 11 10:01:48 2026: Debug: } # update request = noop
(305) Wed Feb 11 10:01:48 2026: Debug: } # else = noop
(305) Wed Feb 11 10:01:48 2026: Debug: } # policy acct_unique = noop
(305) Wed Feb 11 10:01:48 2026: Debug: policy get_ssid {
(305) Wed Feb 11 10:01:48 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}") {
(305) Wed Feb 11 10:01:48 2026: Debug: EXPAND %{8}
(305) Wed Feb 11 10:01:48 2026: Debug: --> !WNAM.test-portal
(305) Wed Feb 11 10:01:48 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
(305) Wed Feb 11 10:01:48 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}") {
(305) Wed Feb 11 10:01:48 2026: Debug: update request {
(305) Wed Feb 11 10:01:48 2026: Debug: EXPAND %{8}
(305) Wed Feb 11 10:01:48 2026: Debug: --> !WNAM.test-portal
(305) Wed Feb 11 10:01:48 2026: Debug: } # update request = noop
(305) Wed Feb 11 10:01:48 2026: Debug: [updated] = updated
(305) Wed Feb 11 10:01:48 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
(305) Wed Feb 11 10:01:48 2026: Debug: ... skipping else: Preceding "if" was taken
(305) Wed Feb 11 10:01:48 2026: Debug: } # policy get_ssid = updated
(305) Wed Feb 11 10:01:48 2026: Debug: suffix: Checking for suffix after "@"
(305) Wed Feb 11 10:01:48 2026: Debug: suffix: No '@' in User-Name = "7898e81e6707", looking up realm NULL
(305) Wed Feb 11 10:01:48 2026: Debug: suffix: No such realm "NULL"
(305) Wed Feb 11 10:01:48 2026: Debug: [suffix] = noop
(305) Wed Feb 11 10:01:48 2026: Debug: files_multi: acct_users: Matched entry DEFAULT at line 1
(305) Wed Feb 11 10:01:48 2026: Debug: [files_multi] = ok
(305) Wed Feb 11 10:01:48 2026: Debug: } # preacct = updated
(305) Wed Feb 11 10:01:48 2026: Debug: # Executing section accounting from file /etc/raddb/sites-enabled/_default
(305) Wed Feb 11 10:01:48 2026: Debug: accounting {
(305) Wed Feb 11 10:01:48 2026: Debug: [exec] = noop
(305) Wed Feb 11 10:01:48 2026: Debug: attr_filter.accounting_response: EXPAND %{User-Name}
(305) Wed Feb 11 10:01:48 2026: Debug: attr_filter.accounting_response: --> 7898e81e6707
(305) Wed Feb 11 10:01:48 2026: Debug: attr_filter.accounting_response: Matched entry DEFAULT at line 12
(305) Wed Feb 11 10:01:48 2026: Debug: [attr_filter.accounting_response] = updated
(305) Wed Feb 11 10:01:48 2026: Debug: policy acct_by_ssid_default {
(305) Wed Feb 11 10:01:48 2026: Debug: if (&Called-Station-SSID) {
(305) Wed Feb 11 10:01:48 2026: Debug: if (&Called-Station-SSID) -> TRUE
(305) Wed Feb 11 10:01:48 2026: Debug: if (&Called-Station-SSID) {
(305) Wed Feb 11 10:01:48 2026: Debug: policy acct_default {
(305) Wed Feb 11 10:01:48 2026: Debug: update request {
(305) Wed Feb 11 10:01:48 2026: Debug: } # update request = noop
(305) Wed Feb 11 10:01:48 2026: Debug: update control {
(305) Wed Feb 11 10:01:48 2026: Debug: } # update control = noop
(305) Wed Feb 11 10:01:48 2026: Debug: } # policy acct_default = noop
(305) Wed Feb 11 10:01:48 2026: Debug: } # if (&Called-Station-SSID) = noop
(305) Wed Feb 11 10:01:48 2026: Debug: ... skipping else: Preceding "if" was taken
(305) Wed Feb 11 10:01:48 2026: Debug: } # policy acct_by_ssid_default = noop
(305) Wed Feb 11 10:01:48 2026: Debug: if (&control:Proxy-To-Realm) {
(305) Wed Feb 11 10:01:48 2026: Debug: if (&control:Proxy-To-Realm) -> TRUE
(305) Wed Feb 11 10:01:48 2026: Debug: if (&control:Proxy-To-Realm) {
(305) Wed Feb 11 10:01:48 2026: Debug: [noop] = noop
(305) Wed Feb 11 10:01:48 2026: Debug: } # if (&control:Proxy-To-Realm) = noop
(305) Wed Feb 11 10:01:48 2026: Debug: ... skipping else: Preceding "if" was taken
(305) Wed Feb 11 10:01:48 2026: Debug: } # accounting = updated
(305) Wed Feb 11 10:01:48 2026: Debug: Starting proxy to home server 100.127.2.150 port 1813
(305) Wed Feb 11 10:01:48 2026: Debug: server default {
(305) Wed Feb 11 10:01:48 2026: Debug: # Executing section pre-proxy from file /etc/raddb/sites-enabled/_default
(305) Wed Feb 11 10:01:48 2026: Debug: pre-proxy {
(305) Wed Feb 11 10:01:48 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) {
(305) Wed Feb 11 10:01:48 2026: Debug: if ((control:Eltex-WLC-CoA-Proxy)) -> FALSE
(305) Wed Feb 11 10:01:48 2026: Debug: } # pre-proxy = noop
(305) Wed Feb 11 10:01:48 2026: Debug: }
(305) Wed Feb 11 10:01:48 2026: Debug: Sent Accounting-Request Id 149 from 0.0.0.0:37773 to 100.127.2.150:1813 length 249
(305) Wed Feb 11 10:01:48 2026: Debug: Acct-Session-Id = "3A03EB20-4E1933E6"
(305) Wed Feb 11 10:01:48 2026: Debug: Acct-Status-Type = Start
(305) Wed Feb 11 10:01:48 2026: Debug: User-Name = "7898e81e6707"
(305) Wed Feb 11 10:01:48 2026: Debug: Service-Type = Login-User
(305) Wed Feb 11 10:01:48 2026: Debug: Eltex-Domain = "default"
(305) Wed Feb 11 10:01:48 2026: Debug: Event-Timestamp = "Feb 11 2026 10:01:48 GMT+7"
(305) Wed Feb 11 10:01:48 2026: Debug: Called-Station-Id = "68-13-E2-C2-F7-40:!WNAM.test-portal"
(305) Wed Feb 11 10:01:48 2026: Debug: Calling-Station-Id = "78-98-E8-1E-67-07"
(305) Wed Feb 11 10:01:48 2026: Debug: NAS-Port-Type = Wireless-802.11
(305) Wed Feb 11 10:01:48 2026: Debug: NAS-IP-Address := 100.127.2.200
(305) Wed Feb 11 10:01:48 2026: Debug: NAS-Identifier = "68-13-E2-C2-F7-40"
(305) Wed Feb 11 10:01:48 2026: Debug: Framed-IP-Address = 192.168.2.45
(305) Wed Feb 11 10:01:48 2026: Debug: Framed-MTU = 1500
(305) Wed Feb 11 10:01:48 2026: Debug: Connect-Info = "CONNECT 0Mbps 802.11a"
(305) Wed Feb 11 10:01:48 2026: Debug: Eltex-AP-Domain = "default-location"
(305) Wed Feb 11 10:01:48 2026: Debug: NAS-Port-Id = "7;Vlan-ID=3"
(305) Wed Feb 11 10:01:48 2026: Debug: Proxy-State = 0x3232
(305) Wed Feb 11 10:01:48 2026: Debug: Clearing existing &reply: attributes
(305) Wed Feb 11 10:01:48 2026: Debug: Received Accounting-Response Id 149 from 100.127.2.150:1813 to 100.127.2.200:37773 length 24
(305) Wed Feb 11 10:01:48 2026: Debug: Proxy-State = 0x3232
(305) Wed Feb 11 10:01:48 2026: Debug: server default {
(305) Wed Feb 11 10:01:48 2026: Debug: # Executing section post-proxy from file /etc/raddb/sites-enabled/_default
(305) Wed Feb 11 10:01:48 2026: Debug: post-proxy {
(305) Wed Feb 11 10:01:48 2026: Debug: eap: No pre-existing handler found
(305) Wed Feb 11 10:01:48 2026: Debug: [eap] = noop
(305) Wed Feb 11 10:01:48 2026: Debug: } # post-proxy = noop
(305) Wed Feb 11 10:01:48 2026: Debug: }
(305) Wed Feb 11 10:01:48 2026: Debug: Sent Accounting-Response Id 22 from 192.168.1.1:1813 to 192.168.1.3:52818 length 20
(305) Wed Feb 11 10:01:48 2026: Debug: Finished request
(305) Wed Feb 11 10:01:49 2026: Debug: Cleaning up request packet ID 22 with timestamp +514305
(303) Wed Feb 11 10:01:53 2026: Debug: Cleaning up request packet ID 195 with timestamp +514305
(304) Wed Feb 11 10:01:53 2026: Debug: Cleaning up request packet ID 21 with timestamp +514305 |
Dump файл Radius обмена WLC и WNAM
Диагностика на стороне WNAM
| Якорь | ||||
|---|---|---|---|---|
|
Корпоративные подключения
Диагностика → Корпоративные подключения
Первоначальная авторизация с ограничением по ACL и редиректом на портал
Авторизация без ограничений после идентификации клиента на портале
Авторизация без ограничений, после отключения от ТД и подключения снова или подключения к другой ТД (если сессия клиента не истекла)
Параметры записи о пользователе
Вкладка "Пользователи"
Вкладка "Сессии"
Логи системы (shell)
Radiuslog
| Блок кода | ||||
|---|---|---|---|---|
| ||||
tester@tester:~$ tail -n 100 /home/wnam/radiuslog/100.127.2.200/2026-02-11.log # Где 100.127.2.200 -- NAS-IP
# Где 2026-02-11 -- Дата подключения
10:17:21.629 AUTH REQ : User-Name - 78:98:e8:1e:67:07
10:17:21.629 AUTH REQ : User-Password - 78:98:e8:1e:67:07
10:17:21.629 AUTH REQ : Framed-IP-Address - 192.168.2.45
10:17:21.629 AUTH REQ : Framed-MTU - 1500
10:17:21.629 AUTH REQ : Connect-Info - CONNECT 0Mbps 802.11a
10:17:21.629 AUTH REQ : VSA: Eltex-AP-Domain: default-location
10:17:21.629 AUTH REQ : VSA, vendor-id=35265 - Eltex-AP-Domain - default-location
10:17:21.629 AUTH REQ : Eltex-AP-Domain - default-location
10:17:21.629 AUTH REQ : VSA: Eltex-Domain: default
10:17:21.629 AUTH REQ : VSA, vendor-id=35265 - Eltex-Domain - default
10:17:21.629 AUTH REQ : Eltex-Domain - default
10:17:21.630 AUTH REQ : NAS-Port-Id - 7;Vlan-ID=3
10:17:21.630 AUTH REQ : Called-Station-Id - 68-13-e2-c2-f7-40:!WNAM.test-portal
10:17:21.630 AUTH REQ : Calling-Station-Id - 78-98-e8-1e-67-07
10:17:21.630 AUTH REQ : NAS-Port - 1
10:17:21.630 AUTH REQ : Framed-MTU - 1500
10:17:21.630 AUTH REQ : NAS-Port-Type - Wireless-802.11
10:17:21.630 AUTH REQ : Acct-Session-Id - 5F5A25D1-7D3F27EE
10:17:21.630 AUTH REQ : NAS-IP-Address - 100.127.2.200
10:17:21.630 AUTH REQ : NAS-Identifier - 68-13-E2-C2-F7-40
10:17:21.630 AUTH REQ : Service-Type - Call-Check
10:17:21.630 AUTH REQ : Message-Authenticator - 0x00dcf9adcac533e3772d214a55cd85ac
10:17:21.630 AUTH REQ : Event-Timestamp - 1770779841
10:17:21.630 AUTH REQ : Proxy-State - 0x3236
10:17:21.631 CoA ACK : Event-Timestamp - 1770779841
10:17:21.631 CoA ACK : Message-Authenticator - 0x57a80eb3aad62d0aa1bcb07e11eb5170
10:17:21.663 AUTH RSP : Access-Accept, ID 86
10:17:21.663 AUTH RSP : AVP: Proxy-State = 0x3236
10:17:21.663 AUTH RSP : AVP_LEN=1*
10:17:21.671 ACCT REQ : Acct-Session-Id - 5F5A25D1-7D3F27EE
10:17:21.671 ACCT REQ : Acct-Status-Type - Start
10:17:21.671 ACCT REQ : User-Name - 7898e81e6707
10:17:21.671 ACCT REQ : Service-Type - Login-User
10:17:21.671 ACCT REQ : VSA: Eltex-Domain: default
10:17:21.671 ACCT REQ : VSA, vendor-id=35265 - Eltex-Domain - default
10:17:21.672 ACCT REQ : Eltex-Domain - default
10:17:21.672 ACCT REQ : Event-Timestamp - 1770779841
10:17:21.672 ACCT REQ : Called-Station-Id - 68-13-E2-C2-F7-40:!WNAM.test-portal
10:17:21.672 ACCT REQ : Calling-Station-Id - 78-98-E8-1E-67-07
10:17:21.672 ACCT REQ : NAS-Port-Type - Wireless-802.11
10:17:21.672 ACCT REQ : NAS-IP-Address - 100.127.2.200
10:17:21.672 ACCT REQ : NAS-Identifier - 68-13-E2-C2-F7-40
10:17:21.672 ACCT REQ : Framed-IP-Address - 192.168.2.45
10:17:21.672 ACCT REQ : Framed-MTU - 1500
10:17:21.672 ACCT REQ : Connect-Info - CONNECT 0Mbps 802.11a
10:17:21.672 ACCT REQ : VSA: Eltex-AP-Domain: default-location
10:17:21.672 ACCT REQ : VSA, vendor-id=35265 - Eltex-AP-Domain - default-location
10:17:21.672 ACCT REQ : Eltex-AP-Domain - default-location
10:17:21.672 ACCT REQ : NAS-Port-Id - 7;Vlan-ID=3
10:17:21.672 ACCT REQ : Proxy-State - 0x3237
10:17:21.699 ACCT RSP : AVP: Proxy-State = 0x3237
10:17:21.699 ACCT RSP : OK |
...






















