以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象,从而导致用户通信质量较差,甚至通信中断。为解决二层交换网络中的环路问题,提出了生成树协议STP(Spanning Tree Protocol)。
一、STP基础知识
1、二层环路
原因:冗余链路造成的环路;人为造成环路
带来的问题:广播风暴;MAC地址漂移;
针对二层环路,解决办法:①STP;②堆叠、链路聚合;③Smart Link;
STP协议的优势:①解决二层环路;②增加网络的冗余性
2、STP工作原理
根本目标:防环
怎么防环:选端口将其阻塞,从而破除环路
使用方法:排除法 选举出不能阻塞的端口,剩下端口阻塞
3、STP计算过程:
①选根桥:越小越优
基于BID进行选举,最初都认为自己是根桥,然后通过交互的配置BPDU,比较BID,选举出根桥
②选根端口
选举根端口是在非根交换机上
选举根端口依据根路径开销、对端BID、对端PID、本端PID
③选指定端口
选举指定端口是在每一条链路上,每一条链路上都要有一个指定端口
指定端口的选举依据是根路径开销、本端BID、本端PID
④非根、非指定端口阻塞
BID(桥)=桥优先级+MAC 桥优先级 0-61440 默认32768 必须是4096的倍数
cost值:每一条链路的开销值,接口带宽越大,则Cost值越小
RPC(根路径开销):到达根桥的所有路径开销值之和
PID(端口ID)=端口优先级+端口号 端口优先级 0-240 默认128,步长是16
4、BPDU 报文
有两种:配置BPDU、TCN BPDU。
配置BPDU在生成树计算和后期网络拓扑检测时使用
TCN BPDU:只有在网络拓扑变化的时候会使用
MAx age :最大生存时间 默认20s
Hello timer:BPDU的发送间隔 默认2s
Forward Delay :转发间隔 默认15s
5、STP的接口状态
R、D端口最终 处于Forwarding状态,阻塞端口处于Blocking
6、拓扑变化
1)根桥故障:20s+30s=50s
20s 是Max age时间 30s是从blocking-->forwarding的转发延时
2)直连链路故障:交换机和根桥之间有备用链路,当到达根桥的主链路故障,非根交换机能够直接感知,不需要20s的等待 时间,只需要30s的转发延迟即可恢复
3)非直连链路故障:交换机和根桥之间没有备用链路,当到达根桥的链路故障,非根交换机能够直接感知,此时非根 交换机会向外发送报文,宣称自己是根桥,A端口收到次优的BPDU报文不会处理,只有等待20s后才意识到出问题,此时将根桥发送过来的BPDU报文转发给另一个非根交换机,接口转化Forwarding需要时延30s,所以共需要50s的时间
4)拓扑改变带来的交换机MAC地址表项错误:通过发送TCN BPDU报文交换,将MAC地址表项的老化时间由300s改为15s
二、RSTP和MSTP
7、RSTP对STP的改进
RSTP(Rapid Spanning Tree Protocol)协议基于STP协议,对原有的STP协议进行了更加细致的修改和补充,实现了网络拓扑快速收敛。
1)增加了端口角色:
阻塞端口分成了A(预备端口)、B(备份端口)
A端口是对R端口的备份
B端口是对D端口的备份
边缘端口:不参与生成树计算,可以直接进入forwarding的状态,通常连接终端设备。
2)端口状态缩减成3种
RSTP的状态规范把原来的5种状态缩减为3种。
如果不转发用户流量也不学习MAC地址,那么接口状态就是Discarding状态。
如果不转发用户流量但是学习MAC地址,那么接口状态就是Learning状态。
如果既转发用户流量又学习MAC地址,那么接口状态就是Forwarding状态。RSTP存在的缺点
RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN的报文无法转发
8、MSTP对STP的改进
为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1s标准定义了MSTP。 MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。 每棵生成树叫做一个多生成树实例MSTI(Multiple Spanning Tree Instance)。
所谓生成树实例就是多个VLAN的一个集合。 通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。
MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。 可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在接口上的转发状态取决于接口在对应实例的状态。
三、STP基础配置
[S1]stp mode stp--配置stp模式
[S1]display stp brief--查看stp接口
[S1]stp priority 0 --设置交换机的优先级
[S1] stp root primary--设置交换机为根桥,优先级为0
[S1] stp root secondary--设置交换机为备份根桥,优先级为4096
[S1-Ethernet0/0/1]stp cost 400000--修改接口的路径开销值
[S1-GigabitEthernet0/0/2]stp port priority 16--修改端口的优先级
[S1] stp enable--开启stp功能
[S1]stp disable--关闭stp功能