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 的路径,可能出现部分前缀仍走备用链路的情况。切换验证要按前缀逐条核对,而不是只看总体流量曲线。