首页/网络/BGP 与广域网速查/对多对端设置 MED 的做法
BGP 选路与策略62 条

对多对端设置 MED 的做法

MED 只在同一对端的多条链路之间有比较意义:为每个对端独立配置 route-map out,数值体系与对端约定一致,并按对端逐个验证入口效果。

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

MED 与多对端

MED(Multi-Exit Discriminator,多出口鉴别器)是给对端 AS 的「入口建议」:本端用出方向策略把数值通告出去,对端在同一邻居的多条链路之间比较,值小者优先。关键限制是 MED 只在同一个对端的多条入口之间有意义,不同对端的 MED 之间不做比较。因此对多个对端出口,正确做法是为每个对端单独挂一条 out 方向的 route-map。

基本信息

属性语义建议对端从哪条链路进入,值小者优先
生效范围同一邻居(对端 AS)的多条入口之间
实现方式per-neighbor 的 route-map out,逐对端设定
数值约定与对端核对语义与默认值,避免各说各话
默认比较默认只比较来自同一邻居 AS 的路径

典型使用场景

  • 双链路接同一 ISP:希望对方主用 A 链路、备用 B 链路
  • 多家运营商出口:每家独立设定入口偏好,互不影响
  • 割接过渡期:临时抬高某条链路的 MED,把流量赶到备用链路
  • 主备切换演练:验证对端是否按约定优先选择入口
  • 排查「我发的 MED 没生效」:先确认对端是否在同一邻居内比较

多对端分别设定

多对端分别设定
route-map RM-MED-A permit 10
 set metric 100                             # 对 ISP-A 的入口偏好:值小者优先
!
route-map RM-MED-B permit 10
 set metric 200                             # 对 ISP-B 的入口偏好,独立设定
!
router bgp 65001
 neighbor 10.0.0.2 route-map RM-MED-A out   # 每个对端挂自己的 out 策略
 neighbor 10.0.0.6 route-map RM-MED-B out
!
show ip bgp neighbors 10.0.0.2 advertised-routes | include 10.1.1.0

相邻属性对照

属性比较范围方向性
MED同一对端的多条入口之间建议对端,本端不据此选路
LOCAL_PREF本 AS 内所有路径之间只在本地 AS 内有效,不传出
AS_PATH 长度所有收到的路径对端可用 prepend 影响本端选择
Weight本设备本地厂商私有,不参与对外比较
两端对 MED 的默认处理可能不同:有的实现只比较来自同一邻居 AS 的 MED,有的把缺失 MED 视为 0,因此「不写 MED」和「写 0」在某些平台上等价,落地前先与对端核对。
MED 在决策列表中排在 LOCAL_PREF 之后:对端的入向策略(例如按前缀设 LOCAL_PREF)会优先于本端给的 MED,看自己这边的配置无法判断最终入口。
变更后建议用 advertised-routes 确认本端实际发出的度量,再请对端在其 BGP 表中核对所选入口,形成双侧闭环。

易错点

  • 拿不同对端的 MED 互相比大小:默认不跨邻居比较,数值高低对最终选路没有意义
  • 只在本端配完就当完成:MED 的效果体现在对端入口,必须在对方侧核对实际选路
  • route-map 挂错方向或挂错邻居:策略不生效且不报错,需在 advertised-routes 里确认
  • 把 MED 与 LOCAL_PREF 混淆:LOCAL_PREF 只在本 AS 内选路,无法影响对端入口

数据来源与参考

  • Cisco: set metric(MED)
  • RFC 4271: MED 比较条件
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