亲,当你听到CEF是否感觉很神秘?不用担心,本篇笔者将和您一同穿越到CISCO三层交换机,一同探讨CEF

一、传统的三层交换机工作模式

1.传统三层交换机处理包模式

    三层交换机作为一种融合了路由功能与交换功能与一身的机器。如果数据包想要发送到外网,当数据包到达交换机时,交换机先将数据包进行路由判断,根据路由表决定转发到相应的地址。之后,三层交换机还有查找ARP表格,如果没有相应的MAC地址信息,需要询问获得,最终根据ARP中的MAC地址信息,将数据包转发到相应的地址。

2.传统三层交换机存在的问题

   1)、转发数据包速率问题

    由于需要依靠两张表格,所以延迟比较大,如果是在对数据量要求很大的网络中,传统的数据包转发模式就显得捉襟见肘了。尤其是,中心骨干网络对设备数据的吞吐量要求很高,这样传统的数据包转发模式就显得格格不入。

   (2)、ARP***问题

    众所周知,ARP***一直是让网络管理员头疼的一个问题。尽管使用了划分vlan、地址绑定、采取专业验证服务器等方法,仍不能有效的抑制ARP数据包的数量。而传统的交换机面对ARP***也不能有效的抑制ARP数据包的数量。

二、CEF工作模式

CEF作为CISCO推出的全新的路由交换方案,作为CISCO独家推出的技术,CEF独特的工作模式令人拍手称赞。

1.CEF交换机内部

    运行CEF的交换机,将交换机分成两部分:Control Plane、Data Plane两部分。在Control Plane中有路由表。路由表使用软件去创建FIB(转发信息库表格。在Data Plane中有FIB和Adjacency(邻居)表,它们使用硬件方式去工作。

2.CEF交换机工作方式

   FIB表格是通过路由表产生的,而邻居表是通过和邻居交换、高速缓存获得的。当运行CEF的交换机接收到数据包,不需要去查找路由表,而是去直接查找FIB表格,通过FIB表格比对(遵循深度匹配的模式),直接查找邻居表的相应地址信息,最后转发。

三、CEF特点

     运行CEF的交换机和传统的交换机相比,突出了很多优势和特点。主要体现在以下方面:

1.速度快、准确率高、效率高

由于使用了两张表格:FIB和邻居表,而且两张表格分别是从路由表和ARP缓存表格中衍生出来的,而且邻居表可以通过邻居学习。因此在一定程度上保证了CEF的准确性。

另外由于使用了硬件来运行与传统的软件方式比较,速度更快,而且稳定性更高。

2.CEF操作模式

运行CEF的交换机有两种操作模式:集中式和分布式。两种方式可以任意选择,但是在同一时刻只能使用一种操作模式。

  (1)、集中式

    集中式允许一个路由处理模块运行特快交换,即FIB和邻接表驻留在路由处理模块中,当线路卡不可用或不具备分散CEF交换的功能时,就可使用集中CEF交换模式。

  (2)、分布式

分布式(一般记作dCEF)允许路由器的多个线路卡(VIP)分别运行特快交换功能,前提是线路是VIP线路卡或GSR线路卡。中央路由处理器完成系统管理/路由选择和转发表计算等功能,并把CEF表分布到单个线路卡;每个线路卡维护着一个FIB和邻接表的相同的拷贝。线路卡在端口适配器之间执行快速转发,这样,交换操作就无需路由交换模块的参与了。DCEF采用一种内部过程通信机制来保证路由处理器和接口卡之间FIB和邻接表的同步。

 

3.ARP抑制

ARP抑制就是在未获得目的MAC地址并且进行ARP解析时,除非ARP解析完成并且在邻居表体现出来外,在解析期间,所有发往目的主机的包,将被丢弃。

而运行CEF的交换机由于采取了ARP抑制,因此在某种程度上凸显了优势。

4.负载均衡 

当到达某一目的IP地址存在多条路径时,每条路径都有一个反映其代价的metric值,路由协议通过计算获得到达目的地址的具有最短metric值的路径,数据包通过该路径到达目的地址。负载平衡的目的则是要把流量分配到多条路径中,这样可优化资源的使用。

CEF特快交换支持两种类型的负载平衡---按目的地配置的负载平衡和按数据包配置的负载平衡。 

  1)、按目的地配置负载平衡

