首页/网络/BGP 与广域网速查/AS-Path 预置:人为加长路径
BGP 选路与策略62 条

AS-Path 预置:人为加长路径

发布路由时重复追加本 AS 号,使 AS_PATH 变长,让对端在路径长度比较环节降级该路径;常用于主备链路与流量引导。

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

AS-Path 预置是什么

AS-Path 预置(prepend)是在向邻居发布路由时,人为把本 AS 号重复追加到 AS_PATH 前面,使路径长度变长。对端在做路径长度比较时会把它降级,从而把流量引导到另一条入口。它是主备链路与流量引导中最常用的手段之一,方向永远是出向。

基本信息

作用增加 AS_PATH 长度,影响对端路径长度比较
生效前提对端仍按 AS_PATH 长度作为比较依据,且未被更高优先级属性决定
配置方向针对指定邻居的 out 方向
IOS 语法route-map set as-path prepend <AS> <AS>
华为语法route-policy apply as-path <AS> <AS> additive
验证show ip bgp neighbors <ip> advertised-routes 查看 Path 列

典型使用场景

  • 双运营商主备:备用线路发布时多追加本 AS,平时不承载流量
  • 同城双出口做粗粒度分流:按网段在不同出口设置不同预置次数
  • 临时把某段流量从一条链路赶到另一条,避免修改对端配置
  • 与 MED 配合使用:对端只在同一邻居 AS 内比较 MED 时,用预置做跨 AS 的兜底手段
  • 演练主备切换:确认路径长度变化后对端是否按预期改路

IOS 与华为写法

IOS 与华为写法
# IOS
route-map RM-PREPEND permit 10
 set as-path prepend 65001 65001      # 重复追加本 AS 号两次
router bgp 65001
 neighbor 10.0.0.2 route-map RM-PREPEND out   # 只对指定邻居出向生效
!
# 华为
route-policy RM-PREPEND permit node 10
 apply as-path 65001 65001 additive   # additive 表示在原路径前追加
bgp 65001
 peer 10.0.0.2 route-policy RM-PREPEND export

验证发布结果

验证发布结果
show ip bgp neighbors 10.0.0.2 advertised-routes | include 10.1
# 输出 Path 列应显示 65001 65001 加原有序列
show ip bgp 10.1.1.0/24              # 本机视角这条路径的属性
# 对端或 looking glass 复核路径长度差异是否生效

预置次数怎么定

次数路径长度增加适用情况
1 次1仅需略作降级,且备选路径只短 1 跳
2~3 次2~3常见主备场景,足以区分主备
过长(如 10 次)10部分网络设长度上限,可能被直接丢弃
配合前缀过滤不改变范围预置只影响已放行的前缀,需与出向过滤一起核对
预置只作用于出方向:它改变的是对端看到的路径,不改变本机对同前缀的选路结果。
预置影响所有收到该更新的对等体,除非按邻居精确匹配;先小范围验证再扩大,避免主备关系被整体翻转。

易错点

  • 预置后路径长度超过部分网络的过滤阈值:极端情况下对端直接拒收
  • 把预置当开关使用:切主备时依赖对端刷新时机,收敛速度受对端策略影响
  • 把预置做到入向策略里:入向预置改的是本机看到的路径,对引导对端选路没有作用
  • 次数随手填:与备选路径长度不匹配时可能完全不起作用,动手前先确认对端的两条候选路径长度

数据来源与参考

  • Cisco: set as-path prepend
  • 华为: apply as-path
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