且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Cisco快速转发

更新时间:2022-10-03 23:33:58

PS:又找到了一个比刚才讲cisco快速转发与CEF/DCEF更详细的资料,转过来留着:

CEF功能概述
  Cisco快速转发(CEF)是一个高级三层交换技术。CEF交换可以优化带有大规模的、动态数据流的网络(例如:Internet、具有增强的基于Web应用的网络或者交互式的业务)的性能和可扩展性。

CEF的优点:

CEF具有以下优点:
  ● 改善网络性能――CEF和典型的快速交换路由相比较,CEF可以使用较少的内存容量来实现数据包的转发。这样可以使得更多的处理器资源用于第三层的服务,比如服务质量(QoS)和加密功能等。
  ● 提高网络的可扩展性――当启用分散式CEF(dCEF)模式时,CEF的每个线路卡上维护着一个  与转发信息库(FIB)和邻接表相同的拷贝,它能独自提供完全的交换能力。 
   ● 提高网络的收缩性――在大规模的动态网络中,CEF能提供了一种具有更好的可靠性和稳定性的交换。在动态网络中,路由的改变会导致快速交换高速缓存条目频 繁地失效。这些变化可能导制:数据要通过路由表进行过程交换,而不是通过路由高速缓存进行快速交换。CEF的转发信息库(FIB)中包含所有路由表中存在 的路由,换句话说:FIB维护着一个IP路由表中包含的转发信息的镜像,因此CEF免去了维护路由高速缓存、采用快速交换和过程交换相互转换的过程。 CEF比典型的高速缓存技术更能有效地交换数据流。 

CEF的术语表
  Cisco快速转发(CEF)――CEF是一种第三层交换技术,CEF有两种模式:集中模式和分布模式,集中模式允许一个路由处理器执行快速转发。

  分布式CEF(dCEF)――分布式CEF允许路由器的多个线路卡在端口适配器间分别运行快速转发。

  转发数据库(FIB)――CEF的一个组件。它是路由器决定目标交换的查找表,是一个包含IP路由表中转发信息的镜像。

  千兆交换路由器(GSR)――思科12000系列路由器。

  线路卡――Cisco产品线中广泛应用的接口处理器的总称,例如:VIP就是7500系列路由器中的一种线路卡。

   前缀――可以指出IP地址中的网络地址部分,它是IP地址和子网掩码的组合。子网掩码可以指出IP地址中有多少比特是网络比特。前缀的格式是:IP地址 /子网掩码。例如:10.0.0.0/16意味着IP地址中的前面16比特被标记了,它可以过滤出网络地址和主机地址,此例中网络地址是10.0。

  路由模块/处理器(route processor)――Cisco7000或者Cisco7500路由器上路由处理模块的总称。

  路由模块/处理器(RP)――Cisco7000系列路由器上的路由处理模块,它包含CPU、系统软件和路由器中的大部分内存组件。

  路由交换模块/处理器(RSP)――Cisco7500系列路由器中结合路由模块(RP)和交换模块(SP)功能的模块。交换模块(SP)在Cisco7000系列路由器中扮演管理所有数据总线活动的管理员的角色。

  通用接口模块(VIP)――Cisco7000和7500系列路由器使用的接口卡。VIP可以提供多层交换和CiscoIOS软件的运行。最新的版本是VIP和VIP2。

  模块通讯(IPC)――这是一种机制,它可以确保在使用分散CEF模式时,RSP和线路卡的转发数据库(FIB)和邻接表信息同步。
使用CEF必须满足的条件

当您在网络中使用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交换的过程中遇到了其它特殊硬件需求或者兼容性问题,请查询“思科产品手册”或“安装和配置手册”。

功能描述

  Cisco快速转发(CEF)是一个高级三层交换技术。CEF交换可以优化带有大规模的、动态数据流的网络(例如:Internet、具有增强的基于Web的应用的网络或者交互式的业务)的性能和可扩展性。

  您可以在网络中的任何地方使用CEF交换,CEF交换是为高性能的、高收缩性的骨干网而设计的一种高速交换方式。例如:图1中在流量密集的核心网络的汇集点上,Cisco12000系列千兆交换路由器使用CEF去交换数据包。


   在一个典型的大业务流量的ISP环境中,Cisco12012千兆交换路由器是网络的核心,它提供和支持到Cisco7500系列或者其他支流路由器的 连接。在网络核心中,骨干路由器上的CEF交换提供了高性能和可扩展性,用来对付网络规模的不断加大和稳定增长的数据流量。CEF是一种分散式交换机制, 它随着接口卡数量和安装在路由器中带宽的变化而线性地变化。

