cisco路由器 CEF,快速,过程交换

一、路由器交换算法的简单回顾

  1.过程交换

  最初的Cisco路由器采用集中式CPU包交换,所有的包通过共享总线传到CPU,经路由表查找,CRC重算,再通过共享总线把包传到适当的线路卡上。

  2.快速交换

到达某特定目的地址的IP包通常会引起数据包流,即假设交换过到特定目标的包之后,另一个很可能不久也会到达。通过构建最近交换目标的高速缓存,可以减少包在全路由表中查找同一目标的次数,这种一次路由,然后交换的方式称为快速交换,快速交换大大提高了路由器的包转发速率,因而成为Cisco路由器平台上缺省的交换机制。但有一点需要注意,IP路由表的改变必须高速缓存无效,在路由状况不断变化的环境中,路由高速缓存的优势将受到很大限制。

5.CEF特快交换

  如前所述,快速交换的高速缓存机制在Internet之类的高速动态路由选择环境(经常存在网络拓扑变化,路由改变、路由震荡等)中不能很好地伸缩,路由的改变导致高速缓存无效,而重建高速缓存(即执行过程交换的过程)在计算上开销很大;同时,随着互联网及其业务的迅猛发展,基于WEB的各种应用和交互式业务使得通信次数多而通信时间短的实时数据流大量增加,快速交换的高速缓存内容处于不断变化之中,重建高速缓存的负担加大,从而导致路由器性能的降低。CEF特快交换技术正是针对上述不足而设计提出的。

 



 二、CEF特快交换基本原理

  1.CEF部件

  CEF是一种高级的第三层交换技术,它主要是为高性能、高伸缩性的第三层IP骨干网交换设计的。为优化包转发的路由查找机制,CEF定义了两个主要部件:转发信息库(Forwarding Information base)和邻接表(Adjacency Table)。

  转发信息库(FIB)是路由器决定目标交换的查找表,FIB的条目与IP路由表条目之间有一一对应的关系,即FIB是IP路由表中包含的路由信息的一个镜像。由于FIB包含了所有必需的路由信息,因此就不用再维护路由高速缓存了。当网络拓扑或路由发生变化时,IP路由表被更新,FIB的内容随之发生变化。

  CEF利用邻接表提供数据包的MAC层重写所需的信息。FIB中的每一项都指向邻接表里的某个下一跳中继段。若相邻节点间能通过数据链路层实现相互转发,则这些节点被列入邻接表中。

  系统一旦发现邻接关系,就将其写到邻接表中,邻接序列随时都在生成,每次生成一个邻接条目,就会为那个邻接节点预先计算一个链路层头标信息,并把这个链路层头标信息存储在邻接表中,当决定路由时,它就指向下一网络段及相应的邻接条目。随后在对数据包进行CEF交换时,用它来进行封装。欲查看邻接表的有关信息,可以使用Cisco IOS的命令:show adjacency/show adjacency detail。当我们查看邻接表信息时,会发现有以下两种主要邻接类型:Host adjacencyPoint to PointHost adjacency类型通常的显示是一个IP地址,它表示邻接的下一跳IP地址;Point to Point类型的显示是“point 2point”,表示这是一条点对点电路。此外还有其他一些特殊类型,如Null adjacencyGlean adjacency等,此外不再赘述。

  2.CEF操作模式

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

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

  Cisco 12000系列路由器只运行dCEF模式,由线路卡执行交换功能。在其它路由器中,可以在同一个路由器中混合使用各种类型的接口卡,如果一个不支持CEF的接口卡收到数据包后,将把数据包转发到路由处理器来进行处理,或把该数据包转发到下一个网络段处理。

  CEF在路由器上是全局激活的,但可在每个接口(或VIP的底板)上启用/禁用CEF;CEF和快速交换模式也可同时运行,但不推荐这样使用,因为会占用大量的系统维护资源。

  三、CEF与快速交换的比较

  与快速交换相似,CEF也使用自己建立的数据结构(而不是路由表)来执行交换操作。快速交换通过生成并查找路由高速缓存交换数据包,该路由高速缓存交换数据包,该路收高速缓存的条目(包括目的IP地址,输出接口,MAC地址头信息等)是在第一个数据包到来时,对整个路由表执行最长匹配查找算法获得下一跳IP地址,然后查找ARP缓存获得第二层的MAC地址信息,并写入路由高速缓存,之后的数据包则根据已经生成的高速缓存的条目直接重写MAC头信息完成交换操作。

  CEF通过FIB和邻接表对数据包进行交换,但FIB和邻接表是在数据包到来以前,由CPU根据路由表生成并定时更新的,因此到达路由器的第一个数据包也无须执行查找路由表的过程,直接由FIB和邻接表获得新的MAC头信和卢,就可进行交换了,对于拥有大容量路由表的路由器来说,这种预先建立交换查找条目的方式能够有效地提高交换性能。

  四、基于CEF的负载平衡的实现

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

  1.按目的地配置负载平衡

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

  2.按数据包配置负载平衡

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

你可能感兴趣的:(cisco路由器 CEF,快速,过程交换)