S7700交换机dot1x功能探测机制导致业务异常

发布时间:  2016-01-04 浏览次数:  213 下载次数:  0
问题描述
S7706在部署dot1x功能时,有主备两套服务器,在主服务器down并且再次恢复时,出现dot1x用户认证成功后,客户端提示安全检查失败,主动发logoff报文下线。
告警信息
处理过程


1. 
客户端抓包显示用户认证成功,设备向客户发eap-success报文。之后iNode客户端与iMC服务器通过UDP 9019端口进行策略交互,策略交互失败,客户端主动发eap-logoff报文下线。

2.  服务器上抓包显示用户向主radius服务器进行认证,但向备服务器进行计费。

3. 设备日志中有记录计费服务器down,所以会向备计费服务器发计费报文。


4. 设备上统计信息显示计费报文有重传,总重传次数为37544 – 37505 = 39。



根因

1.主radius服务器出现故障,导致设备向主radius服务器发的认证报文服务器无响应,在重传两次后服务器仍无回应,设备认为主认证服务器down,将服务器状态置为down,之后向备认证服务器发送认证请求报文。同样,设备向主计费服务器的报文响应,将主计费服务器状态转为down,之后向备计费服务器发送计费请求报文。

2. 因为配了radius服务器探测,默认会每隔一分钟向down的认证服务器发认证请求报文进行探测。当主radius服务器恢复时,将会回应设备的探测报文,设备将主认证服务器状态置为up,接下来的认证请求报文将发向主认证服务器。由于并不会向计费进行探测,所以主计费服务器的状态将一直为down,主radius服务器恢复后也无法获取主计费服务器已OK。最终出现认证向主服务器认证,计费向备服务器计费现象。

3. 对于状态down的服务器,设备上有两种机制将其状态置为up:

1) 服务器探测功能。

通过radius-server testuser命令来使能该功能。

该功能的机制是周期性(可配,默认为1分钟)向down的服务器发送认证请求报文,若收到服务器的响应,则将服务器状态置为up并停止探测,否则继续探测。该探测只对认证服务器生效。

相关命令:

radius-server testuser命令用来创建基于RADIUS模板的自动探测用户。

radius-server detect-server命令用来配置RADIUS自动探测周期。

2)主动激活功能。

该功能默认开启,但在配了探测时不生效。其原理是每隔一定时间(默认为5分钟)强制将down的服务器状态转为up以试探该服务器是否真的已恢复。该功能对认证服务器和计费服务器均生效。

相关命令:radius-server dead-time命令用来配置主用服务器恢复激活状态的时间。

解决方案

1.去掉服务器探测功能 [7706] undo radius-server testuser

分析:去掉服务器探测功能后,由于默认服务器主动激活功能生效,对于down的认证和计费服务器,默认5分钟后设备会将其状态置为up,重新尝试向其发送报文。

2.增大服务器的重传次数和重传间隔(可选) [7706] radius-server retransmit 5 timeout 10

分析:将重传次数配为5次,重传间隔为10秒,默认重传次数为3次,重传间隔为5秒。

3.radius服务器侧进行调整。对认证和计费服务器不是同一个场景不进行检查。认证服务器和计费服务器不是同一个是一个可能出现的场景,属于正常场景。

建议与总结
在部署dot1x功能时,需要结合应用服务器的情况,充分考虑主备切换情况。

END