联盟解决什么问题
IBGP 默认要求同一 AS 内邻居全互联,规模一大就必须靠路由反射器(RR)或联盟(Confederation,RFC 5065)来打破这个约束。联盟把一个大 AS 拆成若干子 AS(成员 AS):子 AS 内部仍是标准 IBGP,子 AS 之间按 eBGP 规则建邻,但对联盟外部只呈现一个 confederation identifier,外部看到的 AS_PATH 里只有一个 AS 号。它只在本 AS 内部生效,对端无需任何配合。
基本信息
| 标准 | RFC 5065 |
|---|---|
| 对外标识 | confederation identifier,外部只看到这一个 AS 号 |
| 对内结构 | 若干子 AS(member-AS),每个子 AS 独立编号 |
| 子 AS 之间 | 按 eBGP 规则建邻,号段写在 AS_CONFED_SEQUENCE 里 |
| 对外可见性 | AS_CONFED_SEQUENCE 段不外传,外部看不到内部拆分 |
| 厂商支持 | Cisco IOS、华为 VRP、Juniper 均支持,属可选特性 |
典型使用场景
- 大型网络按区域拆子 AS:每个区域独立控制 IBGP 全互联范围与策略边界
- 运营商存量网络:早期设备 RR 能力受限时用联盟扩展规模
- 与 RR 组合:子 AS 内再部署 RR,把对等体数量再压一层
- AS 合并或拆分过渡:把多个 AS 整合为对外的单一 AS 时作为中间形态
- 管理边界清晰的组织:希望各区域保留独立 AS 号与独立策略体系
配置骨架
配置骨架
router bgp 65101 # 本设备所属子 AS
bgp confederation identifier 65000 # 对外 AS 号,外部只会看到 65000
bgp confederation peers 65102 65103 # 声明联盟内其他成员子 AS
neighbor 10.0.0.2 remote-as 65102 # 与子 AS 65102 建立联盟 eBGP
neighbor 10.0.0.50 remote-as 65010 # 与联盟外部邻居按普通 eBGP 建立联盟与路由反射器对比
| 维度 | 联盟 | 路由反射器 |
|---|---|---|
| 扩展方式 | 拆分 AS,改变内部分层结构 | 不改变 AS 结构,只改 IBGP 反射规则 |
| 配置改动 | 涉及子 AS 编号与对等体规划 | 在 RR 与客户端上加配置即可 |
| 对外影响 | 对外仍是单一 AS,内部策略与选路影响较大 | 对外完全无感 |
| 运维复杂度 | 较高,需要维护编号与成员关系 | 较低,拓扑清晰易于审计 |
| 适用现状 | 历史网络或确有独立管理边界时使用 | 现代网络的首选方案 |
| 可否组合 | 可以,子 AS 内可再部署 RR | 可以 |
联盟的 AS_PATH 与普通 eBGP 不同:子 AS 号写在 AS_CONFED_SEQUENCE 段里,对外不可见。外部邻居做 AS_PATH 长度判断或基于 AS 号过滤时看不到内部结构,如果需要表达内部来源,得改用 community 等其他属性。
子 AS 号建议用私有 AS 区间(64512-65534)规划,confederation identifier 必须与真实对外 AS 一致;若 identifier 写错,外部邻居按 remote-as 校验 AS_PATH 时会认为收到异常路由。