CEF组件

  为了实现CEF的交换功能,CEF将普通路由器中存储在路由高速缓存中的信息转而存储到几种为CEF专门设计的数据结构中。为了有效地进行数据包转发,这种数据结构要保证能进行优化的查询。CEF的2种主要组件是:
  ● 转发数据库(FIB)
  ● 邻接表

转发数据库 

  CEF利用转发数据库(FIB)来进行基于IP目的地前缀的交换决策。从概念上讲,FIB类似于一个路由表或信息库,它 维护着一个包含IP路由表转发信息的镜像。当网络中路由或拓扑结构发生了变化时,IP路由表就被更新,而这些变化也将反映在FIB中。基于IP路由表中的 信息,FIB维护着下一跳的地址信息。

  因为FIB条目和路由表条目之间有一一对应的关系,所以FIB中包含了所有已知的路由,这样就不用维护路由高速缓存了,而先前的交换方法(比如快速交换和最优交换)都要维护路由高速缓存。 

邻接表(Adjacency Table) 

  如果网络中的网络节点只通过一跳就可以穿越链路层而彼此到达对方,那么它们是邻接的。除了FIB外,CEF还利用邻接表来提供第二层的寻址信息。邻接表为所有FIB条目维护第二层的下一网段地址。

邻接的发现

   当路由器发现存在邻接时就增加在邻接表中,每次生成一个邻接条目(就像ARP协议一样),CEF会为那个邻接节点预先计算一个链路层头标信息,并把这个 头标信息存储在邻接表中。当决定路由时,它就会指向下一跳以及相应的邻接条目。随后,在对数据包进行CEF交换时,用预先生成的头标信息来对数据包进行封 装。

分解邻接

  一个路由表中也许存在多条到达目标网络的路径,例如:当路由器被配置成允许冗余路径和允许负载平衡时。对于每一个被分解的转发路径,邻接条目会被附加一个头标信息指示出那条路径的下一跳地址。这种机制可以用来在多条路径上实现负载平衡。

需要作特殊处理的邻接类型

  另外,因为邻接条目和下一跳地址相关联,所以一些特殊的邻接类型可以被用来加速交换过程。前缀被定义后,当存在以下被缓存的邻接条目存在时,前缀需要作特殊处理。
表1 需要被作特殊处理的邻接类型
邻接类型接收到这些邻接类型时如何处理
空邻接一个以Null0接口为目标地址的包会被抛弃,在访问过滤器时,这可以被用作一种有效的机制。
  邻接归纳当路由器直接和几台主机相连时,FIB表中维持的是这个子网的前缀,而不是各个主机的前缀。这个子网前缀是一个邻接的归纳。当要转发某个数据包到某个具体主机时,邻接数据库使用这个被归纳的邻接。
  转出邻接当遇到某些作特殊处理的功能或者CEF不支持的功能时,路由器将采用更高级别的交换方法处理数据包。
  丢弃邻接数据包被丢弃。这种邻接类型仅仅在Cisco12000系列路由器上出现。
释放邻接数据包被释放,但是前缀仍然有效。

没有被分解的邻接

  当链路层头标信息被附加到数据包上时,FIB需要头标指出下一跳的地址。如果FIB表中建立了一个邻接,但是并没有 找到第二层的寻址信息,比如没有通过ARP发现第二层的寻址信息,这个邻接就被认为是不完整的。这个数据包就会交给路由模块处理,邻接关系由ARP来决 定。

CEF所支持的媒介

  当前CEF支持ATM/AAL5snap, ATM/AAL5mux, ATM/AAL5nlpid, 帧中继, 以太网, FDDI, PPP, HDLC, 和隧道。

CEF操作模式

  CEF的*作模式有2种,即集中CEF模式和分散CEF模式。可以通过其中的任意一种来启用CEF,同一时刻用户只能使用其一种模式。

集中CEF模式

  当启用集中CEF模式时,CEF的FIB和邻接表驻留在路由处理器中,路由处理器来执行快速转发。对于CEF交换来说,当线路卡不可用时,或者需要使用的功能与分散CEF交换不兼容时,就可以使用集中CEF模式。

