Print

某局点NAT组网portal认证报错“向设备发送请求超时”

1天前 发表

组网及说明

现场在AC(接入设备)的出接口方向做了NAT


问题描述

现场可以打开portal认证页面,但是输入用户名密码后点击上线提示“向设备发送请求超时”,是portal认证中十分常见的一个报错


过程分析

此类问题在检查完iMC侧和设备侧配置后若无明显问题,建议直接收集portalserver和uam的debug级别日志分析

查看portalserver的日志,发现iMC给设备发送req_info报文后,设备并未正常回应ack_info

以下面的报文举例说明:

portal web给portal kernel发送了LOGIN_REQUEST报文

2022-03-25 17:21:52.607[Portal服务器][调试(0)][25][ProxyRequestHandler::run]10.215.170.230 ; CODE_PP_LOGIN_REQUEST(100) ; 142 ; 10.215.138.220:52902 ; 报文处理成功

   

        Packet Type:CODE_PP_LOGIN_REQUEST(100)

        SerialNo:142

        Address:10.215.138.220

        Port:50908

        RemoteIp:10.215.138.220

        RemotePort:52902

        Version:portal 2.0

        Auth Type:CHAP

        ErrorID:0

        UserIP:10.215.170.230


之后iMC给设备发送req_info

2022-03-25 17:21:52.609[Portal服务器][调试(0)][28][ProxyResponseDeviceHandler::run]10.215.170.230 ; REQ_INFO(9) ; 37 ; 10.215.170.230:2000 ; 报文处理成功

   

        Packet Type:REQ_INFO(9)

        SerialNo:37

        Address:10.215.138.220

        Port:50300

        RemoteIp:10.215.170.230

        RemotePort:2000

        Version:portal 2.0

        Auth Type:CHAP

        ErrorID:0

        UserIP:10.215.170.230

之后设备应该正常给iMC回应ack_info,但是设备并没有正常回应该报文,超时后导致portalserver直接回应了LOGIN_RESPONSE,携带的内容是向设备发送请求超时

2022-03-25 17:21:56.608[Portal服务器][调试(0)][26][ProxyResponseClientHandler::run]10.215.170.230 ; CODE_PP_LOGIN_RESPONSE(101) ; 142 ; 10.215.138.220:52902 ; 向设备发送请求超时(124)

   

        Packet Type:CODE_PP_LOGIN_RESPONSE(101)

        SerialNo:142

        Address:10.215.138.220

        Port:50300

        RemoteIp:10.215.138.220

        RemotePort:52902

        Version:portal 2.0

       Auth Type:CHAP

        ErrorID:124

        UserIP:10.215.170.230


现场配置的接入设备nas-ip是10.215.170.230,我们仔细观察上述几个报文中携带的user-ip属性,发现也是10.215.170.230.这是因为现场是NAT组网,需要在ip地址组中将初始portal地址段进行NAT转换,如图,现场配置的转换后起始地址和终止地址都是10.215.170.230


与设备侧确认,由于nas-ip和user-ip相同,导致设备侧无法正常处理来自iMC的req_info报文,从而就没法正常回应ack_info了。导致了问题的发生

针对这种场景,需要在接入设备的portal web-server下加一条配置: url-parameter userip source-address

做NAT抓换时一般需要添加此命令,配置后可以在认证过程中携带终端原地址。

现场配置此命令后,问题解决

解决方法

做NAT抓换时一般需要添加此命令

在接入设备的portal web-server下加一条配置: url-parameter userip source-address