STP(Spanning Tree Protocol) (IEEE 802.1D) 生成树协议
是一种逻辑阻塞。
是一种逻辑阻塞。
·在一个交换网络中有可能会出现单点失效的故障,所谓单点失效,指的是由于网络中某一台设备的故障,而影响整个网络的通信。为了避免单点失效,提高网络的可靠性,可以通过构建一个冗余拓扑来解决。但是,一个冗余的拓扑,又会给我们的网络造成环路,而产生其它的影响。为了解决二层环路问题,而设计了SPT协议。
·当2个Segment之间,只有一个物理设备连接时,就有可能“单点失效”。
·Segment:(段的概念)
1.STP:一段网络介质(网线/光纤)。
2.数据封装:携带4层报头的用户数据。
3.路由:一个逻辑子网。
1.STP:一段网络介质(网线/光纤)。
2.数据封装:携带4层报头的用户数据。
3.路由:一个逻辑子网。
·避免单点失效的方法就是构造冗余网络。
·但冗余网络会导致新的问题:
1.多帧复制
2.MAC地址表的翻动
3.广播风暴
1.多帧复制
2.MAC地址表的翻动
3.广播风暴
·STP是为克服冗余网络中透明桥接的环路问题而创建的。
STP通过判断网络中存在环路的地方,并阻断冗余链路来实现无环网络。
STP通过判断网络中存在环路的地方,并阻断冗余链路来实现无环网络。
·STP采用STA(Spanning Tree Arithmetic)算法。
STA会在冗余链路中选择一个参考点(生成树的根),将选择到达要的单条路径,同时阻断其他冗余路径。一旦已选路径失效,将启用其他路径。
STA会在冗余链路中选择一个参考点(生成树的根),将选择到达要的单条路径,同时阻断其他冗余路径。一旦已选路径失效,将启用其他路径。
BPDU(Bridge Protocol Data Unit)
·STP的各种选举是通过交换BPDU报文来实现的,BPDU是直接封装在以太网帧中的。
·对于参与STP的所有SW,它们都通过数据消息的交换来获取网络中其他SW的信息,这种消息就被称为BPDU。
·BPDU是直接封装在二层的协议,其MAC地址最后封装数为:00。(01:80:c2:00:00:00)
·BPDU的功能:
1.选举根桥
2.确定冗余路径的位置
3.通过阻塞特定端口来避免环路
4.通告网络的拓扑变更
5.监控生成树的状态
1.选举根桥
2.确定冗余路径的位置
3.通过阻塞特定端口来避免环路
4.通告网络的拓扑变更
5.监控生成树的状态
·BPDU每2S由根桥发送一次。
最初的网络,每个SW都认为自己是根桥,都会发送BPDU,比较Lowest BID,选举出一个根桥,当根桥选出来以后。此时就只有根桥发送BPDU。非根桥只进行转发。
最初的网络,每个SW都认为自己是根桥,都会发送BPDU,比较Lowest BID,选举出一个根桥,当根桥选出来以后。此时就只有根桥发送BPDU。非根桥只进行转发。
BPDU分两种类型:
1、配置BPDU--通常由根网桥以周期性间隔发出,包括了STP参数,用于进行各种选举。
2、TCN(topology change notification 拓扑变更通告)BPDU--这种BPDU是当交换机检测到拓扑发生变更时所产生。
1、配置BPDU--通常由根网桥以周期性间隔发出,包括了STP参数,用于进行各种选举。
2、TCN(topology change notification 拓扑变更通告)BPDU--这种BPDU是当交换机检测到拓扑发生变更时所产生。
·配置BPDU包含以下的字段(configuration BPDU)
1、Protocol ID : 固定为0,2bit
2、Version : 802.1D (0),1bit
3、Message Type : (Config BPDU=0x00 / TCN BPDU=0x80),1bit
4、Flags:1bit(第1位为0是not topology change acknowladgment,最后位为0是not topology change)
5、Root ID:8bit
6、Cost of Path:4bit
7、Bridge ID:8bit(2bit priority+6bit MAC)
8、Port ID:2bit
9、Message age:2bit
10、Max age:2bit:20S
11、Hellotime:2bit:3S
12、Forward delay:2bit:15S
1、Protocol ID : 固定为0,2bit
2、Version : 802.1D (0),1bit
3、Message Type : (Config BPDU=0x00 / TCN BPDU=0x80),1bit
4、Flags:1bit(第1位为0是not topology change acknowladgment,最后位为0是not topology change)
5、Root ID:8bit
6、Cost of Path:4bit
7、Bridge ID:8bit(2bit priority+6bit MAC)
8、Port ID:2bit
9、Message age:2bit
10、Max age:2bit:20S
11、Hellotime:2bit:3S
12、Forward delay:2bit:15S
·TCN(Topology Change Notification) BPDU
这种BPDU是交换机检测到拓扑变更时产生的。只包含下列三个字段
这种BPDU是交换机检测到拓扑变更时产生的。只包含下列三个字段
1、Protocol ID
2、Version
3、Message Type : (Config BPDU=0x00 / TCN BPDU=0x80)
2、Version
3、Message Type : (Config BPDU=0x00 / TCN BPDU=0x80)
<STP的4大工作流程>(STP里选举参数都是越小越优)
One root bridge per network
One root port per nonroot bridge
One designated port per segment
Nondesignated ports are blocked
One root port per nonroot bridge
One designated port per segment
Nondesignated ports are blocked
One root bridge per network(每个网络只有一个根桥)
·根桥的选举:Lowest BID (最小的BID)
·STP为每台SW分配唯一的一个标识符,称为BID(Bridge ID)。
BID的组成:2(Bridge Priority优先级)+6(MAC)=8 Bytes
默认Priority:32768(0x8000)可以从0到65535
2950以上的交换机会在这个值上再加上VLAN号,因为CISCO默认启用PVST(一个VLAN是一个生成树)
BID的组成:2(Bridge Priority优先级)+6(MAC)=8 Bytes
默认Priority:32768(0x8000)可以从0到65535
2950以上的交换机会在这个值上再加上VLAN号,因为CISCO默认启用PVST(一个VLAN是一个生成树)
每个交换机都有一个基准的MAC地址,用下面的命令可以看到
Sw2#show version
Base ethernet MAC Address: 00:0D:28:61:35:00
交换机的每一个端口都有一个MAC地址,就是以Base(基准) MAC地址加上端口号得到的。
Show interface f0/1 这一命令可以看到交换机端口的MAC地址
Sw2#show version
Base ethernet MAC Address: 00:0D:28:61:35:00
交换机的每一个端口都有一个MAC地址,就是以Base(基准) MAC地址加上端口号得到的。
Show interface f0/1 这一命令可以看到交换机端口的MAC地址
查看STP信息--
SW1# sh spanning-tree bri
SW1# sh spanning-tree bri
VLAN1
Spanning tree enabled protocol ieee
Root ID Priority 32768
Address cc00.0838.0000
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Spanning tree enabled protocol ieee
Root ID Priority 32768
Address cc00.0838.0000
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32768
Address cc00.0838.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 0
Address cc00.0838.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 0
Interface Designated
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/1 128.42 128 19 FWD 0 32768 cc00.0838.0000 128.42
FastEthernet1/2 128.43 128 19 FWD 0 32768 cc00.0838.0000 128.43
FastEthernet1/3 128.44 128 19 FWD 0 32768 cc00.0838.0000 128.44
FastEthernet1/4 128.45 128 19 FWD 0 32768 cc00.0838.0000 128.45
FastEthernet1/5 128.46 128 19 FWD 0 32768 cc00.0838.0000 128.46
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/1 128.42 128 19 FWD 0 32768 cc00.0838.0000 128.42
FastEthernet1/2 128.43 128 19 FWD 0 32768 cc00.0838.0000 128.43
FastEthernet1/3 128.44 128 19 FWD 0 32768 cc00.0838.0000 128.44
FastEthernet1/4 128.45 128 19 FWD 0 32768 cc00.0838.0000 128.45
FastEthernet1/5 128.46 128 19 FWD 0 32768 cc00.0838.0000 128.46
·PVST(Per Vlan Stp)
Cisco SW 默认为每个VLAN生成一个STP,互不影响。
由于是为不同的VLAN生成不同的生成树。所以每一台交换机需要为不同的VLAN生成一个不同的桥优先级,所以在CISCO交换机上,交换机在每一个VLAN中的优先级是默认的32768再加上VLAN的号码。
Cisco SW 默认为每个VLAN生成一个STP,互不影响。
由于是为不同的VLAN生成不同的生成树。所以每一台交换机需要为不同的VLAN生成一个不同的桥优先级,所以在CISCO交换机上,交换机在每一个VLAN中的优先级是默认的32768再加上VLAN的号码。
可通过以下命令指定一台交换要为根桥:
Sw1(config)#
spanning-tree vlan 1-10 root primary (24576=0x6000) (建立优先级,成为根桥,只是一次变化,
不是动态的,敲一次起一次作用)
SW2(config)#spanning-tree vlan 1 root primary
VLAN 1 bridge priority set to 8192
VLAN 1 bridge max aging time unchanged at 20
VLAN 1 bridge hello time unchanged at 2
VLAN 1 bridge forward delay unchanged at 15
VLAN 1 bridge priority set to 8192
VLAN 1 bridge max aging time unchanged at 20
VLAN 1 bridge hello time unchanged at 2
VLAN 1 bridge forward delay unchanged at 15
SW1#sh spanning-tree bri
VLAN1
Spanning tree enabled protocol ieee
Root ID Priority 8192
Address cc01.0838.0000
Cost 19
Port 44 (FastEthernet1/3)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Spanning tree enabled protocol ieee
Root ID Priority 8192
Address cc01.0838.0000
Cost 19
Port 44 (FastEthernet1/3)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32768
Address cc00.0838.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 0
Address cc00.0838.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 0
Interface Designated
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/1 128.42 128 19 FWD 19 32768 cc00.0838.0000 128.42
FastEthernet1/2 128.43 128 19 FWD 19 32768 cc00.0838.0000 128.43
FastEthernet1/3 128.44 128 19 FWD 0 8192 cc01.0838.0000 128.44
FastEthernet1/4 128.45 128 19 BLK 0 8192 cc01.0838.0000 128.45
FastEthernet1/5 128.46 128 19 FWD 19 32768 cc00.0838.0000 128.46
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/1 128.42 128 19 FWD 19 32768 cc00.0838.0000 128.42
FastEthernet1/2 128.43 128 19 FWD 19 32768 cc00.0838.0000 128.43
FastEthernet1/3 128.44 128 19 FWD 0 8192 cc01.0838.0000 128.44
FastEthernet1/4 128.45 128 19 BLK 0 8192 cc01.0838.0000 128.45
FastEthernet1/5 128.46 128 19 FWD 19 32768 cc00.0838.0000 128.46
Sw3(config)#
spanning-tree vlan 1-10 root secondary (28672=0x7000) (备份根桥,防止优先级根桥showdown了)
Sw1(config)#spanning-tree vlan 1-10 priority 4096
(设置必须是4096的倍数)
Sw1(config)#spanning-tree vlan 1-10 priority 4096
(设置必须是4096的倍数)
SW1#sh spanning-tree bri
VLAN1
Spanning tree enabled protocol ieee
Root ID Priority 4096
Address cc00.0838.0000
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Spanning tree enabled protocol ieee
Root ID Priority 4096
Address cc00.0838.0000
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 4096
Address cc00.0838.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 0
Address cc00.0838.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 0
Interface Designated
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/1 128.42 128 19 FWD 0 4096 cc00.0838.0000 128.42
FastEthernet1/2 128.43 128 19 FWD 0 4096 cc00.0838.0000 128.43
FastEthernet1/3 128.44 128 19 FWD 0 4096 cc00.0838.0000 128.44
FastEthernet1/4 128.45 128 19 FWD 0 4096 cc00.0838.0000 128.45
FastEthernet1/5 128.46 128 19 FWD 0 4096 cc00.0838.0000 128.46
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/1 128.42 128 19 FWD 0 4096 cc00.0838.0000 128.42
FastEthernet1/2 128.43 128 19 FWD 0 4096 cc00.0838.0000 128.43
FastEthernet1/3 128.44 128 19 FWD 0 4096 cc00.0838.0000 128.44
FastEthernet1/4 128.45 128 19 FWD 0 4096 cc00.0838.0000 128.45
FastEthernet1/5 128.46 128 19 FWD 0 4096 cc00.0838.0000 128.46
One root port per nonroot bridge(每个非根桥都要选出一个根端口)
·根端口(RP):每个非根桥有且只有一个根端口
选举RP/DP的方法:
1.Lowest RID(最小的RID) 是SW1(根桥)的BID
2.Lowest path cost to root bridge(到达根的最小路径开销)
3.lowest sender BID (最小的发送BID)
4.Lowest sender port ID 当两台交换机之间有两条线路直连时会用到这一项来选
1.Lowest RID(最小的RID) 是SW1(根桥)的BID
2.Lowest path cost to root bridge(到达根的最小路径开销)
3.lowest sender BID (最小的发送BID)
4.Lowest sender port ID 当两台交换机之间有两条线路直连时会用到这一项来选
·Path Cost:根桥发出的COST值是0,在下一交换机的入口处才加上COST值,出口处COST值不变。
SW2#sh int st
Interface FastEthernet1/0 is disabled
FastEthernet1/3
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 210 14162 117 10480
Route cache 0 0 0 0
Total 210 14162 117 10480
FastEthernet1/4
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 211 14519 15 4094
Route cache 0 0 87 5220
Total 211 14519 102 9314
FastEthernet1/5
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 54 6293 178 13874
Route cache 0 0 88 5280
Total 54 6293 266 19154
Vlan1
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 3 231 2 154
Route cache 0 0 0 0
Total 3 231 2 154
SW2#sh int st
Interface FastEthernet1/0 is disabled
FastEthernet1/3
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 210 14162 117 10480
Route cache 0 0 0 0
Total 210 14162 117 10480
FastEthernet1/4
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 211 14519 15 4094
Route cache 0 0 87 5220
Total 211 14519 102 9314
FastEthernet1/5
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 54 6293 178 13874
Route cache 0 0 88 5280
Total 54 6293 266 19154
Vlan1
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 3 231 2 154
Route cache 0 0 0 0
Total 3 231 2 154
Sw1#show spanning-tree
Sw1(config-if)#
spanning-tree (vlan 1) cost 22 每个VLAN都能生成一个自已的生成树,通过改动每个VLAN的COST值可以达到让每个VLAN选择不同的根端口,产生不同的生成树,充分利用了链路
Sw1(config-if)# spanning-tree cost 22 修改所有Vlan的Cost值
Sw1(config-if)# spanning-tree cost 22 修改所有Vlan的Cost值
SW2#sh int st
Interface FastEthernet1/0 is disabled
FastEthernet1/3
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 210 14162 117 10480
Route cache 0 0 0 0
Total 210 14162 117 10480
FastEthernet1/4
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 211 14519 15 4094
Route cache 0 0 87 5220
Total 211 14519 102 9314
FastEthernet1/5
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 54 6293 178 13874
Route cache 0 0 88 5280
Total 54 6293 266 19154
Vlan1
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 3 231 2 154
Route cache 0 0 0 0
Total 3 231 2 154
Interface FastEthernet1/0 is disabled
FastEthernet1/3
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 210 14162 117 10480
Route cache 0 0 0 0
Total 210 14162 117 10480
FastEthernet1/4
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 211 14519 15 4094
Route cache 0 0 87 5220
Total 211 14519 102 9314
FastEthernet1/5
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 54 6293 178 13874
Route cache 0 0 88 5280
Total 54 6293 266 19154
Vlan1
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 3 231 2 154
Route cache 0 0 0 0
Total 3 231 2 154
Port ID是由优先级+端口号组成
修改端口优先级:默认情况下是128
Sw1(config-if)# spanning-tree port-priority 16 注意:必须是16的倍数才行
修改端口优先级:默认情况下是128
Sw1(config-if)# spanning-tree port-priority 16 注意:必须是16的倍数才行
One designated port per segment(每个Segment只有一个指定端口)
选举RP/DP的方法:
1.Lowest RID(最小的RID) 是SW1(根桥)的BID
2.Lowest path cost to root bridge(到达根的最小路径开销)
3.lowest sender BID (最小的发送BID)
4.Lowest sender port ID
选举RP/DP的方法:
1.Lowest RID(最小的RID) 是SW1(根桥)的BID
2.Lowest path cost to root bridge(到达根的最小路径开销)
3.lowest sender BID (最小的发送BID)
4.Lowest sender port ID
·根桥的所有端口都是指定端口(DP),也是转发端口
Nondesignated ports are blocked(非指定端口将被堵塞)
·最后,既不是根端口,又不是指定端口的哪些接口被称为非指定端口,这些端口将被block掉。从而达到防环的目的。
<生成树的收敛>
当网络出现故障导致拓朴发生变化时,生成树要进行收敛,在收敛过程中,一个block接口变到forward状态时会经历以下四种状态变化。
当网络出现故障导致拓朴发生变化时,生成树要进行收敛,在收敛过程中,一个block接口变到forward状态时会经历以下四种状态变化。
生成树端口状态:
1、blocking--阻塞状态,不转发帧,监听流入的BPDU,不学习MAC地址
2、listening--监听状态,不转发帧,不学习MAC地址,能够决定端口角色,学习BPDU
3、learning--学习状态,不转发帧,能学习MAC地址(构建MAC地址表)
4、forwarding--转发状态,能够进行正常的帧转发
1、blocking--阻塞状态,不转发帧,监听流入的BPDU,不学习MAC地址
2、listening--监听状态,不转发帧,不学习MAC地址,能够决定端口角色,学习BPDU
3、learning--学习状态,不转发帧,能学习MAC地址(构建MAC地址表)
4、forwarding--转发状态,能够进行正常的帧转发
当拓扑发生变化时,端口从阻塞状态过渡到正常转发状态的时间是
30-50S
如果是直连接口down掉,端口状态过渡最大需要 30S
*Mar 1 00:25: 10.819: STP: VLAN1 Fa1/3 -> blocking
*Mar 1 00:25:10.823: STP: VLAN1 new root port Fa1/4, cost 19
*Mar 1 00:25:10.823: STP: VLAN1 Fa1/4 -> listening
如果是直连接口down掉,端口状态过渡最大需要 30S
*Mar 1 00:25: 10.819: STP: VLAN1 Fa1/3 -> blocking
*Mar 1 00:25:10.823: STP: VLAN1 new root port Fa1/4, cost 19
*Mar 1 00:25:10.823: STP: VLAN1 Fa1/4 -> listening
*Mar 1 00:25:25.855: STP: VLAN1 Fa1/4 ->
learning
SW2#
*Mar 1 00:25:40.859: STP: VLAN1 sent Topology Change Notice on Fa1/4
*Mar 1 00:25: 40.859: STP: VLAN1 Fa1/4 -> forwarding
SW2#
*Mar 1 00:25:40.859: STP: VLAN1 sent Topology Change Notice on Fa1/4
*Mar 1 00:25: 40.859: STP: VLAN1 Fa1/4 -> forwarding
如果是非直连故障,最大需要
50S
*Mar 1 00:29:
33.843: STP: VLAN1 new root port Fa1/4, cost 19
*Mar 1 00:29:33.875: STP: VLAN1 Fa1/4 -> listening
SW2#
*Mar 1 00:29:48.907: STP: VLAN1 Fa1/4 -> learning
SW2#
*Mar 1 00:30:03.943: STP: VLAN1 sent Topology Change Notice on Fa1/4
*Mar 1 00:30: 03.947: STP: VLAN1 Fa1/4 -> forwarding
*Mar 1 00:29:33.875: STP: VLAN1 Fa1/4 -> listening
SW2#
*Mar 1 00:29:48.907: STP: VLAN1 Fa1/4 -> learning
SW2#
*Mar 1 00:30:03.943: STP: VLAN1 sent Topology Change Notice on Fa1/4
*Mar 1 00:30: 03.947: STP: VLAN1 Fa1/4 -> forwarding
<二层MAC地址表的收敛>
注意:在网络拓朴发生改变后,不仅会有STP的收敛,还会导致二层MAC地址表的收敛。
注意:在网络拓朴发生改变后,不仅会有STP的收敛,还会导致二层MAC地址表的收敛。
·当发生如下事件时,SW会发送TCN:
1.链路故障(FWD -> BLK)
2.端口进入转发状态,并且SW已经拥有DP
3.非根桥从它的DP接收到TCN,并将其转发
MAC地址表的收敛过程如下:
1、拓扑发生改变的交换机向RP端口发出TCN的BPDU
2、上级交换机做两件事:先回应一个TCA置位的BPDU,再继续向自已的RP接口发出TCN的BPDU
3、TCN的BPDU就这样一跳跳的传到根交换机上
4、然后根交换机将自已MAC地址表的老化时间由默认的300S改为转发延迟时间(15S)。
5、根交换机再向网络中发出TC置位的BPDU
6、网络中的其他交换机收到TC置位的BPDU后,也将自已MAC地址表的老化时间由默认的300S改为15S。
1.链路故障(FWD -> BLK)
2.端口进入转发状态,并且SW已经拥有DP
3.非根桥从它的DP接收到TCN,并将其转发
MAC地址表的收敛过程如下:
1、拓扑发生改变的交换机向RP端口发出TCN的BPDU
2、上级交换机做两件事:先回应一个TCA置位的BPDU,再继续向自已的RP接口发出TCN的BPDU
3、TCN的BPDU就这样一跳跳的传到根交换机上
4、然后根交换机将自已MAC地址表的老化时间由默认的300S改为转发延迟时间(15S)。
5、根交换机再向网络中发出TC置位的BPDU
6、网络中的其他交换机收到TC置位的BPDU后,也将自已MAC地址表的老化时间由默认的300S改为15S。
这样,每台交换机就快速的老化了MAC地址表,清除掉了已经失效的MAC地址条目。
<BPDU Timer>
三个计时器:
·Message Age:最大存活时间(20S)
Hello Time:根桥连续发送BPDU的间隔(2S)
Forward Time:SW在监听和学习状态所停留的时间(15S)
·Message Age:最大存活时间(20S)
Hello Time:根桥连续发送BPDU的间隔(2S)
Forward Time:SW在监听和学习状态所停留的时间(15S)
spanning-tree vlan 1-10 hello-time 3 修改发送BPDU的时间间隔
spanning-tree vlan 1-10 forward-time 13 修改forward时间
spanning-tree vlan 1-10 max-age 33 修改最大存活时间
spanning-tree vlan 1-10 forward-time 13 修改forward时间
spanning-tree vlan 1-10 max-age 33 修改最大存活时间
注意:必须在根桥上修改,否则不起作用。
1.老化时间(blocking)(loss of BPDU detected)max age=20s
(mac access ex stp
deny an an
int f0/23
mac access-group stp in)
2. 监听时间(listening)forward delay=15s
3.学习时间(learning)forward delay=15s
1.老化时间(blocking)(loss of BPDU detected)max age=20s
(mac access ex stp
deny an an
int f0/23
mac access-group stp in)
2. 监听时间(listening)forward delay=15s
3.学习时间(learning)forward delay=15s
监听BPDU 学习MAC 帧转发
Blocking √ × ×
Listening √ × ×(选举Root/RP/DP)
Learning √ √ ×
Forwarding √ √ √
Blocking √ × ×
Listening √ × ×(选举Root/RP/DP)
Learning √ √ ×
Forwarding √ √ √
<STP和802.1Q>
·CISCO交换机上,在采用802.1Q的Trunk中,SW为Trunk中所允许的每个VLAN维护一个STP。
(PVST)
·对于不支持802.1Q的SW,所有VLAN维护一个STP。(SSTP)
(PVST)
·对于不支持802.1Q的SW,所有VLAN维护一个STP。(SSTP)
·在交换网络中,STP是始终运行的,如果链路没有Trunking.STP只维护VLAN1的信息。
Per VLAN Spanning Tree
优点:1.基于Vlan的负载均衡;
缺点:1.BPDU是基于Vlan 的基础上运行的;
优点:1.基于Vlan的负载均衡;
缺点:1.BPDU是基于Vlan 的基础上运行的;
<STP的一些增强特性>
·802.1D STP设计初衷:网络中断后能够在1分钟之内(Max=50S)恢复。
伴随着LAN出现3层交换,很多的路由协议(OSPF/EIGRP)都能在几秒之内收敛。
伴随着LAN出现3层交换,很多的路由协议(OSPF/EIGRP)都能在几秒之内收敛。
·Cisco为加快收敛时间,提出了一些私有的优化特性来加速STP的收敛:
1、PortFast
2、UpLinkFast
3、BackboneFast
1、PortFast
2、UpLinkFast
3、BackboneFast
·PortFast: (接入层交换机接入口地方)
能够让2层的接入端口(接host)跳过LIS/LRN状态立即进入FWD。 30S->0S
基于接口,用于接非交换机接口,不要设置在接SW的端口。
能够让2层的接入端口(接host)跳过LIS/LRN状态立即进入FWD。 30S->0S
基于接口,用于接非交换机接口,不要设置在接SW的端口。
Sw1#show spanning-tree
Type: Edge [Shr/P2p]
Type: Edge [Shr/P2p]
测试:把交换机的端口shut down,再no shut down,观察状态。启用前和启有后是不一样的。
SW1(config)#int f1/5
SW1(config-if)#sh
SW1(config-if)#
*Mar 1 00:34:47.163: STP: VLAN1 Fa1/5 -> blocking
SW1(config-if)#sh
SW1(config-if)#
*Mar 1 00:34:47.163: STP: VLAN1 Fa1/5 -> blocking
SW1(config-if)#no sh
*Mar 1 00:35:03.683: STP: VLAN1 Fa1/5 ->jump to forwarding from blocking
*Mar 1 00:35:03.683: STP: VLAN1 Fa1/5 ->jump to forwarding from blocking
Sw1(config)#spanning-tree portfast default (所有接口启用)全局下用
一般用在接入层的交换机上。
一般用在接入层的交换机上。
Sw1(config-if)#spanning-tree portfast 接口下单独启用
Sw1(config-if)#spanning-tree portfast disable (某个口禁用,通常是连接另一台交换机的口)
·UplinkFast:(接入层交换机链接汇聚层的地方)
在接入层SW上配置,用于检测直连到分布层SW的链路故障,并加速STP的收敛速度。
也可以在分布层交换机上配置,用于检测直连到核心层交换机的链路故障
30S->0S
在接入层SW上配置,用于检测直连到分布层SW的链路故障,并加速STP的收敛速度。
也可以在分布层交换机上配置,用于检测直连到核心层交换机的链路故障
30S->0S
Sw2(config)#spanning-tree uplinkfast
(Uplinkfast是一个全局命令,将影响SW上的所有VLAN)
(Uplinkfast是一个全局命令,将影响SW上的所有VLAN)
Debug spanning-tree events
测试:将有效链路口shut,原来BLK口立即转发
*Mar 1 00:40:
12.027: STP: VLAN1 new root port Fa1/4, cost 19
*Mar 1 00:40:12.055: STP: VLAN1 Fa1/4 -> listening
SW2(config-if)#
*Mar 1 00:40:27.087: STP: VLAN1 Fa1/4 -> learning
SW2(config-if)#
*Mar 1 00:40:42.099: STP: VLAN1 sent Topology Change Notice on Fa1/4
*Mar 1 00:40: 42.099: STP: VLAN1 Fa1/4 -> forwarding
*Mar 1 00:40:12.055: STP: VLAN1 Fa1/4 -> listening
SW2(config-if)#
*Mar 1 00:40:27.087: STP: VLAN1 Fa1/4 -> learning
SW2(config-if)#
*Mar 1 00:40:42.099: STP: VLAN1 sent Topology Change Notice on Fa1/4
*Mar 1 00:40: 42.099: STP: VLAN1 Fa1/4 -> forwarding
*Mar 1 00:44:48: %SPANTREE_FAST-7-PORT_FWD_UPLINK: VLAN1
FastEthernet1/4 moved to Forwarding (UplinkFast).
SW2(config-if)#do sh run
Building configuration...
SW2(config-if)#do sh run
Building configuration...
spanning-tree uplinkfast
·Uplinkfast将网桥PRI增加到49152,将端口Cost增加3000
SW2#sh spanning-tree bri
VLAN1
Spanning tree enabled protocol ieee uplinkfast enabled
Root ID Priority 32768
Address cc00.0838.0000
Cost 3019
Port 44 (FastEthernet1/3)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Spanning tree enabled protocol ieee uplinkfast enabled
Root ID Priority 32768
Address cc00.0838.0000
Cost 3019
Port 44 (FastEthernet1/3)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 49152
Address cc01.0838.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 0
Address cc01.0838.0000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 0
Interface Designated
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/3 128.44 128 3019 FWD 0 32768 cc00.0838.0000 128.44
FastEthernet1/4 128.45 128 3019 BLK 0 32768 cc00.0838.0000 128.45
FastEthernet1/5 128.46 128 3019 BLK 19 32768 cc02.0838.0000 128.46
使SW不能成为Root。所以一般配置在接入层SW。
Name Port ID Prio Cost Sts Cost Bridge ID Port ID
-------------------- ------- ---- ----- --- ----- -------------------- -------
FastEthernet1/3 128.44 128 3019 FWD 0 32768 cc00.0838.0000 128.44
FastEthernet1/4 128.45 128 3019 BLK 0 32768 cc00.0838.0000 128.45
FastEthernet1/5 128.46 128 3019 BLK 19 32768 cc02.0838.0000 128.46
使SW不能成为Root。所以一般配置在接入层SW。
Sw2#show spanning-tree
........ Uplinkfast enabled
........ Uplinkfast enabled
Sw2#show spanning-tree uplinkfast 可以看到哪些接口成为备份
Sw2(config)#spanning-tree uplinkfast max-update-rate 200
(每秒所发包的数目,默认值150)
(每秒所发包的数目,默认值150)
·BackboneFast:(汇聚层交换机到核心层的地方)
BackboneFast是对UplinkFast的一种补充。用于检测主干SW间的链路故障。(50S -> 30S)
BackboneFast是对UplinkFast的一种补充。用于检测主干SW间的链路故障。(50S -> 30S)
·要求BackboneFast应用在所有SW上。
当交换机检测到次级BPDU后,将使用替代路径发送RLQ BPDU(根链路查询BPDU),RLQ BPDU通过中间交换机向根交换机传播,并且根交换机将最终响应。
Sw1(config)#spanning-tree backbonefast
*Mar 1 00:51:56.631: STP: VLAN1 Fa1/2 -> listening
*Mar 1 00:51:56: %SYS-5-CONFIG_I: Configured from console by console
*Mar 1 00:51:58: %LINK-3-UPDOWN: Interface FastEthernet1/2, changed state to up
SW1#
*Mar 1 00:51:58.335: STP: VLAN1 Topology Change rcvd on Fa1/1
SW1#
*Mar 1 00:51:59: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/2, changed state to up
SW1#
*Mar 1 00:52:11.631: STP: VLAN1 Fa1/2 -> learning
SW1#
*Mar 1 00:52:26.639: STP: VLAN1 Fa1/2 -> forwarding
*Mar 1 00:51:56: %SYS-5-CONFIG_I: Configured from console by console
*Mar 1 00:51:58: %LINK-3-UPDOWN: Interface FastEthernet1/2, changed state to up
SW1#
*Mar 1 00:51:58.335: STP: VLAN1 Topology Change rcvd on Fa1/1
SW1#
*Mar 1 00:51:59: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/2, changed state to up
SW1#
*Mar 1 00:52:11.631: STP: VLAN1 Fa1/2 -> learning
SW1#
*Mar 1 00:52:26.639: STP: VLAN1 Fa1/2 -> forwarding
Sw1#show spanning-tree backbonefast 可以查看RLQ消息和次级BPDU
SW1#sh sp bac
BackboneFast is enabled
BackboneFast is enabled
BackboneFast statistics
-----------------------
Number of transition via backboneFast (all VLANs) : 0
Number of inferior BPDUs received (all VLANs) : 0
Number of RLQ request PDUs received (all VLANs) : 0
Number of RLQ response PDUs received (all VLANs) : 0
Number of RLQ request PDUs sent (all VLANs) : 0
Number of RLQ response PDUs sent (all VLANs) : 0
-----------------------
Number of transition via backboneFast (all VLANs) : 0
Number of inferior BPDUs received (all VLANs) : 0
Number of RLQ request PDUs received (all VLANs) : 0
Number of RLQ response PDUs received (all VLANs) : 0
Number of RLQ request PDUs sent (all VLANs) : 0
Number of RLQ response PDUs sent (all VLANs) : 0