两条发布路径
在 Cisco IOS/IOS-XE 等设备上,把静态路由放进 BGP 有两条路径:network 命令只精确宣告路由表中已经存在的路由,ORIGIN 保持 IGP;redistribute static 把静态路由整批引入 BGP,ORIGIN 记为 incomplete。前者可控、可审计,后者省事但引入面宽。
基本信息
| 适用平台 | Cisco IOS/IOS-XE、华为 VRP(华为对应 network 与 import-route static) |
|---|---|
| network 前提 | 路由表中存在掩码完全一致的路由条目 |
| 入口方向 | redistribute static 挂在 router bgp 的地址族下 |
| ORIGIN 差异 | network 发布为 IGP(i),重分发引入为 incomplete(?) |
| 常见配套 | 指向 Null0 的汇总静态支撑聚合发布 |
典型使用场景
- 稳定业务网段:手工写静态再用 network 宣告,变更少、来源清楚
- 发布聚合:先写 ip route 汇总掩码 Null0,再用 network 发布该汇总
- 存量迁移:一次 redistribute static 把大批静态路由带进 BGP,事后再逐条收敛
- 过渡期引入非直连网段的静态路由,迁移完成后撤掉重分发
- 华为设备等价做法:bgp 视图下 import-route static 配 route-policy 限定范围
两种写法对照
两种写法对照
# 方式一:精确宣告,路由表必须已有该前缀
router bgp 65001
network 192.0.2.0 mask 255.255.255.0
!
# 方式二:批量引入静态路由,并挂 route-map 控制范围
router bgp 65001
redistribute static route-map RM-STATIC
!
route-map RM-STATIC permit 10
match ip address prefix-list PFX-OUT
!
# 汇总发布:先有指向 Null0 的静态汇总
ip route 198.51.100.0 255.255.255.0 Null0ORIGIN 取值读法
| ORIGIN | 产生方式 | 选路效果 |
|---|---|---|
| i(IGP) | network 宣告、本地 IGP 引入 | 同一前缀的其它条件相同时优先选中 |
| e(EGP) | 历史遗留方式,现代网络基本不用 | 一般见不到,见到多为异常 |
| ?(incomplete) | redistribute 重分发引入 | 选路顺序上最次,常在多来源竞争中落败 |
华为等价写法
华为等价写法
bgp 65001
ipv4-family unicast
import-route static route-policy RP-STATIC
#
display bgp routing-table 198.51.100.0
# 关注输出的 Origin 与本地优先级字段network 的判定看的是「路由表里有没有这条完全匹配的路由」;用聚合或更明细路由去满足它是不会生效的,必须自己先写好汇总静态或让该前缀真实存在。
上线前核对清单
- 确认发布方式是逐条 network 还是整批重分发,两种混用时先列出各自的覆盖前缀
- 用 ip route 核对每条静态路由的下一跳是否可达、是否被浮动静态或更明细路由覆盖
- 汇总发布时先算清聚合边界,确认 Null0 路由不会把真实业务地址一起黑洞掉
- 出方向挂 prefix-list 白名单,避免临时排障用的静态路由被带到外部
- 变更后用 show ip bgp neighbors <ip> advertised-routes 核对实际发出的前缀,而不是只看配置
指向 Null0 的静态路由会立即生效:写错掩码的瞬间,被覆盖的地址就在本设备被丢弃。建议先在维护窗口用 show ip route <前缀> 确认匹配范围,再让 BGP 宣告它。