HCIP【STP、RSTP、MSTP协议(详解)】
目录
1 STP协议(Spanning Tree Protocol,生成树协议)
1.1 技术背景
(1)广播风暴
(2)MAC地址表漂移
1.2 定义
1.3 STP的基本概念
1.3.1 桥ID(Bridge ID,BID)
1.3.2 根桥
1.3.3 开销值(cost)
1.3.4 根路径开销值(RPC)
1.3.5 接口ID(PID)
1.3.6 网桥协议数据单元(BPDU)
1.4 STP计算过程
1.5 STP接口状态
1.6 STP收敛时间
1.7 STP拓扑变更机制
2 RSTP(Rapid Spanning-Tree Protocol,快速生成树协议)
2.1 技术背景
2.2 定义
2.3 RSTP与STP的不同之处
2.3.1 端口角色的不同
2.3.2 端口状态不同
3 MSTP(Multiple Spanning Tree Instance,多生成树协议)
3.1 技术背景
3.2 定义
3.3 MSTP的基本概念
1 STP协议(Spanning Tree Protocol,生成树协议)
1.1 技术背景
二层交换机网络的冗余性与环路问题:如果是一条链路的情况,上联链路中的交换机发生故障就会导致下联链路所有的终端都会断网;为了解决交换机在互连的时候出现这种情况的发生我们一般都会使用冗余链路来实现备份,但是冗余链路最容易出现环路的,对于我们的网络质量和网络业务也是会带来很大的影响的
人工配置错误导致的问题:有时候一个局域网中的的链路增多配置的复杂度增加难免会导致环路的出现
二层环路中的常见的问题:
(1)广播风暴
根据交换机的转发原理,可知如果交换机从一个端口上接收的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则就会将这个数据帧向除了源端口之外的所有端口转发。但是喃倘若这个网段或者是交换网络中有环路,则这个数据帧就会被不停地转发,此时就会形成广播风暴,消耗交换机CPU算力,占用网络资源,导致网络业务被中断。
(2)MAC地址表漂移
交换机是根据所接收的数据帧的源地址和接收端口生成MAC地址表的;但是假使一个交换机接收同一个数据帧先后不同时间的从两个不同的接口都接收了这个数据帧的MAC地址,但是我们知道一个MAC地址只能对应一个端口,但是一个端口可以对应多个不同的MAC地址,所以就会导致这个MAC地址与接口的对应关系是不断切换的,举个例子:接口A先接收到这个数据帧,MAC先与接口A对应,然后接口B也接收到了这个数据帧,MAC地址就会消除与接口A的对应关系,转而与接口B对应,就在接口A、B之间不停地切换.....这种情况称之为MAC地址表的漂移
总的来说就是在以太网中,二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据帧等问题,为解决交换网络中的环路问题,提出了STP
1.2 定义
STP是通过构建一颗树来消除交换网络中的环路问题,运行STP算法,判断网络中存在环路的地方,并通过阻断冗余链路,将环路修剪成无环的树型网络,来避免数据帧在环状网络中的增生和无限循环。生成树主要用于园区网的二层网络中。
1.3 STP的基本概念
1.3.1 桥ID(Bridge ID,BID)
每一台运行STP的交换机都拥有唯一的BID,BID是由16位的桥优先级和桥MAC地址构成的,在STP网络中BID最小的设备会被选举成根桥,会先比较桥优先级,优先级大为BID(数值越小越优先),如果优先级相同,那么比较MAC地址,MAC地址越小越优先。
1.3.2 根桥
根桥就是整个无环树的树根,在整个STP网络中BID最小的设备会被选举为根桥。
网络收敛完成之后,根桥会按照一定的时间间隔产生并向外发送BPDU报文,起到传达拓扑变化报文的作用,从而保证整个网络拓扑的稳定性。
1.3.3 开销值(cost)
在STP网络中,每一个激活了STP的接口都会维护着一个cost值,用于计算到达根的开销大小,一般来说接口的带宽越大其cost值越小
cost值的计算方法:
1.3.4 根路径开销值(RPC)
在STP的拓扑计算过程中,RPC就是去计算接口到达根桥的成本。
1.3.5 接口ID(PID)
使用接口ID来标识每一个接口,接口ID主要用于在某些特定的场景下选举指定接口,缺省情况下接口的优先级是128
1.3.6 网桥协议数据单元(BPDU)
BPDU是STP能够正常工作的根本,STP交换机之间会交互BPDU报文,BPDU报文会携带相关的信息和参数。

