向邻居下发默认路由
default-originate 让 BGP 向指定邻居下发一条默认路由(0.0.0.0/0),并且不要求本机路由表里存在默认路由。典型场景是边缘与分支:出口设备只给内部或下游发默认路由,简化对端路由表。配合 route-map 可以做成条件下发——只有本机存在某条路由(例如主出口的默认路由)时才下发,避免单点失效时把流量引向死路。
基本信息
| 作用 | 向指定邻居下发 0.0.0.0/0,不要求本机存在默认路由 |
|---|---|
| Cisco 命令 | neighbor x default-originate [route-map NAME] |
| 华为 VRP | peer x default-route-advertise |
| 生效方向 | 出向,仅影响该邻居 |
| 条件化 | 配 route-map 后条件不成立则不下发 |
| 传播约束 | 常配合 no-export 等团体属性限制默认路由传播范围 |
| 验证方式 | 对端 show ip bgp 0.0.0.0 能看到该条目并确认来源 |
典型使用场景
- PE 向 CE 下发默认路由:客户侧不持有全表也能访问网络
- 核心向汇聚或边界设备下发默认:简化下层设备的选路逻辑
- 双出口企业网:向内部设备只发默认路由,精简内部路由表规模
- 条件化下发:只在主出口路由存在时下发,主出口故障时自动停止下发
- 路由表瘦身:用默认路由替代全表下发,降低设备资源压力
条件化下发示例
条件化下发示例
ip prefix-list PL_MAIN seq 5 permit 0.0.0.0/0 # 判断本机是否存在默认路由
route-map COND_DEFAULT permit 10
match ip address prefix-list PL_MAIN # 条件成立才下发默认路由
set community no-export # 约束默认路由的传播范围
!
router bgp 65001
neighbor 10.0.0.2 default-originate route-map COND_DEFAULT
!
show ip bgp neighbors 10.0.0.2 advertised-routes # 确认默认路由是否真的在通告下发默认路由的方式对比
| 方式 | 特点 | 主要风险 |
|---|---|---|
| default-originate | 按邻居下发,可条件化 | 条件写错会把流量引向不可用出口 |
| 静态默认重分发进 BGP | 影响面更大,容易被无意传播 | 需要配套过滤与团体约束 |
| 聚合产生默认 | 需要明细支撑 | 容易掩盖明细差异 |
| 只发默认不发全表 | 对端路由表精简 | 对端失去细粒度选路能力 |
只在出向生效,也不影响本机路由表:排查「对端没有默认路由」时要先确认本端是否真的向该邻居下发了,而不是看本机有没有默认路由。
默认路由天生像万能出口,传播范围必须用团体属性(如 no-export)或前缀过滤约束住;否则原本只给内部用的默认路由可能传到外部邻居,把不该承担的流量吸进来。
下发前先评估接收方的容量与转发路径:默认路由会覆盖一切,接收方最终怎么走完全取决于本端的可达性,本端出口异常时对方没有任何备选信息。