单播泛洪.doc

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单播泛洪是交换机不知道你的MAC地址,就是MAC表中没有这个目标MAC地址,就向除入端口之外的所有其他端口转发单播报文,注意这个转发的是单播报文,不是广播报文,因为广播包的目标MAC是全1的数据包,这就是单播泛洪和广播风暴的区别所在。

Unicast Flooding-园区网交换机单播泛洪的几种可能原因

我们知道交换机是通过Layer2 MAC地址表和CAM表来转发数据。如果一个数据帧到达交换机后,交换机MAC地址表中没有此数据帧中目的MAC地址的表项,那么交换机会将此数据帧广播到对应Vlan中除了接收端口外的其他端口,这样就形成了泛洪。有限的泛洪交换机可以正常处理,但是如果发生大量的泛洪,则网络性能会收到严重影响。以下就说明几种可能产生单播泛洪的主要原因:

1、不对称路由(Asymmetric Routing)

如下图所示。Vlan1中的服务器S1需要将大量的数据备份到Vlan2中的服务器S2。服务器S1的默认网关是路由器A的Vlan1接口地址,服务器S2的默认网关是路由器B的Vlan2的接口地址。

那么S1到S2的流量路径是:

S1-Vlan1-SwitchA-RouterA-Vlan2-SwitchB-Vlan2-S2(蓝色线条)

S2到S1的流量路径是:

S2-Vlan2-SwitchB-RouterB-Vlan1-SwitchA-flooded toVlan1-S1(红色线条)

注意事先有这样一个协定,SwitchA不知道S2的MAC地址。这就意味着每次SwitchA需要将数据帧转发给S2,数据帧都会被泛洪到Vlan2的所有接口(除数据帧流入接口)。同样的情况也出现在SwitchB对于S1的MAC地址的处理上。

数据帧被转发到不同的路径,这样就形成了不对称路由。不对称路由是最容易形成单播风暴的原因之一。

由于SwitchA和SwitchB都会对单播数据帧进行泛洪,所以会占用大量的链路带宽,特别是两台交换机之间的链路需要承载大量的重复数据,极易造成链路的拥塞。

这种泛洪是由于不对称路由引起的,而且只有在服务器S1发送一个广播报文(如ARP),然后SwitchA会将报文通过Vlan1广播给SwitchB,SwitchB生成S1的MAC地址表项。一旦SwitchB一段时间内没有收到S1的报文,SwitchB中关于

S1的表项将会超时,下一次转发数据前还需要重复上述过程。SwitchA和S2数据转发过程相同。

2、生成树拓扑改变(Spanning−Tree Protocol Topology Changes)

另一个会导致单播风暴的原因是生成树协议中的拓扑改变通告

(Topology Change Notification,简称TCN)。TCN的作用是给交换机通告网络拓扑变化。当网络拓扑发生变化后,到达某一个目的地址的路径可能发生变化,例如以前从Port1转发,现在变成了Port2,这样就可能导致数据包不能正确的被转发,所以必须用某种机制去避免出现这种情况。TCN的作用是减小转发表的超时时间,如果在转发表超时以后,一个未知MAC地址的数据帧到达,那么就会产生泛洪。

端口转发状态改变即能触发TCN。在正常的情况下,交换机收到TCN后会使MAC 地址加速老化,但是不久就会更新MAC表项,这样泛洪不会持续很久的时间。但是如果交换机连续收到TCN的报文,那么转发表就会不断的老化,大量的泛洪就会产生。

正常情况下,在一个配置合理的网络中TCN报文是很少的,也就是网络拓扑几乎很少发生改变。但是如果交换机端口不断的up和down,那么就会产生大量的TCN,随之而来的就是数据包的泛洪。

交换机端口开启portfast后即使端口不断的处于up和down状态,也不会产生TCN。所以在所有终端(如打印机、PC、服务器)连接的端口开启porffast可以减少TCN的数量。

3、转发表溢出(Forwarding Table Overflow)

另一个可能产生单播泛洪的原因是转发表的溢出,即MAC地址条目超过地址表的最大容量。在这种情况下,新的MAC地址无法被添加进转发表中,所有目的地址是这部分地址的数据帧就会泛洪,直到原有转发表中有条目超时从转发表中删除后这些MAC地址才能被学习到。因为现在的交换机一般都有很大容量的地址表空间,所以这种情况是可能的但是很少见。

转发表资源耗尽还有一种可能是网络中存在攻击,即有客户端不断的模拟不同源地址发送大量数据包,这样每次交换机收到数据包都会学习这些“新”的地址,如果这些“新”地址的数量很大的话就有可能占用大量的甚至占满转发表空间,一旦转发表容量被占满,那么转发表就不可能再学习到新的条目,就会形成泛洪。如果要判断是否是这个原因造成泛洪,可以查看转发表,一般会出现同一个端口学习到大量的表项,然后可以通过限制“可疑”端口上学习到MAC地址的条目数解决。

相关文档
最新文档