Стема Netams WNAM будет рассмотрена для портальной авторизации пользователей Wi-Fi.
| WLC/ESR-15/30/3200, vWLC - начиная с версии WNAM 1.6.4010 |
В данной статье будет рассмотрен пример настройки авторизации клиента через гостевой портал путем идентификации по коду ваучера. Иные способы гостевой авторизации выходят за рамки данной статьи, так как взаимодействие между системой WNAM и BRAS WLC не изменяется. При возникновении трудностей с другими видами гостевой авторизации необходимо обратиться в поддержку WNAM.
Перед началом построения взаимодействия между Netams WNAM и WLC рекомендуется сконфигурировать и протестировать работу беспроводной сети и контроллера WLC без портальной авторизации и файрволла. Если беспроводная сеть корректно функционирует, можно приступать к настройки портальной авторизации и конфигурации настроек файрволла.
В данной статье используется подключение ТД к контроллеру WLC на основе сети L3 с построением Data SoftGRE туннеля. В данной статье детально описана настройка данной схемы подключения Настрoйка WLC.
Также необходимо ознакомиться с тонкостями настройки BRAS на ESR/WLC с портальной авторизацией на основе SoftWLC, с которыми можно ознакомиться в следующих статьях:
Описание схемы сети
Для конфигурации взаимодействия Netams WNAM и WLC, необходима лицензия BRAS для WLC.
Детально о том, как установить и применить лицензию описано в статье – Активация функционала по лицензии.
Проверить наличие лицензии можно с помощью команды show licence:
wlc# show licence Feature Source State Value Valid from Expiries -------------------------------- -------- ----------- -------------------------------- -------------------- -------------------- BRAS File Active true -- -- BRAS File Candidate true -- -- WLC Boot Active true -- -- WLC Boot Candidate true -- -- |

Конфигурация адресных объектов:
object-group network wnam_servers ip address-range 100.110.1.44 exit object-group network bras_users ip address-range 192.168.3.20-192.168.3.250 exit object-group network local ip address-range 192.168.2.1-192.168.2.254 exit object-group network local2 ip address-range 192.168.3.1-192.168.3.254 exit object-group url defaultService url http://100.110.1.44 exit |
Конфигурация Бриджей:
bridge 1 description "MGMT_AP" enable exit bridge 2 description "Internet" no vlan exit bridge 3 description "SoftGRE_or_L2" history statistics exit bridge 4 description "SoftGRE_or_L2-BRAS" vlan 4 security-zone users ip address 192.168.3.1/24 service-subscriber-control object-group bras_users location data10 protected-ports local no spanning-tree enable exit |
Конфигурация Vlan:
vlan 4 name "FreeSSID" force-up exit vlan 10 name "MNMG-L2" exit |
Конфигурация интерфейсов:
interface gigabitethernet 1/0/1 spanning-tree disable exit interface gigabitethernet 1/0/1.1000 description "to-WNAM" bridge-group 2 exit interface gigabitethernet 1/0/4 lldp receive exit interface gigabitethernet 1/0/4.4 description "L2_BRAS" bridge-group 4 exit interface gigabitethernet 1/0/4.10 description "MNGT_AP" bridge-group 1 exit |
Конфигурация списков контроля доступа:
ip access-list extended BYPASS
rule 10
action permit
match protocol udp
match source-port 68
match destination-port 67
enable
exit
rule 11
action permit
match protocol udp
match destination-port 53
enable
exit
exit
ip access-list extended WELCOME
rule 10
action permit
match protocol tcp
match destination-port 443
enable
exit
rule 30
action permit
match protocol tcp
match destination-port 80
enable
exit
exit
ip access-list extended INTERNET
rule 10
action permit
enable
exit
exit |
Настройка RADIUS
radius-server host 100.110.1.44 key ascii-text encrypted wnampass source-address 100.110.0.246 exit aaa radius-profile bras_radius radius-server host 100.110.1.44 exit das-server das key ascii-text encrypted wnampass port 3799 clients object-group wnam_servers exit aaa das-profile bras_das das-server das exit |
Конфигурация Softgre-controller:
softgre-controller service-vlan add 3-4 exit |
Конфигурация DHCP сервера:
ip dhcp-server pool ap-pool2 network 192.168.3.0/24 address-range 192.168.3.20-192.168.3.250 default-router 192.168.3.1 dns-server 192.168.3.1 exit |
Конфигурация NAT:
nat source
pool translate
ip address-range 100.110.0.246
exit
ruleset SNAT
to interface gigabitethernet 1/0/1.1000
rule 1
match source-address object-group local
action source-nat pool translate
enable
exit
rule 2
match source-address object-group local2
action source-nat pool translate
enable
exit
exit
exit |
Конфигурация Security Zone-Pair:
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 10
action permit
match protocol tcp
match destination-port object-group ssh
enable
exit
rule 20
action permit
match protocol tcp
match destination-port object-group http
enable
exit |
Конфигурация режима WLC:
wlc
ap-location default-location
ssid-profile freeSSID_bras
exit
ssid-profile default-ssid
description F.E.wlc-30_PSK
ssid F.E.wlc-30_PSK
exit
ssid-profile freeSSID_bras
description F.E.free
ssid F.E.freeSSID
vlan-id 4
band 2g
band 5g
enable
exit
exit |
Конфигурация BRAS:
subscriber-control
aaa das-profile bras_das
aaa sessions-radius-profile bras_radius
aaa services-radius-profile bras_radius
nas-ip-address 100.110.0.246
session mac-authentication
bypass-traffic-acl BYPASS
default-service
class-map BYPASS
filter-name local defaultService
filter-action permit
default-action redirect http://100.110.1.44/cp/eltexwlc
session-timeout 600
exit
enable
exit |
При конфигурации default-action redirect всегда используется шаблон "http://<ip-address WNAM>/cp/eltexwlc", где <ip-address WNAM> сетевой адрес сервера Netams WNAM. |
Полная конфигурация приведена в файле:wlc-30_bars-wnam_hotspot.conf
На стороне системы авторизации переходим: Конфигурация → Сервера доступа → Создать сервер.
В закладке Параметры:

