缺失 MED 怎么算
bgp bestpath med missing-as-worst 决定「路径没带 MED」时如何参与比较:默认把缺失当成 0,开启该命令后缺失被视为无穷大(4294967295),在比较中处于劣势。两种处理方式本身没有对错,风险在于 AS 内混用——同一前缀在不同设备上按不同语义比较,出口就会摇摆。
基本信息
| 命令 | bgp bestpath med missing-as-worst |
|---|---|
| 缺失值处理 | 视为 4294967295(无穷大) |
| 默认行为 | 缺失按 0 处理 |
| 一致性要求 | AS 内必须统一,混用会导致出口摇摆 |
| 生效方式 | 属选路规则,变更后已学路由需软刷新或重建会话 |
| 复核方式 | show ip bgp <前缀> 逐条对比各路径的 MED 列 |
典型使用场景
- 多出口场景:需要让未携带 MED 的路径排在后面时开启
- 与对端协同:对端明确会给 MED 时,用缺失惩罚保护未协商的路径
- 排查选路摇摆:确认是否存在两侧对缺失值理解不一致的语义冲突
- 全网一致性审计:逐设备核对该配置是否统一
- 变更窗口管理:与对端同时调整 MED 语义时约定时间窗
配置与核对
配置与核对
router bgp 65001
bgp bestpath med missing-as-worst # 缺失 MED 视为无穷大
!
clear ip bgp 10.0.0.2 soft in # 软刷新后已学路由按新规则重算
show ip bgp 10.1.1.0/24 # 对比各条路径的 MED 列
show run | include missing-as-worst # 审计:确认全网配置一致两种语义的差别
| 场景 | 默认(缺失按 0) | 开启 missing-as-worst |
|---|---|---|
| 对端给了较小的 MED | 缺失路径按 0 比较,容易反超 | 缺失被排后,携带 MED 的路径更有利 |
| 对端未携带 MED | 等价于给了最小值,容易被选中 | 被视为无穷大,排在最后 |
| 设计目的 | 不做额外偏向 | 惩罚未携带 MED 的路径 |
| 主要风险 | 误以为对端没给 MED 就会输 | 未协商 MED 的邻居被整体排后 |
| 一致性要求 | AS 内需统一 | AS 内需统一 |
0 是有效低值:默认语义下,对端「没给 MED」等价于给出最小值,反而容易被选中。这是多出口场景里最常见的选路困惑来源。
变更属于全网属性操作:本端调整语义、对端调整 MED 数值如果同时进行,必须约定时间窗并提前复核,否则窗口内的选路结果难以推理。