无感知认证成功后异常掉线排查SOP
一、故障现象
客户现场配置无感知认证,终端无感知认证成功后,出现异常下线的现象。
二、组网拓扑
常规网络拓扑如下:

拓扑描述: PC通过接入、汇聚交换机连接到核心,PC的网关在核心上, 下联认证全部开在核心上
三、可能原因
-
NAS上Mab相关配置错误或缺失;
-
NAS未开启网关模式致认证异常;
-
现场网络环境中存在环路导致认证异常;
-
现场网络环境中存在IP地址冲突;
-
radius服务器发生异常,导致终端下线;
-
认证服务器踢用户下线;
四、故障排查步骤
步骤一:检查NAS上认证配置是否完整正确
-
检查设备是否开启网关模式,参考命令: auth-mode gateway
① 设备配置网关模式后,不能仅通过核查配置中是否有配置auth-mode gateway,还需要通过debug scc status中的scc mode去核查是否为gate mode(网关模式需要重启才能生效,配置不重启也是不生效的)
网关模式:

认证模式:

② 可以通过show security-log detail all | in gate核查对应配置网关模式的时间,结合对应show ver设备启机时间,就能明确对应配置网关模式后是否有重启
-
检测Mab认证配置是否完整
① 动态Mab用户,检查是否配置了命令“aaa authorization ip-auth-mode mixed ”,配置后设备进行IP+Mac校验。
② 动态Mab用户,检查是否配置了命令“dot1x valid-ip-acct enable”,1x组件会对上线的用户进行ip校验,持续5分钟没有获取到ip地址的用户会被下线。
③ 动态用户,检查是否配置了DHCP Snooping 功能以及用户信息是否出现在snooping表里面。
④ 静态用户,检测是否配置了命令“dot1x address-binding mac XXXX.XXXX.XXXX ip X.X.X.X ”
完整配置参考如下命令:
模块一:开启网关模式
aaa new-model //启用AAA
模块二:AAA配置
aaa accounting network default start-stop group radius // AAA 参考配置,以实际业务部署为准
aaa authentication dot1x default group radius // AAA 的1x模板参考配置,以实际业务部署为准
aaa authentication web-auth default group radius // AAA 的web模板参考配置,以实际业务部署为准
aaa authentication login default local // AAA 的设备登入采用本地username/password
aaa accounting update periodic 15 //配置aaa记帐更新周期15分钟
aaa accounting update //配置aaa记帐更新
no aaa log enable //关闭aaa log
模块三:对接radius服务器
radius-server host 172.18.157.32 key ruijie //配置aaa server IP和key,单radius场景适用
模块四:1X认证列表调用
dot1x accounting default //选配,当aaa自定义list name时,需要匹配
dot1x authentication default //选配,当aaa自定义list name时,需要匹配
模块五:Portal服务器对接
web-auth template eportalv2
ip 172.18.157.33 //portal服务器的IP
url http://172.18.157.33/eportal/index.jsp //portal服务器的url地址
authentication default //选配,当aaa自定义list name时,需要匹配
accounting default //选配,当aaa自定义list name时,需要匹配
web-auth portal key ruijie //必配,和eportal对接加密url的密钥,所以对接第三方服务器时,建议不要配置Portal key,防止对接失败
模块六: IP以及Mac地址有效性检查配置
aaa authorization ip-auth-mode mixed //必配,配置dot1x上传sam的IP方式为混合模式,会通过多种方式轮询获取IP(su客户端/dhcp/radius等)
ip dhcp snooping //必配,无感知认证需要通过dhcp snooping模块获取IP地址,否则SAM会出现0.0.0.0地址的用户
dot1x mac-auth-bypass valid-ip-auth //由DHCP模块通告MAB模块开始认证。注意该命令配置后会导致已有用户掉线,不建议在业务高峰期开启。
dot1x valid-ip-acct enable //必配,通过记帐更新报文上传用户IP通告给SAM,如果发现1x认证模块没有终端用户的IP表项,5分钟后就会将用户踢下线。
模块七: 接口下开启认证
interface range GigabitEthernet 0/2-3 //接口启用802.1X认证
web-auth enable eportalv2 //接口使能WEB认证
dot1x port-control auto //接口使能802.1X认证
dot1x mac-auth-bypass multi-user //必配,接口下使能无感知认证
dot1x mac-auth-bypass vlan (vlan-list) //选配,接口下配置,可基于用户认证的vlan范围,启用无感知认证
步骤二:检查设备环境是否正常
① 检查网络环境是否有环路,检查项如下:
-
检查是否有异常数据,比如异常组播、广播数据,参考命令“show int counter summary up”
-
检查生成树是否端口状态是否有频繁变化,参考命令“show spanning summary”
-
检查RLDP是否有异常日志提示
-
分析设备日志是否Mac地址漂移、冲突等,参考命令“show logging”
② 检查终端获取的IP地址是否存在冲突,参考命令“show arp detail X.X.X.X”
③ 查看radius服务器状态是否正常。
-
检查服务器状态是否处于激活状态,参考命令:show radius server”
-
检查服务器状态是否有超时记录,参考命令:show radius server timeout
步骤三: 交换机以及服务器上进行抓包分析
① 交换机上通过配置镜像端口配合wireshark抓包
② 服务器端口一般支持tcpdump抓包,参考命令如下:
tcpdump -i <网卡名称> -t -s 0 w /<保存路径>/mab.pacp -vvv
步骤四: 通过show以及debug命令分析异常下线原因
① show dot1x user diag mac xxx //查看相关用户的会话过程

