简介
本文档介绍思科快速转发(CEF)。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
概述
思科快速转发(CEF)交换是一种专有的可扩展交换形式,旨在解决与需求缓存相关的问题。CEF是内置于Cisco IOS中的高级第3层IP交换架构,取代了旧的路由缓存模型。它维护自己的高度优化的转发表和独立的邻接表,从而能够以最少的CPU占用实现线速数据包转发。每当数据包到达路由器或交换机时,设备必须决定将其转发到何处。一旦确认数据包的有效性,且数据包已通过任何访问控制列表或其他丢弃条件,设备将查询其路由表以确定最佳出站接口。Cisco路由器和交换机可通过三种方式执行此查找:进程交换、快速交换或思科快速转发。
使用CEF,设备会主动计算所有路由并将其安装到两个优化数据结构中,即转发信息库(FIB)和邻接表,而不是等待每个数据包触发查找。在现代平台上,这些表与硬件转发平面同步,从而降低每数据包CPU开销、提高每秒数据包吞吐量和一致的转发行为,这就是在现代Cisco平台上默认启用CEF并保持高性能IP网络基础的原因。
CEF核心组件
- 转发信息库(FIB)表 — CEF使用FIB做出基于IP目标前缀的决策,换句话说,FIB是CEF的覆盖对象。FIB是路由器IP路由信息库(RIB)的一对一镜像,但进行了重组,以便在硬件中尽可能快地查找前缀。每当IP路由表发生更改时(由于路由协议更新、静态路由更改等),这些更改会立即反映在FIB中,以便转发始终使用最新的拓扑信息。每个FIB条目包含一个目的地前缀和一个或多个下一跳指针;配置ECMP(等价多路径)时,FIB为每个前缀保留多个指针,以支持每个数据包或每个目标的负载均衡。通过包含所有已知路由(而不仅仅是最近使用的路由的需求缓存),FIB消除了路由缓存维护的需要,并防止了拓扑变化期间的缓存崩溃,从而提供稳定、可预测的转发性能。
CEF操作模式
CEF基本数据包流
下面的步骤列表介绍了数据包如何进行CEF交换:
- 设备的接口处理器从网络介质读取数据包,并将其存储在缓冲区内存中,称为接口的接收(RX)环。
- 设备的接口处理器向主处理器发送接收中断。此中断期间会发生其余的交换。
- 设备使用目标IP地址作为搜索关键字,对FIB中的目标执行最长匹配查找。如果FIB查找失败,则丢弃数据包。如果查找成功,则选择FIB路径,设备使用其指向相应邻接条目的指针。
- 设备使用来自邻接表的封装字符串重写第2层报头,并将数据包放入正确的输出队列,以便在出站接口上传输。
- 成功交换的数据包随后在出站接口的传输(TX)环上排队。
相关信息