图中的阻塞端口指的就是预备端口。。。。个人习惯
STP中定义了三种端口角色:指定端口, 根端口和预备端口。
指定端口是交换机向所连网段转发配置BPDU的端口, 每个网段有且只
能有一个指定端口。 一般情况下, 根桥的每个端口总是指定端口。
根端口是非根交换机去往根桥路径最优的端口。 在一个运行STP协议的
交换机上最多只有一个根端口, 但根桥上没有根端口。
如果一个端口既不是指定端口也不是根端口, 则此端口为预备端口。 预
备端口将被阻塞。
在以太网中, 二层网络的环路会带来广播风暴, MAC地址表震荡, 重复
数据帧等问题, 为解决交换网络中的环路问题, 提出了STP。
STP的主要作用:
- 消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
- 链路备份:当活动路径发生故障时, 激活备份链路, 及时恢复网络
连通性
STP通过构造一棵树来消除交换网络中的环路。
每个STP网络中, 都会存在一个根桥, 其他交换机为非根桥。 根桥或者
根交换机位于整个逻辑树的根部, 是STP网络的逻辑中心, 非根桥是根
桥的下游设备。 当现有根桥产生故障时, 非根桥之间会交互信息并重新
选举根桥, 交互的这种信息被称为BPDU。 BPDU中包含交换机在参加
生成树计算时的各种参数信息, 后面会有详细介绍。
STP中定义了三种端口角色:指定端口, 根端口和预备端口。
指定端口是交换机向所连网段转发配置BPDU的端口, 每个网段有且只
能有一个指定端口。 一般情况下, 根桥的每个端口总是指定端口。
根端口是非根交换机去往根桥路径最优的端口。 在一个运行STP协议的
交换机上最多只有一个根端口, 但根桥上没有根端口。
如果一个端口既不是指定端口也不是根端口, 则此端口为预备端口。 预
备端口将被阻塞
STP中根桥的选举依据的是桥ID, STP中的每个交换机都会有一个桥
ID(Bridge ID) 。 桥ID由16位的桥优先级(Bridge Priority) 和48位的
MAC地址构成。 在STP网络中, 桥优先级是可以配置的, 取值范围是
0~65535, 默认值为32768。 优先级最高的设备(数值越小越优先) 会
被选举为根桥。 如果优先级相同, 则会比较MAC地址, MAC地址越小
则越优先。
交换机启动后就自动开始进行生成树收敛计算。 默认情况下, 所有交换
机启动时都认为自己是根桥, 自己的所有端口都为指定端口, 这样
BPDU报文就可以通过所有端口转发。 对端交换机收到BPDU报文后,
会比较BPDU中的根桥ID和自己的桥ID。 如果收到的BPDU报文中的桥
ID优先级低, 接收交换机会继续通告自己的配置BPDU报文给邻居交换
机。 如果收到的BPDU报文中的桥ID优先级高, 则交换机会修改自己的
BPDU报文的根桥ID字段, 宣告新的根桥。
非根交换机在选举根端口时分别依据该端口的根路径开销、 对端BID
(Bridge ID) 、 对端PID(Port ID) 和本端PID。
交换机的每个端口都有一个端口开销(Port Cost) 参数, 此参数表示该
端口在STP中的开销值。 默认情况下端口的开销和端口的带宽有关, 带
宽越高, 开销越小。 从一个非根桥到达根桥的路径可能有多条, 每一条
路径都有一个总的开销值, 此开销值是该路径上所有接收BPDU端口的
端口开销总和(即BPDU的入方向端口) , 称为路径开销。 非根桥通过
对比多条路径的路径开销, 选出到达根桥的最短路径, 这条最短路径的
路径开销被称为RPC(Root Path Cost, 根路径开销) , 并生成无环树
状网络。 根桥的根路径开销是0。
一般情况下, 企业网络中会存在多厂商的交换设备, 华为X7系列交换机
支持多种STP的路径开销计算标准, 提供最大程度的兼容性。 缺省情况
下, 华为X7系列交换机使用IEEE 802.1t标准来计算路径开销。
运行STP交换机的每个端口都有一个端口ID, 端口ID由端口优先级和端
口号构成。 端口优先级取值范围是0到240, 步长为16, 即取值必须为
16的整数倍。 缺省情况下, 端口优先级是128。 端口ID(Port ID)可以用
来确定端口角色。
每个非根桥都要选举一个根端口。 根端口是距离根桥最近的端口, 这个
最近的衡量标准是靠路径开销来判定的, 即路径开销最小的端口就是根
端口。 端口收到一个BPDU报文后, 抽取该BPDU报文中根路径开销字
段的值, 加上该端口本身的端口开销即为本端口路径开销。 如果有两个
或两个以上的端口计算得到的累计路径开销相同, 那么选择收到发送者
BID最小的那个端口作为根端口。
如果两个或两个以上的端口连接到同一台交换机上, 则选择发送者PID最小的那个端口
作为根端口。 如果两个或两个以上的端口通过Hub连接到同一台交换机的同一个接口上,
则选择本交换机的这些端口中的PID最小的作为根端口。
在网段上抑制其他端口(无论是自己的还是其他设备的) 发送BPDU报
文的端口, 就是该网段的指定端口。 每个网段都应该有一个指定端口,
根桥的所有端口都是指定端口(除非根桥在物理上存在环路) 。
指定端口的选举也是首先比较累计路径开销, 累计路径开销最小的端口
就是指定端口。 如果累计路径开销相同, 则比较端口所在交换机的桥ID,
所在桥ID最小的端口被选举为指定端口。 如果通过累计路径开销和所在
桥ID选举不出来, 则比较端口ID, 端口ID最小的被选举为指定端口。
网络收敛后, 只有指定端口和根端口可以转发数据。 其他端口为预备端
口, 被阻塞, 不能转发数据, 只能够从所连网段的指定交换机接收到
BPDU报文, 并以此来监视链路的状态。