默认通告行为与白名单思路
如果邻居上没有配置出方向策略,设备会按 BGP 选路结果对外通告路由:包括从其它邻居学到的、本机重分发引入的、以及通过 network 发布的前缀。这意味着任何一次误配置的引入都可能直接暴露到外部。稳妥做法是出方向挂白名单前缀列表,只放行确实需要发布的前缀。
基本信息
| 默认行为 | 未挂策略时按选路结果通告最优路由 |
|---|---|
| 推荐做法 | 出方向 prefix-list 白名单,列表末尾隐含拒绝 |
| 核对命令 | advertised-routes 看本端打算发什么 |
| 反向核对 | 对端 received-routes 或对端配置,确认实际收到范围 |
| 策略粒度 | 按邻居逐项评估,而不是全院一条统一策略 |
典型使用场景
- 对外互联出口:只发布自有与客户前缀,其它一律不放行
- 客户接入:按合同约定范围发布,避免把其它客户路由泄漏过去
- 实验与测试链路:用最严格的白名单限制发布内容
- 割接验证:变更后核对实际通告内容与设计清单是否一致
- 事故恢复:出现泄漏时快速收窄范围,先止血再定位配置
出方向白名单配置
出方向白名单配置
ip prefix-list PL-OUT seq 5 permit 10.10.0.0/16 le 24
ip prefix-list PL-OUT seq 10 permit 192.0.2.0/24
!
router bgp 65001
neighbor 10.0.0.2 prefix-list PL-OUT out
!
show ip bgp neighbors 10.0.0.2 advertised-routes
# 核对输出与设计清单是否一致,逐条确认没有多余前缀核对输出与含义
| 输出内容 | 含义 | 注意点 |
|---|---|---|
| advertised-routes | 本端打算发给该邻居的路由 | 是「打算发」,不等于对端一定收到 |
| received-routes | 本端从该邻居收到的路由 | 部分平台需额外开启保存副本 |
| 路由数量变化 | 发布范围扩大或收窄 | 结合变更记录判断是否为预期变化 |
| 缺失的前缀 | 应为空但列表里没有 | 说明白名单未覆盖,需补齐并验证 |
变更后的验证流程
变更后的验证流程
# 1) 变更前记录基线
show ip bgp neighbors 10.0.0.2 advertised-routes
# 2) 应用策略
# 3) 软出向刷新让对端重收
clear ip bgp 10.0.0.2 soft out
# 4) 比对前后差异,并请对端确认接收范围白名单的收益取决于列表质量:漏写应发布的前缀会造成业务不可达,多写不该发布的会造成泄漏。建议把清单从设计文档自动生成或逐条评审,并在每次变更后核对一次实际通告内容。