S5700配置IPSG功能后静态配置ip的用户还是能上线导致arp异常

发布时间:  2016-10-04 浏览次数:  383 下载次数:  0
问题描述

如图:客户网络把S5700作为PC用户网关,S5700作为dhcp服务器给用户终端分配地址,为了避免用户私设地址,在S5700上开启ipsg功能,但开启后发现有终端用户有时能正常上网,有时无法上网,无法上网时重启S5700交换机后又正常。


处理过程

1、由于交换机配置了ipsg功能,首先检查配置是否正确,从配置上看没什么异常,端口和vlan都开启了user-bind检测功能;

#

vlan 100

 dhcp snooping enable

 ip source check user-bind enable

#

interface GigabitEthernet0/0/1

 port link-type access

 port default vlan 100

 ip source check user-bind enable

2、检查终端用户无法上网时是否生成动态绑定表,从绑定表看已经生成绑定表,MAC地址也是故障用户终端的mac地址;


3、在S5700上ping测终端地址192.168.1.254能ping通,但用户反馈在终端上无法ping通网关;

4、检查S5700上的arp表项发现当前192.168.1.254地址对应的mac地址跟绑定表中的mac地址不一致;


5、为何存在192.168.1.254的arp,但跟绑定表中的mac地址不一致呢?通过往下查看此mac地址信息发现此mac地址的终端静态配置了192.168.1.254这个地址;这里又出现了新的疑问,为了开启了ipsg功能,静态设置ip的终端用户还能正常上线?是否ipsg功能不生效?查看文档针对“ip source check user-bind enable”命令的解释说明发现此命令只检查ip报文,而不是arp、icmp等协议报文,因此虽然端口上开启了ip source检测,但无法阻止手工静态配置ip的用户通过arp上线,这些静态设置ip的用户上线后由于没有动态绑定表关系并不能正常上外网,因为ip报文会被丢弃,经过测试也确实无法上外网,但是这种静态设置ip的用户会导致交换机arp学习异常,从而影响dhcp获取地址的正常用户,这也可以解析为何重启交换机后故障又能恢复,因为重启交换机后arp重新学习,当arp表项正常时用户能正常上网。

6、那是不是ipsg功能就没有用呢?这种问题是否能解决呢?答案是肯定的,我们可以在接口下同时开启动态arp检测功能来解决这个问题,开启后设备会将ARP报文对应的源IP、源MAC、接口、VLAN信息和绑定表中的信息进行比较,如果信息匹配,说明发送该ARP报文的用户是合法用户,允许此用户的ARP报文通过,否则就认为是攻击,丢弃该ARP报文。经验证开启后静态设置的ip地址无法上线。

[S5700] interface gigabitethernet 1/0/0

[S5700-GigabitEthernet1/0/0] arp anti-attack check user-bind enable

根因

交换机未开启动态arp检测功能,静态手工设置ip的终端用户上线后导致交换机arp表项学习异常

解决方案

交换机的接口下开启动态arp检测功能

[S5700] interface gigabitethernet 1/0/0

[S5700-GigabitEthernet1/0/0] arp anti-attack check user-bind enable

END