【网络协议详解】—— STP 、RSTP、MSTP技术(学习笔记)
一、STP技术工作原理
STP(Spanning Tree Protocol)生成树协议(IEEE 802.1D)是一种网络协议,用于在网络拓扑中防止环路的产生。在二层交换网络中,逻辑上阻塞部分接口,实现从根交换机到所有节点的最短路径 的属性结构,生成一个没有环路的拓扑。当其中最佳的路径出现故障时,则将个别阻塞的接口 打开,实现链路资源的备份。STP协议的缺点是收敛速度慢,因为它需要等待端口状态的转换。
根桥(ROOT):在一个交换网络中,有且只能有一个根桥(根交换机),STP的主要作用就是在一个交换网络中计算出一棵无环的STP树;
非根桥:只要不是根桥,就是非根桥(非根交换机);
网桥ID(BID):优先级+MAC地址组成(前2个字节为优先级,后6个字节为MAC地址);
端口ID(Port ID):优先级+端口号组成;
根路径开销(Root Path Cost):根发出该BPDU设备到达根网桥的开销;
BPDU(Bridge Protocol Data Unit):桥协议数据单元,用于网桥之间传递BPDU来交互协议信息。
生成树算法的三个步骤:
1、选举根交换机
2、选举根端口
3、选举指定端口并阻塞备用端口
注:这里所谓的“选举”,是通过网络中各交换机相互发送生成树协议专用的数据帧来实现的,这些交换信息的报文称为网桥协议数据单元,简称BPDU
。
1、选举跟交换机
根网桥 ---- 在802.1D中,一个交换网络一棵树,仅选择一个根网桥BID --- 8字节 --- 前2字节 --- 优先级后6字节 --- MAC地址首先,先比较BID中的优先级,优先选择优先级数值小的作为根网桥。优先级:取值范围理论上是0-65535,实际上取值范围0 - 61440,默认值位32768优先级只使用了前4位,后面12位称为 拓展系统ID,只有在802.1S中启用 --- 所以,优先级的修改需要按照4096的倍数来进行修改。如果优先级相同,则比较MAC地址,选择MAC地址数值最小的作为根网桥
2、选举根端口
根端口 --- 所有 非根网桥上 有且仅有一个距离根网桥最近的端口,用来接受根网桥的BPDU
- 选择在接受根网桥BPDU是RPC最小的端口作为根端口。
- 如果多个接口到达根网桥的开销值相同,则比较接口对端设备的BID,优先选择BID小的设备所对应的接口为根端口。
- 如果对端的BID也相同,则比较对端的PID,优先选择PID小的接口对应的接口为根端 PID:2个字节 --- 前4位为优先级后12位为接口标识
先比较优先级,优先选择优先级数值小的
优先级取值范围 0 - 240,默认值为128,每一位代表16,修改优先级时也只能按照16的倍数修改如果优先级相同,则比较接口标识
- 如果对端的PID也相同,则比较本地接口的PID,选择PID小的作为根端口
3、选举指定端口
指定端口 ---- 每一条链路上有且仅有一个端口作为指定端口,用来发送或者转发根网桥的BPDU。根网桥所有的接口都是指定端口,根端口的对端一定时是指定端口1,优先选择发出根网桥BPDU时RPC最小的端口作为指定端口。2,如果发出时的开销值相同,则比较接口链接设备的BID,优先选择BID小的设备的接口作为指定端口3,如果本端的BID也相同,则比较接口的PID,优先选择PID小的作为指定端口4,如果本端的PID也相同,则直接阻塞
4、阻塞非指定端口
非指定端口 --- 所有没有角色的端口都是非指定端口,需要被阻塞接口的状态:1,禁用 --- 1,接口关闭;2,接口没有激活生成树2,阻塞 --- 接口激活生成树后第一个进入的状态,只能侦听BPDU,不能发送BPDU也不能处理业务数据帧设备20S没有侦听到BPDU,则认为根网桥不存在或者失效,则进入到下一个状态3,侦听 --- 进行角色选举的状态。可以接受和发送BPDU,但是,不能处理业务帧。15后(转发延迟时间)将进入到下一个状态这里给15S时间进行选举主要目的是为了防止部分角色没有选出来而造成临时环路一部分接口需要被阻塞,则将退回到阻塞状态4,学习 --- 开始接受业务数据帧,但是只记录MAC地址和接口的信息,并不去转发业务数据帧,停留时间15S。设置学习状态的目的是为了尽可能多的记录MAC地址信息,以减少未知单播帧的泛洪。5,转发 --- 可以进行BPDU的处理,也可以转发业务数据帧最终可能停留的状态:转发和阻塞侦听和学习是两个过渡状态各端口状态变化过程和收敛时间(链路一定要是up状态):
Blocking------(30s)----->Listening------(15s)----->Learning------(15s)----->Forwarding
二、RSTP技术工作原理
RSTP在STP基础上进行了改进,实现了网络拓扑的快速收敛。快速生成树 --- 一个交换网络一棵树, 能够向下兼容STP
1、端口角色
802.1D:根端口,指定端口,非指定端口802.1W: 根端口,指定端口,替代端口(Alternate),备份端口(Backup)替代端口 --- 通过和其他设备的BPDU进行比较而最终被阻塞的端口为替代端口,成为根端口的备份,如果根端口出现故障,则自身最优的替代端口将直接成为根端口并进入到转发状态。备份端口 --- 指定端口的备份,通过和自己的BPDU进行比较而最终被阻塞的端口为备份端口,如果指定端口发生故障,则直接成为指定端口,进入到转发状态。
2、选举规则
根端口和指定端口与STP选举规则类似
替代端口:根端口的备份端口,连接另外一条通过选举出的次优链路
备份端口:指定端口的备份端口,始终处于阻塞状态,只有指定端口故障才被启用
3、端口状态
802.1D:禁用,阻塞,侦听,学习,转发802.1W:丢弃(DISCARDING),学习,转发丢弃 --- 无法学习MAC地址,也无法转发业务帧。端口只接收BPDU报文学习 --- 可以学习MAC地址,无法转发业务帧转发 --- 可以学习MAC地址,也可以转发业务帧
4、收敛机制
- 边缘端口(Edge port)
边缘端口会节省30S的延时,端口UP后会立即进入转发状态,且端口的Up/Down不会触发拓扑变更,他不参与生成树的计算,主要用于连接PC;
当收到BPDU报文会马上变为一个普通端口,加入到生成树的计算中,这样会导致网络震荡
- 根端口快速切换机制
如果RSTP网络中一个根端口失效,那么网络中最优的Alternate端口将成为根端口并直接进入Forwarding状态
- Proposal/Agreement 机制
简称P/A机制,其协商机制可以使交换机上的指定端口尽快进入Forwarding状态,同时也是避免环路的一种机制(AP端口是堵塞状态,EP端口不参与生成树计算,都不会出现环路,只有DP Forwarding端口转发才可能出现环路,所以会逐一向下同步端口状态)
三、MSTP技术工作原理
实例 --- Instance --- 可以理解为是一个VLAN或者多个VLAN的集合。我们一个交换网络可以针一个实例创建一颗树,起到提高链路利用率的问题,同时,避免树太多,造成资源浪费。Instance id --- 12位二进制构成 --- 0 - 4094,Instance0是默认存在的,并且,一开始所有的VLAN都属于instance 0。在BPDU的BID中,优先级只使用了前4位,后面12位称为 拓展系统ID,只有在802.1S中启用,用来放置instance id,用来区分维护不同树形结构的BPDU。域 --- Region --- MST域 --- 如果一个交换网络规模比较大,则可以划分成为多个MST域,每一个MST域单独创建实例,每个实例单独创建树形结果。如果交换网络规模不大,则也可以都在一个MST域中。Region name --- 域名Revision level --- 修订等级Instance 和vlan的映射关系
MSTP配置:
1,激活生成树
[sw1]stp enable --- 华为设备默认激活
2,选择生成树协议
[sw1]stp mode mstp --- 华为设备默认使用MSTP
3,配置MST域
[sw1-mst-region]display stp region-configuration --- 查看MST域的配置信息
华为设备,默认使用设备的管理MAC地址作为域名
华为设备,默认的修订等级为0
[sw1]stp region-configuration
[sw1-mst-region]
[sw1-mst-region]region-name aa
[sw1-mst-region]revision-level ?
INTEGER<0-65535> Revision level
[sw1-mst-region]revision-level 1
[sw1-mst-region]instance 1 vlan 1 to 5
[sw1-mst-region]instance 2 vlan 6 to 10
[sw1-mst-region]active region-configuration --- 注意,配置域信息必须要敲这个命令才能生
效
[sw1]stp instance 1 root primary
[sw1]stp instance 2 root secondary
[sw1]
