IS-IS 引入 BGP 的要点
把 IS-IS 学到的路由引进 BGP,语法与从 OSPF 引入非常接近,但有两个 IS-IS 特有的坑:一是要声明引入哪个层级(level-1 还是 level-2),选错会导致部分路由根本没被引入;二是度量类型。IS-IS 有窄度量与宽度量两种口径,取值范围差别很大,手工指定的种子度量必须落在当前口径允许的范围内,否则命令会被拒绝或产生不可预期的结果。引入时通常搭配 route-map 做过滤与属性设置,尤其要为引入路由打上 community,方便上游按来源做策略。
基本信息
| 命令 | redistribute isis level-1|level-2 metric <值> route-map <名> |
|---|---|
| 平台 | Cisco IOS/IOS-XE,华为 VRP 关键字略有差异 |
| 层级 | 必须明确引入 level-1 还是 level-2 的路由 |
| 度量 | 与 IS-IS 度量类型配套,窄度量范围很小 |
| 过滤 | 配合 route-map 与 prefix-list 控制引入范围 |
| 查看 | show ip bgp 与 show ip route isis 对照核对 |
典型使用场景
- 园区 IS-IS 与广域 BGP 互联:把园区网段通告给广域侧
- 数据中心内部 IS-IS 需要向外部发布汇总网段
- 双协议共存过渡期:按需引入部分前缀而非全量
- 为引入路由统一打标签:便于上游按来源做策略
- 排查引入失效:对照路由表与 BGP 表确认哪一步丢了路由
配置示例
配置示例
router bgp 65001
redistribute isis level-2 metric 200 route-map RM-ISIS2BGP
! 只引入指定网段,避免把全部明细灌进来
route-map RM-ISIS2BGP permit 10
match ip address prefix-list PL-CORE
set community 65001:100 additive
! 其余不匹配的路由在此被隐式拒绝
route-map RM-ISIS2BGP deny 100
! 核对引入结果
show ip bgp | include 10.10
show ip route isis | include 10.10引入设计要点
| 要点 | 做法 | 原因 |
|---|---|---|
| 层级选择 | 明确写 level-1 或 level-2 | 不写可能引入范围与预期不符 |
| 种子度量 | 按度量口径取合理值 | 超范围会被拒绝或结果异常 |
| 过滤 | prefix-list 限定网段 | 防止明细路由全量注入 |
| 打标 | set community 便于上游识别 | 后续策略可按来源操作 |
| 环路防护 | 对端已发布的路由不再引回 | 避免引入回路造成震荡 |
引入后 BGP 表里出现的路由下一跳通常仍指向原 IGP 的下一跳;若上游依赖下一跳可达性,需要确认 next-hop-self 或重定向策略是否到位。
先在小范围 prefix-list 上验证,再逐步放开范围;一次性引入全量明细往往在业务高峰期引发邻居震荡。