AC旁挂核心,本地转发,多台AC(不同型号,不同版本)对接同一台第三方认证服务器
AC服务模板上配置的portal认证,但没有配置无感知认证。
wu
1. 终端完成portal认证后,每隔48 h,即使终端一直在使用,也会在终端侧提示“无法上网”,需要重新断开wifi后重连,此时会重定向自动弹出portal认证页面,需要用户重新进行portal认证;
2. 服务器侧显示是AC向服务器侧发起了终端portal下线请求;
3. 故障发生时,AC上的portal表项消失,即通过display portal user username xxx 搜索找不到有对应终端的记录。需要终端重新portal认证后,AC上才会出现portal表项。
1. 首先查看AC上的配置,在对应的portal domain域中并没有发现存在 authoriation-attribute idle-cut 相关的闲置切断配置,而且故障时终端一直在使用流量,并不存在被闲置切断的可能性。
2. 查看AC上的 display radius scheme 上也没有1812和1813端口在近期发生block的记录。
3. 对此,在AC和服务器之间进行wireshark抓包,同时,在AC上开启debug记录:
<AC> debug portal packet
<AC> debug portal event
<AC> debug portal error
<AC> debug radius packet user [username]
<AC> debug radius event user [username]
<AC> debug radius error user [username]
结果发现:
在终端通过portal认证48 h,AC给服务器发起了NTF_LOGOUT报文,向服务器侧请求终端下线,
参考案例:https://zhiliao.h3c.com/Theme/details/16656
但是针对对debug和抓包的进一步分析发现:
在终端portal登录48 h后,AC先向服务器发送了一次计费更新报文,服务器回复了accounting response报文,但随即AC立刻向服务器发送了NTF_LOGOUT报文请求下线(携带原因是:Session-timeout),那么很有可能是这个计费的过程出现了异常,导致AC判断这个终端的Session时间到了,于是给服务器发送终端下线的请求,以下结果说明了这一问题:
根据上述wireshark和debug结果可以看出,AC在终端登录48 h后,给服务器发送了计费更新,而在收到服务器的计费应答报文后,发现RespCode = 0,于是判定终端Session-timeout,这才发送了NTF_LOGOUT报文给服务器,请求终端下线。
## 以上应该与服务器回复的Accounting Response报文中的Attribute没有携带相关的属性有关。
需要排查服务器侧为什么给AC发送的计费更新报文没有携带属性。
那么,这个48 h的Session时长是从哪里来的呢?
查看Wireshark报文可知,终端的portal认证成功后,服务器通过Access Accept报文向终端携带了Session-Timeout 48 h的属性,如下图所示:
修改服务器侧的机制
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作