CEF采用一个4级每级256条通道结构的转发表来指明转发条目的位置,转发表有next hop等信息,涵盖了整个IPv4的地址范围,并有指针指向另一个邻接表。转发条目(MAC地址之类)都存储在一个单独的邻接表上。这两个表包括了所有的转发信息,而这些转发信息是根据路由表和ARP来构造的。
CEF简化了查询的步骤,提高了单位时间的工作效率。而且从整体上来看,路由信息和转发信息是分离的,数据包的转发只根据转发信息而不用参照路由信息,可以充分利用专用硬件的功能来达到线速转发,而不受路由变化或者其他因素的干扰,保证了转发的高速高效。
CEF转发提供3张表
1>FIB:从路由选择表中拷贝过来的转发信息,包括路由选择表中用于转发路由分组所必须的最少信息。
2>邻接表:维护一个邻接节点以及他们相关的2层MAC重写或吓一跳信息数据库
3>NetFlow Table:用于统计网络数据等
需要指出的是,CEF的转发信息不是存储在cache里的,因此也不存在过期作废或定时刷新,只有根据路由表的变化而进行的更改,通常很稳定。而且转发信息是从路由信息经过一定处理后转换过来的,也就是说,如果在转发信息里找不到某个数据包的转发信息,那么也不用费心到路由那里去了,因为那里肯定也没有。这个数据包的下场不是被扔掉就是转到其他转发线程中去,转发信息等于是路由信息针对于硬件转发的一个变形。
这样的结构布局保证了路由功能和交换功能的分离(软件上)。路由功能只处理三层以上信息,如路由信息处理、策略等,然后形成一个路由表,再根据这个路由表生成相应的转发信息。转发功能很明确,就是根据这些转发信息来工作,没有相关信息就拒绝。而不象MLS那样,遇到不认识的还得回头找路由问明白,那样降低了转发效率。 CEF在软件形式上实现了路由和交换功能的分离,而并不意味着路由器物理结构上的分离,所以它也可以在一些多层交换机和低端的路由器上实施。
它的高速表现在以下两个方面:
1>在查询方式上简化了步骤,提高了速度;
2>在分离了路由和转发功能。
支持CEF的硬件平台
Cisco首先在高端路由器平台实现CEF,此后,Catalyst交换机也支持CEF的转发,但是还存在一些差别,但均提供如下特性:
1. 基于“最长地址匹配”查找的高速转发
2. 等价路径的负载均衡
3. 逆向路径转发检查(RPF)
4. 不详路由的无效
有些CEF特性仅在路由器上实现
1. 关闭基于CEF的转发能力
2. 每个前缀和每个前缀长度的CEF统计
3. 从负载共享路径统计数据
4. 基于每个分组的负载均衡
当您在网络中使用CEF时,请先考虑以下项目:
加载当前完整的Internet路由信息的平台所需的最小内存(推荐):
- 集中路由模块上需要128MB
- 每个线路卡上需要64MB
CEF不能在一个线路卡上和VIP-分布式快速交换同时运行。
缺省情况下,如果Cisco IOS软件在交换数据报时遇到CEF不支持的功能和封装类型,它将采用其他交换方法(如最优交换、快速交换、过程交换)。
当前CEF不支持以下功能:
- 策略路由
- 网络地址翻译(NAT)
- 路由交换模块上的访问控制列表
- 多点PPP封装
- SMDS
- 令牌环
- ATM
- ISL封装
以下平台支持CEF功能:
Cisco7000系列路由器(需要装备RSP7000)
Cisco7200系列
Cisco7500系列
Cisco12000系列
<