如上图所示:
create pae:创建用户;
pkt start:客户端start报文发起的认证;
acct start:认证过,开始记账;
acct stop:用户下线,发出记账结束报文。
aaa del:服务器踢线
aaa reject:服务器拒绝
pkt logoff :客户端主动下线
set scc fail:调用scc接口失败
set scc cb fail:底层返回设置用户失败
no flow:无流量下线
auth exceed:状态机重认证次数超过配置
session tout:在线时长或者流量超过限制
no valid ip:获取不到ip
reqid tout:客户端超时
aaa tout:服务器超时
detail ( 一般18K设备端原因导致的才会出现 ):
flow used up:流量耗尽
aaa no eap:服务器报文长度错误
get author vid fail :获取vlan授权失败
am not allowed :am规则不匹配
② show dot1x authmng abnormal | include ruijie001 //查看异常的1x认证事件

/* 1x认证失败原因打印 */
#define amg_1x_result_str(rslt) \
((rslt == D1X_RESULT_REQID_TOUT) ? "request id timeout" : \---》客户端超时
(rslt == D1X_RESULT_REQ_TOUT) ? "request timeout" : \---》服务器超时
(rslt == D1X_RESULT_AAA_TOUT) ? "aaa timeout" : \---》服务器超时
(rslt == D1X_RESULT_OTHER_TOUT) ? "other timeout" : \
(rslt == D1X_RESULT_AAAREJ) ? "aaa reject" : \----》服务器拒绝
(rslt == D1X_RESULT_IPAM_NOT_ALLOWED) ? "ipam not allowed" : \----》am规则不匹配
(rslt == D1X_RESULT_IP_BANDWIDTH_FAIL) ? "ip band width fall" : \---》授权失败
(rslt == D1X_RESULT_SET_SCC_FAIL) ? "set scc fall" : \-----》设置scc失败
(rslt == D1X_RESULT_USR_LOGOFF) ? "user logoff" : \----》客户端logoff
(rslt == D1X_RESULT_AUTOR_VLAN_FAIL) ? "author vlan fail" : \---》授权vlan失败
(rslt == D1X_RESULT_VID_MODIFY) ? "vid modify" : \
(rslt == D1X_RESULT_PORT_USR_LIMIT) ? "prot user limit" : \---》端口用户数限制
(rslt == D1X_RESULT_TOTAL_USR_LIMIT) ? "total user limit" : \---》全局用户数限制
(rslt == D1X_RESULT_ACCT_CACHE_DENY) ? "acct cache deny" : \---》用户在记账缓存中
(rslt == D1X_RESULT_OTHER_SEC_TYPE) ? "other security type" : \---》其他安全配置,如静态mac
(rslt == D1X_RESULT_CLOSE_AUTH_SWITCH) ? "close auth switch" : \---全局1x开关关闭
(rslt == D1X_RESULT_DENY_NON_RG_CLIENT) ? "deny non-rg client" : \---》非锐捷客户端
(rslt == D1X_RESULT_MAB_VLAN_DENY) ? "mab vlan deny" : \---》mab vlan授权失败
(rslt == D1X_RESULT_VALID_IP) ? "valid ip" : \---》没获取到有效ip
(rslt == D1X_RESULT_SET_ACL_FAIL) ? "set acl fail" : \---》设置scc失败
(rslt == D1X_RESULT_PORT_DWN) ? "port down" : \---》端口down
(rslt == D1X_RESULT_NOT_ALLOW_USR) ? "not allow user" : \----》用户不在可认证列表里
(rslt == D1X_RESULT_CONFILCIT_ACCOUNT) ? "conflict account" : \----》账号冲突
(rslt == D1X_RESULT_VALID_IP_MAB) ? "valid ip mab" : "none")-----》需要获取ip后进行mab认证
/* 1x下线原因 */
#define amg_1x_offline_str(code) \
((code == D1X_OFFLINE_USER_LOGOFF) ? "user logoff" : \---》客户端logoff
(code == D1X_OFFLINE_DM) ? "server kickout user" : \---》服务器踢线
(code == D1X_OFFLINE_NOFLOW) ? "no flow" : \---》无流量
(code == D1X_OFFLINE_NOIP) ? "no ip" : \---》无合法ip
(code == D1X_OFFLINE_SESSION_TOUT) ? "session timeout" : \---》费用、流量耗尽
(code == D1X_OFFLINE_FLUX_OUT) ? "flux out" : \
(code == D1X_OFFLINE_SVRKICKOUT_USR) ? "svr kickout user" : \----》服务器踢线
(code == D1X_OFFLINE_HELLO_TIMEOUT) ? "hello timeout" : \----》客户端探测超时
(code == D1X_OFFLINE_SCC_RB_FAIL) ? "scc rollback" : \---》设置scc失败
(code == D1X_OFFLINE_MAC_RB_FAIL) ? "mac rollback" : \
(code == D1X_OFFLINE_IP_BANDWIDTH_FAIL) ? "ip bandwith fail" : \---》授权失败
(code == D1X_OFFLINE_NO_PORT_CONTROL) ? "mng no port control" : \---》删除端口受控
(code == D1X_OFFLINE_AUTHOR_CHANGE) ? "mng author change" : \----》授权配置变更
(code == D1X_OFFLINE_ALLOW_USR_CHANGE) ? "mng allow user change" : \---》允许认证的用户列表变更
(code == D1X_OFFLINE_DIRECT_VLAN_CHANGE) ? "mng direct vlan change" : \---》免认证配置变更
(code == D1X_OFFLINE_CLEAR_CLI) ? "mng clear cli" : \---》cli操作删用户
(code == D1X_OFFLINE_IPAM_CHANGE) ? "mng ipam change" : \---》am规则变更
(code == D1X_OFFLINE_STAITC_MAC) ? "mng staitc mac" : \---》静态mac配置变更
(code == D1X_OFFLINE_FILT_MAC) ? "mng filter mac" : \----》过滤mac配置变更
(code == D1X_OFFLINE_SET_MUMAB) ? "mng set mumab" : \---》multi-mab配置变更
(code == D1X_OFFLINE_MAB_VLAN_CHANGE) ? "mng mab vlan change" : \---》mab vlan配置变更
(code == D1X_OFFLINE_IP_ACCT_CHANGE) ? "mng ip acct change" : \---》记账方法变更
(code == D1X_OFFLINE_CTRL_MODE) ? "mng ctrl mode" : \---》受控模式变更
(code == D1X_OFFLINE_VID_MODIFY) ? "mng vlan change" : \---》vlan配置变更
(code == D1X_OFFLINE_PORT_MOVE) ? "port move" : \---》端口迁移
(code == D1X_OFFLINE_VLAN_MOVE) ? "vlan move" : \---》vlan迁移
(code == D1X_OFFLINE_PORT_VLAN_MOVE) ? "port-vlan move" : \---》端口和vlan迁移
(code == D1X_OFFLINE_INVALID_IP) ? "invalid ip" : \---》未获取有效ip
(code == D1X_OFFLINE_PORT_DOWN) ? "port down" : \---》端口down
(code == D1X_OFFLINE_GSN_FAIL) ? "gsn fail" : \---》设置gsn失败
(code == D1X_OFFLINE_MAB_2_1X) ? "mab to 1x" : \---》mab被1x抢占
(code == D1X_OFFLINE_MAB_2_GUEST) ? "mab to guest vlan" : \---》跳转到guest-vlan
(code == D1X_OFFLINE_DHCP_AUTHOR_FAIL) ? "dhcp author fail" : \---》ip授权失败
(code == D1X_OFFLINE_DB_RECOVER_FAIL) ? "db recover fail" : \---》数据库恢复用户失败
(code == D1X_OFFLINE_ADB_AUTHOR_FAIL) ? "adb author fail" : \--》静态地址绑定授权失败
(code == D1X_OFFLINE_RECOVER_2_SCC_FAIL) ? "recover to scc fail" : \---》向scc恢复用户失败
(code == D1X_OFFLINE_HA_RECOVER_FAIL) ? "ha recover fail" : \---》热备切换,恢复用户失败
(code == D1X_OFFLINE_IP_MAB_UNSET_IP) ? "ip mab unset ip" : \----》获取ip后进行mab认证的用户ip失效了
(code == D1X_OFFLINE_S_MAB_CHANGE) ? "s mab change" : "none")---》单mab状态变化
步骤五: 收集信息,请联系4008111000协助处理
五、信息收集
通用命令:
terminal length 0
show ver detail
show run
show mac-address-table | include XXXXXX 具体的Mac地址
show arp | include 5c66.6c7c.a3e3
show ip dhcp snooping
show ip dhcp snooping binding | in XXXXXX 具体的Mac地址
show dot1x user mac XXXXXX 具体的Mac地址
show dot1x
show radius server 执行3此,每隔5秒
show radius timeout record
极简版本特有命令:
show dot1x authmng statistic
show dot1x authmng mab statistic
show dot1x authmng abnormal xxx
1x组件debug调试log开关
注意:
1、DEBUG操作有风险(最坏情况可能需要重启设备才能恢复),需要客户知晓风险并同意后才能收集,建议在低峰期操作(若是核心设备,必须更加慎重评估)!若故障排查还需要抓包,DEBUG和抓包最好同时收集!
2、某些设备存在bug,开启客户端检测功能(dot1x client-probe enable)的情况下,开启debug可能导致设备死机,若客户环境可以开启debug,建议先将客户端检测功能关闭(no dot1x client-probe enable )
3、主要用于异常下线时问题排查
debug aaa event
debug radius event
debug dot1x packet
debug dot1x event
debug dot1x stm //认证状态机信息
debug dot1x error
debug dot1x no-filter //12.X特有
deb dot1x dump gl
debug scc dump err
debug dot1x dump global
debug dot1x dump limit-msg
terminal no length
六、总结与建议
-
异常下线排查主要有三个方向
① 服务器导致的下线
② 配置导致的下线
③ 异常下线,例如:终端异常、设备软件bug
阅读剩余
版权声明:
作者:SE_You
链接:https://www.cnesa.cn/6102.html
文章版权归作者所有,未经允许请勿转载。
THE END