table-map 的作用点
BGP 的路由要经过多个处理点:从邻居收进来是入方向策略,发给邻居是出方向策略,而从 BGP 表安装到本地 RIB(路由表)又是另一个处理点——table-map 就作用在这里。因为处理点不同,它的效果很容易被误解:table-map 里过滤掉的前缀不会装进本地路由表,也就不会被转发使用,但 BGP 表里依然存在,向邻居通告的内容也不受影响。反过来,通过它 set metric 修改的度量会随路由一起进入 RIB,被 IGP 引用或用于本地选路判断。典型用法是控制哪些 BGP 路由能进入路由表,以及给它们设置一个便于 IGP 引用的度量。
基本信息
| 平台 | Cisco IOS/IOS-XE,router bgp 下配置 |
|---|---|
| 语法 | router bgp 下 table-map <route-map 名> |
| 作用点 | BGP 表到 RIB 的下发阶段 |
| 可做动作 | 过滤前缀、改写度量等属性 |
| 不影响 | Adj-RIB-Out,即向邻居通告的内容 |
| 查看 | show ip bgp 与 show ip route 对照 |
典型使用场景
- 只把核心网段装进路由表:明细路由留在 BGP 表但不参与转发
- 为路由设置度量,供 IGP 或静态路由联动引用
- 与 IGP 引入配合:控制哪些 BGP 路由可以被引入内部路由域
- 故障隔离:临时阻止某类前缀进入 RIB,避免影响转发
- 排障核对:确认路由存在于 BGP 表但未装表的原因
配置示例
配置示例
route-map RM-TABLE permit 10
match ip address prefix-list PFX-OK
set metric 100
! 不匹配的前缀被隐式拒绝,不会装进 RIB
route-map RM-TABLE deny 100
router bgp 65001
table-map RM-TABLE
! 对照核对:BGP 表有,但路由表可能没有
show ip bgp 10.1.0.0/16
show ip route 10.1.0.0
! 查看已配置的 table-map
show running-config | include table-map与相邻机制对照
| 机制 | 作用点 | 对邻居通告的影响 |
|---|---|---|
| 入方向策略 | 接收邻居路由时 | 会影响后续通告内容 |
| 出方向策略 | 向邻居发送时 | 直接决定通告内容 |
| table-map | BGP 到 RIB 下发时 | 无影响 |
| aggregate-address | 生成汇总时 | 改变通告内容 |
table-map 只影响本地 RIB 安装,不影响 Adj-RIB-Out 通告;排查对端看不到路由时不要在这里找原因。
route-map 末尾的隐式拒绝很容易被忽略:若只写了 permit 序列而没有兜底序列,未匹配的前缀全部不会装表。