RIB (route information base) 和 FIB (forwarding information base),又称Ip路由表 和 CEF表,它们之间的关系可以用下面这张图片来高度概括。

本质上,RIB(route information base) 是由节点上各种路由过程通过路由协议(例如OSPF,IS-IS,BGP,甚至是静态路由条目)提供的信息来构建的。从RIB中的所有路由中选出最佳路由后,将它们复制到FIB。因此,RIB包含节点愿意保留的所有路由以及路由协议正在使用的信息,硬件使用FIB来指导转发,物理上将数据包从移入和移出接口。

RIB维护每种协议的网络拓扑和路由表。这将包括许多到达相同目的地前缀的路由。

FIB是从下推的RIB中可能的许多协议到快速转发查找内存的最佳路径的最佳路由。

下面详细展开:

1. 路由器具有学习到达各个Ip前缀的最佳路径的多种方法:它们可以通过直连路由配置静态路由或者通过动态路由协议学习

每个动态路由协议(包括RIP)都有自己内部的数据结构集,称为OSPF / IS-IS数据库,EIGRP拓扑表或BGP表。路由协议基于与其邻居交换的路由协议来更新其数据结构,最终收集所有相关信息。在本文中,我们将处理通过OSPF学习的10.0.1.1/32和通过BGP学习的10.0.11.11/32,因此,让我们检查相关的OSPF / BGP数据结构。

RR#show ip bgp | begin NetworkNetwork          Next Hop            Metric LocPrf Weight Path
r>i10.0.1.1/32      10.0.1.1                 0    100      0 i
r>i10.0.1.2/32      10.0.1.2                 0    100      0 i
*>i10.0.11.11/32    10.0.1.1                 0    100      0 i

RR#show ip ospf database router 10.0.1.1OSPF Router with ID (10.0.1.5) (Process ID 1)Router Link States (Area 0)LS age: 1612Options: (No TOS-capability, DC)LS Type: Router LinksLink State ID: 10.0.1.1Advertising Router: 10.0.1.1LS Seq Number: 80000003Checksum: 0xC764Length: 60Number of Links: 3Link connected to: a Stub Network(Link ID) Network/subnet number: 10.0.1.1(Link Data) Network Mask: 255.255.255.255Number of MTID metrics: 0TOS 0 Metrics: 1Link connected to: another Router (point-to-point)(Link ID) Neighboring Router ID: 10.0.1.6(Link Data) Router Interface address: 10.0.7.9Number of MTID metrics: 0TOS 0 Metrics: 64Link connected to: a Stub Network(Link ID) Network/subnet number: 10.0.7.8(Link Data) Network Mask: 255.255.255.252Number of MTID metrics: 0TOS 0 Metrics: 64

2. 每个路由协议都运行自己的路由选择算法(如果是OSPF或IS-IS,则为SPF算法;如果是BGP,则为相当复杂的规则集),通过路由协议和下一跳Ip信息获得可到达的IP前缀集。可以使用针对特定协议的show命令查看这些路由选择算法的结果(例如,用于BGP的show ip bgp 前缀和用于OSPF的show ip ospf rib 前缀)

