V7 AC AC上做nat地址转换,与IMC通过nat转换后的地址交互。
手机端输入用户名点击上线后显示‘设备拒绝请求’
从抓包上看,IMC给设备发送了REQ-challenge 报文请求,设备回复了ACK-challenge ,但是回复的ack报文中 error code 为1,表示设备拒绝请求。
检查IMC给设备回复的REQ-challenge报文发现,userip参数是错误的(userip参数地址为nat之后的地址),如下图所示:
IMC 判断设备的userip参数其中一种方式是通过终端发的HTTP请求带的参数确定的,而终端向IMC发送的HTTP请求中 userip是设备重定向生成的,难道是设备重定向就带错的参数?我们接下来分析下HTTP抓包和设备重定向的deubg
重定向debug 中带的userip参数是正确的,如下图:
设备给终端重定向的userip是私网ip,这里没有问题。
终端发给IMC的HTTP请求,携带的参数也是私网ip,也没有问题,如下图:
之后,IMC就用错误的userip与设备交互了,如下:
IMC与设备交互的REQ-info报文中,携带了终端的ip地址,而这个ip地址首先查看设备重定向携带的userip地址参数地址,如果终端HTTP没有携带userip则IMC 将HTTP的源地址作为userip地址,由于设备重定向没有携带终端的userip参数,并且现场对业务vlan做了nat,导致终端的与IMC交互的地址变成NAT之后的地址,所以IMC获取的终端地址是nat之后的地址。
IMC将这个错误的地址填充到reg-info中与设备交互,设备查看表项发现这个地址不合法,于是发送个拒绝认证的报文,导致认证失败。
所以说这个问题的根本原因是跟nat 地址转换强相关的,在NAT组网下,IMC只能通过设备配置userip的参数来获取终端的ip地址。
如果这个参数不配,按照IMC的逻辑,会去获取HTTP源地址来作为userip,这个时候就会报错。
解决方案:iMC-EIA 无线portal穿越NAT认证,设备侧必须配置url-parameter userip source-address
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作