由于ACL配置问题导致MA5200G无法接收到web认证用户的dhcp release报文

发布时间:  2012-07-26 浏览次数:  130 下载次数:  0
问题描述
版本:MA5200G VRP3.30-2215 (23xx版本配置不同,但配置不正确也存在同样的问题)
web认证用户在获取地址后的预认证阶段,在PC机上通过ipconfig /release命令释放用户IP地址,在客户端看到地址已经释放,但是在MA5200G上通过display access-user仍然能看到用户在线,大约2分钟后用户在MA5200G上才显示不在线,查看用户下线原因为arp detect fail的原因而下线。
告警信息

处理过程
1、用户PC上进行抓包证实确实有DHCP release报文发出,并成功释放了IP。
2、MA5200G业务跟踪结果中未看到MA5200G接收到用户的DHCP release报文。
3、查看MA5200G的ACL配置如下:
 rule-map rule1 ip user-group 0 any                                             
 rule-map rule2 ip user-group 0 202.109.117.146 0.0.0.0                         
 rule-map rule3 ip user-group 0 202.109.10.99 0.0.0.0                           
 rule-map rule4 ip user-group 0 61.129.163.131 0.0.0.0                          
 rule-map rule5 ip user-group 0 202.96.209.6 0.0.0.0                            
 rule-map rule6 ip user-group 0 202.96.209.133 0.0.0.0                          
#                                                                               
 eacl global rule2 permit
 eacl global rule3 permit                                                       
 eacl global rule4 permit                                                       
 eacl global rule5 permit                                                       
 eacl global rule6 permit                                                       
 eacl global rule1 deny                                                         
#
access-group eacl global 
认证前用户的的DHCP DOCOVER和REQUEST报文因为用户表项还没有生成,所以不受认证前域的ACL控制,而用户DHCP RELEASE时如果是在认证前域中的,ACL限制对用户表项生效,DHCP RELEASE报文是到MA5200G主机的报文,匹配到 rule-map rule1 ip user-group 0 any 的规则,所以就被ACL滤掉了。
在MA5200F中是没有这个问题的,因为MA5200F微码对用户报文的处理与MA5200G不同,不会过滤用户到主机的报文。
4、加上下面这两条规则,就可以使MA5200G收到用户发往MA5200G主机的报文了:
 rule-map rule7 ip user-group 0 127.0.0.1 0.0.0.0  
 eacl global rule7 permit
根因
本案例是由于在配置ACL的时候,为了实现强制WEB认证的功能,首先配置了限制用户到一些特定地址(WEB服务器、DNS等)允许访问,然后配置用户访问这些指定地址外其它地址都不允许。而对用户的限制是通过用户的UCL-Group进行的,但是由于用户在获取地下时,还不属于任何一个组,所以用户的DHCP可以正常获取地址,当用户获取地址后,即在认证前域中认证通过,用户就获取了认证前域的UCL-Group,而这个UCL-Group刚好是限制只能访问一些特定的地址,由于配置中禁止的rule的目的是any,这样虽然到特定地址可以由精确匹配而达到可以访问的目的,但是到MA5200G本身的报文也会匹配这么rule从而被丢弃,用户的DHCP release报文就属于这一类报文,所以MA5200G无法释放用户的IP地址。
如果用户不是在预认证域阶段释放IP地址,而是经过WEB认证后再释放IP地址就不存在此问题,因为经过WEB认证后,用户的UCL-Group就是认证域的组号,一般不会对认证域的组号进行ACL的限制。
建议与总结

对于MA5200G VRP3.30-23xx版本,虽然配置变化,也存在类似的问题:
1)同样,在配置强制WEB认证的时候,要配置到MA5200G主机允许的规则,即在允许用户访问ACL中创建规则的时候,要注意配置这样一条rule:
rule ip source <user-group name> destination 127.0.0.1 0
2)23xx版本在应用规则的时候允许在端口入方向和出方向分别应用,对于配置强制WEB认证的时候,建议只配置端口入方向上的规则,即只限制源为用户组的报文。特别注意,不建议在端口出方向上限制任意报文到指定用户组禁止,即使已经配置了WEB服务器、DNS等地址到指定用户组的报文是允许的,因为在强制WEB认证时,第一个TCP联接是MA5200G模拟服务器与用户建立的,所以要在出端口上做ACL限制,必须要配置从MA5200G本身(127.0.0.1)到用户组的报文允许的规则。

END