未知单播,即设备MAC表中没有该单播帧的目的MAC条目。
透明桥接的学习过程要求交换机在将单播帧转发给它之前从设备接收帧。在接收任何此类传输之前,使用单播洪泛来确保传输到达其预期目的地。这通常是短暂的条件,因为收据通常产生完成学习过程的响应。当设备最初连接到网络,从一个端口移动到另一个端口或在通常从转发表中清除设备后5分钟不活动时,会发生此过程。
在其地址缓存中没有剩余空间的交换机会将帧泛洪到所有端口。这是具有许多主机的网络上的常见问题。不太常见的是地址表的人为泛滥 – 这被称为MAC泛滥。
另一个常见原因是ARP计时器长于交换机上的地址缓存超时的主机 – 交换机忘记了哪个端口连接到主机。
除交换机之外的设备也可能产生单播洪水。具有桥接接口但在桥接缓存中没有目标帧地址的路由器会将帧泛洪到所有桥接成员。
网络配置错误也可能导致单播泛滥。如果从主机A到B有两个第2层路径,主机A使用路径1与主机B通信,但主机B使用路径2来响应主机A,则路径1上的中间交换机将永远不会知道目标MAC地址路径2上的主机B和中间交换机将永远不会获知主机A的目标MAC地址。
单播洪水的最终原因是拓扑更改。当参与快速生成树的网络端口上的链路状态发生变化时,该交换机上的地址缓存将被刷新,导致所有后续帧从所有端口溢出,直到交换机获知地址。
现象如图(取自网络):
============================================
有些人建议未知单播泛洪的防护方法,可参考一下:
1、接口下storm-control
这个在防护广播或者组播中比较常见,很多人误以为可以用户防护单播泛洪,但是对于防护未知单播泛洪,这个命令是没有用的。这个命令只是去控制源主机单播往外去发,这时候源主机所在的交换机并无法分辨是未知单播还是正常单播,所以所有的单播都会去抑制,正常的流量也会受到影响,因此我们只能在目的主机所在的二层网络中想办法去抑制未知单播的泛洪。
2、汇聚交换机上trunk口vlan修剪
在汇聚交换机的trunk口上allow vlan XX,trunk上仅允许接入交换机上有的vlan通过,这样可以使得泛洪仅仅影响到拥有目的主机vlan的接入交换机,减小了影响范围,通过上面的实验测试中也确实可以达到效果。但是在虚拟化时代,基本所有的接入交换机上都会有整个二层的所有vlan信息,所以这种方式并无法在所有环境中适用。
3、Mac、arp表的aging time调整
4、阻止未知单播泛洪
通过在汇聚交换机的所有的二层接口上配置switchport block unicast,来阻止未知单播在此二层中泛洪,通过上面的实验测试确实可以阻止未知单播泛洪,按照思科的说法这个是最佳实践。但是在一些特殊的网络中,有的时候是需要未知单播泛洪的存在的,所以使用这个方法的时候做好充分的测试和应急回退工作。
5.将mac老化时间提高到2个小时,可以防止未知单拨帧泛洪