STP (spanning tree protocol) IEEE802.1D
生成树协议
默认开启
为了避免
单点失效
(两网段间只有一个物理设备,坏了就是单点失效)→
冗余
网络(问题多帧复制、
MAC
地址表翻动、广播风暴)
为了解决冗余网络中的桥接环路问题产生了
STP
(逻辑
Block
一条路,关接口)
STP
采用
STA
(
sp
anning tree arithmetic
)算法
STA
工作原理
:会在冗余链路中选择一个参考点(生成树的根),将选择到达要的单条路径,同时阻断其他冗余路径。一旦已选路径失效,将启用其他路径
STP
里选举都是越小越优
STP
靠
BPDU
报文来维持
STP
的工作,
BPDU
桥接数据单元
,直接封装在以太网帧中。默认
2
秒发一次,发到组播地址
0180c
2000000
Max Age
最大存活时间(
20s
)
BPDU
功能:
1
、选根桥
2
、确定冗余路径位置
3
、
block
特定端口
4
、通告拓扑变更
5
、监控生成树状态
网络最初,所有的
sw
都认为自己是根桥,都发
BPDU
,比最小
BID
,选出根桥,此时根桥发
BPDU
,非根桥转发。
BPDU
类型
:
Type 00
→
configuration
正常发的
80
→
TCN
(
topology change notification
)
拓扑改变时发的
Flags
8B
Root
ID
根桥
ID
→优先级
+MAC
Cost to path
到根桥的
cost
Forward delay
转发延迟计时器(默认
15
)监听和学习状态停留时间
根桥的选举
:最小
BID
(先比优先,再比
MA
,比小)
每个网络中只有一个根桥
BID
(
bridge ID
)桥
ID
每台
SW
的唯一标识符。
2
(
bridge priority
)
+6(mac)=8 bytes
默认
Priority
:
32768
(
0x8000
)
0---65535. 2950
以上的交换机会在这个值上再加上
VLAN
号
查看
STP
信息
--
Sw2#show spanning-tree
Sw3# show spanning-tree brief(
低版本用
)2900
以下的交换机用这一命令
根端口
root port---------
非根桥到根桥开销最小的端口(状态为
forward
)
指定端口
designate port-----
根桥所有接口都为指定接口,(状态为
forward
)
No
ndesignate port
(阻塞端口)
----
不转发流量端口,(状态为
blocking
)
非根桥上
DP/NP
选举办法
:
比小胜出为指定,失败的为非指定
1
、
path cost 2
、发送方
BID 3
、发送方
port ID
cost
值
10GBps
2
|
1GBps
4
|
100MBps
19
|
10MBps
100
|
端口
ID
(
PID
)
1
(
p
riority
)
+1(port number)=2 Bytes
默认
priority=128
修改端口优先级
接口下
spanning-tree (vlan 1) port-priority 16 (
必须为
16
的倍数
)
BPDU
的
timer
修改
spanning-tree vlan 1-10 hello-time 3
改发送
BPDU
的时间间隔
(默认
2s
)
spanning-tree vlan 1-10 forward-time 13
修改
forward
时间
(默认
15s
)
spanning-tree vlan 1-10 max-age 33
修改最大存活时间
(
默认
20s)
接口状态:
disable
手动
shutdown
blocking
监听
BPDU
,不学
mac,
不转发帧
MAX age
20
秒,
20
秒没收到
BPDU
,切换状态
listening
监听
BPDU
,不学
mac,
不转发帧(选举
Root/RP/DP
)
Delay
15
秒
learning
监听
BPDU
,学
mac,
不转发帧
Delay 15
秒
forwarding
监听
BPDU
,学
mac,
转发帧
(从
block
到
forward
要
30
秒)
STP
增强特性
802.1D
最初,网络中断,要
MAX50
秒才能恢复
CISCO
加快收敛推出的私有特性:
portfast/uplink fast/backbone fast
Port fast:
从
block
直接跳到
forwarding
1
、接单独主机接口才能用(
access
)
命令
:
接口下
spanning-tree portfast
禁用
spanning-tree disable
全局下
spanning-tree portfast default
所有接口都启用
,
一般在接入层交换机上启用,然后把连另交换机的口禁用
Uplink fast
接入层
sw
上配置,检测汇聚层
sw
的链路故障加快
STP
收敛速度(接入层连两个汇聚层
SW
,连汇聚层的路就是
UPlink
)
全局命令,将影响
sw
上所有
vlan
spanning-tree
uplink fast
看那些接口成为备份
show
spanning-tree uplinkfast
Sw2(config)#spanning-tree uplinkfast max-update-rate 200
(每秒所发包的数目,默认值
150
)
BackboneFast
:
(用于检测主干
SW
间的链路故障)节省
20
秒
ROOt
丢失后,以自己发出次
BPDU
,收到这个
BPDU
后,会向使用代理路径发送
RLQ BPDU
,向
ROOT
进行查询
建议
Backbonefast
用在所有
SW
上
命令:
spanning-tree backbonefast
查看
RLQ
消息和次级
BPDU
show
spanning-tree backbonefast
<优化
STP
>
・
BPDU
防护
:
对于设置了
PortFast
接口,却收到了
BPDU
,如果设置了
BPDU
防护,就能将此接口关闭,而不会进入生成树状态。且默认情况下是要手动才能恢复
Sw1(config)#spanning-tree portfast bpduguard
(全局开启)
Sw1(config-if)#spanning-tree bpduguard enable
(接口开启)
Sw1#show spanning-tree summary [totals]
Show errdisable recovery
显示可导致接口
errdisable
的选项
Sw1(config)#errdisable recovery cause bpduguard
设置
300S
(默认)后自动修复
bpduguard
所导致的
errdisable
Sw1(config)#errdisable recovery interval 30
修改默认的修复时间