as-set 聚合的发什么
aggregate-address 加上 as-set 参数后,聚合路由的 AS_PATH 会以 AS_SET 的形式携带所有明细的来源 AS,例如 {65001,65002}。它的意义是提示对端这条聚合覆盖了哪些来源,便于对端做策略判断;代价是部分网络对含 AS_SET 的路由处理更严格。
基本信息
| 命令 | aggregate-address <前缀> <掩码> as-set |
|---|---|
| 效果 | AS_PATH 中出现 {a,b,c} 形式的集合 |
| 意义 | 提示对端该聚合覆盖多个来源 AS |
| 长度计算 | AS_SET 无论包含多少 AS 都按长度 1 计算 |
| 实现差异 | 不同平台对 AS_SET 的策略处理存在差异 |
典型使用场景
- 汇总多来源前缀时保留来源信息,便于对端判断
- 与对端约定:确认对方是否接受含 AS_SET 的路由
- 排障「对端把路由过滤掉」:检查 AS_PATH 是否含集合
- 设计评审:评估 as-set 与抑制明细类参数的组合效果
- 变更比对:开启前后对比通告内容与对端接收情况
配置与查看
配置与查看
router bgp 65001
aggregate-address 10.0.0.0 255.0.0.0 as-set # 聚合时携带来源 AS 集合
!
show ip bgp 10.0.0.0/8 # 观察 AS_PATH 中是否出现集合
show ip bgp neighbors 10.0.0.2 advertised-routes | include 10\.0\.0\.0聚合选项对照
| 选项 | AS_PATH 表现 | 适用场景 |
|---|---|---|
| 无参数 | 只体现本 AS | 不需要保留来源信息 |
| as-set | 出现 AS_SET 集合 | 需要对端感知来源范围 |
| suppress-map | 按策略抑制明细 | 差异化通告 |
AS_SET 无论包含多少 AS 都按长度 1 计算:对端若按路径长度过滤,实际效果可能与直觉不同,需要提前沟通。
明细频繁变化时 AS_SET 会跟着抖动:集合内容的每次变化都会触发更新,聚合的稳定性因此受影响。
是否开启取决于对端策略:跨域场景建议先确认对端的 AS_PATH 处理规则,再决定使用哪种聚合方式。
聚合覆盖的明细范围要先明确:只对部分明细做汇总时,来源集合内容会随明细增删而变化,通告随之抖动。
开启前后建议留存通告快照:对比对端实际收到的内容,才能确认集合是否被对方的策略放行。