STP分类
api
IEEE | CISCO |
802.1D STP 收敛30-50s | PVST(ISL only);PVST+(ISL & 802.1Q) |
802.1W Rapid-STP 收敛 1s之内 | rapid-PVST |
802.1s mst | MIST/MST |
802.1D STP===========PVST+(ISL & 802.1Q)并发
收敛缓慢 收敛缓慢ide
基于交换机 基于 vlan
学习
(冗余链路被切断,防环同时形成两份链路) (配置不一样vlan走不一样链路,防环且不浪费)ui
- 802.1W Rapid-STP与rapid-PVST区别是基于交换机和基于vlan的spa
当交换机vlan数量巨大时,基于vlan的生成树就会对应增多,更新bpdu(2s刷新)时就占用大量交换机资源;3d
MST,就是将多个vlan划分为一个实例,一个实例对应一棵树,从而防环同时,减小更新bpduorm
BPDU
blog
两种 1,配置BPDU
接口
2,TCN 拓扑发生改变时使用
Protocol ID: 保留,老是0
version:802.1d=0 ;802.1w ;802.1s
message type: 配合版本=0;TCN = 80。TCN报文最后只到这里,flag之后的字段都是针对配置报文
FLAG : 802.1d使用flag的第一和最后两位
root ID: 根标识
cost path:开销,用来决定block哪一个端口
bridge ID:惟一标示一台交换机,用来选举根
port ID:惟一标示交换机一个端口
message age:
max age : 20s刷新
hello time:2s 刷新
forward delay:15s
-------------------------------------------------------------------------------------------
STP四大流程
1,选根口(整个网选一个)
2,选根端口(从全部非跟桥选,每台有一个)
3,选指定端口(每一个链路有一个)
4,blok剩下的口
根桥选举:
根据 bridge ID (优选小的)
bride priority 2byte | MAC address 5byte |
cisco bridge ID
bridge priority 4bit 范围0-15 默认=8 | extend systemID 12bit区分vlan | 48bit MAC |
上面结构 优先级可变可是vlan号不能变,因此整个以4096倍数增长 2~12=4096,因bride priority默认=8,全部整个默认=32768
0 0
1 4097
. .
8 32768
实际工程中不会让设备本身选举根,都要人为设置
全局下:spanning-tree vlan 1 root primary 设置这台交换机为根
全局下:spanning-tree vlan 1 root secondary 设置这台交换机为备份根
全局下:spanning-tree vlan 1 primary xx=4096倍数 设置优先级
选举根端口:
1,最小的根网桥的ID(root ID,也是个bride ID)
2,到根网桥最下的cost
3,最小的发送方brideID
4,最小的发送方portID
5,最小的接收方的portID
STP 端口的状态种类
端口状态 | 端口能力 |
desabled | 不发生任何报文 |
blocking | 不接收或转发数据,接收但不发送BPDU,不进行地址学习 |
listening | 不接收或转发数据,接收并发送BPDU,不进行地址学习 |
learning | 不接收或转发数据,接收发送BPDU,开始MAC地址学习cam |
forwarding | 接收并转发数据,接收并发送BPDU,进行地址学习 |
TCN
做用:通知根桥拓扑发生变化,触发根桥通知全网拓扑变化
上图,SW4-SW7断开时,SW4会想根发送BPDU,同时SW2会将flag字段最后一位置1,使用配置版本BPDU做为确认回复SW4。而后SW2继续发送给根,根回复确认给SW2。
根收到SW4 SW7断开的信息后,将FLAG字段第一位置1,发送给全部交换机通知,拓扑改变,收到该BPDU的交换机将mac表存活时间300s置为15s加速老化时间,以加快更新。
STP收敛:直连链路收敛 30s
直连断开,接口立刻down掉,立刻把原来block的up,接口down掉,同时BPDU立刻 老化;被up的block口经历listen 15s-》learn 15s 开始forward
非直连链路收敛 50s
非直连断开,可是接口依然UP的,不会2s收到更新的BPDU,可是原来的BPDU依然存在,在 经历20s老化时间后,才会消失,此时,接口down掉,up被block的端口,而后listen 15s-》learn 15s而后forward
不重要链路的收敛
上图,最下PC 链接交换机的端口,up down都会使SWC 发送TCP给根,致使全网的MAC表老化时间从300->15s,使得终端接口的变化扰乱全网交换机的MAC表。
######### 使用portfast解决: ###########
portfast配置在交换机链接终端设备(例如PC)的接口上,不要配置在交换机之间。
做用:1,配置portfast后,不会触发交换机发送TCN 报文,从而不会致使全网MAC表的重复收敛。
2,接口在从down->up不会经历 listen和learn,而知之间forward,节省30s转发延时
配置(2种方法)
1,接口下--只有access 口才生效,因此不会影响交换机之间的接口
int f0/1
spanning-tree portfast
2, 全局下--只有access 口才生效,因此不会影响交换机之间的接口
spanning-tree portfast default
查看
show spanning-tree int f0/1 portfast
###### uplinkfast ########
用于当有两条链路到根的时候
如图。A有两条去往根D1的链路,在A上配置uplinkfast,当A根端口down掉,A的block口不会等待30s,而会之间forward
注意:配置uplinkfast后,该交换机必定不能是transit交换机,只能是做为接入层的交换机使用。
因此配置uplinkfast后,该交换机优先级自动升为高于缺省值,确保不会成为根
同时该交换机的全部端口的 cost 都会增长3000.确保该交换机的端口不会成为指定端口
实验:
SW1为根 spanning-tree root primary
SW2为备份根 spanning-tree root secondary
全部SW3的 f0/2被 block
SW3:全局下 spanning-tree uplinkfast
sho spann uplinkfast
此时down掉f0/1,无需等30s,f0/2立刻forward
可是 f0/2 no shut后 要经历30s延时,才能恢复F0/1up
扩展理解uplinkfast:
上图,SW3配置uplinkfast后,本地接口是会立刻forward,可是SW2会经历 15s的mac表老化时间,因此仍是不会立刻通讯,可是uplinkfast会以本地源MCA多播给其余交换机,加快刷新mac表,能够手动设置
全局下 spanning-tree uplinkfast max-update-rate 1000 (每秒发送1000个mac)
根据本身mac表中的mac数量,实际而定。
#########################################################################################
backbone fast
做用:上图,R为根,S的一个口被block,当R B之间断开,S要经历50s才能up.使用backbone能够节省30s
过程:R B断开后,S会收到B的次优BPDU,S向R发送RLQ,根收到后会向S回复RLQ表示根仍是无缺的,而后S告诉B根仍是好的,B就会赞成,并把端口变为根端口,S经历30s UP
配置,上图要配置在R和S上,三台都配置也能够
全局下,spanning-tree backbonefast