STP 基本概念
一、标准: 802.1d
二、作用:解决二层环路问题
三、算法:STA
四、BPDU :a、配置BPDU:稳定是有根网桥周期性发出(2s)
b、TCN BPDU:网络发生拓扑变更时有网桥发出
i. 网桥ID=网桥优先级+MAC地址
2字节 6字节
ii. 默认的优先级是32768 范围是0—65535
iii. Flag字段
iv. TCA |
v. |
vi. |
vii. |
viii. |
ix. |
x. |
xi. TC |
五、STP工作模式:
PVST:一个vlan对一棵生成树 cisco私有,ISL封装
CST:公共STP模式,所有vlan对应一个STP实例 IEEE 802.1q封装
PVST+:一个vlan对应一个STP实例 支持802.1q封装
六、STP时间参数:hello time :2s 最大老化时间 20s 转发延迟 15s
注意:当网络拓扑稳定后,计时器只有在根网桥上修改才能有意义。
STP操作
一、端口角色:根端口 指定端口 阻塞端口
端口状态: 禁闭 阻塞 侦听学习 转发
注意:STP中尾巴端口角色与端口状态明确区分,基本以状态来进行拓扑收敛
状态 |
收BPDU |
发BPDU |
学习MAC |
收/发数据 |
禁用 |
X |
X |
X |
X |
阻塞 |
√ |
X |
X |
X |
侦听 |
√ |
√ |
X |
X |
学习 |
√ |
√ |
√ |
X |
转发 |
√ |
√ |
√ |
√ |
二、STP收敛过程:
1、 选择根网桥:在所有参与选举的网桥中选举出网桥ID最小的网桥为根网桥首先看优先级越小越优先,再看MAC地址
2、 选择根端口:在所有非根网桥上选择一个到根网桥距离最近的端口。
A、端口到根网桥的COST
B、发送方的网桥ID
C、发送方的port-ID
3、 选择选择指定端口:在每条链路两端选择一个端口指定端口
A、网桥到根网桥的COST(注意比较2中的COST区别)
B、链路两端谁的网桥ID小,谁上面的端口就是指定端口
C、链路两端谁的端口ID小,谁上面的端口就是指点端口
4、 阻塞其他端口
STP拓扑变更
一、交换机发送TCN BPDU的条件:(下列的条件满足一个即可)
1、对于处于转发或监听状态的端口,它过度到阻塞状态(链路故障的时候)
2、 端口进入转发状态,并且网桥已经拥有指定端口
3、 非根网桥在他的指定端口接收到TCN(传播TCN被发送)
A、指定网桥接受TCN,并且通过立即发回一个TCA置位的配置BPDU确认TCN在确认之前,负责通知拓扑变更的网桥将连续发送TCN BPDU。
B、根网桥一旦意识到网络发生变更,就发送TC置位的BPDU,接收到TC置位的BPDU的网桥感知发生变更,吧MAC地址的生存时间降低到转发延迟计时器数值(原来为300s)
二、扩展PVST+(没vlan一个生成树)
通过修改端口开销或网桥端口优先级来提供负载均衡
Catalyst4500交换机的mac地址池包括64个MAC地址一般情况下Catalyst 交换机的MAC Add-pool最多可容纳1024个地址
三、拓扑变更实例:(图中为指定端口为根端口为阻塞端口)
1、 当1链路down,sw2直接拓扑变更端口立即变为根端口此时为侦听状态(发送TCN BPDU),接收SW3 的最佳BPDU,等待15s变为学习状态再过15s变为转发状态。
2、 当2链路down,SW3 收不到根发的BPDU,就发送以自己为根的次佳BPDU,SW2 收到后比较与SW1 收到的BPDU。证明了根还在,便不处理SW3 的 BPDU等待20s最大老化时间后,变为侦听过了15s变为学习状态,再过15s后为转发状态。同时SW1自己能感知拓扑变化,发送TC置位的BPDU,SW2 20s 后发送Tc置位的BPDU给SW3
3、 当3 down,SW3发送TCN BPDU SW1收后发TC置位的BPDU SW2、SW3刷新MAC表。
四、 STP高级特性:
1、 portfast:配置了此特性的端口能立即进入fowarding状态。一般用于PC或SERVER的接入。
注意:portfast特性能一直拓扑变更通告。
2、 uplinkfast:一般是在直接拓扑变更中,阻塞端口直接变成转发状态,时间为0-5s
当1链路down之后,直接变为根端口并处于forwarding状态(sw2上挂着多台PC机)
配置命令: spanning-tree uplinkfast
注意:
a、 如果网桥优先级的开销为默认值,uplinkfast特性能够将网桥优先增加到49152,端口开销增加3000
b、 Uplinkfast特性也能抑制发往根网桥的TCN消息。交换机发送伪多播帧(即SW2发送所有PC的MAC地址的数据包,让sw1 sw3刷新MAC表,把旧端口移到新端口上)
3、backbonefast: 针对简介拓扑变更,时间由50降到30s
注意:当配置backbonefast特性时,要求在网络中的每台交换机上启用backbonefast特性。
例如:
当3链路down了,SW3发送次佳BPDU给SW2,SW2发送RLQ BPDU给根网桥,确原来的根是否还存在,根网桥给予回应,SW2的变为侦听状态重新收敛。
如果新增加SW4(在SW2的下面)因为SW2已经认定SW3为指定网桥,backbonefast特性不会对这种情况产生影响SW4会进行正常STP收敛。
五、 STP保护特性:
1、 BPDU Guard
作用:对于配置了BPDU保护特性的portfas端口如果接收到BPDU时,BPDU防护能是其进入“err-diable”状态。只能用手工启用后设置超时时间。
命令:spanning-tree protfast bpdugaurd
2、 BPDU filter:
作用:启用BPDUfilter功能可以防止Catalyst交换机在启用portfast特性的接口上发送BPDU,配置了BPDU filter的SW不会发送任何的BPDU,并丢弃所有接收到的BPDU
注意:BPDU filter的优先级高于BPDU Guard
3、 ROOT guard:能将接口强制成为指定端口
如果网桥在启用跟防护的端口上接收到更优的BPDU则进入“不一致根”的STP状态并且不会从该端口转发流量,不处理该BPDU。当移走新SW时,此端口又正常收敛,恢复过程是自动的。
接口下敲命令: spanning-tree guard root
4、 环路防护(loop guard):防止单向链路所导致的STP故障
当SW3到SW2 的单向链路down,经过最大寿命时间后,SW2 上的→侦听→学习→转发 继而出现环路。启用环路保护后,经过最大寿命时间后 SW2的将处于“不一致环路”状态(相当于阻塞)不转发任何流量。
命令:spanning-tree guard loop
注意:环路防护不能和根防护共存于相同端口
5、 积极模式UDLD和环路防护:
区别:对于指定SW中软件问题不能发送BPDU所导致的故障。积极模式UDLD不能检测到它。UDLD主要检测由硬件故障造成的环路。