首页/网络/BGP 与广域网速查/always-compare-med:跨邻居 AS 比较 MED
BGP 选路与策略62 条

always-compare-med:跨邻居 AS 比较 MED

bgp always-compare-med 让 MED 在来自不同邻居 AS 的路径之间也参与比较;该开关影响全局决策,需要 AS 内所有相关设备保持一致。

BGP 与广域网速查网络更新于 2026-10-13

跨 AS 比较 MED 的开关

MED 是为「同一个邻居 AS」提供入口选择建议的属性,BGP 默认只在来自同一邻居 AS 的多条路径之间比较 MED。always-compare-med 打破这条限制,允许对来自不同邻居 AS 的路径也比较 MED。它有多出口场景的实际用途,但会降低选路结果的可预测性:不同运营商之间的 MED 数值本是各自约定、互不相关的量,跨 AS 比较等于用不可比的数值做决定。

基本信息

默认行为只比较来自同一邻居 AS 的路径 MED
命令作用允许跨邻居 AS 比较 MED 值
属性本质给邻居 AS 的入向建议值,数值越小越优先
影响范围全局开关,改变选路结果的可预测性
变更后生效已学路由需软刷新才按新规则重算
常见误用把不同运营商各自约定的 MED 数值当同一尺度比较
相关开关与 missing-as-worst 配合决定 MED 缺失时的排序

典型使用场景

  • 多出口多运营商:需要按 MED 统一排序时,前提是各方数值口径一致
  • 内部多边界协同:内部设备需要比较来自多个边界设备的多条路径
  • 排查选路与预期不符:确认是否某台设备开启了 always-compare-med
  • 变更审计:全局开关必须在全网保持一致,否则设备之间的判断会分裂
  • 与 missing-as-worst 组合:设计完整的 MED 排序规则时一起评估

配置与核对

配置与核对
router bgp 65001
 bgp always-compare-med               # 允许跨邻居 AS 比较 MED,全局生效
!
show ip bgp 10.1.0.0                  # 看多条路径的 MED 值与选中的那条
show ip bgp neighbors 10.0.0.2        # 确认该邻居属于哪个 AS
show run | include always-compare-med # 审计全网是否一致配置

MED 相关开关的作用

开关作用风险
always-compare-med跨邻居 AS 也比较 MED数值口径不一致时选路结果不可预测
missing-as-worst缺失 MED 视为最大值未协商 MED 的邻居被整体排到最后
两者组合跨 AS 排序叠加缺失值垫底影响面叠加,必须全网统一配置
route-map 设置 MED按前缀精细控制依赖对端是否真的按 MED 选路
MED 是建议而不是命令:对端是否采纳、在什么优先级采纳,由对端的实现与配置决定。多运营商场景里把它当作唯一依据风险很高,通常还要配合 LOCAL_PREF、AS_PATH 等手段一起设计。
这类全局开关在同一 AS 内必须全网一致:一台开了、一台没开,内部对最优路径的判断就会分裂,表现为同一条路由在不同设备上选到了不同的下一跳,且各自都认为自己是正确的。
变更属于全网属性操作:先在实验环境验证选择结果,确认没有意外绕行或次优路径,再按窗口统一上线,并要求各设备配置与生效状态一致。

易错点

  • 跨运营商比较各自约定的 MED:数值口径不同却当同一尺度用,选路结果不可预测
  • 全网配置不一致:部分设备开启、部分没开,内部选路结果互相矛盾
  • 忽略 missing-as-worst 的叠加效应:缺失 MED 的邻居被整体排后,可能把本可用的出口排除在候选之外
  • 指望 MED 完全控制对端入向:对端是否按 MED 选路不由本端决定,必须与对端协同验证
  • 改完不核对多条路径:只看最优路径变了没有,容易漏掉次要路径上的绕行

数据来源与参考

  • Cisco: bgp always-compare-med
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