首页/网络/BGP 与广域网速查/route-map 的缺省动作与兜底条目
路由过滤与重分发66 条

route-map 的缺省动作与兜底条目

邻居应用 route-map 时:未命中任何条目的路由默认被拒(入向)/不发布(出向);重分发场景未命中条目则不重分发;加空 permit 兜底条目可避免大面积误拦。

BGP 与广域网速查网络更新于 2026-10-13

缺省动作怎么理解

route-map 挂到应用点之后,未命中任何条目的路由按该应用点的缺省规则处理:邻居入向默认拒绝、出向默认不发布、重分发默认不引入。这意味着「只写精确条目」等于把其余路由全部丢弃,因此生产环境中通常要在末尾加一条空的 permit 作为兜底。

基本信息

入向未命中拒绝该路由,不进入 BGP 表
出向未命中不向该邻居发布该前缀
重分发未命中不重分发该路由
兜底写法末尾加空 permit 条目(无 match 无 set)
条目顺序按序号从小到大,命中即执行并结束
验证show route-map <名称> 查看条目与引用计数

典型使用场景

  • 按业务设置属性时保留其余路由:末尾加空 permit 兜底
  • 严格过滤场景:故意不加兜底,只放行明确允许的集合
  • 重分发只引入指定前缀:未命中的不引入,本身就是过滤
  • 变更前评估影响面:确认哪些路由会因为未命中被丢弃
  • 策略审计:检查是否存在只写精确条目却未考虑兜底的情况

兜底写法

兜底写法
route-map RM-SAFE permit 10
 match ip address prefix-list PL-CRIT
 set local-preference 200              # 关键业务前缀抬高优先级
route-map RM-SAFE permit 999            # 兜底:放行其余路由且不修改属性
!
router bgp 65001
 neighbor 10.0.0.2 route-map RM-SAFE in
!
show route-map RM-SAFE                  # 查看条目与引用计数
show ip bgp 10.1.1.0/24 | include locPrf  # 核对关键前缀是否被抬高

有兜底与无兜底的差别

场景无兜底条目有兜底条目
入向按前缀设属性其余前缀被拒,接收集合骤减其余前缀照常接收且属性不变
出向按前缀改属性其余前缀不再发布给该邻居其余前缀照常发布
重分发限范围符合预期的过滤行为会引入本不该引入的路由
应急收窄发布故意不留兜底以快速收窄保留兜底则收窄无效
空 permit 条目表示放行其余路由且不修改属性,这是最常见的兜底写法;空 deny 条目则等同于拒绝全部剩余路由。
只写精确条目不加兜底,等于把策略变成了白名单:变更瞬间就可能让对端收不到任何路由,上线前务必确认这是有意为之。

易错点

  • 只写精确条目不加兜底:其余路由全部被拒,变更即成事故
  • 把 deny 条目理解为仅不设置属性:deny 表示拒绝该路由,语义由应用点决定
  • 兜底条目写在前面:命中即停会让后续精确条目失效
  • 忘记核对引用计数:策略没挂到邻居上时,一切看起来正常但毫无效果

数据来源与参考

  • Cisco: route-map 隐式拒绝行为
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