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主要检测由硬件故障造成的环路。