交换机启动时,假定自己是根网桥,在向外发送的BPDU中,根网桥ID字段填写自己的网桥ID
STP使用BPDU选择根网桥2-2
当接收到其他交换机发出的BPDU后,比较网桥ID,选择较小的添加到根网桥ID中
STP使用BPDU计算根路径成本2-1
根网桥发送根路径成本为0的BPDU
其他交换机接收到根网桥的BPDU后,在根路径成本上添加接收接口的路径成本,然后转发
生成树端口的状态
生成树计时器
hello-timer :2s root每2s产生BPDU
forwarding-timer:15s stp选举时间
max-age:20s 储存BPDU的时间,spanning-tree发生故障,20s后原blocking状态->learning 状态
STP状态机
在STP选举过程中,端口是不能转发用户数据的。端口一开始处于阻塞状态,这个状态只能接收BPDU;
一个接口20秒没收到BPDU,也就是到了最大时间,端口会进入侦听状态,这时接口可以接收BPDU,并开始发送BPDU;
发送15秒的BPDU,接口将会为转发用户数据做准备,也开始学习MAC地址,这个状态叫学习状态;
再经过15秒的学习后,端口进入转发状态,转发状态是一个正常的接口。
开启STP:
switchA(Config)#spanning-tree
MSTP is starting now, please wait...........
MSTP is enabled successfully.
spanning-tree设置
查看配置
SW1#sh spanning-tree
-- MSTP Bridge Config Info --
Standard : IEEE802.1s
Bridge MAC : 00:03:0f:01:0e:30
Bridge Times : Max Age 20, Hello Time 2, Forward Delay 15
Force Version: 3
########################### Instance 0 ###########################
Self Bridge Id : 32768 - 00:03:0f:01:0e:30
Root Id : 16384.00:03:0f:01:0f:52
Ext.RootPathCost : 200000
Region Root Id : this switch
Int.RootPathCost : 0
Root Port ID : 128.1
Current port list in Instance 0:
Ethernet0/0/1 Ethernet0/0/2 (Total 2)
PortName ID ExtRPC IntRPC State Role DsgBridge DsgPort
-------------- ------- --------- --------- --- ---- ------------------ -------
Ethernet0/0/1 128.001 0 0 FWD ROOT 16384.00030f010f52 128.007
Ethernet0/0/2 128.002 0 0 BLK ALTR 16384.00030f010f52 128.011
MSTP
用少量资源在网络中实现多个生成树
在多条Trunk链路上实现VLAN级负载均衡
MSTP配置
DCS (Config)# spanning-tree mst configuration
DCS (Config-Mstp-Region)#name mstp
DCS (Config-Mstp-Region)#instance 1 vlan 10
DCS (Config-Mstp-Region)#instance 2 vlan 20
DCS (Config-Mstp-Region)#exit
DCS (Config)# spanning-tree
MSTP is starting now, please wait...........
MSTP is enabled successfully.
改变生成树的形态
改变交换机优先级
switchB(Config)#spanning-tree mst 0 priority 28672
改变链路开销
switchA(config-Ethernet0/0/2 )#spanning-tree mst 1 cost 300000
改变端口优先级
switchA(Config-Ethernet0/0/2)#spanning-tree mst 0 port-priority 144