CDF(Cisco Express Forwarding)思科特快交换,三层交换技术,主要工作在高性能、好伸缩性的三层ip骨干网。快速交换的高速缓存机制在网络拓扑变化,路由改变、路由震荡等环境中不能很好地伸缩,路由的改变导致高速缓存无效,而重建高速缓存在计算上开销很大,快速交换的高速缓存内容处于不断变化之中,重建高速缓存的负担加大,导致路由器性能的降低。CEF特快交换技术正是针对上述不足而设计提出的

cef主要有3张表:

FIB:主要是路由信息,复制路由表条目

adjacency:邻接节点,mac重写、下一条信息数据

NetFlow: 网络数据统计

特性:

1. 基于“最长地址匹配”查找的高速转发

2. 等价路径的负载均衡

3. 逆向路径转发检查(RPF)

4. 不详路由的无效

 

CEF采用一个4级每级256条通道结构的转发表来指明转发条目的位置,转发表有next hop等信息,涵盖了整个IPv4的地址范围,并有指针指向另一个邻接表。转发条目(MAC地址之类)都存储在一个单独的邻接表上。

image

CEF简化了查询的步骤,提高了单位时间的工作效率。而且从整体上来看,路由信息和转发信息是分离的,数据包的转发只根据转发信息而不用参照路由信息,可以充分利用专用硬件的功能来达到线速转发,而不受路由变化或者其他因素的干扰,保证了转发的高速高效。

 

 

cef转发过程:

查找邻居信息,改写mac

image

 

 

image

由于FIB包含了所有必需的路由信息,因此就不用再维护路由高速缓存了。当网络拓扑或路由发生变化时,IP路由表被更新,FIB的内容随之发生变化。系统一旦发现邻接关系,就将其写到邻接表中,邻接序列随时都在生成,每次生成一个邻接条目,就会为那个邻接节点预先计算一个链路层头标信息,并把这个链路层头标信息存储在邻接表中,当决定路由时,它就指向下一网络段及相应的邻接条目。随后在对数据包进行CEF交换时,用它来进行封装。

 

image

 

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

 

 

 

ARP Throttling(ARP抑制):在未获得目的MAC地址并且进行ARP解析时,除非ARP解析完成并且在邻居表体现出来外,在解析期间,所有发往目的主机的包,将被丢弃,这就是ARP抑制。

 

CEF操作模式

CEF有两种模式:集中式和分布式(dCEF)。可以通过其中的任意一种来启用CEF,同一时刻用户只能使用其一种模式

集中式 FIB和邻接表驻留在路由处理器中,路由处理器来执行快速转发

image

分布式 线路卡维护着一个与FIB和邻接表相同的拷贝,在路由处理模块和线路卡上,保证FIB和邻接表的同步

image

cef配置:

全局配置模式

启用 ip cef switch
禁用 no ip cef switch

启用dCEF    ip cef distributed switch
禁用dCEF    no ip cef distributed switch

在接口配置模式:

启用  ip route-cache cef

禁用 no ip route-cache cef

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

接口配置模式

基于目的地
no ip load-sharing per-destination

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

接口配置模式

基于数据包

ip load-sharing per-packet

 

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

查看

show ip cef

show ip cef vlan 10 detail

show int stats |begin vlan 12

show adjacency

show adjacency detailw adjasency

show cef drop

dubug ip cef