随着网络的高速发展,为了提高路由器中的决策过程和软件重写PDU(协议数据单元)转发速度,采用CEF技术的三层交换路由器,在体系结构、路由方式和接口卡性能等方面都有质的改变,特别适用于大业务量的ISP网络的核心层,同时也广泛应用于高速企业网的主干。
    三层交换的组成:结合了2层交换和3层路由功能于一身。路由器一般只能传几千个包,使用3层交换,可以达到几百万个包传输。三层交换机具有路由转发功能(路径选择、负载均衡和汇总、多种路由协议路由)和包转发功能(NetFlow交换和CEF交换、基于硬件的包交换、3层和4层转发性能等同于2层转发性能),以及智能的服务从而便于管理、诊断并且提高应用的可靠性(提供:网络管理、高可用性、安全、QoS和I P组播)。
   传统的2层交换,3层路由的结构如下:

 

      随着硬件技术的提高,可以实现基于硬件的重写PDU头。基于硬件的PDU头重写和转发,cisco采用2种方式实现,一种是MLS多层交换技术, 另一种为Cisco的快速转发(CEF)
     IP单播数据包和包重写(三层包转发需要被改写部分内容)如图:

      MLS是由少数旧Catalyst交换机使用的提供线速路由选择的技术。有时候被称为,一次路由,多次交换。即一个数据流的第一个分组被路由器软件路由,后续分组则由交换机硬件来转发。 CEF是新的Cisco设备使用的提供线速路由选择的技术。MLS查看流中的第一个分组,并缓存所需的信息来允许后续分组能独立于路由处理器进行交换。而CEF完全绕过路由处理器。

MLS由以下三个部分组成:
   1.多层路由处理器 (MLS-RP) 它相当于网络中的路由器,负责处理每个数据流的第一个数据包,协助MLS交换引擎 (MLS-SE)在第三层的CAM中建立捷径条目(Shortcut Entry)。MLS-RP可以是一个外部的路由器,也可以由三层交换机的路由交换模块(RSM)来实现。
   2.多层交换的交换引擎 (MLS-SE) 它是负责处理转发和重写数据包功能的交换实体。
   3.多层交换协议 (MLSP) 它是一个轻型协议,用来通过多层路由处理器 (MLS-RP)对多层交换的交换引擎进行初始化。

MLS流
     一个MLS-SE为第3层交换流维护一个第3层交换表。在创建了MLS缓存后,被定义为属于一个现有流的分组能基于缓存信息进行交换。MLS缓存为所有活动的流维护流信息。MLS最大可以容纳128000条表项。MLS-SE使用flow mask来确定如何创建MLS表项。Flow-mask是基于源IP,目的IP和协议,以及协议端口组合的一套标准,MLS-SE通过来自为其操作的MLSP消息学习flow mask。
Flow mask有3种模式:
1. Destination-ip
2. Source/Destination-ip
3. Ip-flow
 MLS与CEF的区别:
    MLS有较大的缺陷,采用Flow Mask形式,每次流转发都要经过一次路由,才能将后续报文进行交换。当一个网络浏览特别大的时候,且过滤颗粒度非常小的时候,将会产生大量的流。因此会导致路由器转发丢失一些报文。CEF是一种高级的第三层交换技术,它主要是为高性能、高伸缩性的第三层IP骨干网交换设计的。为优化包转发的路由查找机制,CEF转发提供3张表(1) FIB:从路由选择表中拷贝过来的转发信息,包括路由选择表中用于转发路由分组所必须的最少信息。 (2)邻接表:维护一个邻接节点以及他们相关的2层MAC重写或吓一跳信息数据库。(3)NetFlow Table:用于统计网络数据等
    转发信息库(FIB)是路由器决定目标交换的查找表,FIB的条目与IP路由表条目之间有一一对应的关系,即FIB是IP路由表中包含的路由信息的一个镜像。由于FIB包含了所有必需的路由信息,因此就不用再维护路由高速缓存了。当网络拓扑或路由发生变化时,IP路由表被更新,FIB的内容随之发生变化。CEF利用邻接表提供数据包的MAC层重写所需的信息。FIB中的每一项都指向邻接表里的某个下一跳中继段。若相邻节点间能通过数据链路层实现相互转发,则这些节点被列入邻接表中。一旦发现邻接关系,就将其写到邻接表中,邻接序列随时都在生成,每次生成一个邻接条目,就会为那个邻接节点预先计算一个链路层头标信息,并把这个链路层头标信息存储在邻接表中,当决定路由时,它就指向下一网络段及相应的邻接条目。随后在对数据包进行CEF交换时,用它来进行封装。
CEF操作模式
  CEF有两种模式:集中式和分布式。集中式允许一个路由处理模块运行特快交换,即FIB和邻接表驻留在路由处理模块中,当线路卡不可用或不具备分散CEF交换的功能时,就可使用集中CEF交换模式。
CEF转发过程 :
CEF的两个表

   3层包从TCAM开始查找;进行最长匹配,得到邻居信息,改写原有二层数据帧(下一跳MAC地址)并转发。CEF表是从路由表得来,邻居表是使用ARP解析得来的。

CEF多层交换的过程如图:

 

 

 

 左侧MAC-M(MAC地址)是SW。右侧的MAC-M是SW。 如果目的IP地址的MAC不在邻居表内,则SW将使用ARP进行解析,以得到目的地址的MAC地址。
支持CEF功能的平台:
Cisco7000系列路由器(需要装备RSP7000)、Cisco7200系列 、Cisco7500系列、 Cisco12000系列 、第二代接口模块(VIP2-20、VIP2-40、VIP2-50)支持CEF。
注意:在不同的路由器平台上,硬件对CEF的支持可能会有所不同,这要由路由器中安装的路由模块和其他硬件所决定。

 更多资料敬请关注cisco网站