一、故障现象
WEB认证提示认证失败或提示连接认证服务器超时。
二、组网拓扑
常规网络拓扑如下:

拓扑描述: PC通过接入、汇聚交换机连接到核心,PC的网关在核心上, 下联认证全部开在核心上。
三、可能原因
-
没有满足SAM的校验条件,导致认证不通过;
-
18K、eportal、SAM之间的对接配置问题;
-
N18K和eportal或者和SAM的连通性异常,导致报文无法正常交互;
-
N18K内部问题导致无法正常处理portal或者radius报文;
-
eportal服务器或者SAM服务器异常,导致无法正常处理或回应报文;
-
radius 服务器故障,18K有配置逃生,但是配置了none认证;
四、故障排查步骤
步骤一:SAM上查看认证失败日志
登录SAM的web界面,查看对应用户的认证日志,明确对应的失败原因 如SAM上有提示:不允许在该地区使用本服务、信息校验失败等一些较明显提示,则根据提示到SAM上先进行地区、服务、接入控制的排查调整

步骤二:检查18K和SAM以及eportal的配置
检查18K配置,主要检查如radius server 配置,radius key 配置和portal key的配置,snmp的community团体字以及对应的源接口配置是否和SAM和eportal的配置一致 可过如下命令检查18K的 show run | in radius show run | in portal show run | in snmpe'po SAM和eportal的需要查看对应的web界面 SAM的

eportal服务器的

同时eportal服务器上需要检查下设置的协议以及加密方式是否与18K的一致(18K默认协议:CMCC,加密方式:PAP)

步骤三:18K上检查radius服务器和portal服务器的状态
-
通过show radius server明确配置的radius服务器IP以及radius状态(需要注意没配置test检测账号的话,下面没有认证用户触发认证失败,这个命令查看的状态会一直是active的)。

-
通过show web-auth template明确对应WEB认证调用的认证/记账模板以及portal服务器的状态(核实调用的认证、机制模块是否正确,portal和radius状态是否为enable)

-
使用PING命令明确和服务器的连通性(前提服务器没有禁PING或者中间没有安全设备禁止ICMP流量),切记测试的是配置的radius源端口IP与服务器的连通性,如果不通,排查中间链路问题;
-
若18K到服务器不通后,检查网络没有问题,再排查下SAM是否故障。如果SAM故障了,检查下18K是否配置了逃生。如果SAM故障,逃生也配置了,但是逃生功能不生效认证的时候“提示认证超时,设备未响应”,注意查看下是否配置了 none认证;

配置了none意思是如果radius不可达,那用户将不用认证就可以直接上网。但是前提是radius要先超时,超时配置为radius-server timeout xxx,radius是默认5s,重传3次,共20s超时后才会到none认证,但是portal默认9秒没有响应就超时。这样会到导致portal先超时,radius不会走到none认证,用户逃生也就失效。
此时有两种方法:
1.删除none认证;
2.radius检测改短小于portal 超时时间9S。配置:radius-server timeout 2 ;
步骤四:18K上查看是否有radius超时记录
18K上可以通过show radius timeout record(隐藏命令,查看radius服务器超时记录)查看异常时间段是否有对应用户的radius超时记录。如下图,可明显看到对应446549用户在08:15左右有认证超时的问题,认证超时的原因是由于服务器未回应认证报文(下一步基本就是查一下radius服务器是否有异常)。

常见timeout reason如下:
"Server no respond", 服务器没响应
"Send packet fail", 发包失败
"User session exist", 用户的session已经存在,可能是前端业务在等服务器返回的时候,又发起了业务
"Service not exist", radius服务器没有配置
"Front delete user", 前端业务把用户删除了(前端业务指的是 dot1x web这种认证业务)
步骤五:抓取整个WEB认证交互报文分析
WEB报文交互流程如下,在终端,18K以及服务器侧分别抓包,分析具体是哪个报文交互异常

步骤六:收集信息,联系4008111000分析;
五、故障信息收集
terminal mon
terminal length 0
show ver detail
show run
show cpu
show mem
sh memory history
show cpu-pro type web
show cpu-pro type webs
show processes cpu | in wba
debug scc stat
debug web cli
show mac-address-table | include ***(用户的MAC地址)
show arp | include ****(用户的MAC地址)
show ip dhcp snooping
show ip dhcp snooping binding | in ****(用户的MAC地址)
sh web user ip *******(用户的IP)
sh web syslog ip *******(用户的IP)
sh web syslog mac *******(用户的mac)
show web-auth authmng abnormal
show radius timeout record
show web temp
show web portal
show radius auth stat
show radius acct stat
show log
terminal no length
terminal no mon