В закладе RADIUS указывается RADIUS-ключ (wnampass), в поле "Атрибуты CoA / пост-авторизации":
Cisco-AVPair=subscriber:command=account-loggon Idle-Timeout=1200 Acct-Interim-Interval=300 Cisco-AVPair=subscriber:vrf=1 |
В поле ввода "Секретный ключ" указываем ключ, который указали для RADIUS-сервера 100.110.1.44 на WLC ранее:
wnampass |

Далее создаем площадку, к которой у нас будет привязана страница гостевого портала: Конфигурация → Площадки → Создать площадку.
В поле "Тип" выбираем "Площадка", в поле "Разрешенный сервер доступа" выбираем созданный ранее сервер. В поле "Присвоенная IP подсеть или МАС точек доступа" указываем наш пул IP для пользователей портала (сеть Bridge 4 на WLC).
Таким образом через привязку пулов IP можно привязать разные Площадки с разными порталами авторизации, трафик абонентов которых терминируется на одном WLC. |

Далее выбираем созданную площадку.
На вкладке "Авторизация" выбираем "Метод" – "Ввод кода с ваучера". Указываем срок валидности ваучера для авторизации. В параметре "Имя страницы" выбираем "Ваучер (по умолчанию)". Данных настроек достаточно для работы Гостевого портала с авторизацией по коду из Ваучера.
Настройка других способов авторизации выходит за рамки данной статьи.

Переходим к созданию ваучеров для авторизации: Конфигурация → Гостевая авторизация → Ваучеры → Создать группу ваучеров.

В дальнейшем коды данных ваучеров будут использоваться для авторизации клиентов на гостевом портале.

Создаем правило для редиректа на гостевой портал (копируем стандартное правило редиректа и модифицируем его).
Переходим во вкладку: Конфигурация → Правила аутентификации.
Создаем новое правило аутентификации и настраиваем, как на скриншоте приведенном ниже. Источник запроса выбираем проводной (BRAS у нас находится на проводном интерфейсе).
В параметре "Входящий радиус атрибут" выбираем "NAS-Port-ID" равным тому "location" который указали в настройках Bridge 4 на WLC, на котором терминируется клиентский трафик.
Так мы привяжем данное правило к нашему SSID с гостевым доступом.
Если у вас много правил и используется много разных политик аутентификаций и авторизаций клиентов, данное правило можно кастомизировать дополнительными параметрами, под свои потребности. |
Правило аутентификации привязывается к правилу авторизации при помощи тега. В данном примере указан тег guest-wifi-redirect.
Обратите внимание, чтоб тег был уникальным и совпадал с соответствующим правилом авторизации. |

