首页/网络/BGP 与广域网速查/deterministic-med:消除到达顺序影响
BGP 选路与策略62 条

deterministic-med:消除到达顺序影响

bgp deterministic-med 先按邻居 AS 分组,在组内各自选出优胜路径,再做组间比较;使结果不再依赖报文到达顺序,适合多出口网络。

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

到达顺序为什么会改变选路结果

MED 是可选非传递属性,只在同源 AS 之间比较。默认实现里,参与比较的路径集合取决于报文到达顺序:后来的路径可能与当前最优路径比较,而不是与同源 AS 的另一条路径比较,于是重启设备或重建会话后可能得到不同的出口。bgp deterministic-med 把路径按邻居 AS 分组,先在组内选出优胜者,再做组间比较,使结果不再依赖到达顺序。

基本信息

作用消除「谁先到谁先进比较」的顺序依赖
行为变化先按邻居 AS 分组,组内分别比较 MED,再跨组比较
默认状态多数平台默认关闭,需显式开启
配套建议全网设备统一开启并保持长期一致
生效要求开启后需软刷新或重建会话,已选结果才会按新规则重算

典型使用场景

  • 多厂商混合组网:不同实现默认行为不同,统一开启可避免结果分歧
  • 多出口从同一上游学习:MED 用于表达入口偏好,需要稳定可复现的比较逻辑
  • 设备重启后出现出口变化:用确定性 MED 消除重启顺序带来的差异
  • 排障对比:开启后同一前缀在不同设备上更容易得到一致结论
  • 变更验收:把重启与重建会话后的选路结果一致性作为验收项

配置与刷新

配置与刷新
router bgp 65001
 bgp deterministic-med
!
# 让已收路由按新规则重新比较
clear ip bgp * soft in
!
# 验证同一前缀的路径集合与最优结果
show ip bgp 10.100.0.0/16
show ip bgp 10.100.0.0/16 | include Metric|LocPrf

与相关开关的配合

开关作用配合建议
deterministic-med按邻居 AS 分组比较 MED全网统一开启
always-compare-med比较来自不同 AS 的 MED 值慎重启用,会改变既有选路结果
missing-as-worst缺失 MED 视作最差与 deterministic-med 配合时需统一认知
确定性与否影响结果可复现性变更前后都要做结果对照

验证结果是否稳定

验证结果是否稳定
# 记录当前最优路径
show ip bgp 10.100.0.0/16
#
# 重建会话后再次查看,比较是否仍选中同一路径
clear ip bgp 10.0.0.2
show ip bgp 10.100.0.0/16
#
# 多台设备使用相同命令比对结论是否一致
show ip bgp 10.100.0.0/16 | include from
确定性 MED 改变的是比较过程而不是属性值:开启后不会让某条路径「变得更好」,只会让同一输入始终得到同一输出。它最大的价值是让偶发的不一致变得可复现、可解释。

易错点

  • 部分设备开启、部分未开:重启后出现出口变化,问题难以复现也难以定位
  • 改开关后忘记软刷新:旧决策结果保留到刷新前,验证结论不可信
  • 同时随意启用 always-compare-med:跨 AS 的 MED 值被纳入比较,可能彻底改变现网选路
  • 把确定性 MED 当成收敛优化:它只影响选路一致性,不缩短收敛时间
  • 变更前不留结果基线:无法判断出口变化是开关引起还是其它因素导致

数据来源与参考

  • Cisco: bgp deterministic-med
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