前言
关于踏入网络这个领域的小伙伴来说,对于STP(生成树协议)、RSTP(快速生成树协议)、MSTP(多生成树协议)这个概念肯定是不陌生的,那么这三个生成树协议到底是什么,有什么相同之处,有什么区别呢?相信阅读完这篇文章,你的脑海中会有一个比较清晰的认识!
STP(生成树技术)802.1d
1. 概念
STP是用于在局域网中消除数据链路层物理环路的协议。通过在桥之间交换BPDU(桥协议数据单元),来保证设备完成生成树的计算过程
2. 需求(用STP技术的原因在哪?)
广播风暴
• 链路堵塞
广播报文在二层网络中不断泛洪,所有链路都被大量的广播报文充斥
• 主机操作系统响应迟缓
主机网卡接收到大量的广播报文,操作系统调用大量的CPU进程资源来识别这些广播报文
• 二层交换机管理缓慢
大量二层协议广播报文需要二层交换机CPU处理,浪费大量资源,对正常的请求无法响应
• 冲击网关设备的CPU
对网关IP地址的ARP请求报文,经过环路的复制转发,不断地发送到网关设备,网关设备的CPU压力不断增大,甚至崩溃
MAC地址表不稳定
3. 作用
通过阻断冗余链路来消除桥接网络中可能存在的路径环路
当前路径发生故障时,激活冗余备份链路,恢复网络连通性
4. 原理(通过传递配置BPDU)
在一组运STP的交换机中选出一个根网桥(RB)
比较根网桥ID,根网桥上的所有端口都是指定端口。
每个非根交换机选择一个根端口(RB)
依次比较根路径开销、发送方网桥ID、发送方端口ID。
每个交换网段选择一个除根端口之外的转发端口—指定端口(DP)
依次比较根路径开销、发送方网桥ID、发送方端口ID。
堵塞其他(非根非指定端口即阻塞端口)端口
5. 配置BPDU参数
网桥ID
由交换机的优先级与MAC地址组成
网桥优先级取值范围0-65535(默认32768),必须是4096的倍数
端口ID
由发送端口的优先级与端口号组成
端口优先级取值范围0-255(默认128),必须是16的倍数
6. TCN BPDU
作用:通知拓扑变化
有端口转变为Forwarding状态,且该网桥至少包含一个指定端口
有端口从Forwarding状态或Learning状态转变为Blocking状态
7. STP端口状态
Disable 不转发数据帧,不学习MAC地址表,不参与生成树计算。
Blocking 不转发数据帧,不学习MAC地址表,接收并处理BPDU,但是不向外发送BPDU。
Listening 不转发数据帧,不学习MAC地址表,只参与生成树计算,接收并发送BPDU。
Learning 不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。
Forwarding 正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU。
8. STP端口状态迁移
阻塞端口
• 一直停留在阻塞状态。
• 在最大老化时间(20秒)之内没有收到BPDU,就会变成指定端口,然后切换成监听状态,重新进行网络收敛。
• 直接收敛 30s
• 间接收敛 50s
RSTP(快速生成树协议)802.1w
概念
1. RSTP具备STP的所有功能,可以兼容STP运行
2. RSTP和STP有所不同
减少了端口状态
增加了端口角色BPDU格式及发送方式不同
当交换网络拓扑结构发生变化时, RSTP可以更快地恢复网络的连通性
3. STP的不足
收敛时间长
缺省情况下一个端口从Blocking状态过渡到Forwarding状态至少需要30秒钟(两倍的Forward Delay)。对于一个拓扑不稳定网络,会导致网络的长时间中断
拓扑变化收敛机制不灵活
主机频繁上下线时,网络会产生大量TCN
4. RSTP的端口状态
Discarding不转发数据帧,不学习MAC地址表,不参与生成树计算。
Learning不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。
Forwarding正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU。
5. RSTP的端口角色
根端口
根端口,是所在交换机上离根交换机最近的端口,稳定时处于转发状态。
指定端口
边缘端口是特殊的指定端口
Alternate端口
替代端口,不处于转发状态,所属交换机不是端口所连网段的指定交换机。
Backup端口
备份端口,不处于转发状态,所属交换机为端口所连网段的指定交换机。
6. RSTP快速收敛机制
边缘端口机制
边缘端口可以直接进入转发状态,不需要延时,并且不会触发拓扑改变
根端口快速切换机制
指定端口快速切换机制
指定端口可以通过与相连的网桥进行一次握手,快速进入转发状态
P/A机制条件:握手必须在点到点链路进行
MSTP(多生成树协议)802.1s
概念
基于实例计算出多颗生成树,实例间实现负载分担
MST域 拥有相同MST配置标识的网桥构成的集合
CST、IST、CIST(公共与内部生成树)、总根和域根
1. STP/RSTP的局限
①所有VLAN共享一颗生成树
②无法实现不同VLAN在多条Trunk链路上的负载分担二层链路负载均衡
2. MSTP中的端口角色
Master端口IST根桥在CIST上的根端口其他端口角色的定义和RSTP相同
3. CIST的优先级向量
比较原则:最小最优
首先比较CIST总根ID
其次比较CIST外部路径开销
再次比较CIST域根ID
再其次比较CIST内部路径开销
再其次比较CIST指定桥ID
再其次比较CIST指定端口ID
最后比较CIST接收端口ID
4. MSTI (多生成树实例)的优先级向量
首先比较MSTI域根ID
其次比较MSTI内部路径开销
再其次比较MSTI指定桥ID
再其次比较MSTI指定端口ID
最后比较MSTI接收端口ID
5. MSTP的P/A机制
上游桥发送的Proposal BPDU中,P标志位和A标志位都置位
下游收到P标志位和A标志位都置位的Proposal BPDU,在将端口同步后会回应Agreement BPDU,使得上游的指定端口快速进入转发状态
6. 保护机制
BPDU保护
启动了BPDU保护功能后,如果边缘端口收到了配置消息,MSTP就将这些端口关闭
根桥保护
对于设置了根保护功能的端口,一旦该端口收到某实例优先级更高的配置消息,立即将该实例端口设置为侦听状态,不再转发报文
环路保护
配置了环路保护的端口,当接收不到上游设备发送的BPDU报文时,环路保护生效
如果该端口参与了STP计算,则不论其角色如何,该端口在所有实例都将处于Discarding状态
TC保护
设置设备在收到TC-BPDU报文后的10秒内,进行地址表项删除操作的最多次数
监控在该时间段内收到的TC-BPDU报文数是否大于门限值。