STP (spanning
tree
protocol) IEEE802.1D生成树协议
默认开启
为了避免单点失效(两网段间只有一个物理设备,坏了就是单点失效)→冗余网络(问题多帧复制、MAC地址表翻动、广播风暴)
为了解决冗余网络中的桥接环路问题产生了STP(逻辑Block一条路,关接口)
STP采用STA(spanning
tree arithmetic)算法
STA工作原理:会在冗余链路中选择一个参考点(生成树的根),将选择到达要的单条路径,同时阻断其他冗余路径。一旦已选路径失效,将启用其他路径
STP
里选举都是越小越优
STP靠BPDU报文来维持STP的工作,
BPDU
桥接数据单元
,直接封装在以太网帧中。默认2秒发一次,发到组播地址0180c2000000
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)
Nondesignate
port(阻塞端口)----不转发流量端口,(状态为blocking)
非根桥上DP/NP选举办法:
比小胜出为指定,失败的为非指定
1、path
cost
2、发送方BID
3、发送方
port ID
cost值
10GBps
2
| 1GBps
4
| 100MBps
19
| 10MBps
100
|
端口ID(PID)
1(priority)+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
修改默认的修复时间
|