第十九章节-STP生成树协议
STP的概述
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),来确定网络的拓扑结构。
BPDU有两种,配置BPDU和TCN BPDU。前者是用于计算无环的生成树的,后者则是用于在二层网络拓扑发生变化时产生用来缩短MAC表项的刷新时间的(由默认的300s缩短为15s)。
Spanning Tree Protocol(STP)是在IEEE 802.1D 文档中定义,该协议的原理是按照树的结构来构造网络拓扑,消除网络中的环路,避免由于环路的存在而造成广播风暴问题。
交换机环路带来的问题:
①广播风暴
②MAC地址表不稳定
③网络卡顿
④网络不稳定
⑤过多占用交换机的cpu和内存等等
实现方式
生成树协议运行生成树算法(STA)。生成树算法很复杂,但是其过程可以归纳为以下三个部分。
(1)选择根网桥
(2)选择根端口
(3)选择指定端口(也有书籍称为转发端口)
相关介绍
生成树协议是IEEE 802.1D中定议的数据链路层协议,用于解决在网络的核心层构建冗余链路里产生的网络环路问题,通过在交换机之间传递网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),通过采用STA生成树算法选举根桥、根端口和指定端口的方式,最终将网络形成一个树形结构的网络,其中,根端口、指定端口都处于转发状态,其他端口处于禁用状态。如果网络拓扑发生改变,将重新计算生成树拓扑。生成树协议的存在,既解决了核心层网络需要冗余链路的网络健壮性要求,又解决了因为冗余链路形成的物理环路导致“广播风暴”问题。
但是,由于协议机制本身的局限,STP收敛速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的震荡。
根端口依据
(1)到根网桥路径开销最低。
根路径开销是两个网桥间的路径上所有链路的开销之和,也就是某个桥网到达根网桥的中间所有链路的路径开销之和。
(2)最低的发送方网桥ID。
(3)最低的端口ID。
由于端口的ID是由优先级和端口号组成,保证了根端口的唯一性。
指定端口依据
(1)根路径开销较低
(2)所在的交换机网桥ID值最小
(3)端口号最小
注:根桥上的所有端口都是指定端口
选举根端口:①RPC–>②对端BID->③对端PID>④本端PID
选举指定端口:①站在交换机角度看RPC(不要站在接口角度)–②本端BID–>③本端PID
注意:最终如果收到的BPDU报文所有参数都一样,此时交换机会比较本端PID
桥ID(BID)=桥优先级+桥MAC,优先级默认32768,桥mac是主板MAC
端口ID(PID)=端口优先级+端口ID,端口优先级默认128,端口ID就是端口编号 例如:e0/0/5 ID就是5
简化步骤
A、整个交换网络选举根桥(根交换机),桥ID较小的交换机当选为根桥。桥ID=桥优先级+桥MAC。根桥上的接口都是指定端口(DP:Designated Ports).注意:桥优先级默认都是32768 。
B、非根桥上选择根端口,到达根桥“最近”(RPC)的端口当选为根端口(RP:root port)。对端桥ID。
C、每条链路有且仅有一个指定端口。桥ID较小的交换机的端口当选为指定端口。
D、剩下的接口将全部被阻塞,阻塞端口简称:block port(AP:alternate port 或者 NDP)。
端口类型
指定端口:DP(Designated Ports)
根端口:RP:root port
block port(阻塞端口):AP:alternate port或者NDP
端口类型
发送数据
接收数据
发送配置BPDU
接收配置BPDU
RP
是
是
否
是
DP
是
是
是
否
NDP
否
否
否
是
端口状态
Blocking(阻塞状态):此时,二层端口为非指定端口,也不会参与数据帧的转发。
Listening(侦听状态):生成树此时已经根据交换机所接收到的BPDU而判断出了这个端口应该参与数据帧的转发。
Learning(学习状态):这个二层端口准备参与数据帧的转发,并开始填写MAC表。在默认情况下,端口会在这种状态下停留15秒钟时间。
Forwarding(转发状态):这个二层端口已经成为了活动拓扑的一个组成部分,它会转发数据帧,并同时收发BPDU。
Disabled(禁用状态):这个二层端口不会参与生成树,也不会转发数据帧。
协议不足
1、拓扑收敛慢,当网络拓扑发生改变的时候,生成树协议需要50-52秒的时间才能完成拓扑收敛。
2、不能提供负载均衡的功能。当网络中出现环路的时候,生成树协议简单的将环路进行Block,这样该链路就不能进行数据包的转发,浪费网络资源。
链路开销值
带宽
STP开销
100 Kbit/s
200000000
1 Mbit/s
20000000
10 Mbit/s
2000000
100 Mbit/s
200000
1 Gbit/s
20000
10 Gbit/s
2000
100 Gbit/s
200
1 Tbit/s
20
10 Tbit/s
2