一、定义及作用
STP指生成树协议,其主要解决了环路问题,防止广播风暴的产生;同时,当线路出现故障,断开的接口被激活,恢复通信,此时,STP起到了备份线路的作用。
STP的基本原理是通过在交换机之间交互BPDU来建立树形结构的网络拓扑,从而实现根桥、根端口、指定端口、非指定端口的选择,通过对根桥、根端口、指定端口、非指定端口的操作实现防环与备份的功能。
二、STP相关术语及其解释
为方便进一步介绍STP协议,现将STP相关术语归结如下表:
术语 | 解释 |
BID (桥ID) | 由优先级+MAC地址组成,在STP协议中,选择BID最小的点作为网络中的根网桥;BID的默认优先级为32768,并且只能以4096的倍数增加或减少。 |
cost值(开销值) | 链路的带宽越大,cost值越小,反应了该条链路的路径成本。 |
RPC (根路径开销) | 指从该设备到根桥所消耗的开销。 |
Port ID(端口ID) | 由优先级+端口编号组成,优先级越小越好,默认优先级为128。 |
BPDU (桥协议数据单元) | 交换机之间通过BPDU来进行STP信息的交换,BPDU可分为配置BPDU以及拓扑变更BPDU(TCN BPDU);其中,配置BPDU用于生成树的计算;TCN BPDU 用于通告网络拓扑的变化。 |
根桥 | 根桥是指在生成树协议中,是指交换拓扑信息的网桥,当需要改变拓扑时,在一个生成树执行中带有指定的网桥来通知在网络中的其它所有的网桥。 |
根端口 | 非根网桥上到根网桥最近的端口将会被选举为根端口。 |
指定端口 | 在每个网段上各存在一个指定端口。 |
非指定端口 | 指除根端口与指定端口外的端口,非指定端口又称阻塞端口,进行阻塞操作,实际可以接收到信息,但不转发。 |
三、 STP的计算
步骤一:选择根桥
交换机之间选择BID值最小的交换机作为网络中的根桥;
步骤二:选择根端口
首先,选择路径开销最低的端口;若端口的路径开销相同,则选择对端BID小的端口;若对端BID一致,则选择对端Port ID小的端口作为根端口;
步骤三:选择指定端口
首先,根桥上的所有的端口都会作为指定端口,并且在同一链路上一定会存在指定端口;
在非根桥交换机上选择指定端口时,首先选择根路径开销小的端口作为指定端口;若根路径开销值相同,则选择本地网桥ID小的端口作为指定端口;若其本地网桥ID仍然相同,则选择本地端口ID小的端口作为指定端口;
步骤四:选择阻塞接口(非指定端口)
既不是根端口,也不是指定端口的端口被自动选为阻塞端口,进行逻辑阻塞,该端口可以接收信息、但不可以进行转发。
四、BPDU
指协议数据单元,交换机之间通过BPDU来进行STP信息的交换,BPDU可分为配置BPDU以及拓扑变更BPDU(TCN BPDU);其中,配置BPDU用于生成树的计算;TCN BPDU 用于通告网络拓扑的变化。
BPDU包含的关键字段及其作用如下:
字段 | 字节 | 作用 |
协议ID | 2 | |
版本号 | 1 | |
报文类型 | 1 | 标识是配置BPDU还是TCN BPDU |
标记域 | 1 | |
根网桥ID | 8 | 用于通告根网桥的ID |
根路径成本 | 4 | 说明这个BPDU从根传输了多远 |
发送网桥ID | 8 | 发送这个BPDU网桥的ID |
端口ID | 2 | 发送报文的端口的ID |
报文老化时间 | 2 | 计时器值,用于说明生成树用多长时间完称它的每项功能 |
最大老化时间 | 2 | |
访问时间 | 2 | |
转发延迟 | 2 |
五、三种端口的作用
① 根端口
根端口保证了从某台非根桥设备到根桥的工作路径是最优且唯一的;根端口作为根桥与非根桥的通信端口,可以进行BPDU报文的交互。
② 指定端口
指定端口保证了各网段与根桥的通信是最优且唯一的;指定端口作为某一网段的交换机的唯一出口,可以进行BPDU的接收和发送。
③ 拥塞端口(非指定端口)
拥塞端口是指除根端口与指定端口外的端口,进行阻塞操作,实际可以接收到BPDU信息,但不转发。
六、STP的端口迁移状态过程
状态 | 用途 |
禁用(Disable) | 强制关闭状态,不能收发任何信息 |
阻塞(Blocking) | 被STP阻塞,只接收BPDU |
侦听(Listening) | 该接口已初步被认可为根接口或指定接口,可以接收BPDU |
学习(Learning) | 该接口会侦听业务数据帧,并进行MAC地址学习,构建网桥表 |
转发(Forwarding) | 该接口可以正常收发数据帧和BPDU |
五种状态的转换过程为:
① 交换机开机后,禁用端口处于关闭状态,不收发BPDU;
② 拥塞端口收BPDU,并持续处于侦听状态;
③ 侦听状态构建“活动”拓扑结束后,进行生成树运算,选举根端口、指定端口、拥塞端口(此过程耗时15秒);
④ 侦听状态结束后,端口进入学习状态,会进行MAC地址表的学习,以减少广播流量(此过程耗时15秒);
⑤ 学习状态结束后,接口进入转发状态,正常收发数据帧和BPDU。