
RSTP
RSTP:快速生成树协定(rapid spanning Tree Protocol ):802.1w由802.1d发展而成,这种协定在网路结构发生变化时,能更快的收敛网路。它比802.1d多了一种连线埠类型:备份连线埠(backup port)类型,用来做指定连线埠的备份。 STP(Spanning Tree Protocol )是生成树协定的英文缩写。该协定可套用于环路网路,通过一定的算法实现路径冗余,同时将环路网路修剪成无环路的树型网路,从而避免报文在环路网路中的增生和无限循环。
基本介绍
- 中文名:快速生成树协定
- 外文名:rapid spanning Tree Protocol
- 别称:RSTP
- 套用学科:网路
- 适用领域範围:环路网路
- 适用领域範围:区域网路
基本原理
STP协定由IEEE802.1D定义,RSTP由IEEE802.1W定义。
STP的基本原理是,通过交换机之间传递一种特殊的协定报文(在IEEE 802.1D中这种协定报文被称为“配置讯息”)来确定网路的拓扑结构。配置讯息中包含了足够的信息来保证交换机完成生成树计算。
生成树协定STP/RSTP
技术原理
Rstp是从stp发展过来的,其实现基本思想一致,但它更进一步的处理了网路临时失去连通性的问题。Rstp规定在某些情况下,处于Blocking状态的连线埠不必经历2倍的Forward Delay时延而可以直接进入转髮状态。如网路边缘连线埠(即直接与终端相连的连线埠),可以直接进入转髮状态,不需要任何时延。或者是网桥旧的根连线埠已经进入Blocking状态,并且新的根连线埠所连线的对端网桥的指定连线埠仍处于Forwarding状态,那幺新的根连线埠可以立即进入Forwarding状态。即使是非边缘的指定连线埠,也可以通过与相连的网桥进行一次握手,等待对端网桥的赞同报文而快速进入Forwarding状态。当然,这有可能导致进一步的握手,但握手次数会受到网路直径的限制。
功能介绍
生成树协定最主要的套用是为了避免区域网路中的网路环回,解决成环乙太网网路的“广播风暴”问题,从某种意义上说是一种网路保护技术,可以消除由于失误或者意外带来的循环连线。STP也提供了为网路提供备份连线的可能,可与SDH保护配合构成以太环网的双重保护。新型以太单板支持符合ITU-T 802.1d标準的生成树协定STP及802.1w规定的快速生成树协定RSTP,收敛速度可达到1s。
连线埠状态
802.1d
交换机的连线埠在STP环境中共有5种状态:阻塞blocking、监听listening、学习learning、转发forwarding、关闭(disable)。
*Blocking:处于这个状态的连线埠不能够参与转发数据报文,但是可以接收配置讯息,并交给CPU进行处理。 不过不能传送配置讯息,也不进行地址学习。
*Listening:处于这个状态的连线埠也不参与数据转发,不进行地址学习;但是可以接收并传送配置讯息。
*Learning:处于这个状态的连线埠同样不能转发数据,但是开始地址学习,并可以接收、处理和传送配置讯息。
*Forwarding:一旦连线埠进入该状态,就可以转发任何数据了,同时也进行地址学习和配置讯息的接收、处理和传送。
交换机上一个原来被阻塞掉的连线埠由于在最大老化时间内没有收到BPDU,从阻塞状态转变为倾听状态,倾听状态经过一个转发延迟(15秒)到达学习状态,经过一个转发延迟时间的MAC地址学习过程后进入转髮状态。
如果到达倾听状态后发现本连线埠在新的生成树中不应该由此连线埠转发数据则直接回到阻塞状态。
当拓扑发生变化,新的配置讯息要经过一定的时延才能传播到整个网路,这个时延称为转发延迟(Forward Delay),协定默认值是15秒。
在所有网桥收到这个变化的讯息之前,若旧拓扑结构中处于转发的连线埠还没有发现自己应该在新的拓扑中停止转发,则可能存在临时环路。为了解决临时环路的问题,生成树使用了一种定时器策略,即在连线埠从阻塞状态到转髮状态中间加上一个只学习MAC地址但不参与转发的中间状态,两次状态切换的时间长度都是Forward Delay,这样就可以保证在拓扑变化的时候不会产生临时环路。
802.1w
STP定义了5种不同的连线埠状态,关闭(disable),监听(Listening),学习(Learning),阻断(Blocking)和转发(Forwarding),其连线埠状态表现为在网路拓扑中连线埠状态混合(阻断或转发),在拓扑中的角色(根连线埠、指定连线埠等等)。在操作上看,阻断状态和监听状态没有区别,都是丢弃数据帧而且不学习MAC地址,在转髮状态下,无法知道该连线埠是根连线埠还是指定连线埠。
在RSTP中只有三种连线埠状态,Discarding、Learning和Forwarding。802.1D中的禁止连线埠,监听连线埠,阻塞连线埠在802.1W中统一合併为禁止连线埠。
RSTP根据连线埠在活动拓扑中的作用,定义了3种连线埠角色(STP有5种角色):禁用连线埠(Disabled Port)、根连线埠(Root Port)、指定连线埠(Designated Port)、为支持RSTP的快速特性规定的替代连线埠(Alternate Port)和备份连线埠(Backup Port)。
表8-20 STP和RSTP连线埠状态比较
表8-20
RSTP有五种连线埠类型。根连线埠和指定连线埠这两个角色在RSTP中被保留,阻断连线埠分成备份和替换连线埠角色。生成树算法(STA)使用BPDU来决定连线埠的角色,连线埠
STP Port State | RSTP Port State | 连线埠是否 为活跃状态 | 连线埠是否 学习MAC地址 |
禁止 | 禁止 | No | No |
阻塞 | 禁止 | No | No |
监听 | 禁止 | Yes | No |
学习 | 学习 | Yes | Yes |
转发 | 转发 | Yes | Yes |
类型也是通过比较连线埠中保存的BPDU来确定哪个比其他的更优先。
1)根连线埠
非根桥收到最优的BPDU配置信息的连线埠为根连线埠,即到根桥开销最小的连线埠,这点和STP一样。请注意图8-16上方的交换机,根桥没有根连线埠。
按照STP的选择根连线埠的原则,SW-1和SW-2和根连线的连线埠为根连线埠。
![]() |
图8-16 RSTP根连线埠 |
2)指定连线埠
与STP一样,每个乙太网网段段内必须有一个指定连线埠。假设SW-1的BID比SW-2 优先,而且SW-1的P1口连线埠ID比P2优先权高,那幺P1为指定连线埠,如图8-17所示。
![]() |
图8-17 指定连线埠的选择 |
3)替换连线埠
如果一个连线埠收到另外一个网桥的更好的 BPDU,但不是最好的,那幺这个连线埠成为替换连线埠,如图8-18所示。
对于SW-2来说,连线埠P3收到的BPDU比自己优先,自己为次优先,P3为替换连线埠。
4)备份连线埠
如果一个连线埠收到同一个网桥的更好 BPDU,那幺这个连线埠成为备份端。当两个连线埠被一个点到点链路的一个环路连在一起时,或者当一个交换机有两个或多个到共享区域网路段的连线时,一个备份连线埠才能存在。
如图8-19所示,SW-1的P1和P2口同时接入到乙太网的同一网段,P1为指定连线埠,P2 优先权低,则P2连线埠为备份连线埠。
![]() |
图8-18 替换连线埠的选择 |
![]() |
图8-19 备份连线埠的选择 |
5)禁用连线埠
在快速生成树协定套用的网路运行中不担当任何角色。
配置
步骤1:进入全局模式
Switch#configure terminal
步骤2:开启生成树协定
Switch(config)#spanning-tree
默认状态下STP协定是关闭的,需要用命令打开
步骤3:配置生成树模式
Switch(config)#spanning-tree mode { mstp | rstp | stp }
P/A机制
P/A机制即Proposal/Agreement机制。其目的是使一个指定连线埠儘快进入Forwarding状态。其过程的完成根据以下几个连线埠变数:
A)Proposing。当一个指定连线埠处于Discarding或Learning状态的时候,该变数置位。并向下游交换传递Proposal位被置位的BPDU。
B)Proposed。当下游交设备连线埠收到对端的指定连线埠发来的携带Proposal的BPDU的时候。该变数置位。该变数指示上游网段的指定连线埠希望进入Forwarding状态。
C)sync。当Proposed被设定以后,收到Proposal置位信息的根连线埠会依次为自己的其他连线埠置位sync变数。如果连线埠是非边缘的指定连线埠是则会进入Discarding状态。
D)synced。当其它连线埠完成转到Discarding后,会设定自己的synced变数(Alternate、Backup和边缘连线埠会马上设定该变数)。根连线埠监视其他连线埠的synced,当所有其他连线埠的synced全被设定,根连线埠会设定自己的synced,然后传回BPDU,其中Agreement位被置位。
E)agreed。当指定连线埠接收到一个BPDU时,如果该BPDU中的Agreement位被置位且连线埠角色定义是“根连线埠”,该变数被设定。Agreed变数一旦被置位,指定连线埠马上转入Forwarding状态。
改进
A、STP没有明确区分连线埠状态与连线埠角色,收敛时主要依赖于连线埠状态的切换。RSTP比较明确的区分了连线埠状态与连线埠角色,且其收敛时更多的是依赖于连线埠角色的切换。
B、STP连线埠状态的切换必须被动的等待时间的逾时。而RSTP连线埠状态的切换却是一种主动的协商。
C、STP中的非根网桥只能被动的中继BPDU。而RSTP中的非根网桥对BPDU的中继具有一定的主动性。