Linux Bridge Cost
文章目录
- 核心概念解释
- 成本值如何计算?
- 实际应用场景
- 管理端口成本
- 为什么需要关注端口成本?
在 Linux 的桥接(bridge)网络中,
cost
后面的数字表示端口路径成本(Port Path Cost),这是生成树协议(Spanning Tree Protocol, STP)中的关键参数。它的作用和含义如下:
核心概念解释
-
路径成本(Path Cost):
- 这是一个衡量桥接端口的相对速度/带宽的数值
- 用于 STP 计算到达根桥(Root Bridge)的最优路径
- 数值越小表示路径越好(成本越低)
-
在您的输出中的具体表现:
eth0: ... cost 5 # 成本值 = 5 eth1: ... cost 19 # 成本值 = 19
这表示:
- eth0(成本5)比 eth1(成本19)路径更优
- STP 会优先选择 eth0 作为转发路径
成本值如何计算?
链路速度 | 旧标准成本(802.1D-1998) | 新标准成本(802.1D-2004) |
---|---|---|
10 Mbps | 100 | 2,000,000 |
100 Mbps | 10 | 200,000 |
1 Gbps | 4 | 20,000 |
10 Gbps | 2 | 2,000 |
40 Gbps | - | 500 |
100 Gbps | - | 200 |
您的成本值(5和19)说明:
- 可能是自定义设置(非默认自动计算)
- 或者在使用新的成本标准(如 200,000 = 100Mbps 变成 5)
实际应用场景
-
路径选择:
- 当网桥2要访问根桥时
- 直接路径成本=5(优)
- 间接路径:网桥2→网桥1→根桥 成本=5+19=24(劣)
-
故障切换:
- 如果 eth0(成本5)故障
- STP 会自动切换到 eth1(成本19)路径
管理端口成本
-
查看当前成本:
bridge link show
-
修改端口成本:
# 临时修改(立即生效) sudo ip link set dev eth1 type bridge_slave cost 10# 持久化修改(不同系统方法不同) # Ubuntu网络配置示例: # 在 /etc/netplan/*.yaml 中增加: # bridges: # br-down: # interfaces: [eth0] # parameters: # stp: true # stp-priority: 32768 # stp-port-costs: ['eth0=5']
-
查看STP拓扑:
bridge stp show bridge stp show br-down
为什么需要关注端口成本?
-
优化网络流量:
- 确保高速链路被优先使用
- 避免低速链路成为瓶颈
-
防止环路:
- STP 依赖成本值构建无环拓扑
- 错误成本配置可能导致次优路径或网络问题
-
故障恢复:
- 当主要链路失效时(cost=5),
- 备份链路(cost=19)可自动接管
注意:在不需要防环的简单网络(如家庭网络)中,可以禁用 STP,但在复杂企业网络中,正确的成本设置对网络性能至关重要。