分布CEF模式

  当启用分布式CEF(dCEF)时,线路卡(例如VIP线路卡或者GSR线路卡)维护着一个与FIB和邻接表相同的拷贝。线路卡在端口适配器之间执行快速转发,这样,在进行交换*作时就无须RSP的参与了。
  dCEF使用一个“内部过程通信”(Inter Process Communication,IPC)机制,在路由处理模块和线路卡上,保证FIB和邻接表的同步。


   在Cisco12000系列路由器中,线路卡负责执行CEF交换。在其他路由器中,或许您使用的不是同一种类型的线路卡,有可能某个接口卡不支持CEF 交换。当某个不支持CEF交换的线路卡收到数据包时,她将数据包转发给更高的交换层(比如路由处理模块)或者把数据包转发给下一跳处理。这种机制允许旧的 接口模块和新的接口模块并存。

笔记
  1Cisco12000系列千兆交换路由器上只运行dCEF模式。
  2一个VIP卡上不允许同时运行分布式CEF交换和分布式快速交换。
  3Cisco7200系列路由器不支持分布式CEF交换。

附加的新功能

在配置集中模式CEF和分布模式CEF时,您还可以配置以下功能:
  ● 分布式CEF支持访问控制列表
  ● 分布式CEF支持帧中继包
  ● 分布式CEF支持数据包分片
  ● 支持基于每一个包或者每一个目标的负载平衡
  ● 支持网络计费,可以收集数据包的个数和字节数
  ● 分布式CEF支持跨隧道的交换

配置任务

这部分描述配置CEF的必要选项和可选选项。第一个任务是必要的,其他都是可选的。
  ●启用和禁用CEF或者dCEF
  ●为CEF配置负载平衡
  ●为CEF配置网络计费
  ●为CEF配置跨隧道交换

启用和禁用CEF或者dCEF

  如果用户的Cisco路由器中有接口处理器支持CEF时,就可以启用CEF。
  为了启用或禁用CEF,可以在全局配置模式下利用下面的命令进行配置。
任务命令
  启用标准CEF模式ip cef switch
  禁用标准CEF模式no ip cef switch

  当您想让线路卡执行快速转发时,则启用dCEF,这样,路由处理模块就可以处理路由协议或者负责交换从旧的接口模块(不支持CEF交换的模块)过来的数据包。

笔记 
  在Cisco12000系列路由器上,dCEF模式是缺省启用的。所以启用dCEF的命令(ip cef switch)在Cisco12000系列路由器上是没有意义的,在配置清单上也不会列出dCEF模式被启用。

  为了启用或禁止dCEF*作,可以在全局配置模式下利用下面的命令进行配置。
任务命令
  启用dCEF模式ip cef distributed switch
  禁用dCEF模式 no ip cef distributed switch

  当用户按全局模式启用CEF或dCEF时,所有支持CEF的接口都被默认地启用了。如果您想在某个特定的接口上关闭CEF或者dCEF,您可以按照下面的做法:

   有时候,在某个接口配置了一项功能,而CEF或dCEF并不支持该功能,这时您就可能需要在这个特定的接口上禁止CEF或dCEF。例如,策略路由和 CEF就不能一起使用。您可能想让一个接口支持策略路由,而让其他的接口支持CEF。在这种情况下,可以按全局模式启用CEF,而在那个打算配置策略路由 的接口上禁用CEF。这样,除了那一个接口外,在其他所有接口上都启用了快速转发。

  为了在某个接口上禁用CEF或dCEF,可以在接口配置模式下,使用下面的命令实现: 
任务命令
  在接口上禁用CEFno ip route-cache cef

  当禁用了CEF或dCEF后,Cisco IOS自动使用下一个最快的交换路径来交换数据包。对于dCEF而言,下一个最快的交换路径是在路由处理模块上使用CEF。
  如果您在某个接口上禁用了CEF或dCEF*作,尔后又想重新启用它,那么在接口配置模式下,可以使用:ip route-cache cef命令实现。

笔记 
  在Cisco12000系列路由器上,您不可以在某个接口上禁用dCEF模式。

为CEF配置负载平衡

   负载平衡要依据数据包的源和目的地信息组合来进行。为了把数据传送到一个目的地,Cisco可以把数据分配到多条路径中,从而优化资源的使用。您可以基 于目的地或者基于数据包来配置负载平衡。负载平衡决策机制是在数据发出的接口上做出的,所以当您必须在出口上配置负载平衡。

