首页/网络/BGP 与广域网速查/Weight / LOCAL_PREF / MED 分工对照
BGP 选路与策略62 条

Weight / LOCAL_PREF / MED 分工对照

三个常用属性的作用域与方向是写策略的前提:weight 本机有效、LOCAL_PREF 决定出 AS、MED 建议对端入口;用错方向的策略等于没配。

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

为什么要把三者放在一起看

weight、LOCAL_PREF、MED 都用来影响选路,但作用域与方向完全不同:weight 只在本机有效,LOCAL_PREF 决定本 AS 从哪个出口出去,MED 则是建议相邻对端从哪个入口进来。写策略前先想清楚「要影响谁的哪个方向」,否则很容易把属性配到错误的方向上,看起来配了却完全没有效果。

属性对照

属性作用域方向数值偏好
Weight仅本机本机决策大者胜
LOCAL_PREF本 AS(iBGP 传播)出 AS 方向大者胜
MED相邻对端 AS建议对端入 AS 方向小者胜
AS-PATH 预置对端看到你的路径出 AS 方向路径短者优

基本信息

决策位置weight 第 1 位,LOCAL_PREF 第 2 位,MED 第 6 位
是否出本机weight 不出本机,LOCAL_PREF 只在本 AS 内,MED 可发给邻居
默认值weight 0(本地起源 32768)、LOCAL_PREF 100、MED 0
适用设备weight 为 Cisco 实现,其他属性为通用属性
验证方式show ip bgp <前缀> 查看 Weight / LocPrf / Metric 三列

典型使用场景

  • 想让本机走某条出口:用 weight 或 LOCAL_PREF,两者都不要用在出向
  • 想让整个 AS 走某个出口:用 LOCAL_PREF,并在出口设备统一设置
  • 想让自己从对端的某个入口进来:用 MED 或 AS-PATH 预置,属出向
  • 多运营商场景:预置用于跨 AS 引导,MED 用于同 AS 双链路
  • 排障时先确认要改变的是自己出去的方向还是对方进来的方向

方向正确的用法

方向正确的用法
# 入向:影响本 AS 从哪个出口出去
route-map LP-IN permit 10
 set local-preference 200              # 大者胜,抬高本 AS 对该路径的偏好
neighbor 10.0.0.2 route-map LP-IN in
!
# 出向:建议对端从哪条链路进来
route-map MED-OUT permit 10
 set metric 50                         # 小者胜,数值小表示更希望被选用
neighbor 10.0.0.2 route-map MED-OUT out
!
show ip bgp 10.1.1.0/24                 # 核对 Weight / LocPrf / Metric 三列
记忆方式:入向属性管「我怎么出去」,出向属性管「别人怎么进来」;weight 是本机私有的快速开关,不参与跨设备协同。
属性配到错误方向不会报错也不会生效,问题只在流量走向上体现,因此变更前明确方向、变更后同时核对两端视角。
决策顺序决定了三者的实际影响力:weight 在第 1 位、LOCAL_PREF 在第 2 位、MED 在第 6 位;只要前序属性已经分出胜负,后序属性设置得再精细也不会改变结果。

易错点

  • 在 eBGP 出向设置 LOCAL_PREF:属性不发给对端,策略无效
  • 把 MED 配置应用到自己入向:改的是自己收到的值,无法影响对端入口
  • 用 weight 做跨设备策略:它不出本机,其他设备不感知
  • 把方向记反:入向与出向的效果正好相反,改完必须用两端命令核对实际结果

数据来源与参考

  • RFC 4271: 属性定义
  • Cisco: 属性使用指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