part 1说到,单播的ARP请求最终都被网关丢弃了,从而造成了丢包。先说我最终怎么解决的吧,我最终把核心交换上针对无线VLAN的arp inspection和dhcp snooping删掉了,然后出于安全考虑,启用了WLC(Wireless Controller)上的一个feature,该feature相当于是DHCP snooping和arp inspection的结合,功能是不让客户端私自配静态IP,只允许DHCP获取,那么有这个feature做保障,我也就放心的删掉了核心交换上的arp inspection和dhcp snooping,再说arp ins和dhcp snooping是一个“本地概念”(我个人的理解),如果这个机器上没有开启这个VLAN,且对trunk口都是trust的话,但是却开了针对这个VLAN的arp ins和dhcp sn的话,其实没啥用,个人理解而已,有待进一步印证。刚刚提到的feature如下图:
那么在核心交换上删掉了arp ins和dhcp sn之后呢,网关就能顺利的回复单播的ARP请求了,抓包的截图如下:
这之后一问一答,超级和谐。
当然,还有另外一个workaround,那就是让OS X用户disable ARP单播请求这样一个“超前”的feature了,disable的方法如下:
打开terminal终端
sudo su 如果设置了开机密码这个地方输入一下开机密码
touch /etc/sysctl.conf
echo net.link.ether.inet.arp_unicast_lim=0 >> /etc/sysctl.conf
chown root:wheel /etc/sysctl.conf
chmod 0644 /etc/sysctl.conf
touch /etc/sysctl.conf
echo net.link.ether.inet.arp_unicast_lim=0 >> /etc/sysctl.conf
chown root:wheel /etc/sysctl.conf
chmod 0644 /etc/sysctl.conf
关掉terminal终端
重启机器后生效
改成常规的broadcast去做ARP请求之后的抓包截图如下:
也是一问一答,十分和谐,不过就是用的broadcast去问而已。
包里面长这样:
That's all. Thanks.