CEF
(Cisco Express Forwarding,Cisco特快交换)技术是思科公司推出的一种全新的路由交换方案,它具有良好的交换性能,增强的交换体系结构和极高的包转发速率。
传统路由器的基本作用是路由计算和包转发,通常基于共享存储器体系结构,采用集中式CPU,即单个CPU(或多个CPU,联结成路由器簇)控制共享总线,连接到多个接口卡上,接口卡包含简单的队列等结构,与CPU通信,通过共享总线实现数据包转发。随着Internet的快速发展和大量新的服务需求的不断出现,对网络的路由和交换性能提出了更高的要求,要同时提高包转发速率和系统的性能,必须对传统路由器与交换设备的设计体系结构进行改进,并加入一些新的设计方案以完善系统性能。采用CEF技术的GSR1200系列千兆交换路由器,在体系结构,路由方式和接口卡性能等方面都有质的改变,特别适用于大业务量的ISP网络的核心层,同时也广泛应用于高速企业网的主干。本文将对CEF特快交换技术作一介绍和分析。
CEF转发过程
CEF的两个表:
3层包从TCAM开始查找;进行最长匹配,得到邻居信息,改写原有二层数据帧(下一跳MAC地址)并转发。
CEF表是从路由表得来,邻居表是使用ARP解析得来的。
CEF多层交换的过程:
左侧MAC-M(MAC地址)是SW。右侧的MAC-M是SW。
如果目的IP地址的MAC不在邻居表内,则SW将使用ARP进行解析,以得到目的地址的MAC地址。
ARP Throttling(ARP抑制):在未获得目的MAC地址并且进行ARP解析时,除非ARP解析完成并且在邻居表体现出来外,在解析期间,所有发往目的主机的包,将被丢弃,这就是ARP抑制。
FIB最多支持6个到达同一目的的邻居条目。
CEF模式
CEF的操作模式有2种,即集中CEF模式和分散CEF模式。
可以通过其中的任意一种来启用CEF,同一时刻用户只能使用其一种模式。
集中CEF模式 当启用集中CEF模式时,CEF的FIB和邻接表驻留在路由处理器中,路由处理器来执行快速转发。对于CEF交换来说,当线路卡不可用时,或者需要使用的功能与分散CEF交换不兼容时,就可以使用集中CEF模式。
分布CEF模式当启用分布式CEF(dCEF)时,线路卡(例如VIP线路卡或者GSR线路卡)维护着一个与FIB和邻接表相同的拷贝。线路卡在端口适配器之间执行快速转发,这样,在进行交换操作时就无须RSP的参与了。dCEF使用一个“内部过程通信”(Inter ProcessCommunication,IPC)机制,在路由处理模块和线路卡上,保证FIB和邻接表的同步。
在Cisco12000系列路由器中,线路卡负责执行CEF交换。在其他路由器中,或许您使用的不是同一种类型的线路卡,有可能某个接口卡不支持CEF交换。
当某个不支持CEF交换的线路卡收到数据包时,她将数据包转发给更高的交换层(比如路由处理模块)或者把数据包转发给下一跳处理。这种机制允许旧的接口模块和新的接口模块并存。
1.Cisco12000系列千兆交换路由器上只运行dCEF模式。
2.一个VIP卡上不允许同时运行分布式CEF交换和分布式快速交换。
3.Cisco7200系列路由器不支持分布式CEF交换。
CEF特快交换
快速交换的高速缓存机制在Internet之类的高速动态路由选择环境(经常存在网络拓扑变化,路由改变、路由震荡等)中不能很好地伸缩,路由的改变导致高速缓存无效,而重建高速缓存(即执行“过程交换”的过程)在计算上开销很大;同时,随着互联网及其业务的迅猛发展,基于WEB的各种应用和交互式业务使得通信次数多而通信时间短的实时数据流大量增加,快速交换的高速缓存内容处于不断变化之中,重建高速缓存的负担加大,从而导致路由器性能的降低。CEF特快交换技术正是针对上述不足而设计提出
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操作模式
CEF有两种模式:集中式和分布式。集中式允许一个路由处理模块运行特快交换,即FIB和邻接表驻留在路由处理模块中,当线路卡不可用或不具备分散CEF交换的功能时,就可使用集中CEF交换模式。 分布式(一般记作dCEF)允许路由器的多个线路卡(VIP)分别运行特快交换功能,前提是线路是VIP线路卡或GSR线路卡。中央路由处理器完成系统管理/路由选择和转发表计算等功能,并把CEF表分布到单个线路卡;每个线路卡维护着一个FIB和邻接表的相同的拷贝。线路卡在端口适配器之间执行快速转发,这样,交换操作就无需路由交换模块的参与了。DCEF采用一种“内部过程通信”机制来保证路由处理器和接口卡之间FIB和邻接表的同步。
----------------------------------------------------------------------------------------------------------------
Cisco 12000系列路由器只运行dCEF模式,由线路卡执行交换功能。在其它路由器中,可以在同一个路由器中混合使用各种类型的接口卡,如果一个不支持CEF的接口卡收到数据包后,将把数据包转发到路由处理器来进行处理,或把该数据包转发到下一个网络段处理。 CEF在路由器上是全局激活的,但可在每个接口(或VIP的底板)上启用/禁用CEF;CEF和快速交换模式也可同时运行,但不推荐这样使用,因为会占用大量的系统维护资源。
CEF与快速交换的比较
与快速交换相似,CEF也使用自己建立的数据结构(而不是路由表)来执行交换操作。快速交换通过生成并查找路由高速缓存交换数据包,该路由高速缓存交换数据包,该路收高速缓存的条目(包括目的IP地址,输出接口,MAC地址头信息等)是在第一个数据包到来时,对整个路由表执行最长匹配查找算法获得下一跳IP地址,然后查找ARP缓存获得第二层的MAC地址信息,并写入路由高速缓存,之后的数据包则根据已经生成的高速缓存的条目直接重写MAC头信息完成交换操作。 CEF通过FIB和邻接表对数据包进行交换,但FIB和邻接表是在数据包到来以前,由CPU根据路由表生成并定时更新的,因此到达路由器的第一个数据包也无须执行查找路由表的过程,直接由FIB和邻接表获得新的MAC头信和卢,就可进行交换了,对于拥有大容量路由表的路由器来说,这种预先建立交换查找条目的方式能够有效地提高交换性能。
基于CEF的负载平衡的实现
当到达某一目的IP地址存在多条路径时,每条路径都有一个反映其代价的metric值,路由协议通过计算获得到达目的地址的具有最短metric值的路径,数据包通过该路径到达目的地址。负载平衡的目的则是要把流量分配到多条路径中,这样可优化资源的使用。CEF特快交换支持两种类型的负载平衡---按目的地配置的负载平衡和按数据包配置的负载平衡。
------------按目的地配置负载平衡
基本原理是:对于给定的一对源/目的IP地下,即使有多个路径可用,也可保证数据包采用同一路径;通往不同源/目的IP地址的数据流则倾向于采用不同的路径。通过采用按目的地负载平衡的方法,可以保证对某个源/目的IP地址对的数据包以一定的次序到达。当启用CEF时,按目的地配置的负载平衡被默认启用。
-------------按数据包配置负载平衡
基本原理是:采用轮转法确定各个数据包按哪条路径到达目的地。这种负载平衡方法可使路由器在路径上连续发送数据包,即保证路径的使用状况比较好,但针对一个源/目的IP地址对的数据包可能会采用不同的路径,从而导致目的端对数据包的重新排序。这种类型的负载平衡对某些类型的数据流传送不是很合适(如VoIP数据流)。当然,若在某一源/目的IP地址对之间有大量的数据流,通过并行链路传送,如果按目的地负载平衡方式,将会使某条链路负担过重,而其他链路上的数据流很少,此时采用按数据包的负载平衡是合理的。
小结
CEF是专门为高性能、高伸缩性的IP骨干网络设计的一种高速交换方式。从上述介绍我们不难看出,在大规模的动态IP网络中,CEF能够提供前所未有的交换的一致性和稳定性。它能够有效弥补快速交换的高速缓存条目频繁失效的缺陷,采用dCEF分布式交换可使每个线路卡进行完全的交换,提供更优越的性能;CEF比快速交换的路由高速缓存占用内存要少,并能提供负载平衡,网络记账等功能。借助CEF特快交换技术和其它一些革命性的创新技术,Cisco的GSR路由器在全球取得了巨大的成功,在中国互联网基础设施建设中发挥着极其重要的作用。