某局点Portal认证成功率低问题处理经验案例
一、问题现象
某局点购买无线控制器WX2540H(V7平台,版本为R5208P03),配合瘦AP WA4320-ACN-SI,部署无线网络。前期使用Portal配合短信服务器做短信认证功能,配合第三方服务器对接Portal、AAA、短信网关功能。
在使用Portal认证功能时,Portal页面重定向成功,Portal server为第三方服务器,定制化页面为短信获取认证密码。输入手机号,点击获取密码,手动输入密码后,点击登录,页面无响应。尝试多点几次登陆后,可正常认证成功。
二、原因分析
参考无线云图—无线Portal认证故障排查,按文档中排查流程逐步排查故障。
1、终端接入获取地址正常,可正常重定向Portal页,说明终端与Portal Server之间连通性没问题。
2、检查AC与AP运行状态,AC与Portal Server间ping测试,时延正常未丢包。AP运行正常,未出现掉线或重启。
3、检查AC portal相关配置,SSID指定认证域domain配置,domain对应radius配置,未发现异常。
以上基础排查完成后,仍然无法确认Portal认证失败原因,因此收集debug信息同时在Portal Server上同步抓包分析具体原因。
收集的AC侧debug信息过滤终端的IP地址。分析交互过程,发现AC在收到portal server发送的req_auth报文后,AC立即回复ack_auth报文,错误码errcode=1,查询portal认证代码文档,当Type值为 4 时(ack_auth) ,errcode=1,表示AC设备告诉portal server此用户认证请求被拒绝。
*Dec 23 18:02:26:596 2017 H3C PORTAL/7/PACKET:
Portal received 63 bytes of packet: Type=req_auth(3), ErrCode=0, IP=192.168.10.4
*Dec 23 18:02:26:596 2017 H3C PORTAL/7/PACKET:
02 03 00 00 9a 3b 06 28 c0 a8 0a 04 00 00 00 02
16 34 10 9a 0d df 31 d4 15 9d 95 ef 30 28 fb 66
01 0d 31 38 36 39 31 39 37 33 39 30 37 04 12 ba
eb 19 f0 12 f8 20 d2 6e 0e 48 28 74 29 ba db
*Dec 23 18:02:26:597 2017 H3C PORTAL/7/PACKET:
Portal sent 23 bytes of packet: Type=ack_auth(4), ErrCode=1, IP=192.168.10.4
*Dec 23 18:02:26:597 2017 H3C PORTAL/7/PACKET:
[ 5 TEXTINFO ] [ 7] [AC999]
查看Type=req_auth(3)与Type=ack_auth(4)报文时间戳18:02:26:596与18:02:26:597,两个报文之间间隔为1ms,报文交互是连续的。正常交互情况下,AC在收到portal server的req_auth报文后,下一步应该与AAA交互,做用户名密码信息验证。但debug信息看到并没有这个交互过程,并且debug调试开关也打开了AAA交互调试开关。
由于最终是AC设备告诉Portal Server此用户认证请求被拒绝,因此继续往回查debug信息是否有异常。
在AC收到Type=req_auth(3)报文之前,AC与Portal Server之间会先进行challenge交互。多次复现问题,收集debug和抓包信息,发现出问题时,portal server响应的Type=ack_challenge(2)报文后与发送Type=req_auth(3)报文之间间隔时间如果大于大于15s,认证会失败;这两个报文间隔时间小于15s,认证可成功。
查看debug信息发现,AC设备在收到Portal Server发送的Type=ack_challenge(2)报文后,计时器开始计时,超时时间为15s,15s后未收到Portal Server下一步交互报文,则停止计时,并删除用户信息。因此,在超时后AC设备收到Type=req_auth(3)报文时,AC设备直接拒绝接入,原因是反查终端表项失败。
Auth-SM [192.168.10.4]: Started the auth_sm timer, timeout=15 sec. //计时器开始计时15s
*Dec 23 18:01:40:086 2017 H3C PORTAL/7/PACKET:
Portal sent 34 bytes of packet: Type=ack_challenge(2), ErrCode=0, IP=192.168.10.4
*Dec 23 18:01:40:086 2017 H3C PORTAL/7/PACKET:
[ 3 CHALLENGE ] [ 18] [907c20d7d10eb8b344fa1f875f8f5ea0]
Auth-SM [192.168.10.4]: Stopped the auth_sm timer. //停止计时
*Dec 23 18:01:55:436 2017 H3C PORTAL/7/EVENT: User-SM[192.168.10.4]: Auth-SM logged out the user and notified User-SM to process.
*Dec 23 18:01:55:436 2017 H3C PORTAL/7/FSM: User-SM[192.168.10.4]: Begin to run.
*Dec 23 18:01:55:436 2017 H3C PORTAL/7/FSM: User-SM [192.168.10.4]: State changed from Authenticating to Done.
*Dec 23 18:01:55:436 2017 H3C PORTAL/7/FSM: User-SM[192.168.10.4]: User was destroyed. //销毁用户
*Dec 23 18:01:55:437 2017 H3C PORTAL/7/EVENT: User-SM[192.168.10.4]: Notified User-Detect-SM to stop detection.
*Dec 23 18:02:26:596 2017 H3C PORTAL/7/PACKET:
Portal received 63 bytes of packet: Type=req_auth(3), ErrCode=0, IP=192.168.10.4
*Dec 23 18:02:26:596 2017 H3C PORTAL/7/PACKET:
02 03 00 00 9a 3b 06 28 c0 a8 0a 04 00 00 00 02
16 34 10 9a 0d df 31 d4 15 9d 95 ef 30 28 fb 66
01 0d 31 38 36 39 31 39 37 33 39 30 37 04 12 ba
eb 19 f0 12 f8 20 d2 6e 0e 48 28 74 29 ba db
*Dec 23 18:02:26:597 2017 H3C PORTAL/7/PACKET:
Portal sent 23 bytes of packet: Type=ack_auth(4), ErrCode=1, IP=192.168.10.4
*Dec 23 18:02:26:597 2017 H3C PORTAL/7/PACKET:
[ 5 TEXTINFO ] [ 7] [AC999]
三、解决办法
最终定位是由于Portal Server发送Type=req_auth(3)超时导致,协调服务器侧调整处理机制后,问题解决。
2018年11月