首页/网络/BGP 与广域网速查/预置的精确投放与验证
BGP 选路与策略62 条

预置的精确投放与验证

预置只应针对需要改变选择的邻居:用 per-neighbor route-map out 精确控制,并用 advertised-routes 验证发布结果。

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

AS_PATH 预置的作用机制

AS_PATH 长度是 eBGP 选路的重要比较项,路径越短越优先。预置(prepend)就是在本端发布路由时把自己的 AS 号重复写入 AS_PATH,人为加长路径,让对端在比较时降低这条路由的优先级。它只影响对端的判断,本端路由表与转发行为完全不受影响,因此适合做出口降级与主备引导。

基本信息

配置位置route-map 中 set as-path prepend <AS 号列表>,按邻居出方向引用
生效方向仅在向 eBGP 邻居发布时生效,iBGP 之间不改写 AS_PATH
常见写法重复本端 AS 号两到四次,路径长度随之增加
批量方式部分平台支持 prepend last-as <次数>,直接沿用最后一个 AS 号
验证命令show ip bgp neighbors <ip> advertised-routes

典型使用场景

  • 双运营商出口做备份:主用正常时对备用链路预置,故障时撤销预置快速切换
  • 按业务分流:对某条链路的发布加长路径,让对端只承载次要流量
  • 割接过渡:新链路稳定前先预置,观察到流量符合预期后再撤掉
  • 与对端协商入口偏好:对方无法调整 MED 场景下,用预置实现反向控制
  • 演练回退:先把预置加上去验证工具链,再用于真实切换流程

按邻居精确投放

按邻居精确投放
# 只对备用出口的邻居预置,避免影响主出口
route-map RM-PREPEND permit 10
 set as-path prepend 65001 65001 65001
!
router bgp 65001
 neighbor 10.0.0.6 route-map RM-PREPEND out
!
# 变更后做软出向刷新,让对端重新接收
clear ip bgp 10.0.0.6 soft out
!
# 验证实际发出的 AS_PATH
show ip bgp neighbors 10.0.0.6 advertised-routes
show ip bgp neighbors 10.0.0.6 advertised-routes 10.100.0.0

预置策略与效果

场景预置方式对端表现
出口备份备用链路对全部前缀预置三遍正常时流量走主链路,主链路失效后自然切换
业务分流对特定前缀预置,其余不预置对端按前缀分别选择入口,实现部分引流
快速回退撤销预置并软刷新AS_PATH 恢复原长度,对端重新按最短路径选择
临时排障对单个邻居短时预置只影响该邻居的入口选择,范围可控

注意事项与核对

注意事项与核对
# 预置自己的 AS 号是安全的,重复写入不会导致环路判断异常
 set as-path prepend 65001 65001
#
# 不要预置对端的 AS 号:对端收到自己的 AS 号会按环路处理并丢弃
# set as-path prepend 65002   ← 危险写法
#
# 核对本端实际通告内容与对端接收结果
show ip bgp neighbors 10.0.0.6 advertised-routes
# 在对端执行接收路由查询进行交叉验证
预置属于「影响别人决策」的手段,对端若同时收到多条来自本 AS 的路径,可能出现部分前缀仍走备用链路的情况。切换验证要按前缀逐条核对,而不是只看总体流量曲线。

易错点

  • 对所有邻居统一预置:本 AS 前缀在所有方向的路径都变长,主出口也可能失去优势,反而更难被选中
  • 预置后忘记软出向刷新:对端看到的仍是旧的 AS_PATH,验证结论与实际配置不一致
  • 预置错误地写入对端 AS 号:对端按环路检测直接丢弃该路由,表现为这条路彻底不可用
  • 对 iBGP 邻居预置:iBGP 之间不修改 AS_PATH,配置存在但不产生任何效果
  • 只在本端核对配置而不查 advertised-routes:最终发出内容仍需以设备输出为准

数据来源与参考

  • Cisco: neighbor route-map 与 advertised-routes
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