首页/网络/BGP 与广域网速查/路由缺失分析:从 RIB 到 FIB 逐层核对
广域网排障60 条

路由缺失分析:从 RIB 到 FIB 逐层核对

一条路由收不到或不生效按层查:邻居是否收到(Adj-RIB-In)、策略是否过滤、是否被选为最优、是否装入转发表。

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

从 RIB 到 FIB 逐层核对

一条路由收不到或不生效,按层查最快:对端是否真的通告(Adj-RIB-In)、本地入方向策略是否拦下、选路是否败给其它路径、最终是否装入转发表。顺着这条链走,比翻全表或重启会话有效得多,每一步也都能留下可验证的证据。

基本信息

第一层Adj-RIB-In:对端是否真的通告了该前缀
第二层入方向策略是否把它过滤掉
第三层选路是否被更优路径击败
第四层是否装入 FIB、下一跳是否可达
取证原则每层都要有证据,不要靠推测跳层

典型使用场景

  • 业务不通,怀疑某网段没学到:逐层核对收到、过滤、选路与装载
  • 扩容或割接后路由缺失:区分是对端收敛慢还是本地策略拦截
  • 策略审计:把每一层的过滤条件写清楚,便于定位
  • 与运营商对账:先确认对端通告内容,再讨论本地处理
  • 故障复盘:固化分层排查动作,缩短下次定位时间

逐层命令

逐层命令
# Cisco
show ip bgp neighbors 203.0.113.2 received-routes | include 10.2.2.0  # 收到了吗
show ip bgp 10.2.2.0                        # 进了 BGP 表吗,为什么没被选上
show ip route 10.2.2.0                      # 进 FIB 了吗
# 华为
display bgp routing-table 10.2.2.0 24
display ip routing-table 10.2.2.0

逐层判断

层命令缺失说明
收到received-routes对端未通告或会话未完成同步
过滤入方向策略检查被前缀列表或 route-map 拦下
选路show ip bgp <前缀>存在更优路径或下一跳不可达
装载show ip route未装入转发表或递归解析失败
received-routes 需要本端具备软重配置或对端支持路由刷新,条件不具备时命令可能不可用;不能把它作为对端没发的证据。
BGP 表项上的状态标记能直接说明问题:带下一跳不可达标记的路由不会被安装进转发表,属于选路之后的问题。
分层取证的价值在于把「谁的责任」变成可验证的事实:对端是否发出可由收到的集合证明,本地是否过滤可由策略与表项比对。

易错点

  • 直接翻全表找前缀:按收到、过滤、选路、装载四层定点查更快
  • received-routes 报错就认定对端没发:该命令需要软重配置或对端支持刷新
  • 只查 BGP 表不看 FIB:路由在 BGP 表中却没装入转发表的情况很常见
  • 忽略入方向策略的叠加:多个过滤器并列生效,只看其中一个容易误判

数据来源与参考

  • Cisco: BGP 路由查看
  • RFC 4271: 路由决策
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