目录
生成树协议(STP)
- 作用
- 解决冗余网络拓扑引发的环路问题
- 构建稳定、无环、且有备份路径的网络
- 原理
- 由交换机检测二层网络中的逻辑环路
- 从逻辑上阻塞环路中的一个端口来打破环路
- 生成树链路定义了四个步骤来修剪冗余链路
- 使网络中任意两台设备之间只存在一条活跃链路
- STP能够感知活跃链路异常,自动激活被阻塞端口
- 相关概念
- 桥ID:由优先级值和交换机MAC地址组成,默认优先级32768
- 根网桥(RB):优先级值最小的网桥
- 路径开销(path cost)
- 用于描述一个端口到达根端口的远近程度
- 可以衡量到达目标位置的代价高低
- 值为当前端口到根网桥某一端口,路径上所有链路开销(link spending)之和
- 链路速率越高,开销越低
- 链路速率相同,聚合组成员越多,开销越小
- 开销的规定值与协议和厂家有关
- BPDU
- 桥协议数据单元
- 分配置BPDU和变更通告BPDU
- 包含STP选举信息的数据帧
- 根网桥的优先级值
- 根网桥的MAC地址
- 交换机去往根网桥的路径开销(path cost)
修剪冗余链路的步骤
- 选择根网桥(RB)
- 选举对象:交换机
- 选举范围:当前二层网络中的所有交换机
- 胜出条件:比较根网桥ID,数值最小者胜出
- 胜选之后:根网桥所有端口都转发数据,不会被阻塞
- 过程简述
- 所有交换机都在发出的BPDU中声称自己是根网桥
- 将收到的其他交换机桥ID与自己的比较
- 如果自己的更小,则忽略与之比较的BPDU,继续以2秒为周期发出BPDU
- 如果自己的更大,则选举失败,不再发送自己的BPDU,转发与之比较的BPDU
- 如果优先级相同,则以MAC地址小的为准
- 重复上述过程直到所有交换机达成对根网桥的共识
- 根网桥的端口自动成为指定端口
- 选举根端口(RP)
- 定义:到根桥路径最短的端口
- 选举对象:当前二层网络端口
- 交换机连接终端的端口虽然是活跃端口,但不会收到BPDU,不参与选举
- 选举范围:非根网桥上的端口,一台交换机选出一个
- 胜出条件:比较路径开销、非根网桥ID、端口ID,都是低者胜出
- 胜选之后:根端口都转发数据,不会被阻塞
- 选举指定端口(DP)
- 选举对象:当前网络二层端口
- 选举范围:当前二层网络中的所有交换机的端口,每组相连端口选出一个
- 胜出条件:比较路径开销、非根网桥ID,都是低者胜出
- 胜选之后:所有指定端口都转发数据,不会被阻塞
- 根网桥本地端口到根网桥开销为0,所以根网桥端口都是指定端口
- 阻塞非指定端口(BP)
- 前三轮中都落选的端口成为非指定端口
- STP通过阻塞非指定端口,修剪二层网络中的冗余路径,构建出无环的树
生成树端口的四种状态
- 阻塞(blocking)
- 数据帧(不接收不转发),地址学习(不学习),BPDU(只接收不转发)
- 阻塞端口被选举为能够转发数据的端口后会马上进入监听状态
- 监听(listening)
- 数据帧(不接收不转发),地址学习(不学习),BPDU(接收和转发)
- 转发延迟计时器超时后会进入学习状态
- 学习(learning)
- 数据帧(不接收不转发),地址学习(学习),BPDU(接收和转发)
- 转发延迟计时器超时后会进入转发状态
- 转发(forwarding)
- 数据帧(接收和转发),地址学习(学习),BPDU(接收和转发)
- 新接入网络的端口和与其相连的端口逻辑上up起来后都处于阻塞状态
- STP将端口选举为根端口或指定端口后会经过监听和学习状态
- 最终维持在转发状态
- 阻塞和转发是稳态
- 监听和学习是中间态