基本原理是:对于给定的一对源/目的IP地下,即使有多个路径可用,也可保证数据包采用同一路径;通往不同源/目的IP地址的数据流则倾向于采用不同的路径。通过采用按目的地负载平衡的方法,可以保证对某个源/目的IP地址对的数据包以一定的次序到达。当启用CEF时,按目的地配置的负载平衡被默认启用。 

  2)、按数据包配置负载平衡

  基本原理是:采用轮转法确定各个数据包按哪条路径到达目的地。这种负载平衡方法可使路由器在路径上连续发送数据包,即保证路径的使用状况比较好,但针对一个源/目的IP地址对的数据包可能会采用不同的路径,从而导致目的端对数据包的重新排序。这种类型的负载平衡对某些类型的数据流传送不是很合适(如VoIP数据流)。当然,若在某一源/目的IP地址对之间有大量的数据流,通过并行链路传送,如果按目的地负载平衡方式,将会使某条链路负担过重,而其他链路上的数据流很少,此时采用按数据包的负载平衡是合理的。

四、CEF的配置

笔者声明,以下信息整理于互联网,请亲们注意尊重版权。

1.CEF基本操作

全局配置模式下利用下面的命令进行配置。
    启用标准CEF模式 ip cef switch
    禁用标准CEF模式 no ip cef switch
    在某个接口上禁用CEF,可以在接口配置模式no ip route-cache cef 
    尔后又想重新启用CEF,在接口配置模式下,可以使用: ip route-cache cef
    2.CEF负载均衡
    要启用基于数据包的负载均衡功能,可以在接口配置模式下,
    ip load-sharing per-packet

当启用基于数据包的负载均衡功能时,必须先禁用基于目的地的负载均衡功能。为了禁用基于目的地的负载均衡功能,可以在接口配置模式下,
      no ip load-sharing per-destination
     3.CEF配置网络记账功能
     启用收集被快速转发到某个目的地的数据包个数和字节数
     ip cef accounting per-prefix
     启用收集通过某个目的地被快速转发的数据包的个数
     ip cef accounting non-recursive
    在全局配置模式中为CEF启用网络记账功能后,相应的路由处理器会收集记账信息。当用户为dCEF启用网络记账功能后,线路卡上会收集记帐信息。
    查看网络记帐信息 show ip cef
    4.CEF检验
    Cisco7505#sh ip cef detail
IP CEF with switching (Table Version 5), flags=0x0
5 routes, 0 reresolve, 0 unresolved (0 old, 0 new), peak 0
5 leaves, 8 nodes, 9080 bytes, 10 inserts, 5 invalidations
0 load sharing elements, 0 bytes, 0 references
universal per-destination load sharing algorithm, id 9466A8C7
3(0) CEF resets, 0 revisions of existing leaves
Resolution Timer: Exponential (currently 1s, peak 1s)
0 in-place/0 aborted modifications
refcounts: 2311 leaf, 2304 node
Table epoch: 0 (5 entries at this epoch)
0.0.0.0/0, version 0, epoch 0, attached, default route handler
0 packets, 0 bytes
via 0.0.0.0, 0 dependencies
valid no route adjacency
0.0.0.0/32, version 1, epoch 0, receive
224.0.0.0/4, version 4, epoch 0
0 packets, 0 bytes
via 0.0.0.0, 0 dependencies
next hop 0.0.0.0
valid drop adjacency
224.0.0.0/24, version 3, epoch 0, receive
255.255.255.255/32, version 2, epoch 0, receive

    MSFC2#sh ip cef summary
IP CEF with switching (table Version 477965)
445 routes , 0 reresolve, 0 unresolved ( 0 old, 9 new)
446 leaves, 76 nodes, 132560 bytes, 477966 inserts,
477520 invalidations
0 load sharing elements , 0 bytes, 0 references
1CEF resets , 2 revisions of exsiting leaves
Refcounts: 15824 leaf, 15038 node
Default 192.35.86.0/24 

五、CEF的若干问题

   1.兼容性问题

    由于CEF是CISCO新开发的技术,因此所支持的平台至少是Cisco7000,所以为了能和老设备相兼容,所以会运行传统的工作模式,这样就降低了CEF交换机的性能。

   2.应用范围

    由于CEF要求的设备条件较高,再加上是cisco独有的技术。所以,CEF应用的范围并不广泛,一般只应用于对设备的数据包吞吐量要求特别高的网络。

   3.自身问题

    CEF所维护的两张表格,FIB表格和邻居表,是通过路由表和ARP表格衍生的。但是如果网络变化较为频繁,路由信息时常更新,ARP表项时常变动,所以,这样就将CEF的弱点凸显出来。

六、总结

    从宏观上分析,尽管CEF存在着一些问题,但是,CEF彰显出来了很多特点,这是传统的工作模式所不能比拟的。CEF对于构建特大型网络的中心区域起到中流砥柱的作用。