Spanning Tree Protocol(STP)
二层环路
存在单点隐患
冗余拓扑
广播风暴
多帧复制
MAC表紊乱
生成树的概念
采用生成树STP解决环路(默认开启)
Spanning-Tree Protocol
通过将特定的端口选为Blocking state,来实现无环的拓扑;
IEEE 802.1D规定了这一行为;
Cisco采用IEEE 802.1D的增强的私有协议生成树PVST+;
生成树:加设备、不冲突、规避潜在风险,默认开启,简称STP
cisco:默认PVST(每一个广播域维护一棵树),较为传统、普通,收敛速度慢
华为、H3C:默认MSTP(多生成树,可以多个广播域维护一个生成树)
RSTO:快速生成树,每个广播域维护一棵树,收敛速度很快
STP的操作
1、每个广播域选择一个根桥
2、每个非根桥上选择一个根端口
3、每个段选择一个指定端口
4、阻塞其他接口
1、每个广播域选择一个根桥
BPDU(default = sent every 2 seconds)
Root bridge = bridge with the lowest bridge ID
Bridge ID
BPDU报文结构
2、每个非根桥上选择一个根端口
根端口:具有最低根路径的接口
要考虑的因素:最低的根桥ID、最低的根路径代价、最低发送者桥ID、最低端口ID
STP路径开销
开销相同时比发送者桥ID
3、每个段选择一个指定端口
根端口:具有最低根路径的接口
要考虑的因素:最低的根桥ID、最低的根路径代价、最低发送者桥ID、最低端口ID
根桥的接口一定都是指定端口
用最小的开销相比,较小的是指定端口
4、阻塞其他接口
未接收到BPDU报文(20s)、侦听(15s)-> 学习MAC(15s)-> 转发
RSTP:快速生成树
生成树案例
CASE 1
①根桥:SW1
桥ID都为32768,比MAC,SW1的最小
②根端口:SW2的上端口,SW3的上端口
在非根桥上选,选一个,比开销
③指定端口:SW1的左右接口,SW2的右接口
在链路上选,选一个。根桥的接口一定都是指定端口。开销相等比发送者桥ID。
④阻塞
阻塞掉SW3的左端口
CASE 2
①根桥:SW1
桥ID都为32768,比MAC,SW1的最小
②根端口:SW2的上端口,SW3的左端口
在非根桥上选,选一个,比开销
③指定端口:SW1的左右接口,SW2的右接口
在链路上选,选一个。根桥的接口一定都是指定端口。开销不同选择最小的开销进行相比,较小的为指定端口。
④阻塞
阻塞掉SW3的上端口
CASE 3
均为百兆链路
①根桥:SW1
桥ID都为32768,比MAC,SW1的最小
②根端口:SW2的上端口,SW3的上端口,SW4的左端口
在非根桥上选,选一个,比开销,开销相同比发送者桥ID
③指定端口:SW1的左右接口,SW2的上接口和下接口,SW3的上接口和下接口
在链路上选,选一个。根桥的接口一定都是指定端口。开销不同选择最小的开销进行相比,较小的为指定端口。
④阻塞
阻塞掉SW4的右端口
CASE 4
默认情况下:接口编号越小,端口ID越小
①根桥:SW1
桥ID都为32768,比MAC,SW1的最小
②根端口:SW2的左端口
在非根桥上选,选一个,比开销,开销相同比发送者桥ID,发送者桥ID相同比端口ID
③指定端口:SW1的左右接口
在链路上选,选一个。根桥的接口一定都是指定端口。
④阻塞
阻塞掉SW2的右端口
STP的端口状态
生成树的增强
PortFast
能够使得2层接口立即进入转发状态
有生成树的环境下,连接终端、服务器
接口启用
Switch(config-if)#spanning-tree portfast
全局启用
Switch(config)#spanning-tree portfast default
接口禁用
Switch(config-if)#no spanning-tree portfast
指定接口为access并启用PortFast
Switch(config-if)#switchport host
RSTP-802.1W
快速生成树协议(802.1W PSTP)
802.1D STP能够在大约1分钟之内回复连接
802.1W STP能够快速的收敛
PSTP端口状态
PSTP端口角色
根端口(R)FW
指定端口(D)FW
替代端口(Alternate)(A)/BLK
备份端口(Backup)(B)/BLK
禁用端口/BLK
BLK
A是R的替代端口,5s内完成转换
B是DR的备份端口,15s内完成转换
PVRST+
生成树的配置和验证
配置模式
Switch(config)#spanning-tree mode rapid-pvst
指定root/secondary root
Switch(config)#spanning-tree vlan 1 root primary
Switch(config)#spanning-tree vlan 1 root secondary
指定交换机的优先级
Switch(config)#spanning-tree vlan 1 priority priority
查看
Switch#show spanning-tree vlan vlan-id