配置负载平衡任务列表
  这部分描述怎样去配置不同类型的负载平衡:
   配置基于目的地的负载平衡
   配置基于数据包的负载平衡

配置基于目的地的负载平衡 

   基于目的地的负载平衡允许路由器将使用多条路径来均衡负载。对于某一源/目标主机,数据包转发采用同一路径,即使有多个路径可用,也将这样处理。对于到 达不同目的地的数据包则可以采用不同的路径。当启用CEF时,基于目的地的负载平衡功能缺省被启用。大多数情况下,都采用这种负载平衡方法。
  因为基于目的地的负载平衡是依赖于对数据流的统计来分布信息的,所以随着“源/目的地对”个数的增加,负载平衡会变得更加有效。
  您可以采用基于目的地负载平衡的办法,来确保针对某个给定的“源/目标主机对”的数据包以一定的次序到达。因为基于某个确定的“源/目标主机对”的数据包会在同一条链路上被路由。

启用基于目的地的负载平衡

  由于启用CEF时,也就缺省启用了基于目的地的负载平衡功能,所以为了使用基于目的地的负载平衡功能,您不需要再执行其他附加*作。 

禁用基于目的地的负载平衡

  特别的,当您想启用基于数据包的负载平衡功能时,您必须先禁用基于目的地的负载平衡功能。
  为了禁用基于目的地的负载平衡功能,可以在接口配置模式下,使用下面的命令进行: 
任务命令
  禁用基于目的地的负载平衡功能no ip load-sharing per-destination

配置基于数据包的负载平衡 

  使用基于数据包的负载平衡,路由器可以在路径上连续发送数据包,而不用考虑具体的主机或用户情况。这种负载平衡机制采用轮转办法来确定每个数据包采用哪条路径到达目的地。基于数据包的负载平衡可以保证在多条链路上进行负载平衡。

   利用数据包进行负载平衡是一个好办法,但是对于给定的“源/目标主机对”的数据包也许会因此采用不同的路径到达目的地。这个机制会引起数据包的重新排 序。所以这种类型的负载平衡方法对有些类型的数据流可能就不适应(比如通过IP进行语音传送),因为这种类型的传送要求数据包按照顺序依次到达目的地。

   使用基于数据包的负载平衡有助于确保每个单个“源/目的地对”的路径都不会超载。如果有大量的、通过并行链路的针对某个“源头/目标主机对” 的数据,假如按目的地进行负载平衡,将会使那个链路超载,而其他链路上的数据流却很少。启用基于数据包的负载平衡后,数据包可以交替地利用不同的路径到达 同一个繁忙的目的地。

  要启用基于数据包的负载平衡功能,可以在接口配置模式下,使用下面的命令进行: 
任务命令
  启用基于数据包的负载平衡ip load-sharing per-packet

笔记
  如果您想针对某个特定目的地启用基于数据包的负载平衡,必须在所有可以向该目的地转发数据包的接口上都启用基于数据包的负载平衡的功能。 

为CEF配置网络记账功能 

  您可能需要收集统计信息,以便更好地理解和使用CEF模式的功能。例如您可能想收集这样的信息: 被交换到某个目的地的数据包的个数和字节数,或者通过某个目的地交换的数据包的个数。

您执行以下可选选项为CEF配置网络记帐功能:
  ●为CEF启用网络记帐功能
  ●查看网络记帐信息

启用CEF的网络记帐功能

  要启用CEF的记帐功能,可以在全局配置模式中,使用下面的命令进行:

任务命令
  启用收集被快速转发到某个目的地的数据包个数和字节数ip cef accounting per-prefix 
  
  启用收集通过某个目的地被快速转发的数据包的个数ip cef accounting non-recursive 


  当您在全局配置模式中为CEF启用网络记账功能后,相应的路由处理器会收集记账信息。当用户为dCEF启用网络记账功能后,线路卡上会收集记帐信息。

查看网络记帐信息

  您可以查看被收集的记账信息。为此在EXEC模式下,使用下面的命令进行:

任务命令
  查看收集的记帐信息show ip cef 

为CEF配置跨隧道的交换

  CEF支持跨隧道的交换,例如GRE隧道。当你启用CEF或者dCEF模式时,跨隧道的交换会被自动启用,所以您无需再执行任何附加*作来启用跨隧道的交换。



















本文转自loveme2351CTO博客,原文链接: http://blog.51cto.com/loveme23/63810,如需转载请自行联系原作者