在RSTP资料中看到Alternate和Backup,若都简写成“备用口”,便会略去原厂定义中的替代对象。Juniper的《Spanning Tree Protocol Overview》把端口角色与端口状态分开说明:角色决定端口怎样参与生成树,状态决定它怎样处理帧。两套名称应放回同一拓扑中理解。[1]

这份概述先用根、枝和叶解释生成树。根是经生成树算法选出的网络交换机;枝是网桥之间的网段或链路;叶可为终端计算机。帧沿树枝前往目的地,其他路径处于备用关系。这里的根桥是被选中的桥设备,并不是把某台设备上的一个端口直接称为整棵树的根。

根桥的选举依据是bridge ID。文档将其组成写为网桥优先级与网桥MAC地址,最低ID对应被选出的根桥;优先级相等,或没有配置该优先级时,再由最低MAC地址决定。指定桥还有自己的比较语境:两个桥到根的路径成本相同时,最低bridge ID的桥成为该局域网段的指定桥。因此,根桥选举与某网段的指定桥比较虽用到同一ID,却没有在描述同一个拓扑位置。

Root port是某桥到根桥路径成本最低的端口。这个“最近”对应文档所说的路径成本,不是本文测出的布线距离。Designated port则把流量从根的方向送向叶;指定桥为它服务的每条链路连接具有一个指定端口。概述还说明,根桥从其端口转发帧,这些端口充当指定端口。根桥这个设备角色,与其他桥通向根的Root port,因而需要分别保留。

Alternate port提供的是通向根桥的替代路径,针对Root port失效这一情形。原文把它置于discarding状态,并说它不属于当前活动生成树。Backup port提供的则是朝向叶的备份路径,针对Designated port失效。两个定义中的“替代”有不同方向,不能只保留二者都是后备路径,再省去它们分别对应根端口和指定端口这一层关系。

Backup还有一项具体存在条件:同一个桥的两个或更多端口,连接到由这个桥充当指定桥的同一局域网。它不仅是“某处另有一个端口”的泛称,而与同桥、同局域网和指定桥身份相连。Alternate与Backup都被写为discarding,却仍保持不同角色,正好说明仅凭状态名称不能把两者互换。Disabled则被定义为不属于活动生成树的端口,文档将它另列为第五种角色。

状态部分的Learning关注接收帧中的位置信息,用它建立MAC地址表,为转发作准备;Forwarding则过滤并转发帧,处于这一状态的端口属于活动生成树。一个定义在讲如何学习位置,另一个在讲过滤和转发,不能只按端口是否出现在清单中就补出相同的帧处理行为。这也是资料同时保留role与state两栏的实际用途。

本篇仅采用这份Junos概述的拓扑对象、比较关系及角色与状态定义,首次发布日期未确认。没有依据机型表作兼容判断,也没有配置优先级、切换端口或测量恢复时间;所述备用关系不作为现场网络安全与可用性的认可。

资料:[1] https://www.juniper.net/documentation/us/en/software/junos/stp-l2/topics/topic-map/spanning-tree-overview.html

信息来源

本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。