锐捷1X认证成功后异常掉线排查SOP
一、故障现象
终端802.1x认证成功后异常下线。
二、组网拓扑
常规网络拓扑如下:

拓扑描述: PC通过接入、汇聚交换机连接到核心,PC的网关在核心上, 下联认证全部开在核心上
三、可能原因
-
用户一段时间没有使用流量
-
客户端和SAM版本不兼容导致下线
-
VLAN 端口迁移,导致用户明明没有主动下线却提示主动下线
四、故障排查步骤
步骤一:登录SAM上排查下线原因
-
到SAM系统WEB管理页面的运维管理>上网明细管理,找到相关的用户,查看他的下线原因,根据上面的提示可初步判断下线原因
注:SAM上的用户下线原因基本上是准确的,但是由于网络环境复杂,有可能会有存在误差的情况
-
如设备上提示下线原因是无流量,如下图所示,则为SAM收到流量审计设备(如RSR77、ACE等)的TCP2009无流量通知

-
如设备上提示下线原因是CODE4(空闲值超时),如下图所示,则为18K的记账结束报文中CODE值为4,为18K无流量下线 。

步骤二:检测NAS上无流量下线时间配置
-
根据相关提示,确定无流量下线的时间,查看18K配置 ,参考命令如下:
offline-detect interval 15 threshold 0 //15分钟内未检测到用户流量,就将用户踢下线。N18K通过查看MAC地址表是否有流量hit来判断
offline-detect interval 15 threshold 0 vlan 1000-1500 //可选,基于vlan 1000-1500开启无流量下线功能
-
若18K上提示下线时间未到就下线了,那么无流量下线应该是由其他设备发起,需要排查其他联动设备的流量检测相关功能。
如RSR77配置如下:
sam-acct user keepalive-detect enable //开启无流量检测功能【默认已开启】
sam-acct user keepalive-detect 900 //900秒内流量为0时踢用户下线【默认900秒】
步骤三:交换机以及服务器上进行抓包分析
① 交换机上通过配置镜像端口配合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
六、总结与建议
-
debug命令执行请在业务低峰期操作
阅读剩余
版权声明:
作者:SE_You
链接:https://www.cnesa.cn/4568.html
文章版权归作者所有,未经允许请勿转载。
THE END