分布式CEF模式 当启用分布式CEF(dCEF)时,线路卡(例如VIP线路卡或者GSR线路卡)维护着一个与FIB和邻接表相同的拷贝。线路卡在端口适配器之间执行快速转发,这样,在进行交换操作时就无须RSP的参与了。dCEF使用一个“内部过程通信”(Inter Process Communication,IPC)机制,在路由处理模块和线路卡上,保证FIB和邻接表的同步。如图
在Cisco12000系列路由器中,线路卡负责执行CEF交换。在其他路由器中,或许您使用的不是同一种类型的线路卡,有可能某个接口卡不支持CEF交换。当某个不支持CEF交换的线路卡收到数据包时,她将数据包转发给更高的交换层(比如路由处理模块)或者把数据包转发给下一跳处理。这种机制允许旧的接口模块和新的接口模块并存。
1.Cisco12000系列千兆交换路由器上只运行dCEF模式。
2.一个VIP卡上不允许同时运行分布式CEF交换和分布式快速交换。
3.Cisco7200系列路由器不支持分布式CEF交换。 附加的新功能 在配置集中模式CEF和分布模式CEF时,您还可以配置以下功能:
1>分布式CEF支持访问控制列表
2>分布式CEF支持帧中继包
3>分布式CEF支持数据包分片
4>支持基于每一个包或者每一个目标的负载均衡
5>支持网络计费,可以收集数据包的个数和字节数
6>分布式CEF支持跨隧道的交换
CEF在路由器上是全局激活的,但可在每个接口(或VIP的底板)上启用/禁用CEF;CEF和快速交换模式也可同时运行,但不推荐这样使用,因为会占用大量的系统维护资源。 五、 支持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系列
第二代接口模块(VIP2-20、VIP2-40、VIP2-50)支持CEF。
在不同的路由器平台上,硬件对CEF的支持可能会有所不同,这要由路由器中安装的路由模块和其他硬件所决定。例如在Cisco12000系列路由器上,所有的线路卡都支持CEF交换;在Cisco7500系列路由器上,要实现CEF交换,需要有RSP模块和VIP线路卡的支持。每个接口卡用自己的引擎独立地运行CEF去转发数据包,并且都独自拥有一个对FIB表的拷贝。每个接口卡独立的去交换数据包,减轻了中心路由处理模块的负担。
六、CEF应用 1.启用或禁止CEF CEF:
如果用户的Cisco路由器中有接口处理器支持CEF时,就可以启用CEF。
为了启用或禁用CEF,可以在全局配置模式下利用下面的命令进行配置。
启用标准CEF模式 ip cef
禁用标准CEF模式 no ip cef 2.启用或禁止dCEF dCEF:
当线路卡执行快速转发时,则启用dCEF,这样,路由处理模块就可以处理路由协议或者负责交换从旧的接口模块(不支持CEF交换的模块)过来的数据包。 在Cisco12000系列路由器上,dCEF模式是缺省启用的。
所以启用dCEF的命令(ip cef switch)在Cisco12000系列路由器上是没有意义的,在配置清单上也不会列出dCEF模式被启用。
为了启用或禁止dCEF操作,可以在全局配置模式下利用下面的命令进行配置。
启用dCEF模式 ip cef distributed
禁用dCEF模式 no ip cef distributed ---- 当用户按全局模式启用CEF或dCEF时,所有支持CEF的接口都被默认地启用了。 3.在特定的接口上启用或禁止CEF/ dCEF
有时候,在某个接口配置了一项功能,而CEF或dCEF并不支持该功能,这时您就可能需要在这个特定的接口上禁止CEF或dCEF。例如,策略路由和CEF就不能一起使用。您可能想让一个接口支持策略路由,而让其他的接口支持CEF。在这种情况下,可以按全局模式启用CEF,而在那个打算配置策略路由的接口上禁用CEF。这样,除了那一个接口外,在其他所有接口上都启用了快速转发。
在某个接口上禁用CEF或dCEF,可以在接口配置模式: no ip route-cache cef
尔后又想重新启用CEF,在接口配置模式下,可以使用: ip route-cache cef
在Cisco12000系列路由器上,您不可以在某个接口上禁用dCEF模式。 4.为CEF配置负载均衡功能
当到达某一目的IP地址存在多条路径时,每条路径都有一个反映其代价的metric值,路由协议通过计算获得到达目的地址的具有最短metric值的路径,数据包通过该路径到达目的地址。负载平衡的目的则是要把流量分配到多条路径中,这样可优化资源的使用。CEF特快交换支持两种类型的负载平衡---按目的地配置的负载平衡和按数据包配置的负载平衡。
1.按目的地配置负载平衡
基于目的地的负载均衡允许路由器将使用多条路径来均衡负载。对于某一源/目标主机,数据包转发采用同一路径,即使有多个路径可用,也将这样处理。对于到达不同目的地的数据包则可以采用不同的路径。
当启用CEF时,基于目的地的负载均衡功能缺省被启用。大多数情况下,都采用这种负载均衡方法。因为基于目的地的负载均衡是依赖于对数据流的统计来分布信息的,所以随着“源/目的地对”个数的增加,负载均衡会变得更加有效。
---- 由于启用CEF后,也就默认启用了按目的地进行负载均衡功能,为了利用按目的地进行负载均衡的功能,用户就不需要再执行任何其他操作了。
---- 为了禁止按目的地进行负载均衡的功能,在接口配置模式下,利用下面的命令进行:
---- no ip load-sharing per-destination
2.按数据包配置负载平衡
当启用基于数据包的负载均衡功能时,必须先禁用基于目的地的负载均衡功能。为了禁用基于目的地的负载均衡功能,可以在接口配置模式下,
no ip load-sharing per-destination
使用基于数据包的负载均衡,路由器可以在路径上连续发送数据包,而不用考虑具体的主机或用户情况。这种负载均衡机制采用轮转办法来确定每个数据包采用哪条路径到达目的地。基于数据包的负载均衡可以保证在多条链路上进行负载均衡。
要启用基于数据包的负载均衡功能,可以在接口配置模式下,
ip load-sharing per-packet 5.为CEF配置网络记账功能
用户可能需要收集统计信息,以便更好地理解和使用网络中的CEF模式的功能。例如可能想收集这样的信息: 交换到某个目的地的数据包的个数和字节数,或者通过某个目的地交换的数据包的个数。为了给CEF收集网络记账信息,可以在全局配置模式中,利用下面的命令进行。
(1) 开始收集被快速转发到某个目的地的数据包个数和字节数 命令如下:
---- ip cef accounting per-prefix
(2) 开始收集通过某个目的地被快速转发的数据包的个数 命令如下:
---- ip cef accounting non-recursive
当用户为CEF启用网络记账功能后,就在相应的路由处理器中收集记账信息。当用户为dCEF启用网络记账功能时,就在线路卡上收集信息。
用户可以查看被收集的记账信息。为此在EXEC模式下,使用下面的命令进行:
---- show ip cef
记账信息中详细描述了路由器转发数据包的情况,可以由此了解路由器的负载情况,从而决定如何优化路由器的配置,最大限度地发挥路由器的性能。 七、小结
CEF是专门为高性能、高伸缩性的IP骨干网络设计的一种高速交换方式。从上述介绍我们不难看出,在大规模的动态IP网络中,CEF能够提供前所未有的交换的一致性和稳定性。它能够有效弥补快速交换的高速缓存条目频繁失效的缺陷,采用dCEF分布式交换可使每个线路卡进行完全的交换,提供更优越的性能;CEF比快速交换的路由高速缓存占用内存要少,并能提供负载平衡,网络记账等功能。借助CEF特快交换技术和其它一些革命性的创新技术,Cisco的GSR路由器在全球取得了巨大的成功,在中国互联网基础设施建设中发挥着极其重要的作用。