一、STP
1.STP是什么
spanning tree protocol生成树协议,是用来解决二层环路的技术
2.为什么要用STP
一旦出现二层环路,会出现广播包大量复制,每秒出现千万级的广播报文,导致广播风暴,链路阻塞,网关计算资源耗尽,网络崩溃。
3.STP用在哪里
用在二层网络,也就是接入和汇聚之间。汇聚往上是纯三层互连,不会产生二层环路,可以不开启STP
4.STP如何解决环路
阻寒产生环路的接口,就不会再产生广播风暴
5.STP工作原理
5.1.工作过程4个步骤
5.1.1.选举出根桥
- 每台运行了STP的交换机都有桥id,桥id由优先级+mac地址组成
- 举例:32768.4c1f-cc84-7e0a
- 优先级必须是4096的倍数
- mac地址为交换机的vlan mac
- 桥id最小的交换机为根桥,简称rp,root bridge
5.1.2.选举出根端口
- 根端口是去往根桥的端口,所以是在非根桥上选举。根端口英文root port,简称rp
- 每个非根桥上,只有1个根端口
- 每台非根桥,各个接口都会收到BPDU其中收到BPDU最优的端口为根端口。参见BPDU比较原则。
5.1.3.选举出指定端
5.1.4.阻塞其他端口
5.2.BPDU优劣比较原则
5.2.1.BPDU概念
- BPDU是STP工作所用到的协议报文,全称是桥协议数据单元
- BPDU报文包含的关键参数
- 根桥ID
- 根路径开销
- 概念:本机到达根桥的开销
- 标准:
- 发送网桥ID
- 优先级+端口编号
- 发送端口ID
- hello time
- forwarding time
- max age
- 抓包
5.2.2.bpdu优劣比较
- 先比较根网桥ID,越小越好
- 如果根网桥ID相等,根路径开销越小越好
- 如果根网桥ID和根路径开销相等,发送网桥ID越小越好
- 如果根网桥ID、根路径开销和发送网桥ID相等,发送端口ID越小越好
5.3.STP收敛过程
- 端口状态迁移过程
- STP端口依赖五种状态的迁移防止网络收敛过程中可能存在的临时环路
- 交换机处于listening和learning状态的时间由forwarding delay这个计时器控制
- mac地址表更新过程
- 感知拓扑变化的交换机通过根端口向根交换机发送TCN BPDU,直到收到上游交换机TCA置位的配置BPDU
- 交换机收到TCN BPDU,回应TCA置位的配置BPDU,并从根端口继续发送TCN
- 根交换机收到TCN后把配置BPDU的TC位置位,通知其他交换机把MAC地址表老化时间由300S变Forwarding delay
- 交换机收到TC置位的配置BPDU15S后把MAC地址表清空
二、RSTP
1.名称
rapid spanning tree protocol,快速生成树,最大的特点是快。
- stp直接拓扑变化,收敛时间30s,间接拓扑变化,收敛时间50s
- rstp直接拓扑变化,收敛时间小于1s,间接拓扑变化3倍的hello时间,6s。(注:华为设备会再乘以1个时间因子t;mer-factor)
2.STP缺点,RSTP解决方案
2.1.缺点1:初始化状态30秒。
- 原因分析,保守等待所有交换机收敛完成,以防临时环路。
- 解决方案,P/A机制,接口快速进入转发。
2.2.缺点2:根端口故障,有BP口的情况,切换至转发状态需要30s。
- 解决方案,Alternate Port作为根端口的代替端口,可立即进入转发状态。
2.3.缺点3:根端口故障,无BP口的情况,切换至转发状态需要50s
- 原因分析,RP口故障,收不到根桥的bpdu,自己切换成根桥,开始发根桥id是自己的bpdu。相邻设备收到次优bpdu不做处理,等待max age才开始重新收敛。
- 解决方案,只有收到次优bpdu,就认为发生了链路故障,及立即发送更优的bpdu,使用P/A机制完成收敛
2.4.缺点4:终端正常开关机,导致不必要的生成树震荡。而且终端开机后不能立即进入转发状态。
- 原因分析: stp不知道1个口连的是交换机还是终端。接口up/down的变化,认为是拓扑产生了变化。
- 解决方案: 引入边缘端口,边缘端口是连接终端的接口,up/down只是正常开关机,不需做生成树的相关工作,而且终端开机可立即进入转发状态。
2.5.缺点5:STP只有根桥有权利发送TC置位的配置BPDU来完成mac地址表的更新,其他交换机需要向根桥通知,没有必要。
- 解决方案,所有交换机都有权利直接发送TC置位的配置BPDU
2.6.缺点6:端口状态多余
- 解决方案,把不学习mac地址的3个状态,合并成discarding
3.RSTP工作原理
3.1.P/A机制
- P/A机制的本质,是让指定端口迅速进入转发状态
- P/A机制的原理,最开始每个交换机都认为自己是根桥,所以各个接口都是DP,发出P置位的BPDU
- 对面的交换机收到这个BPDU,经过和各个接口收到的BPDU进行对比,只认可1个最优的,那么
- 给这个最优的BPDU回应A置位的BPDU,同意打开端口,同时这个口的角色变为RP。
- RP口只能有1个,其他口再收到P请求,不再回应A置位的同意BPDU。
- 如果其他口收到的BPDU,发送者比自己优,则自己停止发送P请求
- 如果其他口收到的BPDU,发送者没有自己优,则一直发送P请求
- 2个转发延时后,发p请求的一段,也就是bpdu
3.2.端口角色
- RP:根端口
- DP:指定端口
- AP:被对端交换机发出的更优的BPDU阻塞的端
- BP:被本机的其他接口发的更优的BPDU阻塞的端
3.3.端口状态
STP端口状态 | RSTP端口状态 | 端口状态对应的行为 |
Disabled | Discarding | 如果不转发用户流量也不学习MAC地址,那么端口状态就是Discarding状态。 |
Blocking Listening | Discarding | 如果不转发用户流量也不学习MAC地址,那么端口状态就是Discarding状态。 |
Learning | Learning | 如果不转发用户流量但是学习MAC地址,那么端口状态就是Learning状态。 |
Forwarding | Forwarding | 如果既转发用户流量又学习MAC地址,那么端口状态就是Forwarding状态。 |
3.4.安全加强
3.4.1.bpdu保护
3.4.1.1.作用
- 防范bpdu攻击
- 防单端口自环
3.4.1.2.配置
- 应用在连接终端的端口,也就是边缘端口
3.4.1.3.命令
- 全局下stp bpdu-protection
3.4.1.4.后续处理
如果用户希望被error-down的边缘端口可自动恢复,可通过配置使能端口自动恢复功能,并设置延迟时间,即在系统视图下执行命令error-downauto-recovery cause bpdu-protection interval interval-value,使能端口自动恢复为Up的功能,并设置端口自动恢复为Up的延时时间。
3.4.2.根保护
3.4.2.1.作用: 防范bpdu攻击,抢走根桥
3.4.2.2.原理: 应用在指定端口,收到更优的bpdu,丢弃
3.4.2.3.配置: 接口下stp root-protection
3.4.3.tc bpdu泛洪保护
3.4.3.1.作用:防范大量tcbpdu泛洪攻击
3.4.3.2.配置:每个时间段内,处理的tcbpdu报文个数
3.4.3.3.命令: 全局下stp tc-protection interval和stp tc-protection threshold
三、MSTP
1.名称
Multiple Spanning Tree Protocol,多生成树
1.1.特点
是可以在一个网络部署多个独立的生成树,实现转发压力的负款衡。
2.实现原理
- 引入msti,也就是多生成树实例,MST Instance
- 每个实例(instance),可以关联多个vlan。比如instance 1关联1-10vlan,instance 2关联11到20vlan
- 不同的实例,按不同的rstp来计算。这样不同的实例,可以配置不一样的根桥,可以实现阻塞不一样的接口。
- 实例1对应的vlan,走左边。实例2对应的vlan,走右边,实现设备压力的负载分担。
3.配置步骤
3.1.所有交换机相同的配置
3.1.1、开启stp,并指定stp模式为mstp
- stp enable
- stp mode mstp
3.1.2、配置mstp的region-name,一组交换机的region-name要相同
- stp region-configuration
- region-name RG1
3.1.3、配置实例和vlan的映射关系,并激活配置
- stp region-configuration
- instance 1 vlan 1 to 10
- instance 2 vlan 11 to 20
- active region-configuratio
3.1.4.注意:如果是不同厂商的交换机,还要注意mstp的修订号要相同,同厂商保持默认即可。
3.2.根桥和备份根侨修改优先级
stp instance 1 priority 4096
stp instance 2 priority 8192
3.3.接入交换机配置边绿端口和bpdu保护(可选)
ance 2 vlan 11 to 20
- active region-configuratio