BGP routing table entry for 10.0.11.11/32, version 6
Paths: (1 available, best #1, table default)Not advertised to any peerLocal10.0.1.1 (metric 66) from 10.0.1.1 (10.0.1.1)Origin IGP, metric 0, localpref 100, valid, internal, best
RR#show ip ospf rib 10.0.1.1OSPF Router with ID (10.0.1.5) (Process ID 1)OSPF local RIB
Codes: * - Best, > - Installed in global RIB*>  10.0.1.1/32, Intra, cost 66, area 0SPF Instance 2, age 00:48:15Flags: RIB, HiPriovia 10.0.2.1, FastEthernet0/0, flags: RIBLSA: 1/10.0.1.1/10.0.1.1

3. BGP和OSPF都将IP下一跳与IP前缀相关联,但是BGP仅使用附加到BGP路由的next-hop属性的值,而OSPF使用SPF算法计算下一跳OSPF路由器的IP地址。
路由内协议路由选择的结果基于管理距离插入到IP路由表(RIB)中(如果两个路由协议具有相同的AD,则会产生有趣的结果)。

BGP有一个特殊的show命令,可以显示RIB故障。在本文的方案中,通过OSPF和BGP分别匹配到10.0.1.1/32前缀,将优先选择OSPF路由,因为OSPF的AD值比BGP路由低。

RR#show ip bgp rib-failure
Network      Next Hop    RIB-failure            RIB-NH Matches
10.0.1.1/32  10.0.1.1    Higher admin distance  n/a
10.0.1.2/32  10.0.1.2    Higher admin distance  n/a

4. 理想情况下,我们将使用RIB转发IP数据包,但是实际上,我们并没有这样做,因为其中某些条目(静态路由和BGP路由)可能具有未直接连接的下一跳。

将IP路由表(RIB)中的IBGP与OSPF路由进行比较:

RR#show ip route 10.0.11.11
Routing entry for 10.0.11.11/32Known via "bgp 65000", distance 200, metric 0, type internalLast update from 10.0.1.1 00:00:55 agoRouting Descriptor Blocks:* 10.0.1.1, from 10.0.1.1, 00:00:55 agoRoute metric is 0, traffic share count is 1AS Hops 0MPLS label: none

RR#show ip route 10.0.1.1
Routing entry for 10.0.1.1/32Known via "ospf 1", distance 110, metric 66, type intra areaLast update from 10.0.2.1 on FastEthernet0/0, 00:33:47 agoRouting Descriptor Blocks:* 10.0.2.1, from 10.0.1.1, 00:33:47 ago, via FastEthernet0/0Route metric is 66, traffic share count is 1

5. OSPF路由具有传出接口;它是由SPF算法计算得出的,并已在IP路由表中传输。BGP路由没有出接口,下一跳没有直接连接;路由器必须执行递归查找以找到传出接口(递归查找还用于通过环回接口实现EBGP负载平衡)。

早期的IOS版本对发送到新目的地的第一个数据包执行递归查找(过程切换),并为后续数据包缓存结果(快速切换)。快速交换在早期Internet(几乎没有全局IP前缀)中运行良好,但是随着Internet的发展和DoS攻击变得普遍,核心路由器经常遭受缓存破坏。大量的数据包正在进行过程交换,从而导致很高的CPU利用率和偶尔的路由器崩溃。现在是时候从缓存辅助转发转向确定性转发了。

引入了转发信息库(FIB)和Cisco快速转发(CEF)交换,以使第3层交换具有确定性。将IP路由从RIB复制到FIB时,将解析其下一跳,并在下一跳解析导致到达同一目标的多个路径时计算出站接口并创建多个条目。例如,将来自上一个打印输出的BGP路由插入到FIB中时,其下一跳将更改为指向实际的下一跳路由器。保留有关递归下一跳的信息,因为如果通往BGP下一跳的路径发生更改,它允许路由器更新FIB(CEF表)而无需重新扫描和重新计算整个RIB。

RR#show ip cef 10.0.11.11 detail
10.0.11.11/32, epoch 0, flags rib only nolabel, rib defined all labelsrecursive via 10.0.1.1nexthop 10.0.2.1 FastEthernet0/0 label 19

因此,经过全面评估的FIB(CEF表)可直接用于第3层交换。

FIB表与RIB表的区别与联系相关推荐

  1. RIB表与FIB表、ARP表与FDB表

    1.RIB与FIB的区别: RIB:路由表 FIB:转发信息表 FIB表更多是出现在需要快速转发的路由器上,这种路由器上的路由表条目通常都达成千上万条,如果按照传统的检索路由表进行转发的方式,其转发效 ...

  2. 路由表(RIB表、FIB表)、ARP表、MAC表整理

    在一些常见的网络设备中(如交换机.路由器),为了实现网络转发功能,各自通过维护一些表项来完成路由寻址及快速转发功能,其中比较重要的表项有: 路由表 转发表 Mac表 ARP表 本文对这网络中的最关键的 ...

  3. mysql表分区和表空间_mysql分表和分区的区别浅析

    一.什么是mysql分表和分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上 二.my ...

  4. hive内部表与外部表区别

    1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表的区别是什么? 4.删除表的时候,内部表与外部表有什么区别? 5.load data local in ...

  5. 如何分表分库 Mycat 与shadingjdbc 区别? Mycat 是基于服务器端的形式实现数据库代理 基于服务器端的形式 改写sql语句 shadingjdbc 基于客户端 改写sql语

    如何分表分库 Mycat 与shadingjdbc 区别? Mycat 是基于服务器端的形式实现数据库代理 基于服务器端的形式 改写sql语句 shadingjdbc 基于客户端 改写sql语句的形式 ...

  6. Mysql清空表(truncate)与删除表中数据(delete)的区别

    2019独角兽企业重金招聘Python工程师标准>>> 为某基于wordpress搭建的博客长久未除草,某天升级的时候发现已经被插入了几万条垃圾留言,如果一条条删除那可真是累人的活. ...

  7. mysql myisam 支持事务吗_第三章(附)mysql表类型MyISAM和InnoDB区别(决定了是否支持事务)...

    mysql表类型MyISAM和InnoDB区别 MyISAM:这个是默认类型,它是基于传统的ISAM类型,ISAM是Indexed Sequential Access Method (有索引的顺序访问 ...

  8. Hive内部表与外部表区别详细介绍

    文章转载自:http://www.aboutyun.com/thread-7458-1-1.html 1.创建内部表与外部表的区别是什么? 2.external关键字的作用是什么? 3.外部表与内部表 ...

  9. mysql某个表被行锁了_MySQL 行锁和表锁的含义及区别详解

    一.前言 对于行锁和表锁的含义区别,在面试中应该是高频出现的,我们应该对MySQL中的锁有一个系统的认识,更详细的需要自行查阅资料,本篇为概括性的总结回答. MySQL常用引擎有MyISAM和Inno ...

最新文章

  1. 听研二师兄师姐报告收获
  2. linux——文件权限的更改与管理
  3. 我的第一个微信好友分析
  4. 深度学习Caffe实战笔记(19)Windows平台 Faster-RCNN 制作自己的数据集
  5. 免费体验|教你用Python掌握企业级产品开发规范要求的能力!
  6. PAT:1042. Shuffling Machine (20) AC
  7. 斜率优化Convex Hull Trick
  8. 8数据提供什么掩膜产品_工业轨式1-8路RS485数据(MODBUS RTU协议)厂家产品说明...
  9. c语言程序设计指针教学,C语言程序设计中指针教学要点分析
  10. python3简单代码_python3实现简单汉诺塔的代码教程
  11. php中的字符串常用函数(四) ord() 获得字符的ascii码 chr()获取ascii码对应的字符...
  12. 嵌入式操作系统内核原理和开发(地址空间)
  13. composer全局 linux_Linux下全局安装composer方法
  14. Struts1.x系列教程(19):LookupDispatchAction类处理一个form多个submit
  15. Unity PlayerPrefs 游戏存档
  16. 全球 40 位 40 岁以下的富豪
  17. Spring Boot做国际化
  18. CTF-网络信息安全攻防学习平台(脚本关)
  19. 合天网安实验室CTF-解密200-找茬游戏
  20. 中国云计算产业渐成熟 加速传统产业转型升级

热门文章

  1. 我们从来没有开始过,却已经结束。
  2. android fm 耳机,为什么现在安卓手机都没有FM功能了?其实都冤枉厂商了
  3. [Luogu 3674] 小清新人渣的本愿
  4. 2022强网拟态pwn-store
  5. NEFU-大二大三训练赛17D-泡泡堂
  6. JavaWeb的基础知识点
  7. uefi下的开机顺序_怎么设置uefi启动顺序
  8. postgresql报错prepared statement ““S_84““ does not exist
  9. 纯真的年代 暖暖的亲情——我眼中的彼得(电影《纳尼亚传奇》观后感)
  10. 剑指offer:菲波那切数列