快速生成树协议RSTP.docx
《快速生成树协议RSTP.docx》由会员分享,可在线阅读,更多相关《快速生成树协议RSTP.docx(18页珍藏版)》请在冰豆网上搜索。
快速生成树协议RSTP
快速生成树协议RSTP
快速生成树协议(rapidspaningtreeprotocol):
802.1w由802.1d发展而成,这种协议在网络结构发生变化时,能更快的收敛网络。
它比802.1d多了两种端口类型:
预备端口类型(alternateport)和备份端口类型。
STP(SpanningTreeProtocol)是生成树协议的英文缩写。
该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文(在IEEE802.1D中这种协议报文被称为“配置消息”)来确定网络的拓扑结构。
配置消息中包含了足够的信息来保证交换机完成生成树计算。
生成树协议STP/RSTP
1.技术原理:
STP的基本思想就是生成“一棵树”,树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。
由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。
当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。
2.功能介绍:
生成树协议最主要的应用是为了避免局域网中的网络环回,解决成环以太网网络的“广播风暴”问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。
STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。
新型以太网支持符合ITU-T802.1d标准的生成树协议STP及802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。
3、快速生成树协议简介
最初的生成树协议是IBM在“黑暗时代”创建的,并且被IEEE制定为802.1D标准。
生成树协议从一开始就是一个薄弱的环节,并且在90年代很快陷入了“非常令人讨厌”的境地。
当时,网络设计师都热衷于VLAN聚合。
这个问题简单地说就是根据源路由网桥思路设计的生成树协议没有很好地兼顾通过一个物理连接的多个虚拟网络的不同路径的机制。
这个结果就是为已经很痛苦的缓慢的收敛时间增加了更多的混乱。
为了解决这些问题,一些厂商对这个协议进行了修改,显著减少了收敛时间,但是却增加了复杂性并且影响了故障检查。
不过,好消息是在上世纪末IEEE提出了802.1s和802.1w的建议。
这两个标准的建议在2002年至2003年获得了批准。
这些标准通过增加多重VLAN功能和消除了基本的生成树算法提高了性能。
这些新的标准实际上是把自己转变为一种以连接为对象的协议而不是以前的老式协议。
在老式协议中,交换机只广播网桥协议数据单元并且等待这些数据到期,并没有确认收到。
这是路由选择信息协议和开放式最短路径优先(OSFP)协议在概念和收敛的相对时间方面的区别。
因此,如果你当前的网络包含了很多在交换机之间的第二层的连接,特别是如果你做许多的VLAN聚合的话,你要认真考虑快速生成树协议。
这有助于改善交换机失效后的恢复时间。
根据你对定时器的设置情况,恢复时间可以从3-60秒,如果不需要定时器调整(timer-tweaking),恢复时间只需100至300毫秒。
事实上,使用快速生成树协议比使用拥有PortFast、BackboneFast和UplinkFast等扩展功能的802.1D协议的恢复时间快。
第一部分STP基础
STP概述
生成树协议(STP,Spanning-TreeProtocol)是一种2层协议,通过一种专用的算法来发现网络中的物理环路并产生一个逻辑的无环(loop-free)拓扑结构。
STP生成了一个无环的树形结构,包括可以在整个2层网络范围内扩展的叶和枝。
如上图这样一个高冗余度的网络,如果没有STP的存在,将会产生大量的广播环路,严重影响性能。
生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。
在生成树协议发展过程中,老的缺陷不断被克服,新的特性不断被开发出来。
l 广播环路
当主机A发送一个目的地址为FF-FF-FF-FF-FF-FF的广播帧时,该frame将传至CAT-1和CAT-2,当达到CAT-1的端口1/1时,CAT-1按照标准透明桥接算法将数据帧从除去入端口,将其泛洪到其他每个端口,包括CAT-1的1/2端口,从端口1/2发出的数据帧会到达下方以太网中的所有节点,包括CAT-2的端口1/2。
同样CAT-2也做这样的处理,此后广播报文就会在CAT-1和CAT-2之间的链路成几何级数的增长。
广播环路比路由环路更危险,在以太网帧结构只包含两个MAC地址、一个类型字段和一个循环冗余校验(CRC),并将网络层的包作为数据部分的内容,它没有像路由器那样,存在一个TTL域,对于一个路由环路而言,一个报文跳过255条后,就会被丢弃。
而广播路由环路的报文将永远不会被丢弃。
同时反复广播,其报文数量呈几何级数增长。
桥接表受损
除了广播风暴外,单播帧也会引起网络瓶颈。
当主机A此前已经拥有一条主机B的ARP条目,希望ping主机B,但主机B临时从网络移除,并且交换机上相应于B的桥接表项已经被删除。
假定任何一个交换机都没有运行STP,则当帧到达CAT-11/1后,CAT-1找不到目的地址,则CAT-11/2产生泛洪,同时CAT-2收到后,将主机A的位置改变到一个错误的端口上。
此后帧还沿反方向循环。
在端口1/1和1/2之间反复改变,导致CPU负载极大。
生成树算法
算法(algorithm)就是一个公式或者解决特定问题的一组步骤。
算法通常依赖于一组规则,有明确的开始和结束。
网桥ID
STP的特征就是生成树算法。
生成树算法是根据一组参数来进行判别。
网桥ID(BID,BridgeID)是一个8字节的字段,包含一个数字有序对,如图,头2个字节的十进制数成为网桥优先级(BridgePriority),后6字节是MAC地址(16进制)。
网桥优先级是一个用来衡量网桥在生成树算法中优先权的十进制数,2的16次方,取值为0-65535。
缺省值为32768。
BID的MAC地址是交换机的MAC地址之一。
每个交换机都有一个MAC地址池,每个STP实例使用一个,作为按VLAN生成树实例(每个VLAN一棵)的BID。
具体算法:
BID的比较方式如下,假设(s,t)和(u,v)分别为两个BID,数对中的第一个值为优先级,第二个为MAC地址,则比较规则如下:
If s
If (s=u)&&(tBID值越小的网桥,其优先级越高
路径开销
路径开销用来衡量网桥之间距离的一种方式。
路径开销是两个网桥间某条路径上所有链路开销的总和,IEEE802.1D最初定义链路开销是使用1000Mbit/s除以Mbit/s为单位的链路带宽。
例如10BASE-T链路的开销为100,快速以太网和FDDI为10。
随着Gbit/s以太网和其它高速技术的出现,反映了该定义的一些缺陷。
链路开销使用整数存储,为了解决高带宽网络按原有标准计算出现小数的问题(10Gbit/s 按原标准为0.1)。
IEEE改变了原有的反比例模型,按如下2种方式定义新的链路开销。
1Gbit/s的CatOS系统使用短整型,10Gbit/s带宽以上的CatOS和新版的IOS使用长整形
端口ID
端口ID(PID,PortID),用来确定到根交换机的路径。
由16bit的子串决定,其中包括6bit的端口优先级和10bit的端口号。
基于IOS交换机,两部分都是8位。
端口优先级是一个可配置的STP参数。
在CatOS交换机上,端口优先级的十进制取值范围是0-63,默认为32。
基于IOS的交换机上,端口优先级的十进制取值范围是0-255,默认值为128。
具体算法:
PortID的比较方式如下,假设(s,t)和(u,v)分别为两个PortID,数对中的第一个值为端口优先级,第二个值为MAC地址,则比较规则如下
If s
If (s=u)&&(tPID越小的端口优先级越高
案例:
sw2#showspanning-treeinterfacefa0/3detail
Port23(FastEthernet0/23)ofVLAN0001isforwarding
Portpathcost100,Portpriority128,PortIdentifier128.23.
Designatedroothaspriority32769,address0008.2059.9e40
Designatedbridgehaspriority32769,address0009.4376.2300
Designatedportidis128.3,designatedpathcost19
Timers:
messageage0,forwarddelay0,hold0
Numberoftransitionstoforwardingstate:
1
Linktypeissharedbydefault
BPDU:
sent238527,received0
PID中端口号定义采用数字编号的方式,一般基于IOS的交换机上端口号空间为256个端口。
例如slot0上的23号口,其端口号为23,则PortID如上所示为 128.23
STP过程
* STP判定和BPDU交换
Spanning-tree算法主要依靠BID,路径开销和端口ID,在创建一个无环路的拓扑时,STP执行如下4个步骤:
1.选取根交换机
2.计算到根交换机的最小路径开销
3.确定最小发送者BID
4.确定最小的端口ID
为做出最佳判决,STP需要保证所有参与的网桥都获得正确的信息,网桥间的信息交互采用网桥协议数据单元(BPDU)的基于2层的frame来传递STP信息。
网桥通过如上4步来选择每个端口上所看到的“最佳BPDU”网桥会村除从每个端口收到的最佳BPDU。
在判定最优时,网桥会比较在此端口上收到的所有BPDU,以及会此端口上发送的BPDU。
每收到一个BPDU,网桥都会根据4步过程进行检查,以判定是否比目前保存的此端口的最佳BPDU更好,如果有新的BPDU(或者本地生成的BPDU)更好,就会替换旧值。
当一个网桥被激活后,其所有的端口每隔2s(默认hello时间)发送一次BPDU报文。
如果收到其它端口比自己更好的BPDU,则本BPDU。
如果20s(默认最大时间MaxAge)的时间没有从邻居收到更好的BPDU,则本地端口将重新发送BPDU。
最大生存时间是最佳BPDU超时的时间。
*STP收敛的步骤
生成树算法比较复杂,其收敛于一个无拓扑的初始过程包含
1.选举根交换机(RootBridge)
2.选举根端口(RootPorts)
3.选举指定端口(DesignatedPo