16.多生成树MSTP
多生成树MSTP
课程目标
了解RSTP/STP的局限
掌握MSTP的基本概念
掌握MSTP的工作原理
掌握MSTP的配置
掌握各种保护机制的原理及配置
一 STP/RSTP的局限性
所有VLAN共享一颗生成树
- 无法实现不同VLAN在多条Trunk链路上的负载分担
- 二层链路负载均衡
次优二层路径
- 最优路径被阻塞,vlan间通信无法实现使用最有路径
部分vlan不通
- 在某条链路上只允许vlan2通信,则vlan间通信不成功
二 MSTP的基本概念及优势
1 MSTP的定义
MSTP(Multiple Spanning Tree,多生成树协议)
基于实例计算出多颗生成树,实例间实现负载分担
- 每个实例对应一个或多个 VLAN
MSTP兼容RSTP和STP
可以实现快速收敛
提供数据转发的多个冗余路径
在数据转发过程中实现vlan数据的负载均衡
MSTP标准协议为IEEE802.1s
- RSTP标准协议为IEEE802.1w
- STP标准协议为IEEE802.1d
特性
- 每个生成树实例(MSTI)独立计算拓扑
- 支持 VLAN 到生成树实例的映射。
- 不同的实例之间独立,不相互影响
MSTP可以将一个或多个VLAN映射到一个Instance(实例),再基于实例计算生成树,映射到同一个实例的VLAN共享同一颗生成树
生成树实例(MSTI)
每个实例对应一个或多个 VLAN,独立计算生成树拓扑
示例
- Instance 1:包含 VLAN 1-10
- Instance 2:包含 VLAN 11-20
- 端口角色
- 根端口(R):到根桥路径开销最小的端口
- 指定端口(D):负责向网段转发 BPDU 的端口
- 阻塞端口:被阻塞的端口,不转发用户数据
左侧拓扑(Instance 1)
根桥:SW1(Instance 1 的根桥)。
VLAN 映射:Instance 1 包含 VLAN 1-10。
数据流量路径:SW3 → SW1 → 终端设备(PC)。
端口角色
- SW1 的端口:指定端口(D)。
- SW2 的端口:根端口(R)和指定端口(D)。
- SW3 的端口:根端口(R)和阻塞端口()。
右侧拓扑(Instance 2)
根桥:SW2(Instance 2 的根桥)。
VLAN 映射:Instance 2 包含 VLAN 11-20。
数据流量路径:SW3 → SW2 → 终端设备(PC)。
端口角色
- SW1 的端口:根端口(R)和指定端口(D)。
- SW2 的端口:指定端口(D)。
- SW3 的端口:根端口(R)和阻塞端口()
多实例负载分担
- 通过将不同 VLAN 映射到不同的生成树实例,实现流量的负载分担
- 示例:VLAN 1-10 的流量沿 Instance 1 的拓扑转发(SW3→SW1→PC),VLAN 11-20 的流量沿 Instance 2 的拓扑转发(SW3→SW2→PC)
次优二层路径问题
在传统的 STP(生成树协议)环境中,所有 VLAN 共享同一个生成树实例,导致所有流量都沿同一棵生成树转发。这可能造成次优路径
- 解决方法
- 网关设置
- VLAN1-10 的网关设置在 SW1
- VLAN11-20 的网关设置在 SW2
- 流量转发路径
- VLAN1-10 的流量沿 Instance 1 的拓扑转发(SW3→SW1→网关)
- VLAN11-20 的流量沿 Instance 2 的拓扑转发(SW3→SW2→网关)
MST域
MSTP把一个交换网络划分成多个域,每个域形成多颗生成树,生成树之间彼此独立
MST域(MST Region):拥有相同MST配置标识的网桥构成的集合
域名
配置修订号
VLAN与实例映射关系
- 三个参数一致时,表明在同一域内
2 MSTP的组成
MSTI实例
核心概念
- 一个MST域内可以生成多可生成树,每颗生成树都称为一个MSTI
- 实例 0(Instance 0)
对应 IST(内部生成树),是 MSTP 中的默认生成树实例。
特性
所有未显式映射到其他实例的 VLAN 默认属于实例 0。
实例 0 是 MST 域内的公共生成树,确保域内所有 VLAN 的基本连通性。
实例 0 的作用
默认生成树实
所有未显式映射到其他实例的 VLAN 自动属于实例 0
示例:若 VLAN 1 未映射到任何实例,默认属于实例 0
域内连通性
实例 0 确保 MST 域内所有 VLAN 的基本连通性,即使未配置其他实例
示例:MST 域内的交换机通过实例 0 的拓扑,确保 VLAN 1 的流量能够正确转发
与 CST 的交互
实例 0(IST)与 CST(公共生成树)共同构成 CIST(公共和内部生成树),确保跨域连通性
示例:MST 域间的流量通过 CST 转发,域内流量通过实例 0(IST)转发
实例 0 与其他实例的区别
特性 实例 0(IST) 其他实例(MSTI) VLAN 映射 未显式映射的 VLAN 默认属于实例 0 显式映射的 VLAN(如 VLAN 2→Instance 2) 生成树计算 每个 MST 域独立计算 每个实例独立计算(跨域时共享 CST) 作用 确保基本连通性,处理未映射 VLAN 优化特定 VLAN 的流量转发路径 收敛速度 与 RSTP 相同(毫秒级) 与 RSTP 相同(毫秒级)
CST、IST、CIST、总根和域根
多实例支持:每个 MSTI 独立计算拓扑,支持 VLAN 到实例的灵活映射
跨域连通性:CST 确保不同 MST 域之间的连通性
根桥优化:总根和域根的设计,确保全网和域内的拓扑最优
核心概念
CST(公共生成树)
连接不同 MST 域的生成树,确保跨域的连通性
- 如果把每个MST域看作是一个节点,CST就是这些节点通过生成树协议计算生成的一颗生成树
特性
- 所有 MST 域共享同一个 CST
- 用于连接不同的 MST 域(如 Region 1、Region 2 等)
IST(内部生成树)
每个 MST 域内的生成树,处理未映射到其他 MSTI 的 VLAN
特性
- 每个 MST 域有独立的 IST
- 未映射到其他 MSTI 的 VLAN 默认属于 IST
CIST(公共和内部生成树)
CST 和所有 IST 的集合,形成整个网络的生成树
特性
- 包含所有 MST 域的 IST 和跨域的 CST
- 确保全网无环且连通
SST(单生成树)
- 运行生成树协议的交换设备只能属于一个生成树
- MST域中只有一个交换设备,这个交换设备构成单生成树
总根(CIST Root)
CIST 的根桥,整个网络的逻辑中心
特性
- 所有 MST 域的 IST 和 CST 以总根为基准计算路径
域根(CIST Regional Root)
每个 MST 域内的根桥,负责域内的生成树计算。
特性
- 每个 MST 域有独立的域根
- 域根到总根的路径开销最小
对比维度 IST 域根 MSTI 域根 实例类型 固定为实例 0(默认实例,不可删除) 用户自定义实例(如实例 1、2…,可按需创建 / 删除) VLAN 覆盖范围 所有未映射到其他 MSTI 的 VLAN(默认 VLAN) 仅映射到该 MSTI 的特定 VLAN 数量 一个 MST 域内仅 1 个(实例 0 唯一) 每个 MSTI 对应 1 个,一个域内可多个(与 MSTI 数量一致) 作用 保障默认 VLAN 的基础连通性(无环转发) 优化特定 VLAN 的流量路径(如负载分担、路径规划) 与外部交互 作为 MST 域与外界(其他域或 STP/RSTP 网络)交互的 “代表”(通过 CST/IST 融合拓扑) 仅在域内生效,不直接参与外部拓扑交互 图片分析
拓扑结构
网络分为 4 个 MST 域(Region 1-4),每个域内的交换机运行 MSTP
域间通过 CST 连接,确保跨域连通性
VLAN 映射
Region 1:VLAN 2→Instance 2,VLAN 4→Instance 4,其他 VLAN→IST
Region 2:VLAN 2→Instance 2,VLAN 3→Instance 3,其他 VLAN→IST
Region 3:VLAN 3→Instance 3,VLAN 5→Instance 5,其他 VLAN→IST
Region 4:VLAN 4→Instance 4,VLAN 5→Instance 5,其他 VLAN→IST
生成树实例
Instance 2:包含 VLAN 2(Region 1、Region 2)
Instance 3:包含 VLAN 3(Region 2、Region 3)
Instance 4:包含 VLAN 4(Region 1、Region 4)
Instance 5:包含 VLAN 5(Region 3、Region 4)
- IST:处理未映射到其他实例的 VLAN(如 Region 1 的 VLAN 1、Region 2 的 VLAN 4 等)
根桥选举:
总根(CIST Root):位于 Region 1,是整个网络的根桥
域根(CIST Regional Root):每个 MST 域内的根桥,负责域内的生成树计算
- Region 1 的域根:连接总根的交换机。
- Region 2 的域根:连接 CST 的交换机
- Region 3 的域根:连接 CST 的交换机
- Region 4 的域根:连接 CST 的交换机
关键机制解析
VLAN 到实例的映射
每个 MST 域内,VLAN 可以映射到不同的 MSTI(如 Instance 2、3、4、5)或 IST
示例:VLAN 2 在 Region 1 和 Region 2 中映射到 Instance 2,确保跨域的 VLAN 2 流量沿 Instance 2 的拓扑转发
跨域连通性
CST 连接不同 MST 域,确保跨域的 VLAN 流量(如 VLAN 2 从 Region 1 到 Region 2)能够正确转发
示例:VLAN 2 的流量在 Region 1 沿 Instance 2 转发,跨域时沿 CST 转发,到达 Region 2 后沿 Instance 2 转发
根桥选举
总根是整个网络的根桥,所有 MST 域的 IST 和 CST 以总根为基准计算路径
域根是每个 MST 域内的根桥,负责域内的生成树计算,确保域内拓扑最优
MSTP概念的总结
3 MSTP端口角色
Master端口
- IST根桥在CIST上的根端口
其他端口角色的定义和RSTP相同
- 根端口
- 指定端口
- Alternate替代端口
- Backup备份端口
- 边缘端口
- 两个域之间的端口被称为Master端口(域边界端口)
- 如果发现了Master端口 == 有两个域
三 MSTP工作原理
1 MSTP的BPDU格式
MSTP BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录
RST BPDU 字段:基础的 STP/RSTP 字段,用于兼容传统生成树协议
MST 专有字段:MSTP 特有的字段,用于多生成树实例的管理
MST 配置标识:用于标识 MST 域的配置信息,确保域内交换机的配置一致性
MSTI 配置信息:用于多生成树实例的配置和管理,确保每个实例的拓扑独立性
RST BPDU 字段
Protocol ID:协议 ID,固定为 2(表示 STP/RSTP/MSTP)
Protocol Version ID:协议版本 ID
- RSTP 中为 2,MSTP中为3,STP中为0
BPDU Type:BPDU 类型
- RSTP/MSTP 中为0x02,TCN BPDU为0x80,STP BPDU为0x00
CIST Flags:CIST 标志位,用于标识拓扑变化等信息
CIST Root ID:CIST 根桥 ID,由优先级和 MAC 地址组成
CIST Region Root ID:CIST 域根桥 ID,标识 MST 域的根桥
CIST Port ID:CIST 端口 ID,标识发送 BPDU 的端口
Message Age:消息年龄,记录 BPDU 的生存时间
Max Age:最大老化时间,BPDU 的最大生存时间
Hello Time:Hello 时间,BPDU 的发送间隔
Forward Delay:转发延迟,端口状态转换的延迟时间
Version1 Length:版本 1 长度,固定为 0(表示不兼容 STP)
MST 专有字段
前36字节与RST BPDU相同,37字节开始为MSTP BPDU专有字段
Version3 Length:版本 3 长度,标识 MSTP BPDU 的总长度
MST Configuration ID:MST 配置 ID,包含 MST 域的配置信息
CIST IRPC:CIST 内部根路径成本,标识到 CIST 根桥的路径成本
CIST Bridge ID:CIST 桥 ID,标识发送 BPDU 的桥
CIST Remaining Hops:CIST 剩余跳数,标识 BPDU 的传播范围
MSTI Configuration Messages LEN:MSTI 配置消息长度,标识 MSTI 配置信息的长度
MST 配置标识
Format Selector:格式选择器,标识配置信息的格式
Name:MST 域的名称,用于标识 MST 域
Revision Level:修订级别,用于标识 MST 域的配置版本
Config Digest:配置摘要,用于验证 MST 域的配置一致性
MSTI 配置信息
MSTI Flag:MSTI 标志位,用于标识 MSTI 的状态
MSTI Region Root ID:MSTI 域根桥 ID,标识 MSTI 的根桥
MSTI IRPC:MSTI 内部根路径成本,标识到 MSTI 根桥的路径成本
MSTI Bridge Priority:MSTI 桥优先级,用于 MSTI 根桥的选举
MSTI Port Priority:MSTI 端口优先级,用于 MSTI 端口角色的选举
MSTI Remaining Hops:MSTI 剩余跳数,标识 MSTI BPDU 的传播范围
2 CIST的优先级向量
CIST 优先级向量:包含根桥 ID、路径开销、指定桥 ID 等字段,用于生成树的拓扑计算
比较原则:遵循 “最小最优” 原则,按顺序比较各个字段,确定端口角色
CIST 优先级向量
定义:CIST 优先级向量是一个用于比较生成树拓扑的参数集合,包含以下字段:
RootID:CIST 根桥 ID。
ERPC:CIST 外部路径开销。
RRootID:CIST 域根桥 ID。
IRPC:CIST 内部路径开销。
DesignateBridgeID:CIST 指定桥 ID。
DesignatePortID:CIST 指定端口 ID。
RcvPortID:CIST 接收端口 ID。
作用:CIST 优先级向量用于生成树的拓扑计算,通过比较优先级向量的各个字段,确定端口角色(根端口、指定端口、替代端口等),从而构建无环的网络拓扑
比较原则
最小最优:CIST 优先级向量的比较遵循 “最小最优” 原则,即数值越小越优先
比较顺序
首先比较 CIST 总根 ID:总根 ID 越小越优先
其次比较 CIST 外部路径开销:外部路径开销越小越优先
再次比较 CIST 域根 ID:域根 ID 越小越优先
再其次比较 CIST 内部路径开销:内部路径开销越小越优先
再其次比较 CIST 指定桥 ID:指定桥 ID 越小越优先
再其次比较 CIST 指定端口 ID:指定端口 ID 越小越优先
最后比较 CIST 接收端口 ID:接收端口 ID 越小越优先
3 MSTI 的优先级向量
MSTI 优先级向量
定义:MSTI 优先级向量是一个用于比较生成树拓扑的参数集合,包含以下字段:
RRootID:MSTI 域根桥 ID。
IRPC:MSTI 内部路径开销。
DesignateBridgeID:MSTI 指定桥 ID。
DesignatePortID:MSTI 指定端口 ID。
RcvPortID:MSTI 接收端口 ID。
作用:MSTI 优先级向量用于多生成树实例的拓扑计算,通过比较优先级向量的各个字段,确定端口角色(根端口、指定端口、替代端口等),从而构建无环的网络拓扑
比较原则
最小最优:MSTI 优先级向量的比较遵循 “最小最优” 原则,即数值越小越优先。
比较顺序
首先比较 MSTI 域根 ID:域根 ID 越小越优先
其次比较 MSTI 内部路径开销:内部路径开销越小越优先
再次比较 MSTI 指定桥 ID:指定桥 ID 越小越优先
再其次比较 MSTI 指定端口 ID:指定端口 ID 越小越优先
最后比较 MSTI 接收端口 ID:接收端口 ID 越小越优先
4 MSTP计算方法
CST/IST 计算与 RSTP 类似
CST(公共生成树)
- 在 MSTP 中,CST 是连接所有 MST 域的生成树,用于处理跨域的流量
- 其计算方法在很多方面与 RSTP 相似,比如都使用了快速收敛机制,能够在网络拓扑发生变化时快速恢复网络连通性
IST(内部生成树)
- 每个 MST 域内的默认生成树实例,处理未映射到其他 MSTI 的 VLAN 流量
- IST 的计算同样借鉴了 RSTP 的快速收敛特性,包括边缘端口的快速转发、点对点链路的快速确定端口角色和状态等
MSTI 计算仅限于区域内
- MSTI(多生成树实例)
- 每个 MSTI 对应一个或多个 VLAN,独立计算生成树拓扑
- MSTI 的计算范围被限制在单个 MST 域内,不同 MST 域的 MSTI 相互独立,这样可以实现域内流量的负载分担和故障隔离,提高网络的可靠性和性能
MSTI 计算参数包含在 IST BPDU 中,和 IST 计算同步完成
- IST BPDU
- IST 的桥协议数据单元(BPDU)不仅包含了 CST/IST 的配置信息,还包含了 MSTI 的配置信息
- MSTI 的计算参数通过 IST BPDU 进行传递,并且与 IST 的计算同步完成
- 这种同步计算机制确保了 MSTI 的拓扑与 IST 保持一致,保证了网络的稳定性和一致性
CST计算
CST 的作用:连接所有 MST 域,处理跨域流量,确保网络的可靠性和性能
网络拓扑
- MST 域(Region):
- Region 1:包含交换机 SWA 及其连接的交换
- Region 2:包含交换机 SWB 及其连接的交换机
- Region 3:包含交换机 SWC 及其连接的交换机
- Region 4:包含交换机 SWD 及其连接的交换机
- 端口角色:
- DP(指定端口):在生成树中负责转发流量的端口
- RP(根端口):在生成树中负责接收流量的端口
- MP(主端口):在 MSTP 中,主端口是连接不同 MST 域的端口
- AP(替代端口):在生成树中作为备份的端口,主端口故障时启用
CST 计算过程
- CST 的作用:
- 跨域连接:CST 是连接所有 MST 域的生成树,用于处理跨域的流量
- 故障隔离:当某个 MST 域内的链路故障时,CST 确保跨域流量的正常转发
- 计算步骤:
- 选举根桥:在整个网络中选举一个根桥(Root Bridge),通常选择优先级最高的交换机
- 确定端口角色:根据根桥的位置,确定每个交换机的端口角色(DP、RP、MP、AP)
- 生成树构建:基于端口角色,构建无环的生成树拓扑,确保流量的高效转发
解析
- Region 1:
- SWA:作为 Region 1 的根桥,连接到其他 MST 域的交换机
- DP 端口:SWA 连接到 Region 2 和 Region 3 的端口,负责转发跨域流量
- Region 2:
- SWB:作为 Region 2 的根桥,连接到 Region 1 和 Region 4 的交换机
- RP/MP 端口:SWB 连接到 Region 1 的端口,既是根端口(接收流量)又是主端口(连接其他 MST 域)
- DP 端口:SWB 连接到 Region 4 的端口,负责转发跨域流量
- Region 3:
- SWC:作为 Region 3 的根桥,连接到 Region 1 和 Region 4 的交换机
- RP/MP 端口:SWC 连接到 Region 1 的端口,既是根端口(接收流量)又是主端口(连接其他 MST 域)
- DP 端口:SWC 连接到 Region 4 的端口,负责转发跨域流量。
- Region 4:
- SWD:作为 Region 4 的根桥,连接到 Region 2 和 Region 3 的交换机
- AP 端口:SWD 连接到 Region 2 的端口,作为备份端口,当主端口故障时启用
- RP/MP 端口:SWD 连接到 Region 3 的端口,既是根端口(接收流量)又是主端口(连接其他 MST 域)
IST计算
IST 的作用:处理域内流量,确保网络的可靠性和性能
IST 计算过程
- IST 的作用:
- 域内连接:IST 是每个 MST 域内的默认生成树实例,处理未映射到其他 MSTI 的 VLAN 流量。
- 故障隔离:当某个 MST 域内的链路故障时,IST 确保域内流量的正常转发。
- 计算步骤:
- 选举根桥:在每个 MST 域内选举一个根桥(Root Bridge),通常选择优先级最高的交换机
- 确定端口角色:根据根桥的位置,确定每个交换机的端口角色(DP、RP、MP、AP)
- 生成树构建:基于端口角色,构建无环的生成树拓扑,确保流量的高效转发
解析
- Region 1:
- SWA:作为 Region 1 的根桥,连接到其他 MST 域的交换机
- DP 端口:SWA 连接到 Region 2 和 Region 3 的端口,负责转发跨域流量
- Region 2:
- SWB:作为 Region 2 的根桥,连接到 Region 1 和 Region 4 的交换机
- RP/MP 端口:SWB 连接到 Region 1 的端口,既是根端口(接收流量)又是主端口(连接其他 MST 域)
- DP 端口:SWB 连接到 Region 4 的端口,负责转发跨域流量。
- Region 3:
- SWC:作为 Region 3 的根桥,连接到 Region 1 和 Region 4 的交换机
- RP/MP 端口:SWC 连接到 Region 1 的端口,既是根端口(接收流量)又是主端口(连接其他 MST 域)
- DP 端口:SWC 连接到 Region 4 的端口,负责转发跨域流量
- Region 4:
- SWD:作为 Region 4 的根桥,连接到 Region 2 和 Region 3 的交换机
- AP 端口:SWD 连接到 Region 2 的端口,作为备份端口,当主端口故障时启用
- RP/MP 端口:SWD 连接到 Region 3 的端口,既是根端口(接收流量)又是主端口(连接其他 MST 域)
MSTI计算过程
Region1
Region2
MSTP计算结果
MSTP计算结果分析
注意事项
负载分担只能在区域内做,区域间没有负载分担
- 区域内负载分担
- MSTP 允许在同一个 MST 域内通过配置多个 MSTI(多生成树实例)来实现负载分担
- 每个 MSTI 可以对应不同的 VLAN,从而在不同的生成树上转发流量,实现负载分担
- 区域间负载分担
- 在默认情况下,MSTP 不支持区域间的负载分担
- 跨 MST 域的流量主要通过 CST(公共生成树)进行转发,而 CST 是一个单一的生成树实例,无法实现负载分担
默认不改动的情况下(没有配置的情况下),只走IST实例0(默认防环)
- IST(实例 0)
- 在默认情况下,所有未明确映射到其他 MSTI 的 VLAN 都会被映射到 IST(实例 0)
- IST 负责处理这些 VLAN 的流量,并通过生成树算法防止环路
- CST
- 当网络中存在多个 MST 域时,CST 负责连接这些 MST 域,并处理跨域的流量
- CST 的计算与 IST 类似,但范围更广,覆盖整个网络
域配置相同 == 比较CST
- CST 比较
- 当两个 MST 域的配置相同时,它们之间的流量转发主要通过 CST 进行
- CST 的计算基于 RSTP(快速生成树协议),确保跨域流量的高效转发和故障隔离
在单区域内实现负载分担
- MSTI 配置
- 在单区域内,可以通过配置多个 MSTI 来实现负载分担
- 每个 MSTI 可以对应不同的 VLAN,从而在不同的生成树上转发流量,实现负载分担
5 MSTP的P/A机制
提高网络的可靠性和性能,确保拓扑变化时快速恢复
上游桥发送的Proposal BPDU中,P标志位和A标志位都置位
下游收到P标志位和A标志位都置位的Proposal BPDU,在将端口同步后会回应Agreement BPDU,使得上游的指定端口快速进入转发状态
Proposal BPDU:上游桥发送,P 和 A 标志位置位。
Agreement BPDU:下游桥回应,A 标志位置位。
快速收敛:通过 Proposal/Agreement BPDU 的交互,实现端口的快速转发状态转换
四 MSTP兼容性
1 MSTP和RSTP的互操作
MSTP 与 RSTP 互操作的核心是实例 0,它作为标准 RSTP 实例,负责与 RSTP/STP 桥对接。
RSTP 桥将 MSTP 域视为单一桥,桥 ID 为 MSTP 域的根桥 ID。
BPDU 交互 是实现互操作的关键,确保跨协议的流量转发和拓扑一致性
RSTP桥将MSTP域看做一个桥ID为域根ID的RSTP桥
实例0就是标准的RSTP,MSTP使用实例0与STP/RSTP对接
核心概念
- MSTP 域(MSTP Region):由多个交换机组成的逻辑区域,共享相同的 MST 配置(如域名、修订级别、VLAN 到 MSTI 的映射)
- RSTP 桥(RSTP Bridge):运行 RSTP 协议的交换机,不支持 MSTP 的多实例特性
- 实例 0(IST,内部生成树):MSTP 中的默认生成树实例,负责处理未映射到其他 MSTI 的 VLAN 流量,并与 RSTP/STP 桥对接
互操作机制
- RSTP 桥的视角:RSTP 桥将整个 MSTP 域视为一个单一的桥,桥 ID 为 MSTP 域的根桥 ID(如示例中的
0.MAC A
)- 实例 0 的作用:MSTP 使用实例 0(标准 RSTP 实例)与 RSTP/STP 桥进行交互,确保跨协议的兼容性
- BPDU 交互:MSTP 域通过实例 0 发送 BPDU(桥协议数据单元),与 RSTP 桥进行通信,确保流量的正常转发和拓扑的一致性
关键要点
- 兼容性:MSTP 设计时考虑了与 RSTP/STP 的兼容性,通过实例 0 实现无缝对接
- 拓扑简化:RSTP 桥将 MSTP 域视为单一桥,简化了拓扑计算,提高了网络的可靠性和性能
- 流量转发:未映射到其他 MSTI 的 VLAN 流量通过实例 0 转发,确保与 RSTP/STP 桥的兼容性
2 MSTP工作模式
配置
[SWB]stp mode stp [SWB]stp mode rstp [SWB]stp mode mstp
工作模式 描述 STP 只能和 STP 交换机交互,只能在端口上收发配置 BPDU RSTP 运行 RSTP,如果检测到端口相邻的交换机运行在 STP 模式下,则运行 STP MSTP 运行 MSTP,如果检测到端口相邻的交换机运行在 RSTP 模式下,则运行 RSTP
如果检测到端口相邻的交换机运行在 STP 模式,则运行 STP
STP 模式:仅支持 STP 协议,与其他协议不兼容
RSTP 模式:支持 RSTP 协议,并能向下兼容 STP
MSTP 模式:支持 MSTP 协议,并能向下兼容 RSTP 和 STP
多生成树检查
stp mcheck
五 基本配置
1 实验拓扑
2 基本配置
MST域配置
//打开交换机,一般默认打开stp enable //选择生成树协议stp mode smtp // 创建MSTP区域stp region-configuration //域名随便写,一般根据实际情况规范命名,不超过32字节即可region-name [区域名称] //配置修订号revision-level [版本号] //vlan与实例映射关系 instance [实例ID] vlan [VLAN列表] //域名+修订号+实例映射关系一致 == 同一域内//配置完要激活才算成功,在修改配置时,也要激活才生效 active region-configuration// 修改实例优先级(全局生效)stp instance [实例ID] priority [优先级值]
设置RSTP点到点链路和边缘端口
//思科设备配置端口快速转发spanning-tree portfast
验证MSTP基本信息
// 查看全局实例优先级display stp instance [实例ID]// 查看接口实例优先级display stp interface [接口名称] instance [实例ID] //查看域根信息 display stp region-configuration //查看生成树协议简要信息(HUAWEI)display stp brief
六 保护机制
1 BPDU保护
- 通过 BPDU 保护机制,网络中的边缘端口在面临异常 BPDU 时,能够快速做出反应,保护网络拓扑结构的稳定性, 避免因错误的 BPDU 导致网络震荡、丢包等问题,从而保障网络的正常运行和用户的正常使用
保护需求----边缘端口受到攻击
- 如果一个边缘端口接收到配置消息,将从边缘端口转换成非边缘端口,从而导致生成树重新计算
- 可能会引发网络拓扑的频繁变化,影响网络的稳定性和性能
BPDU保护机制
- 启动了BPDU保护功能后,如果边缘端口收到了配置消息,MSTP就将这些端口关闭
- 防止生成树重新计算,确保网络的稳定性
- stp端口无法拒绝BPDU,但是可以把端口关掉
//新华三全局模式开启BPDU保护[H3C] stp bpdu-protection //新华三接口模式开启 BPDU 保护[H3C] interface GigabitEthernet 1/0/1[H3C-GigabitEthernet1/0/1] stp port bpdu-protection enable//思科接口模式开启 BPDU 保护[Cisco] spanning-tree bpduguard enable//华为全局模式开启 BPDU 保护[Huawei] stp bpdu-protection enable //华为接口模式开启 BPDU 保护[Huawei] interface GigabitEthernet 0/0/1[Huawei-GigabitEthernet0/0/1] stp bpdu-protection//锐捷接口模式开启 BPDU 保护Ruijie(config)# interface FastEthernet 0/1Ruijie(config-if)# spanning-tree bpduguard enable
BPDU 保护机制的工作流程
- 检测 BPDU
- 交换机启用 BPDU 保护功能后,会持续监控边缘端口
- 一旦边缘端口接收到 BPDU,无论是正常的网络拓扑变更消息,还是异常的攻击消息,交换机都会进行检测识别
- 端口处理
- 当检测到边缘端口收到 BPDU 后,交换机立即将该端口设置为 “err - disable” 状态(不同厂商可能叫法有差异,但本质都是关闭端口)
- 端口被关闭后,不再转发数据, 也就切断了可能导致生成树重新计算的源头,避免了网络拓扑因错误 BPDU 引发的不必要变化
- 恢复机制
- 被关闭的端口可以通过手动重新开启, 也可以根据交换机的配置,设置自动恢复时间
- 如在华为设备上,可配置 err - disable 自动恢复功能,在达到设定时间后尝试恢复端口状态 ,以便在错误排除后,端口能重新投入使用,恢复网络连接
2 根桥保护
- 根桥保护机制是 MSTP 中保障网络拓扑稳定的重要功能。当合法根桥面临优先级更高的 BPDU 威胁时,通过在相关端口启用根桥保护,可避免根桥错误切换,维护网络稳定
保护需求----边缘端口受到攻击
- 合法根桥收到优先级更高的配置消息,失去根桥的地位,引起网络拓扑结构的变动
根桥保护机制
- 对于设置了根保护功能的端口,一旦该端口收到某实例优先级更高的配置消息,立即将该实例端口设置为指定端口、侦听状态,不再转发报文
配置根桥保护
根桥保护机制的工作流程
正常状态
- 在网络中,根桥正常运行,其他交换机的端口连接到根桥
攻击或错误配置
- 如果有恶意设备或错误配置的交换机发送优先级更高的 BPDU,试图成为新的根桥
根保护检测
- 启用了根保护功能的端口检测到优先级更高的 BPDU
端口状态转换
- 一旦检测到优先级更高的 BPDU,该端口立即从当前状态转换为指定端口(DP)并进入侦听状态(Listening),不再转发数据报文
防止根桥切换
- 由于端口不再转发数据报文,恶意设备或错误配置的交换机无法通过该端口影响根桥的选举,从而防止根桥的错误切换
恢复机制
- 如果端口在一段时间内没有收到优先级更高的 BPDU,它会自动恢复到原来的状态,继续正常转发数据报文
配置根桥保护注意事项
- 根桥保护功能应该配置在接口级别
- 根桥保护不能应用在上行接口
- 上行接口的主备切换是正常的网络拓扑变化,启用根桥保护功能会导致误判,影响网络的正常运行
3 环路保护
- 环路保护机制是一种重要的网络安全功能,用于防止由于链路拥塞或单向链路故障导致的环路问题
- 通过启用环路保护功能,可以检测 BPDU 丢失并及时将端口状态转换为 Discarding 状态,防止环路的产生,提高网络的可靠性和性能
保护需求----环路的产生
- 由于链路拥塞或者单向链路故障,端口会收不到上游设备的BPDU报文,此时下游设备重新选择端口角色,会导致环路的产生
环路保护机制
- 配置了环路保护的端口,当接收不到上游设备发送的BPDU报文时,环路保护生效
- 如果该端口参与了STP计算,则不论其角色如何,该端口在所有实例都将处于Discarding状态
环路保护机制工作流程
正常状态
- 在网络中,交换机之间通过 BPDU(桥协议数据单元)进行通信,维护生成树的拓扑结构
链路拥塞或单向链路故障
- 当链路拥塞或出现单向链路故障时,BPDU 可能会丢失,导致下游设备无法正常接收 BPDU
环路保护检测
- 启用了环路保护功能的端口会持续监控 BPDU 的接收情况
- 如果端口在一段时间内没有收到 BPDU,说明可能存在链路拥塞或单向链路故障
端口状态转换
- 当端口检测到 BPDU 丢失时,会将端口状态转换为 Discarding 状态,不再转发数据报文,防止环路的产生
恢复机制
- 当端口重新收到 BPDU 时,会自动恢复到原来的状态,继续正常转发数据报文
4 TC保护
- TC 保护机制是一种重要的网络安全功能,用于防止恶意设备发送大量 TC-BPDU 报文导致的网络不稳定问题。通过设置时间窗口和监控报文数量,限制地址表项删除操作的次数,保护设备资源,确保网络的稳定性
保护需求----TC攻击
- 在有伪造的TC-BPDU报文恶意攻击设备时,设备短时间内会收到很多的TC-BPDU报文,频繁的删除操作给设备带来很大负担,给网络的稳定带来很大隐患
TC保护机制
- 设置设备在收到TC-BPDU报文后的10秒内,进行地址表项删除操作的最多次数
- 监控在该时间段内收到的TC-BPDU报文数是否大于门限值
TC保护机制工作流程
正常状态
- 在网络中,交换机正常处理TC-BPDU报文,维护生成树的拓扑结构
TC 攻击检测
- 当设备检测到短时间内收到大量TC-BPDU报文时,触发TC保护机制
时间窗口限制
- 设备在收到TC-BPDU报文后的 10 秒内,限制地址表项删除操作的次数
报文监控
- 监控在该时间段内收到的 TC-BPDU 报文数是否大于门限值
- 如果超过门限值,说明可能存在 TC 攻击
保护措施
- 当检测到 TC 攻击时,设备会采取保护措施,如限制地址表项删除操作的次数,保护设备资源,确保网络的稳定性
恢复机制
- 当攻击停止后,设备会自动恢复正常的处理流程,继续维护生成树的拓扑结构
对比项 | STP(生成树协议) | RSTP(快速生成树协议) | MSTP(多生成树协议) |
---|---|---|---|
基本原理 | 通过 BPDU(桥协议数据单元)进行信息交互,计算出一个无环的网络拓扑结构,阻塞某些端口来防止网络环路。选举根桥、根端口、指定端口,非指定端口被阻塞 | 在 STP 基础上进行改进,基于端口角色快速收敛。通过更快速的状态迁移机制,减少网络拓扑变化时端口状态变化的延迟 | 在 RSTP 基础上,引入实例(Instance)概念,每个实例可以包含若干 VLAN,不同实例可以有不同的生成树拓扑 |
收敛速度 | 慢,端口从阻塞状态到转发状态需要经过较长的时间(约 50 秒,包括 20 秒的老化时间、15 秒的监听时间和 15 秒的学习时间) | 快,网络拓扑变化时,非边缘端口状态迁移时间可以缩短到 1 秒左右。根端口和指定端口快速切换,边缘端口直接进入转发状态 | 快,和 RSTP 类似,端口状态快速收敛,同时因为可以对不同实例分别计算生成树,在多 VLAN 网络中能更高效地优化流量路径 |
端口角色 | 根端口、指定端口、非指定端口 | 根端口、指定端口、预备端口(替代指定端口,提供备份链路)、边缘端口(连接终端设备,可快速进入转发状态) | 根端口、指定端口、预备端口、边缘端口,另外在 MST 域内还引入主端口(连接主桥的端口) |
VLAN 支持 | 不支持 VLAN,所有 VLAN 共享一棵生成树,无法实现流量负载均衡 | 不支持 VLAN,所有 VLAN 共享一棵生成树,无法实现流量负载均衡 | 支持 VLAN,可将多个 VLAN 映射到一个实例,每个实例对应一棵生成树,能实现不同 VLAN 流量的负载均衡 |
配置复杂度 | 低,配置相对简单,主要配置根桥等基本参数 | 较低,在 STP 基础上增加的配置不多 | 较高,需要配置 MST 域(域名、修订级别、VLAN 映射表等)、实例等相关参数 |
应用场景 | 适用于网络规模较小、对收敛速度要求不高、网络拓扑相对稳定的环境 | 适用于网络规模中等、对收敛速度有一定要求的环境 | 适用于大型网络,尤其是 VLAN 数量较多,需要进行流量负载均衡和链路冗余的场景 |
一个无环的网络拓扑结构,阻塞某些端口来防止网络环路。选举根桥、根端口、指定端口,非指定端口被阻塞 | 在 STP 基础上进行改进,基于端口角色快速收敛。通过更快速的状态迁移机制,减少网络拓扑变化时端口状态变化的延迟 | 在 RSTP 基础上,引入实例(Instance)概念,每个实例可以包含若干 VLAN,不同实例可以有不同的生成树拓扑 | |
收敛速度 | 慢,端口从阻塞状态到转发状态需要经过较长的时间(约 50 秒,包括 20 秒的老化时间、15 秒的监听时间和 15 秒的学习时间) | 快,网络拓扑变化时,非边缘端口状态迁移时间可以缩短到 1 秒左右。根端口和指定端口快速切换,边缘端口直接进入转发状态 | 快,和 RSTP 类似,端口状态快速收敛,同时因为可以对不同实例分别计算生成树,在多 VLAN 网络中能更高效地优化流量路径 |
端口角色 | 根端口、指定端口、非指定端口 | 根端口、指定端口、预备端口(替代指定端口,提供备份链路)、边缘端口(连接终端设备,可快速进入转发状态) | 根端口、指定端口、预备端口、边缘端口,另外在 MST 域内还引入主端口(连接主桥的端口) |
VLAN 支持 | 不支持 VLAN,所有 VLAN 共享一棵生成树,无法实现流量负载均衡 | 不支持 VLAN,所有 VLAN 共享一棵生成树,无法实现流量负载均衡 | 支持 VLAN,可将多个 VLAN 映射到一个实例,每个实例对应一棵生成树,能实现不同 VLAN 流量的负载均衡 |
配置复杂度 | 低,配置相对简单,主要配置根桥等基本参数 | 较低,在 STP 基础上增加的配置不多 | 较高,需要配置 MST 域(域名、修订级别、VLAN 映射表等)、实例等相关参数 |
应用场景 | 适用于网络规模较小、对收敛速度要求不高、网络拓扑相对稳定的环境 | 适用于网络规模中等、对收敛速度有一定要求的环境 | 适用于大型网络,尤其是 VLAN 数量较多,需要进行流量负载均衡和链路冗余的场景 |
常考易错点 | 1.根桥选举依据是桥 ID(Bridge ID,由优先级和 MAC 地址组成),容易忽略优先级可以手动调整 2. 端口状态转换时间较长,在故障恢复等场景下对业务影响时间长,容易忽视对业务的影响分析 | 1. 端口角色判断,尤其是预备端口和边缘端口的区分,在拓扑变化时端口状态迁移条件容易混淆; 2. 虽然收敛速度快,但在一些特殊场景(如链路故障同时存在多个备份路径)下,可能出现收敛异常,需要理解其状态迁移细节 | 1.MST 域配置,域名、修订级别、VLAN 映射表必须完全一致,否则无法正常通信,考试中常考配置错误导致的问题 2.不同实例的根桥选举,容易混淆实例根桥和域根桥的概念 3.跨域通信时,不同 MST 域之间的交互机制,容易忽略交互过程中的特殊情况 |