STP中的一系列步骤操作:
(1)选举一个根网桥
(2)每一个非根网桥选举一个根端口
(3)每一个网段选举一个指定端口
(4)阻塞非根端口、非指定端口
STP中的三种端口角色:
指定端口:
阻塞端口:
1.4 STP计算过程
(1)选举根桥:STP在交换网络中开始工作后,每个交换机都会向网络中发送配置BPDU。配置BPDU中包含交换机自己的桥ID。当交换机收到网络中其他设备发送来的BPDU后,会比较BPDU中的根桥ID和自己的BID。交换机会不断地交互BPDU报文,同时会对BID进行比较,最终选举出一台BID最小的交换机作为根桥,其他为非根桥。由于根桥的角色是可以抢占的,所以我们在规划网络的时候提前将根桥的优先级设置为最小值0.
(2)在每一台非根网桥上选举根端口:非根网桥会在自己的接口中选举出一个根接口(非根网桥上有且仅有一个根端口);
首先比较根路径开销(RPC),STP协议把根路径开销作为确定根端口的重要依据。RPC值越小,越优选,因此交换机会选RPC最小的端口作为根端口。
当RPC相同时,比较对端交换机的BID,即比较交换机各个端口收到的BPDU中的BID,值越小,越优选,因此交换机会选上行设备BID最小的端口作为根端口。
当对端交换机BID相同时,比较对端交换机的PID,即比较交换机各个端口收到的BPDU中的PID,值越小,越优先,因此交换机会选对端设备PID最小的端口作为根端口。
当对端交换机的PID相同时,则比较本地交换机的PID,即比较本端交换机各个端口各自的PID,值越小,越优先,因此交换机会选端口PID最小的端口作为根端口。
(3)在每一条链路中选举指定端口:指定端口也是通过比较RPC来确定的,选择RPC最小的作为指定端口,如果RPC相同,则比较BID和PID。
首先比较根路径开销(RPC),值越小,越优选,因此交换机会选RPC最小的端口作为指定端口。
当RPC相等,则比较链路两端交换机的BID,值越小,越优选,因此交换机会选BID最小的交换机的端口作为指定端口。
当BID相等,则比较链路两端端口的PID,值越小,越优选,因此交换机会选PID最小的交换机的端口作为指定端口。
一般情况下,根桥的所有接口都为指定端口。
(4)选举阻塞端口:除了根端口和指定端口之外的接口都是指定端口
1.5 STP接口状态
1.6 STP收敛时间
(1)初次收敛时间:30秒(15s侦听+15s学习):存在直连检测,本地仅存在一个阻塞端口,此时可以收到来自根桥的BPDU报文
(2)拓扑故障再收敛时间:某个端口断开,将发送次优的BPDU报文给其他交换机,其他交换机若是不接收该BPDU,那么则会进行20s的max age计时,同时阻塞接口会进行15s侦听,15s学习,总共会花费50s
1.7 STP拓扑变更机制
工作原理:
1.交换机检测到拓扑变更,交换机向根网桥发起TCN BPDU;
max age超时/有接口变更为转发状态,判断为拓扑发生变更
交换机上有端口从forwarding或learning状态转变为blocking;
2.沿途的非根桥收到TCN BPDU后,会继续向根桥转发,并在根桥的下一轮配置BPDU中,把TCA(TC acknowledge)位 置位为1
3.根桥收到TCN BPDU后,在下一轮配置BPDU中,把其TC位 置位为1;
4.所有交换机收到TC置位的BPDU后,MAC地址表老化时间由300秒缩短到15秒
2 RSTP(Rapid Spanning-Tree Protocol,快速生成树协议)
2.1 技术背景
由于STP协议网络拓扑收敛速度慢。由此诞生了RSTP协议,可以快速收敛网络拓扑,并且可以兼容STP协议。
2.2 定义
2.3 RSTP与STP的不同之处
2.3.1 端口角色的不同
2.3.2 端口状态不同

3 MSTP(Multiple Spanning Tree Instance,多生成树协议)
3.1 技术背景
3.2 定义
MSTP将一个交换网络划分成了多个域,每个域形成多颗生成树,生成树之间彼此独立;每一颗生成树是一个生成树实例,节省了通信开销和降低了资源占用率
3.3 MSTP的基本概念
MST域:拥有相同MST配置标识的交换机构成的集合,划区域可加快收敛速度和方便管理。
IST:内部生成树,默认存在,每个MST域独立计算的内部生成树实例
CST:公共生成树,默认存在。用来互联MST域的单生成树(把每个MST域作为一台交换机,计算出生成树实例)
CIST:公共内部生成树,默认存在。CST+每个域内部IST。
实例0:默认所有VLAN都映射在实例0
MST:手动创建的生成树实例,只在一个区域内有效
CIST域根:每个IST的根网桥
CIST总根:整个的根网桥
MASTER端口:CST的根端口,单域MSTP中不可能存在Master端口,多域MSTP中,根域不可能存在Master端口,其他域只有一个;
MSTP 与RSTP的端口角色一样,新增了一个master端口,MSTP协议内容基本与RSTP协议内容差不多