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 | 部分网络设长度上限,可能被直接丢弃 |
| 配合前缀过滤 | 不改变范围 | 预置只影响已放行的前缀,需与出向过滤一起核对 |
预置只作用于出方向:它改变的是对端看到的路径,不改变本机对同前缀的选路结果。
预置影响所有收到该更新的对等体,除非按邻居精确匹配;先小范围验证再扩大,避免主备关系被整体翻转。