Приступаем к созданию правила аутентификации для доступа клиента в Internet.
Параметры "Источник запроса" и "Входящий RADIUS атрибут" настраиваем так же, как в правиле для редиректа (объяснение выше).
Обращаем внимание на необходимость уникальности тега, как в примере выше. В данном примере указан тег guest-wifi-permit. |

Создаем правила авторизации:
Переходим во вкладку: Конфигурация → Правила авторизации.
Первое правило для редиректа на портал приводим к виду, как на примере ниже.
В результате должен быть ответ протокола Radius формата "Access-Reject" от сервиса авторизации системе BRAS на WLC.
Правило привязывается по совпадению тега, поэтому тег должен быть такой же, как и в правиле аутентификации. |

Второе правило для предоставления доступа в Internet. В блоке "Применить" параметра "RADIUS атрибуты" необходимо прописать атрибут назначающий сессии клиента сервис доступа с названием INTERNET, который настроен в виде списка конторля доступа на WLC.
Cisco-Account-Info=AINTERNET |
В результате, на данном этапе, должен быть ответ протокола Radius формата "Access-Accept" от сервиса авторизации системе BRAS на WLC. В нем будет содержаться атрибут с указанием наименования сервиса доступного абоненту.

Контроллер WLC в ходе авторизации запрашивает параметры сервиса INTERNET в пакете Radius "Access-Request", а WNAM, в свою очередь, автоматически отдаёт их в ответном пакете "Access-Accept", где в атрибуте "Cisco-AVPair", со значением "subscriber:traffic-class=INTERNET". |
На этом конфигурация сервиса Netams WNAM завершена.
После конфигурирования портала и контроллера WLC при подключения к SSID с названием "F.E.wlc-30_PSK" будет регистрация в сети. Мы попадем на портал авторизации, где необходимо ввести один из свободных ваучеров. Посмотреть доступные ваучеры можно: Конфигурация → Гостевая авторизация → Ваучеры. Выбираем созданную группу Test_Guest-Portal и вводим свободный. После авторизации будет предоставлен доступ в интернет, а введенный ваучер привяжется
Логирование работы правил авторизации
Мониторинг логов работы правил авторизации необходимо перейти в: Диагностика → Корпоративные подключения

1: fillFromRadiusAttributes - identity: '78:98:E8:1E:67:07', portType: EthernetMAB
2: fillFromRadiusAttributes - mac: '78:98:E8:1E:67:07'
3: fillFromRadiusAttributes - password: present in request
4: fillFromRadiusAttributes - nas: 'WLC-30 [F.E.]', ip: 100.110.0.246, id: 6614c699fd772e622ebb0689, vendor: ELTEX [enabled]
5: fillFromRadiusAttributes - nas: IP address: 100.110.0.246, identifier: 'null', port: 'location data10'
6: fillFromRadiusAttributes - site: 'test', id: new [enabled]
7: fillFromRadiusAttributes - session id: '3098476543630901255'
8: radius - received 8 attributes in the request:
Cisco-AVPair-subscriber:vrf = 1
User-Name = 78:98:E8:1E:67:07
Cisco-AVPair-subscriber:CELL = d998075724dc24029b359a8db24682a0
User-Password = (password length: 8)
NAS-IP-Address = 100.110.0.246
Cisco-AVPair-subscriber:l2-interface = softgre 1.4
Acct-Session-Id = 3098476543630901255
NAS-Port-Id = location data10
9: filterForPapMacMethod - checkMABPassword: matched captiveportal_pass for 'Редирект для гостевого Wi-Fi tester'
10: authentication - a1profiles candidates: 1 with preliminary processing result: RadiusResponse [state=OK, attributes=[]]
11: authentication - final result: Redirect with policy 'Редирект для гостевого Wi-Fi tester' and tag 'guest-wifi-redirect'
12: authorization - guest redirect
13: radius - send RADIUS REJECT, reason: This will instruct Wi-Fi controller to execute redirect action |
1: fillFromRadiusAttributes - identity: '78:98:E8:1E:67:07', portType: EthernetMAB
2: fillFromRadiusAttributes - mac: '78:98:E8:1E:67:07'
3: fillFromRadiusAttributes - password: present in request
4: fillFromRadiusAttributes - nas: 'WLC-30 [F.E.]', ip: 100.110.0.246, id: 6614c699fd772e622ebb0689, vendor: ELTEX [enabled]
5: fillFromRadiusAttributes - nas: IP address: 100.110.0.246, identifier: 'null', port: 'location data10'
6: fillFromRadiusAttributes - site: 'test', id: new [enabled]
7: fillFromRadiusAttributes - session id: '3098476543630901255'
8: radius - received 8 attributes in the request:
Cisco-AVPair-subscriber:vrf = 1
User-Name = 78:98:E8:1E:67:07
Cisco-AVPair-subscriber:CELL = d998075724dc24029b359a8db24682a0
User-Password = (password length: 8)
NAS-IP-Address = 100.110.0.246
Cisco-AVPair-subscriber:l2-interface = softgre 1.4
Acct-Session-Id = 3098476543630901255
NAS-Port-Id = location data10
9: filterForPapMacMethod - checkMABPassword: matched captiveportal_pass for 'Доступ для гостевого Wi-Fi tester'
10: authentication - a1profiles candidates: 1 with preliminary processing result: RadiusResponse [state=OK, attributes=[]]
11: authentication - final result: Allow with policy 'Доступ для гостевого Wi-Fi tester' and tag 'guest-wifi-permit'
12: authorization - a2profiles candidates: 7
13: authorization - final result: Accept with policy 'Доступ для гостевого Wi-Fi'
14: radius - send RADIUS ACCEPT with 1 attributes
15: radius - attribute: Cisco-Account-Info = AINTERNET
16: addIP - Set IP address 192.168.3.21 on Accounting message (session 3098476543630901255) |
Информация использования ваучеров.
Информация о статусе ваучеров находится по пути: Конфигурация → Гостевая авторизация → Ваучеры.
Затем необходимо выбрать нужную группу.

