Print

信创终端iNode认证失败报错syncUserError

2025-11-20 发表

问题描述

信创终端iNode认证失败报错syncUserError

过程分析

收集iNode详细级别日志和uam debug日志,分析如下:

第一次上线成功,seqidC5LE66LW(seqid用来标识唯一在线用户)

%% 2025-11-13 08:33:08.683 ; [DBG] ; [24180] ; LAN ; XXX ; 2 ;  ; C5LE66LW ; Send message attribute list:

Code = 2 ID = 72:

User-Name(1) = XXX

Service_Type(6) = 2

State(24) = C5LE66LW

Class(25) = C5LE66LW

Termination-Action(29) = 1

 

然后iNode收到操作系统异常会话关闭消息(一些信创终端可能存在此问题,如下日志在iNodeAuth日志里记录),于是iNode在08:34:49给设备发了eap下线报文

2025-11-13 08:34:49.102 [DBG] [2057,7fad0fffe0] syswakeup.[signal_callback]session removed or PrepareForShutdown.

随后设备给EIA发了计费结束,原因是客户端主动下线

%% 2025-11-13 08:34:49.339 ; [DBG] ; [26064] ; LAN ; 

=  XXX ; 4 ; 9e65c6f9c4304b2e81fcac374bb057f6 ;  ; Received message from XXX:

CODE = 4 ID = 24.

       User-Name(1) = ....J9..PTRMTksGYiZ/GBs1c1QtL5ZL4iU= XXX

       Service-Type(6) = 2.

       Acct-Authentic(45) = 1.

       Class(25) = C5LE66LW

       Acct-Terminate-Cause(49) = 1.

       NAS-IP-Address(4) = 381967376.

 

下线后,客户端自动重连发起第二次上线,radius上线成功,seqidKBbQIJ4I

%% 2025-11-13 08:35:01.132 ; [DBG] ; [18500] ; LAN ; XXX ; 2 ;  ; KBbQIJ4I ; Send message attribute list:

Code = 2 ID = 138:

User-Name(1) =XXX

Service_Type(6) = 2

State(24) = KBbQIJ4I

Class(25) = KBbQIJ4I

 

但是因为策略服务器查询在线用户时使用的还是第一次上线的seqid C5LE66LW(第一次上线时的策略服务器交互还未结束,即radius掉线了,但是策略服务器感知不到),导致查不到在线用户,终端报错syncusererror掉线

 

%% 2025-11-13 08:35:17.569 ; [WRN] ; [3868] ; DataSynTsk ; onQryOnlinesMsg: fail to get online info .

%% 2025-11-13 08:35:17.570 ; [DBG] ; [19004] ; DataSynTsk ; onQryOnlinesMsg: input - seqId=C5LE66LW.

 

解决方法

该问题根因是终端因操作系统异常下线消息等原因进行快速下线上线的场景,策略服务器未感知到掉线,继续使用上一次认证的seqid去查询在线用户导致查不到在线用户,将终端下线。可以升级EIA E0633P04以后版本解决。新版本的EIA对这种情况做了兼容,seqid不一致时还会用MAC或者IP去查一下在线信息,避免用户掉线发生。