STP
基础
- STP(spanning tree protocol)生成树协议,用于消除数据链路层环路的协议,仅在网络中存在冗余链路或者存在环形网络结构(封闭的物理环路)时才采用。
- 通常在网络中关键设备使用冗余链路、多条等价链路、接入环网等时采用。生成树在保证冗余链路的同时,又可确保不会出现二层环路。
- 运行生成树协议的设备彼此交换信息发现网络中的环路,并有选择的对某个端口进行阻塞,最终将环形网络结构修剪成树形网络结构,防止报文在网络中不断循环;在网络发生故障时,生成树能快速发现故障并尽快找出另一条路径进行数据传输。
- 如果在环形网络中不启用生成树协议会产生:
- 广播风暴导致网络不可用;
- MAC 地址表震荡导致 MAC 地址表项被破坏。
基本概念
- 根桥
- 全网中只有一个,具有最小桥 ID(BID)的桥(可以当作一台交换机来看待),其他的统称为非根桥。根桥(root bridge RB)是整个网络逻辑中心,一般将环网中性能最好的设备设置为根桥。网络收敛后,根桥间隔一定时间向外发送配置 BPDU。
- 两种度量
- ID
- ID 有 BID(bridge ID,桥 ID) 和 PID(port ID,端口 ID) 之分
- BID:
- BID 决定哪台交换机成为网络中的根桥,在 STP 中规定 BID 最小的交换机被选举为根桥。
- BID 由高 16 位桥优先级(bridge priority)和低 48 位桥背板 MAC 地址组成,是一个用户可以设定的参数,设定的值越小,越能成为根桥。各交换机只有桥优先级相同时才比较背板 MAC。
- PID:
- 用于在有些情况下选择指定端口。
- 在选择指定端口时,只有在端口的根路径开销和发送 BPDU 交换机的 BID 都相同的情况下才会比较端口 PID,PID 小者为指定端口。
- 路径开销
- 由端口的链路速率决定(聚合链路为 UP 成员速率之和),stp 选择保留带宽最大的链路,阻塞多余的速率小的链路,以便剪成无环网络。在理解 STP 时一定要理解成一个阻断的环。
- 在一个运行 stp 协议的交换网络中,某端口到根桥累计的路径开销就是所经过的各个桥上的各端口的路径开销累加值,这个值叫做根路径开销(root path cost)。根桥上所有端口的根路径开销、以及同交换机上不同端口间的路径开销值均为 0。
- ID
- 三个选举要素
- 根桥(root bridge RB):
- BID 最小的设备;每个 STP 网络中仅有一个。
- 同一交换机上只能配置为根桥或备份根桥,不能同时配置;在配置 STP、RSTP 中,建议手动配置根桥和备份根桥。在一棵生成树中,当桥优先级相同时 MAC 最小的将成为根桥;一棵生成树中可配置多个备份根桥,当根桥故障时,备份根桥中 MAC 最小的将成为根桥。
- 在配置根桥时,一般选择性能高的设备作为根桥,而性能高的设备不一定优先级高,所以要配置性能高的设备优先级最高(数值最小)。
- 根端口(root port RP):
- 负责向根桥方向转发数据,是非根桥交换机离根桥交换机最近的端口,即当前桥(可以当成一台交换机设备)设备上去往根路径开销(root pathcost RPC)最小的端口。
- 在一个 stp 网络中,根端口只有一个,且根桥上没有根端口。
- 当多个端口根路径开销相同时,先比较指定桥 (见后面)ID(最小的会成为根端口),指定桥 ID 相同则比较指定桥上的端口 ID(port ID 最小的成为根端口)。
- 端口路径开销由路径开销计算方法决定;当确定路径开销方法后,端口的速率越大,其开销值越小(越能成为根端口)。
- 指定端口(designated port)
- 指定端口与指定桥息息相关,但不是一一对应,具体如下:
- 指定端口与根端口相对,也可理解为与下游设备最近,唯一可以接收下游设备数据的端口。根桥上的所有端口都是指定端口(除根桥有环路)。
- 对于一台设备:
- 与本设备直接相连且向本设备直接转发配置消息的其它设备就是指定桥,指定桥中向本设备转发配置消息的端口就是指定端口。
- 对于一个局域网:
- 向本网段转发配置消息的设备就是指定桥,指定桥上向本网段转发配置消息的端口时指定端口。
- 端口优先级默认为 128,当优先级越大(数值越小)越容易选举为指定端口;在选择指定端口时,两个端口的根路径开销和发送 BPDU 交换机的 BID 相同时,PID 小的端口为指定端口。
- 一旦根桥、根端口、指定端口选举成功,则整个网络树形拓扑建立完成,在拓扑稳定后,只有根端口与指定端口转发流量,其他非根、非指定端口处于阻塞(blocking)状态。
- 根桥(root bridge RB):
RSTP
-
端口角色
- 根端口 RP
- 指定端口 DP
- Alternate(替代)端口:
- 当根端口出现故障后,无延时的接替根端口转发流量;可以看成从指定桥到根桥的另一条切换路径;是学习到其他桥发送 BPDU 报文阻塞的端口。
- 备份根端口 RP,一般处于 discarding 状态,即阻塞
- Backup 端口:
- 当指定端口出现故障后,无延时的接替指定端口转发流量;可以看成从根桥到相应网段的备份通路;是学习到自己发送的 BPDU 报文而阻塞的端口。
- 备份指定 DP,一般处于 discarding 状态,即阻塞
- Edge(边缘)端口:
- 管理员配置的一种指定端口,用于连接 PC 或不需要允许 STP 的下游交换机,前提是该交换机不存在环路。Edge 端口直接进入 forwarding 状态。
- 上电后,会立即处于 forwarding 状态,立刻转发用户流量,如果用 STP ,则至少需要30秒
- 收 BPDU,也发 BPDU,但如果这样做,会变成普通端口
- 边缘端口不接收处理配置 BPDU 报文,不参与 RSTP 运算,但是会发送 BPDU,这可能导致发送到其他网络引起震荡,因此可配置边缘端口过滤功能,使其不处理不发送 BPDU 报文。
-
端口状态,从 STP 的5种变成 RSTP 的3种: