STP生成树协议的概述
- 使冗余端口置“阻塞端口”
- 网络中的计算机在通信时,只有一条链路生效
- 当这个链路出现故障时将处于”阻塞状态“的端口重新打开,从而确保网络链接稳定可靠
产生背景
网络链路和设备的冗余性(避免网络不够健壮导致故障)
冗余拓扑
- 既要冗余还要无环,使用自动化的形式来实现STP
- 物理链路上冗余,但是逻辑上是要破除二层的环路
环路的影响
- 广播风暴
- 多帧复制
- mac地址表抖动
端口角色
选举过程
1.选 根桥,非根桥
比较BPDU中的关键桥ID (BID)
BID —>桥优先级+mac地址
优先级越小越优先,如果优先级相同比较mac地址
非根桥除了根桥以外的所以桥,都是非根桥
- 根桥:网络中倒数的跟,整个网络中只有一个根桥
- 桥=交换机
- 根桥是从所以的交换机中选举出来的
2.选根端口(RP)
root port—>所有非根桥上的端口都参加选举
根端口:一般情况下每个非根桥离根桥最近的端口
- 端口到达根桥的路径的开销(越小越优)
- 这个端口对端的交换机的 BID (越小越优)
- 由优先级( 0-255 ,默认为128 )+ 端口编号组成的优先级,端口编号越小越优先 (入端口的优先级 )
3.选指定端口(DP)
指定端口:无环路的可以转发数据的端口
- 所以非根桥交换机冗余链路中选出来的指定端口(两台交换机连接的两端口一个是DP)
- 选举方式: cost 值(cost值是当前端口所在交换机达到根桥的开销)
- 跟桥上的端口都是指定端口
- 根端口对端交换机上的端口也是指定端口
根桥上的每个端口都是指定端口
阻塞端口(AP)
最后剩下的都是阻塞端口
STP 的状态机制端口状态
阻塞状态(Blocking)
- 不能收发数据,不能能学习 mac 表,只能接收 BPDU
- 在选举之前,所以端口从== disabie(残疾的) ==度过到的第一个状态,在选举之后,被阻塞的端口就是阻塞端口 AP
监听状态( Listening )
- 不能收发数据,不能学习 mac 表,只能收发 BPDU
- 在监听状态下,交换机完成 STP 角色的选举,选出 根端口,指定端口,阻塞端口
学习状态( Learning )
- 不能收发数据,可以学习 mac 表,可以收发BPDU
- 交换机发送数据,依靠 mac 表,如果交换机接口从监听状态直接跳到准发状态(在最开始的时候 mac 表 是空的,在网络中会出现大量的泛洪数据)
转发状态( Forwarding )
- 可以收发数据,可以学习mac 表 ,可以收发 BPDU
数据 | mac | BPDU | |
---|---|---|---|
阻塞状态(Blocking) | ✕ | ✕ | ✓ |
监听状态( Listening ) | ✕ | ✕ | ✓ |
学习状态( Learning ) | ✕ | ✓ | ✓ |
转发状态( Forwarding ) | ✓ | ✓ | ✓ |
BPUD
配置BPDU:
- 为整个网络中找到一个根桥交换机
- 为每一个网段选举
- 通过设置某些端口为 backup 状态破坏环路
正常情况下:交换机只会从它根端口( RP )上接收配置BPDU包,但不会主动主动发送配置BPDU包给根桥
TCN BPDU
Topology Change Notification 拓扑变更通知
- 当交换机加测拓扑变化后,他就可以发送TCN给根桥交换机(用根端口给根桥方向发送TCN,沿途收到TCN BPDU信息的交换机,向下游回应TCA阻止下端持续的TCN BPDU,并向再次从自身根端口向上游转发发TCN BPDU;)
STP的不足
- 端口从阻塞状态进入转发状态必须经历两倍的( Forwarding delay)转发延迟时间< 最小30s >
- 如果网络中拓扑频繁发生变化,网络会频繁地失去连通性
RSTP
快速生成树协议
优点
- rstp 具备 stp 的所以功能,是 stp 的优化版
- rstp 可以实现快速收敛
rstp 的行为
端口被选为根端口( DP )
- 存在阻塞端口的备份根端口的情况下仅有数毫秒延迟(不用重新选择)
端口被选举为指定端口( DP )
- 在指定端口是非边缘端口的延迟取决因素较多
- 在指定端口是边缘端口的情况下指定端口可以直接进转发状态没有延迟
stp,rstp 的不足
- thuak 链路上实际上运行着多个vlan,所以 vlan 共用一颗生成树,无法实现不同 vlan 在多条 trunk 链路上的负载分担
MSTP
( 多生成树协议 )
- 将多个 vlan 绑定到一个实例,每个实例每个实例生成单独的生成树
- 在多条 thunk 链路上实现 vlan 级负载分担