#背景
为了提高网络的可靠性,交换网络中通常采用冗余链路。但冗余链路会给交换网络带来环路风险,并导致广播风暴、MAC地址表不稳定等问题,进一步影响用户的通信质量。生成树协议STP(生成
树协议)可以提高可靠性,同时避免环路带来的各种问题。
#STP工作原理
STP通过构建树来消除交换网络中的环路。在每个STP网络中,都有一个根桥,其他交换机都是非根桥。根桥或根交换机位于整个逻辑树的根,
是STP网络的逻辑中心,非根桥是根桥的下游设备。当现有根桥出现故障时,非根桥将交换信息并重新选举根桥。这种信息被称为BPDU.
STP中定义了三种端口角色:指定端口、根端口和备用端口。
#STP操作
1、选举一个根桥。
首先,根据优先级和MAC地址,每个交换机选择网桥ID最小的交换机作为整个网络的根。网桥ID由16位网桥优先级组成。
和48位MAC地址。在STP网络中,网桥优先级是可配置的,取值范围是065535, 默认值为32768。.
优先级最高的设备(数字越低,优先级越高)将被选为根桥。如果优先级相同, 则会比较MAC地址, MAC地址越小则越优先。
2、根端口的选举
非根交换机根据端口的根路径开销、 对端BID(Bridge ID) 、 对端PID(Port ID) 和本端PID。选择根端口。
运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成.端口优先级的范围是0到240, 步长为16,
也就是说,该值必须是16的整数倍。默认情况下,端口优先级为128。ID(端口ID可用于确定端口角色。
每个非根桥应该选举一个根端口。根端口是距离根桥最近的端口,这一最新措施是通过路径开销来判断的,即路径开销最小的端口就是根端口。
根端口是指从非交换机到根交换机的总开销最低的路径所经过的本地端口。这个最小总开销值称为交换机的根路径开销(根路径
成本).默认情况下,端口的开销与端口的带宽带宽越高, 开销越小.相关
如果有两个或更多端口具有相同的累积路径开销,则连接到比较端口的上游交换机的交换机BID最小的端口将被用作根端口。
如果端口上连接的上游交换机的交换机bid相同,则比较端口上连接的上游端口的端口标识,端口标识越小,优先级越高。
3、指定端口选择
选择端口时,先比较该网段连接的端口所属交换机的根路径开销,开销越小优先级越高;
如果根路径开销相同,比较连接端口所属交换机的交换机标识,越小优先级越高;
如果根路径开销相同,交换机标识符也相同,则比较连接端口的端口标识符,较小的优先。
#端口状态
运行STP协议的设备有五种端口状态:
1.转发:转发状态。该端口可以转发用户流量和Forwarding:转发状态。 端口既可转发用户流量也可转发BPDU.
/strong>报文, 只有根端口或指定端口才能进入Forwarding状态。
2. Learning:学习状态。 端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。 增加Learning状态是为了防止临时环路。(15s)
3. Listening:侦听状态。 端口可以转发BPDU报文, 但不能转发用户流量。(15s)
4. Blocking:阻塞状态。 端口仅仅能接收并处理BPDU, 不能转发BPDU, 也不能转发用户流量。 此状态是预备端口的最终状态。
5. Disabled:禁用状态。 端口既不处理和转发BPDU报文, 也不转发用户流量。
# BPDU
1. 协议ID: 该值总为0。
2. 版本版本: STP的版本(为IEEE 802.1d时值为0)。
3. BPDU类型: BPDU类型(配置BPDU=0,TCN BPDU=80)。
4. 标志位: LSB(最低有效位)=TCN标志;MSB(最高有效位)=TCA标志。
5. 根网桥ID: 根信息由2字节优先级和6字节ID组成。这个信息组合标明已经被选定为根网桥的设备标识。
6. 根路径开销: 路径成本为到达根网桥交换机的STP开销。表明这个BPDU从根网桥传输了多远,成本是多少。这个字段的值用来决定哪些端口将进行转发,哪些端口将被阻断。
7. 指定桥ID: 发送该BPDU的网桥信息。由网桥的优先级和网桥ID组成。
8. 指定端口ID: 发送该BPDU的网桥端口ID。
9. Message Age:配置BPDU在网络中传播的生存期。
10. Max Age:配置BPDU在设备中能够保存的最大生存期。
11. Hello Time:配置BPDU发送的周期。
12. Forward Delay:端口状态迁移的延时。
# 拓扑变化
根桥故障
非根交互就等待Max Age时间收不到原有的根桥BPDU,则重新计算生成树,阻塞端口进入转发状态需要:Max Age +
2*FordDelay=20+15*2=50S
直连端口故障
原阻塞端口变成根端口技术生成树需要两个转发延迟(30s)
非直连端口故障
阻塞端口需要50S进入转发状态:Max Age + 2*FordDelay=20+15*2=50S
拓扑改变导致MAC地址表老化(TCNBPDU)
所有收到根桥发送的TC报文的MAC地址老化时间变成15S
# STP配置
stp模式
stp mode { mstp | stp | rstp }命令用来配置交换机的生成树协议模式。
配置交换机优先级
stp priority priority命令用来配置设备优先级值。 priority值为整数, 取值范围为0到61440, 步长为4096。 缺省情况下,
交换设备的优先级取值是32768。 另外, 可以通过stp root primary命令指定生成树里的根桥。
配置路径开销
stp pathcost-standard { dot1d-1998 | dot1t | legacy }命令用来配置指定交换机上路径开销值的标准。
stp cost cost命令取决于路径开销计算方法:
1. 使用华为的私有计算方法时, cost取值范围是1~200000。
2. 使用IEEE 802.1d标准方法时, cost取值范围是1~65535。
3. 使用IEEE 802.1t标准方法时, cost取值范围是1~200000000。
查询STP信息
display stp命令用来检查当前交换机的STP配置
display stp brief 查看STP情况
# 总结