您现在正在浏览:首页 > 职教文章 > 职教论文 > 二层网络生成树协议故障原因分析

二层网络生成树协议故障原因分析

日期: 2011/3/12 浏览: 112 来源: 学海网收集整理 作者: 佚名

二层网络生成树协议故障原因分析

生成树算法(STA)的主要功能是消除在桥接网络中冗余链路所产生的环路。生成树协议(STP)工作在OSI模型中的第二层,通过网桥之间交换网桥协议数据单元(BPDU)来最终决定转发和闭塞流量的数据端口。该协议在某些特殊情况下会发生错误,同时基于当时网络的设计来检测出故障点亦十分困难。我们只能说在这种情况下,应尽量避免类似的现象发生。

通常生成树算法的错误将导致桥接环路。一般认为二层链路环路是由于设备硬件或是系统软件的BUG所导致。其实不然,二层链路环路的原因主要是由于某个本应处于闭塞状态的数据端口跃迁为转发状态所导致。

导致二层链路环路的原因有很多,大部分原因都将造成大量的BPDU的丢失,使原本应处于闭塞状态的端口跃迁为转发状态,最终导致二层链路环路。

双工不匹配

在一条点到点的链路上常常会发生双工不匹配的配置错误。尤其是当链路的一端被强制配置为全双工时。如果另一端仍为自动协商模式,最终,该端口将处于半双工模式(当端口被强制配置为全双工后将不再进行协商)。

当一台交换机通过一个配置为半双工的端口向一个对端为全双工的端口发送BPDU时,最坏的情况就发生了。如上图所示,A、B之间链路的双工不匹配将导致二层链路环路。因为B被配置为全双工,它将不检测链路载波冲突而直接发送数据,不管A是否在使用该链路。A被配置为半双工,它将检测链路载波冲突。于是,A检测到了冲突并将运行回退算法以企图再次发送数据帧。如果B发往A有足够的数据量,结果将导致A发往B的每一个数据包(包括BPDU)均将延迟、冲突甚至最终丢弃。由于B没收到BPDU,于是STP将认为B失去了它的根链路。这将导致B将它联往C的链路改为转发状态,发生二层链路环路。在这种情况下,重启B后,环路现象将暂时消除。

在Cisco交换机设备上,通过以下告警可以检测出双工配置不匹配:

CDP-4-DUPLEXMISMATCH: Full/half duplex mismatch detected on port [mod]/[port]

单向链路

在某些情况下,未检测出来的光路故障获光收发器故障可能导致单向链路的存在。链路只能单向通信却仍然为UP状态对于STP来说是非常危险的。如图所示:

假设A、B之间的链路为单向链路,A发往B的数据包将被丢失,而B能往A发送数据包。假设B联至A的端口应处于闭塞状态。而一个端口只有从另一个交换机不断收到高优先级的BPDU时,该端口才会处于闭塞状态。在上图情况下,A发往B的BPDU均被丢失,B联至A的端口最终将处于转发状态,二层链路环路的现象出现。在这种情况下,重启B后,环路现象将依然存在。

在Cisco交换机设备上,可以通过配置单向链路监测(UDLD)协议来检测该现象的出现并通过自动关闭故障端口来避免环路现象的出现:

Swith(config)#udld enable

数据包错误

数据包错误也可以导致二层链路环路的出现。如果一条链路存在较高的误码,使得BPDU连续出现丢失,最终导致端口从闭塞状态转变为转发状态,二层链路环路的现象出现。当然,很少会出现这种情况,因为STP的缺省参数是十分保守的。只有在闭塞端口50秒时间内未收到BPDU的情况下才会转变为转发状态,并且只要有一个BPDU成功传送,环路将取消。这种情况常常在错误配置STP的max-age参数时发生。双工不匹配、缆线故障、缆线过长均可能导致数据包传送错误。

资源错误

尽管高端交换机的大部分功能是通过专门的ASIC硬件来实现的,STP是通过软件来实现的。这就意味着如果交换机的CPU由于某种原因发生过载,那么它将可能缺乏发送BPDU的资源。STA一般来说不占用太多CPU资源,并且优先级高于其它进程。

在Cisco交换机设备上,可以通过命令检查设备的CPU的使用情况:

Swith(config)#show processes cpu

端口快速转发配置错误

端口快速转发(portfast)是用来在直联至主机的端口上进行配置的一种特性功能。当该端口上的链路激活后,该端口将不再进行起始的STA检测过程而直接进入转发状态。当该项特性未被正确使用时将非常危险。当电缆接入时可能造成瞬时的二层链路环路。

如上图所示,A交换机的p1端口处于转发状态,p2端口被配置为端口快速转发。B为集线器。当第二条电缆接入A,p2端口开始转发并在p1和p2之间产生环路。一旦p1或p2端口收到BPDU并将其中一个端口置为闭塞状态,该环路将立即停止。该类瞬时环路的问题是如果环路数据流量很大,交换机可能无法成功发送BPDU来停止环路。这将极大地延迟STP的收敛。Cisco最新的高端交换机提供了称为BPDU守护的特性功能。即使端口被配置为端口快速转发,在收到BPDU后仍将被关闭。

STP配置错误

错误的配置STP的max-age参数和转发延迟可能导致非常不稳定的STP。丢失部分BPDU将导致二层链路环路的出现。另外,二层网络的直径也将对网络STP的稳定造成影响。一般认为网络的直径范围最大应不超过7级。即网络内两台交换机之间的节点跳数应小于7。该限制源于BPDU中携带的时间字段。当BPDU从根节点向生成树的叶子节点繁殖时,每经过一台设备,时间字段的将相应增加。最终,当BPDU中携带的时间字段的数值超过最大值时,该BPDU将被丢弃。如果根交换机离网络上某些交换机过远,该现象将发生并影响网络生成树的收敛。

通过以上的分析,可以看出完善的网络规划和正确的网络配置对二层网络的稳定将起到的关键性的作用。


二层网络生成树协议故障原因分析.doc

返回顶部