由于大量Portal用户同时认证导致Portal服务器处理报文超时造成一个Portal用户也认证不上问题的解决方法
一、 组网:
使用iMC UAM做Portal认证,客户端采用网页或iNode方式。
二、 问题描述:
使用iNode客户端,认证时出现如下提示(下面是iNode客户端MainUI*.log的日志,客户端界面上显示的是下面的文字)
[2009-11-09 09:11:45] [Dbg] [e70] ShowLogOrSecInfo: :ConnId is 5021开始认证请求...[2009-11-09 09:11:45] [Warn] [e70] ShowLogOrSecInfo: :iCurrSelConn is 5021
[2009-11-09 09:11:45] [Dbg] [e70] updateview!
[2009-11-09 09:11:52] [Dbg] [e70] ShowLogOrSecInfo: :ConnId is 5021获取系统信息超时。
[2009-11-09 09:11:52] [Warn] [e70] ShowLogOrSecInfo: :iCurrSelConn is 5021
[2009-11-09 09:11:52] [Dbg] [e70] updateview!
[2009-11-09 09:12:03] [Dbg] [e70] ShowLogOrSecInfo: :ConnId is 5021Portal认证失败,网络故障。请更新本地IP,重新认证。
[2009-11-09 09:12:03] [Warn] [e70] ShowLogOrSecInfo: :iCurrSelConn is 5021
[2009-11-09 09:12:03] [Dbg] [e70] updateview!
三、 过程分析:
下面以某一用户的认证失败过程分析一下这个问题
该用户的组网如下:PC(10.153.141.101)--(10.153.141.1)55EI(10.153.6.42)----iMC(10.165.6.58)
客户端发出了探测报文(第2438,2439),正常回应.
iNode与PortalServer正常交互了user_customer_info。
iNode发出了domain_request(第2534),没有回应
iNode发出login_request(第4496),没有回应
6秒后iNode客户端重发了user_customer_info(6804,6830),正常交互
iNode客户端重发domain_request(6852),2秒后,PortalServr与设备交互了req_info(7322)和ack_info(7339)
4秒后,iNode客户端又发login_request(9560)
Portal Server与Portal设备交互了req_info和ack_info
3秒后,PortalServer向设备发送req_auth(11318),3S后Portal Server向inode客户端回应login_reponse(13794),由于login_request与login_response没有配对标识,此时不知道这个login_response是回应给No.4496(相差20s)还是No.9560(相差8s)的,从后面的报文分析,这个login_response很可能是回应No.4496的login_request的。但不管怎样,都超出了客户端5S的超时时间,所以这个login_response(No.13794)发给客户端后客户端创建的socket已经释放,客户端回应icmp port unreachable(No.13813)。注意此时设备已经认证该用户在线,但iNode客户端上由于login_request一直没有回应是认证失败的。对应“5021Portal认证失败,网络故障。请更新本地IP,重新认证。”
之后在30S的时间Portal Server又发了一次req_auth,此时用户已经在设备上在线,设备返回该用户已在线,同样Portal Server回给客户端的login_response由于超时没有被客户端接收到(No.15970)。
从上面的认证过程来看,造成问题的主要原因是Portal Server处理报文缓慢,主要体现在Portal Server发出的报文如req_info,req_auth,login_response发得慢,超过了客户端的等待时间,造成客户端认为报文回应超时而认证失败。
Portal Server目前的处理能力在1S两个报文左右,如果短时间内有大量的用户认证,比如这个例子中就是服务器侧的服务类型标识变更,大量用户使用变更前的后缀认证失败,不断重试造成了大量的portal报文滞留在内存中,造成所有的报文处理超时,一个用户也无法上线。此时由于domain_response回应超时,如果采用网页方式Portal认证的网也无法打开。
从问题的原因来看,只要Portal Server处理报文超时都有可能产生此问题,比如服务器突然性能下降,大量用户同时认证等。
四、 解决方法:
iMC UAM 3.60-E6203L06补丁解决。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作