Информация клиентов Wi-Fi.

Также посмотреть активные клиентские подключения к Wi-Fi можно посмотреть на контроллере WLC командой:
wlc# show subscriber-control sessions status |
Ниже приведен пример вывода активных клиентских сессий на контроллере WLC:
wlc# sh subscriber-control sessions status
Session id User name IP address MAC address Interface Domain
-------------------- --------------- --------------- ----------------- -------------------- ---------------
3098476543630901251 78:98:E8:1E:67: 192.168.3.21 78:98:e8:1e:67:07 softgre 1.4 --
07 |
wlc# sh subscriber-control services counters session-id 3098476543630901251 Service id Service name Recv packets Recv bytes Send packets Send bytes -------------------- --------------- -------------- -------------- -------------- -------------- 3134505340649865218 A INTERNET 4559 3868861 3842 692224 |
wlc# sh wlc clients MAC User MAC AP Hostname AP SSID RSSI AP-Location Username ----------------- ----------------- ------------------------------ --------------- ------- ----------------- ----------------- 78:98:e8:1e:67:07 68:13:e2:02:ea:20 WEP-3ax F.E.freeSSID -35 default-location -- |
На сервере WNAM лог авторизации пользователей находится в файле: /home/wnam/logs/wnam.log
11:33:41.702 DEBUG [EltexWlcService.java:196] - CP ELTEX WLC clicked: username=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, sessionId=3098476543630901255, dst='http://www.msftconnecttest.com/redirect' 11:33:41.716 DEBUG [PageGenerator.java:713] - processAuthRequest ELTEXWLC: username=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, site_id=new, domain_id=3098476543630901255, dst='http://www.msftconnecttest.com/redirect' adv curr/max=1/1 11:33:41.719 DEBUG [PageGenerator.java:1300] - captive portal redirected to VOUCHER page, username=78:98:E8:1E:67:07, cust=new, form='6614c99dfd772e622ebb06a7' 11:34:13.380 DEBUG [VoucherHandler.java:52] - postVoucher CODE='V3U5', FORM=6614c99dfd772e622ebb06a7, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, site_id=new, name=78:98:E8:1E:67:07 11:34:13.382 DEBUG [VoucherHandler.java:62] - find_voucher: 66b34731933c505a427dad16, code=V3U5, status=Не активирован 11:34:13.395 DEBUG [VoucherHandler.java:125] - postVoucher OK CODE='V3U5', voucher='Группа: WNAM-WLC_01, владелец: admin', vg='WNAM-WLC_01' 11:34:13.399 DEBUG [PageGenerator.java:390] - processRedirectRequestCi mac=78:98:E8:1E:67:07, method=ORIGINAL, formName=, redirectUrl=null, key=b04fb14d-36fb-4c30-a886-bfbab119088c 11:34:13.401 DEBUG [PageGenerator.java:849] - loginAtNasCi ELTEXWLC mac=78:98:E8:1E:67:07, ip=192.168.3.21, server=100.110.0.246, dst='http://www.msftconnecttest.com/redirect' 11:34:13.406 DEBUG [EltexWlcService.java:66] - backToEltexWLC login server='100.110.0.246', user=78:98:E8:1E:67:07, password=password, dst='http://www.msftconnecttest.co...' 11:34:13.407 DEBUG [EltexWlcService.java:85] - open EltexWLC access REQ for IP=192.168.3.21, MAC=78:98:E8:1E:67:07 at NAS_IP=100.110.0.246 11:34:13.411 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket AUTH as=100.110.0.246, secret_len=10, attrs=[Vendor-Specific: 0x, User-Name: 78:98:E8:1E:67:07, User-Password: <stripped out>, NAS-IP-Address: 100.110.0.246, Acct-Session-Id: 3098476543630901255, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Port-Id: location data10] 11:34:13.411 DEBUG [ProfilingService.java:440] - handleMac on MAC: 78:98:E8:1E:67:07 for vendor D-Link International 11:34:13.412 DEBUG [ProfilingService.java:466] - handleMac on MAC: 78:98:E8:1E:67:07 checks added: 1, res: [D-Link International] 11:34:13.414 DEBUG [ProfilingService.java:1091] - Endpoint 78:98:E8:1E:67:07 logical profile set to Home Network Devices 11:34:13.414 DEBUG [ProfilingService.java:1102] - Endpoint 78:98:E8:1E:67:07 policy set assigned: [DLink-Device] 11:34:13.416 DEBUG [ProfilingService.java:469] - handleMac on MAC: 78:98:E8:1E:67:07 profiled in 5 ms. 11:34:13.433 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket AUTH as=100.110.0.246, secret_len=10, attrs=[User-Name: INTERNET, Vendor-Specific: 0x, NAS-IP-Address: 100.110.0.246, NAS-Port-Id: location data10, User-Password: <stripped out>, Vendor-Specific: 0x, Vendor-Specific: 0x, Acct-Session-Id: 3134505340649865221, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x] 11:34:13.434 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: 78:98:E8:1E:67:07, Vendor-Specific: 0x, Acct-Session-Id: 3098476543630901255, Acct-Status-Type: Start, Vendor-Specific: 0x, Event-Timestamp: 1723436510, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, NAS-IP-Address: 100.110.0.246] 11:34:13.435 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: 78:98:E8:1E:67:07, Vendor-Specific: 0x, Acct-Session-Id: 3098476543630901255, Acct-Status-Type: Interim-Update, Vendor-Specific: 0x, Event-Timestamp: 1723436806, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, Vendor-Specific: 0x, Vendor-Specific: 0x, Acct-Input-Gigawords: 0, Acct-Input-Octets: 128192, Acct-Output-Gigawords: 0, Acct-Output-Octets: 149134, Acct-Session-Time: 286, NAS-IP-Address: 100.110.0.246] 11:34:13.436 DEBUG [EltexWlcService.java:176] - sendCoa attrs=8, fail=false, resp=CoA-ACK 11:34:13.437 DEBUG [EltexWlcService.java:148] - open EltexWLC access SUCCESS for IP=192.168.3.21, MAC=78:98:E8:1E:67:07, num_avp=1 11:34:13.440 DEBUG [WnamRadiusService.java:558] - handleRadiusPacket ACCT as=100.110.0.246, secret_len=10, attrs=[User-Name: INTERNET, Vendor-Specific: 0x, Acct-Session-Id: 3134505340649865221, Vendor-Specific: 0x, Acct-Status-Type: Start, Vendor-Specific: 0x, Event-Timestamp: 1723436806, NAS-Port-Id: location data10, Called-Station-Id: CC-9D-A2-71-94-E0:data10, Vendor-Specific: 0x, Vendor-Specific: 0x, Vendor-Specific: 0x, NAS-Identifier: F.E.wlc-30, Framed-IP-Address: 192.168.3.21, Calling-Station-Id: 78-98-E8-1E-67-07, NAS-IP-Address: 100.110.0.246] 11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Interim-Update new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=78:98:E8:1E:67:07, NAS_IP=100.110.0.246, site_id=new 11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Start new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=78:98:E8:1E:67:07, NAS_IP=100.110.0.246, site_id=new 11:34:13.450 DEBUG [WnamCmdService.java:630] - ACCT Start new session ID=3098476543630901255, MAC=78:98:E8:1E:67:07, IP=192.168.3.21, User=INTERNET, NAS_IP=100.110.0.246, site_id=new |