STP/RSTP
一、STP/RSTP概述
生成树协议STP(Spanning Tree Protocol)将环形网络修剪成为一个无环的树型网络,避免报文在环形网络中的增生和无限循环; 快速生成树协议RSTP(Rapid Spanning Tree Protocol)在STP基础上实现了快速收敛,并增加了边缘端口的概念及保护功能。 在一个复杂的网络环境中,难免会出现环路。由于冗余备份的需要,网络设计者都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份,这样都有可能会导致环路产生。 环路会产生广播风暴,最终导致整个网络资源被耗尽,网络瘫痪不可用。环路还会引起MAC地址表震荡导致MAC地址表项被破坏。 为了破除环路,可以采用数据链路层协议STP,运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成无环路的树形网络结构,从而防止报文在环形网络中不断循环,避免设备由于重复接收相同的报文造成处理能力下降。 由于STP拓扑收敛速度慢,IEEE在2001年发布了802.1W标准定义了RSTP。RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。二、STP/RSTP相关术语
1.根桥
树形网络结构必须有树根,于是STP/RSTP引入了根桥(Root Bridge)概念。
对于一个STP/RSTP网络,根桥有且只有一个,它是整个网络的逻辑中心,但不一定是物理中心。但是根据网络拓扑的变化,根桥可能改变。
2.BID(Bridge ID):桥ID
IEEE 802.1d标准中规定BID是由2字节的桥优先级(Bridge Priority)与桥MAC地址构成,即BID(8字节) = 桥优先级(2字节) + 桥MAC(6字节)。
在STP网络中,桥ID最小的设备会被选举为根桥。在华为公司的设备上,桥优先级支持手工配置。
3.PID(Port ID):端口ID
PID由两部分构成的,即PID(16位) = 端口优先级(4位) + 端口号(12位)。
PID只在某些情况下对选择指定端口有作用,即在选择指定端口时,两个端口的根路径开销和发送交换设备BID都相同的情况下,比较端口的PID,PID小者为指定端口。
4.路径开销
路径开销是STP/RSTP协议用于选择链路的参考值。STP/RSTP协议通过计算路径开销,选择较为“强壮”的链路,阻塞多余的链路,将网络修剪成无环路的树形网络结构。根设备的端口的路径开销都为0。
在一个STP/RSTP网络中,某端口到根桥累计的路径开销就是所经过的各个桥上的各端口的路径开销累加而成,这个值叫做根路径开销。
5. 端口角色
1) STP端口
①根端口:即去往根桥路径最近的端口。根端口负责向根桥方向转发数据,根端口同时还负责接收上游设备的BPDU报文和用户流量转发。根端口的选择标准是依据根路径开销判定。在一台设备上所有使能STP的端口中,根路径开销最小者,就是根端口。在一个运行STP/RSTP协议的设备上根端口有且只有一个,而且根桥上没有根端口。
②指定端口:对一台交换设备而言,它的指定端口是向下游交换设备转发BPDU报文的端口。根桥的所有端口都是指定端口。在环网的每一网段都会选举出一个指定端口,在一个网段上拥有指定端口的交换设备被称作该网段的指定桥。
2) RSTP端口
RSTP在STP基础上新增加了3种端口角色:Alternate端口、Backup端口和边缘端口。通过端口角色的增补,简化了生成树协议的理解及部署。
如图1所示,RSTP的端口角色共有5种:根端口、指定端口、Alternate端口、Backup端口和边缘端口。
根端口和指定端口的作用同STP协议中定义,Alternate端口和Backup端口的描述如下:
①Alternate端口:
由于学习到其它设备发送的配置BPDU报文而阻塞的端口,
作为根端口的备份端口,提供了从指定桥到根的另一条可切换路径。
②Backup端口:
由于学习到自己发送的配置BPDU报文而阻塞的端口,
指定端口的备份,提供了另外一条从根节点到叶节点的备份通路。
③边缘端口:
如果端口位于整个交换区域边缘,不与任何交换设备连接,
这种端口叫做边缘端口。边缘端口一般与用户终端设备直接连接。
3)端口状态
STP端口状态
端口既转发用户流量也处理BPDU报文。
只有根端口或指定端口才能进入Forwarding状态。
①Learning
设备会根据收到的用户流量构建MAC地址表,但不转发用户流量。
过渡状态,增加Learning状态防止临时环路。
Listening:确定端口角色,将选举出根桥、根端口和指定端口。
②:过渡状态
Blocking
端口仅仅接收并处理BPDU,不转发用户流量。
阻塞端口的最终状态。
③:Disabled
端口既不处理BPDU报文,也不转发用户流量。 端口状态为Down。
4)RSTP端口状态
RSTP在STP基础上进行了端口状态的改进,如表所示。
①Forwarding
在这种状态下,端口既转发用户流量又处理BPDU报文。
②Learning
这是一种过渡状态。在Learning下,交换设备会根据收到的用户流量,构建MAC地址表,但不转发用户流量,所以叫做学习状态。Learning状态的端口处理BPDU报文,不转发用户流量。
③:Discarding
Discarding状态的端口只接收BPDU报文。