首页/网络/BGP 与广域网速查/MED 比较规则:同邻居 AS 才默认比较
BGP 选路与策略62 条

MED 比较规则:同邻居 AS 才默认比较

MED 默认只在同一邻居 AS 的多条路径之间比较;来自不同 AS 的路径跳过 MED 直接进入后续步骤,除非启用 always-compare-med 或 deterministic-med。

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

MED 的比较条件

MED 并不是无条件参与比较:默认只在「来自同一邻居 AS」的多条路径之间比较,路径来自不同 AS 时直接跳过 MED 进入后续步骤。这个限制源于 MED 的设计意图——它只描述某个对端 AS 内部的入口偏好,跨 AS 比较没有意义。

基本信息

比较条件路径的邻居 AS(AS_PATH 最左侧一段)相同
不同邻居 AS默认跳过 MED 比较
缺失值默认按 0 处理,不改变比较方向
例外开关always-compare-med 跨 AS 也比较;deterministic-med 固定比较顺序
适用设备Cisco IOS 支持上述开关,其他厂商命名与默认值可能不同
验证show ip bgp <前缀> 观察候选路径的 metric 与路径来源

典型使用场景

  • 同 AS 双链路:对端是同一运营商时,MED 是主要的入向引导手段
  • 多运营商环境:需要跨 AS 比较时,明确评估是否开启 always-compare-med
  • 排障确认:判断某条路径为何没被选中,先看是否根本轮不到 MED 比较
  • 多设备一致性核对:全网开关状态不一致时,各设备可能推出不同结论
  • 变更前预演:先在实验环境确认对端是否按 MED 选择入口

场景判断

场景判断
# 同一邻居 AS 65002 的两条路径:比较 MED
#   A: 65002 65010, MED 50
#   B: 65002 65020, MED 10   → B 胜(MED 小)
#
# 邻居 AS 分别为 65002 / 65003:默认不比较 MED,进入 eBGP/iBGP 与 IGP 度量步骤
show ip bgp 10.1.1.0/24
#
# 跨 AS 也比较(需全网一致,谨慎启用)
router bgp 65001
 bgp always-compare-med

规则细节

场景是否比较 MED说明
同一邻居 AS 的两条路径比较MED 小者胜,属性继续参与后续步骤
不同邻居 AS 的两条路径不比较默认跳过,注意 AS_PATH 起点是否同一 AS
一条路径没有 MED按 0 处理缺值不等于最优,仍与显式 0 等价
联盟内路径依实现部分厂商对联盟路径单列处理,需按平台确认
跨 AS 比较 MED 需要全网一致开启开关,否则不同设备可能得出不同结论,导致流量走非预期出口。
判断是否属于「同一邻居 AS」,看的是候选路径 AS_PATH 最左侧的一段,而不是路由的起源 AS。

易错点

  • 看到 MED 不同就认为对端会按自己的意图选路:先确认两条路径是否来自同一邻居 AS
  • 多厂商环境假设行为一致:MED 缺失值处理与比较开关在不同实现上可能不同
  • 只改一台设备开启 always-compare-med:设备之间结论不一致,故障时表现混乱
  • 把 MED 缺失当成 0 之外的特殊值:默认按 0 处理,写策略时不要依赖「没有 MED」这个状态

数据来源与参考

  • Cisco: BGP MED 比较规则
  • RFC 4271: MED 属性
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