CEF(Cisco Express Forwarding,Cisco特快交换)技术是思科公司推出的一种路由交换方案,它拥有非常良好的交换性能,增强的交换体系结构和极高的包转发速率。
传统路由器的基本作用是路由计算和包转发,通常基于共享存储器体系结构,采用集中式CPU,即单个CPU(或多个CPU,联结成路由器簇)控制共享总线,连接多个接口卡上,接口卡包含简单的队列等结构,与CPU通信,通过共享总线实现数据包转发。
随着Internet的快速发展和大量新的服务需求的不断出现,对网络的路由和交换性能提出了更高的要求,要同时提高包转发速率和系统的性能,必须对传统路由器与交换设备的设计体系结构进行改进,并加入一些新的设计的具体方案以完善系统性能。
采用CEF技术的交换路由器,在体系结构,路由方式和接口卡性能等方面都有质的改变,特别适用于大业务量的ISP网络的核心层,同时也大范围的应用于高速企业网的主干。
CEF有两种模式
(1)集中式:
允许一个路由处理模块运行特快交换,即FIB和邻接表驻留在路由处理模块中,当线路卡不可用或不具备分散CEF交换的功能时,就可使用集中CEF交换模式。
(2)分布式:
(一般记作dCEF)允许路由器的多个线路卡(VIP)分别运行特快交换功能,前提是线路是VIP线路卡或GSR线路卡。中央路由处理器完成系统管理/路由选择和转发表计算等功能,并把CEF表分布到单个线路卡;每个线路卡维护着一个FIB和邻接表的相同的拷贝。
线路卡在端口适配器之间执行快速转发,这样,交换操作就无需路由交换模块的参与了。DCEF采用一种“内部过程通信”机制来保证路由处理器和接口卡之间FIB和邻接表的同步。
交换算法
过程交换
最初的Cisco路由器采用集中式CPU包交换,所有的包通过共享总线传到CPU,经路由表查找,CRC重算,再通过共享总线把包传到适当的线路卡上。
快速交换
到达某特定目的地址的IP包通常会引起数据包流,即假设交换过到特定目标的包之后,另一个很可能不久也会到达。
通过构建交换目标的高速缓存,能够大大减少包在全路由表中查找同一标的次数,这种“一次路由,然后交换”的方式称为快速交换,快速交换大幅度的提升了路由器的包转发速率,因而成为Cisco路由器平台上缺省的交换机制。
但有一点必须要格外注意,IP路由表的改变会使得高速缓存无效,在路由状况不断变化的环境中,路由高速缓存的优势将受到很大限制。
自治交换
自治交换的特点是从CPU中卸载了一些交换功能。在效果上,将路由高速缓存功能从CPU移到辅助交换处理器上,线路卡上的接收包先在交换处理器中完成本地路由高速缓存目标的查找,若查找失败时才中断CPU执行路由表查找。
在此,Cisco将周期性计算路由的CPU改名为路由处理器,把辅助交换处理器改名为交换处理器。Cisco 7000系列的路由器上执行自治交换,可使吞吐量等性能进一步提升。
分布式交换
随着VIP(Versatile Interface Processor,通用接口处理器)卡引入,路由器的交换体系逐渐向对等多处理器结构发展。
每个VIP卡都包含RISC处理器,维护最新的由路由交换处理器产生的快速交换高速缓存的拷贝,并能独立实现路由交换的功能,高速完成两种类型的交换——本地VIP的交换和VIP之间的交换。
特快交换
如前所述,快速交换的高速缓存机制在Internet之类的高速动态路由选择环境(经常存在网络拓扑变化,路由改变、路由震荡等)中不能很好地伸缩,路由的改变导致高速缓存无效,而重建高速缓存(即执行“过程交换”的过程)在计算上开销很大;
同时,随着互联网及其业务的迅猛发展,基于WEB的各种应用和交互式业务使得通信次数多而通信时间短的实时数据流大量增加,快速交换的高速缓存内容处于不断变化之中,重建高速缓存的负担加大,从而导致路由器性能的降低。CEF特快交换技术正是针对上述不足而设计提出的。
CEF是一种高级的第三层交换技术,它主要是为高性能、高伸缩性的第三层IP骨干网交换设计的。
为优化包转发的路由查找机制,CEF定义了两个主要部件:转发信息库(Forwarding Information base)和邻接表(Adjacency Table)。
转发信息库(FIB)是路由器决定目标交换的查找表,FIB的条目与IP路由表条目之间有一一对应的关系,即FIB是IP路由表中包含的路由信息的一个镜像。
由于FIB包含了所有必需的路由信息,因此就不用再维护路由高速缓存了。当网络拓扑或路由发生明显的变化时,IP路由表被更新,FIB的内容随之发生变化。
CEF利用邻接表提供数据包的MAC层重写所需的信息。FIB中的每一项都指向邻接表里的某个下一跳中继段。若相邻节点间能通过数据链路层实现相互转发,则这些节点被列入邻接表中。
系统一旦发现邻接关系,就将其写到邻接表中,邻接序列随时都在生成,每次生成一个邻接条目,就会为那个邻接节点预先计算一个链路层头标信息,并把这个链路层头标信息存储在邻接表中,当决定路由时,它就指向下一网络段及相应的邻接条目。
随后在对数据包进行CEF交换时,用它来进行封装。欲查看邻接表的有关信息,能够正常的使用Cisco IOS的命令:show adjacency/show adjacency detail。
当我们查看邻接表信息时,会发现有以下两种主要邻接类型:Host adjacency和Point to Point。
Host adjacency类型通常的显示是一个IP地址,它表示邻接的下一跳IP地址;Point to Point类型的显示是“point 2point”,表示这是一条点对点电路。
此外还有别的一些特殊类型,如Null adjacency、Glean adjacency等。
CEF是专门为高性能、高伸缩性的IP骨干网络设计的一种高速交换方式。从上述介绍我们不难看出,在大规模的动态IP网络中,CEF能够提供前所未有的交换的一致性和稳定性。
它能够有效弥补快速交换的高速缓存条目频繁失效的缺陷,采用dCEF分布式交换可使每个线路卡进行完全的交换,提供更优越的性能;
CEF比快速交换的路由高速缓存占用内存要少,并能提供负载平衡,网络记账等功能。借助CEF特快交换技术和其它一些革命性的创新技术,Cisco的GSR路由器在全球取得了巨大的成功。
技术改变生活,网工学习生涯永无止境,希望本文对大家起到一定的帮助~