一、    CEF概述:

CEF(Cisco Express Forwarding,Cisco特快交换)技术是思科公司推出的一种全新的路由交换方案,它具有良好的交换性能,增强的交换体系结构和极高的包转发速率。

CEF采用一个4级每级256条通道结构的转发表来指明转发条目的位置,转发表有nexthop等信息,涵盖了整个IPv4的地址范围,并有指针指向另一个邻接表。转发条目(MAC地址之类)都存储在一个单独的邻接表上。这两个表包括了所有的转发信息,而这些转发信息是根据路由表和ARP来构造的。

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

CEF转发提供3张表

1>FIB:从路由选择表中拷贝过来的转发信息,包括路由选择表中用于转发路由分组所必须的最少信息。

2>邻接表:维护一个邻接节点以及他们相关的2层MAC重写或吓一跳信息数据库

3>NetFlow Table:用于统计网络数据等

CEF的转发信息不是存储在cache里的,因此也不存在过期作废或定时刷新,只有根据路由表的变化而进行的更改,通常很稳定。而且转发信息是从路由信息经过一定处理后转换过来的,也就是说,如果在转发信息里找不到某个数据包的转发信息,那么也没必要到路由那里去了,因为那里肯定也没有。这个数据包的不是被扔掉就是转到其他转发线程中去,转发信息等于是路由信息针对于硬件转发的一个变形。

这样的结构布局保证了路由功能和交换功能的分离(软件上)。路由功能只处理三层以上信息,如路由信息处理、策略等,然后形成一个路由表,再根据这个路由表生成相应的转发信息。转发功能很明确,就是根据这些转发信息来工作,没有相关信息就拒绝。而不象MLS那样,遇到不认识的还得回头找路由问明白,那样降低了转发效率。CEF在软件形式上实现了路由和交换功能的分离,而并不意味着路由器物理结构上的分离,所以它也可以在一些多层交换机和低端的路由器上实施。

它的高速表现在以下两个方面:

1>在查询方式上简化了步骤,提高了速度;

2>在分离了路由和转发功能。

支持CEF的硬件平台

Cisco首先在高端路由器平台实现CEF,此后,Catalyst交换机也支持CEF的转发,但是还存在一些差别,但均提供如下特性:

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

2. 等价路径的负载均衡

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

4. 不详路由的无效

有些CEF特性仅在路由器上实现

1. 关闭基于CEF的转发能力

2. 每个前缀和每个前缀长度的CEF统计

3. 从负载共享路径统计数据

4. 基于每个分组的负载均衡

二、CEF表详解:

1.CEF转发信息库:

CEF利用转发数据库(FIB)来进行基于IP目的地前缀的交换决策。从概念上讲,FIB类似于一个路由表或信息库,它维护着一个包含IP路由表转发信息的镜像。当网络中路由或拓扑结构发生了变化时,IP路由表就被更新,而这些变化也将反映在FIB中。基于IP路由表中的信息,FIB维护着下一跳的地址信息。因为FIB条目和路由表条目之间有一一对应的关系,所以FIB中包含了所有已知的路由,这样就不用维护路由高速缓存了,而先前的交换方法(比如快速交换和最优交换)都要维护路由高速缓存。

 

CEF FIB 表由一棵4级层次的树组成,如图所示。4 级来源于IP 议所使用的犯比特地址。层次的每一级是基于32比特中的8 位。CEF依赖最长匹配转发算法,这意味着按降序搜索整棵树直到“最长匹配”,即匹配最大比特数。FIB树分层表示,树的顶端是最不详细的地址,底端是最详细的地址。每个叶以8比特为边界,按降序排列更详细的表项。这棵树(通常被认为是一个256路的分支树)提供了一种用于快速查找的高效机制,确保查找过程中产生最少的延迟。这棵树也提供一个高扩展性的体系结构,因为它能以相比与表效率来说最小的性能开销完全统计IPv4 编址。每个树叶提供了一个到邻近表中相应下一跳表项的指针。

2.邻接表(Adjacency Table)

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

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

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

需要作特殊处理的邻接类型 另外,因为邻接条目和下一跳地址相关联,所以一些特殊的邻接类型可以被用来加速交换过程。前缀被定义后,当存在以下被缓存的邻接条目存在时,前缀需要作特殊处理。空邻接一个以Null0接口为目标地址的包会被抛弃,在访问过滤器时,这可以被用作一种有效的机制。

邻接归纳: 当路由器直接和几台主机相连时,FIB表中维持的是这个子网的前缀,而不是各个主机的前缀。这个子网前缀是一个邻接的归纳。当要转发某个数据包到某个具体主机时,邻接数据库使用这个被归纳的邻接。

转出邻接: 当遇到某些作特殊处理的功能或者CEF不支持的功能时,路由器将采用更高级别的交换方法处理数据包。

丢弃邻接 :数据包被丢弃。这种邻接类型仅仅在Cisco12000系列路由器上出现。

释放邻接: 数据包被释放,但是前缀仍然有效。

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

三、CEF转发过程

CEF的两个表:

3层包从TCAM开始查找;进行最长匹配,得到邻居信息,改写原 跳MAC地址)并转发。

CEF表是从路由表得来,邻居表是使用ARP解析得来的。

CEF多层交换的过程:

左侧MAC-M(MAC地址)是SW。右侧的MAC-M是SW。

如果目的IP地址的MAC不在邻居表内,则SW将使用ARP进行解析,以得到目的地址的MAC地址。

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

FIB最多支持6个到达同一目的的邻居条目。

四、CEF模式

CEF的操作模式有2种,即集中CEF模式和分散CEF模式。

可以通过其中的任意一种来启用CEF,同一时刻用户只能使用其一种模式。

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

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

五、CEF操作

CEF:

如果用户的Cisco路由器中有接口处理器支持CEF时,就可以启用CEF。

为了启用或禁用CEF,可以在全局配置模式下利用下面的命令进行配置。

启用标准CEF模式 ip cef switch

禁用标准CEF模式 no ip cef switch

dCEF:

当线路卡执行快速转发时,则启用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或dCEF。例如,策略路由和CEF就不能一起使用。您可能想让一个接口支持策略路由,而让其他的接口支持CEF。在这种情况下,可以按全局模式启用CEF,而在那个打算配置策略路由的接口上禁用CEF。这样,除了那一个接口外,在其他所有接口上都启用了快速转发。

在某个接口上禁用CEF或dCEF,可以在接口配置模式: no ip route-cache cef

尔后又想重新启用CEF,在接口配置模式下,可以使用: ip route-cache cef

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

CEF负载均衡

基于目的地的负责均衡:

基于目的地的负载均衡允许路由器将使用多条路径来均衡负载。对于某一源/目标主机,数据包转发采用同一路径,即使有多个路径可用,也将这样处理。对于到达不同目的地的数据包则可以采用不同的路径。

当启用CEF时,基于目的地的负载均衡功能缺省被启用。大多数情况下,都采用这种负载均衡方法。

因为基于目的地的负载均衡是依赖于对数据流的统计来分布信息的,所以随着“源/目的地对”个数的增加,负载均衡会变得更加有效。

基于数据包的负载均衡:

当启用基于数据包的负载均衡功能时,必须先禁用基于目的地的负载均衡功能。为了禁用基于目的地的负载均衡功能,可以在接口配置模式下,

no ip load-sharing per-destination

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

要启用基于数据包的负载均衡功能,可以在接口配置模式下,

ip load-sharing per-packet

为CEF配置网络记账功能

启用收集被快速转发到某个目的地的数据包个数和字节数

ip cef accounting per-prefix

启用收集通过某个目的地被快速转发的数据包的个数

ip cef accounting non-recursive

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

查看网络记帐信息 show ip cef

为CEF配置跨隧道的交换

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

六、CEF检验

Cisco7505#sh ip cef detail
IP CEF with switching (Table Version 5), flags=0x0
5 routes, 0 reresolve, 0 unresolved (0 old, 0 new), peak 0
5 leaves, 8 nodes, 9080 bytes, 10 inserts, 5 invalidations
0 load sharing elements, 0 bytes, 0 references
universal per-destination load sharing algorithm, id 9466A8C7
3(0) CEF resets, 0 revisions of existing leaves
Resolution Timer: Exponential (currently 1s, peak 1s)
0 in-place/0 aborted modifications
refcounts: 2311 leaf, 2304 node
Table epoch: 0 (5 entries at this epoch)
0.0.0.0/0, version 0, epoch 0, attached, default route handler
0 packets, 0 bytes
via 0.0.0.0, 0 dependencies
valid no route adjacency
0.0.0.0/32, version 1, epoch 0, receive
224.0.0.0/4, version 4, epoch 0
0 packets, 0 bytes
via 0.0.0.0, 0 dependencies
next hop 0.0.0.0
valid drop adjacency
224.0.0.0/24, version 3, epoch 0, receive
255.255.255.255/32, version 2, epoch 0, receive

MSFC2#sh ip cef summary
IP CEF with switching (table Version 477965)
445 routes , 0 reresolve, 0 unresolved ( 0 old, 9 new)
446 leaves, 76 nodes, 132560 bytes, 477966 inserts,
477520 invalidations
0 load sharing elements , 0 bytes, 0 references
1CEF resets , 2 revisions of exsiting leaves
Refcounts: 15824 leaf, 15038 node
Default 192.35.86.0/24

转载于:https://blog.51cto.com/xiaogang6/803172

cisco CEF的一点概述相关推荐

  1. cisco 2960 VLAN MAC_华为网络初级工程师快速掌握基于MAC地址的VLAN划分实用收藏

    点上方蓝字关注公众号 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 HCIA DATCOM基础入门技术基于MAC地址的VLAN划分 基于mac 地址VLAN划分方式,是一种动态的VLA ...

  2. cisco(思科) 问题库

    Cisco 1800系列集成多业务路由器常见问题 平台 常见问题 问:什么是Cisco®1800系列集成多业务路由器? 答:Cisco 1800系列属于思科集成多业务路由器,包括Cisco 1841模 ...

  3. 新书《路由器配置与管理完全手册——Cisco篇》目录抢鲜暴光

    经过对几千名读者的调查,经与出版社协商,原计划的<Cisco/H3C路由器配置与管理完全手册>一书,决定拆分成两本,分别是<路由器配置与管理完全手册--Cisco篇>和< ...

  4. 03 Cisco IOS设备

    第三章 Cisco IOS设备 3.1 Cisco设备的软件和硬件 1 Cisco IOS软件 IOS(Internetworking Operating System,互联网操作系统) 2 路由器的 ...

  5. 《Cisco交换机配置与管理完全手册》(第二版)前言和目录

    史上最具人气.最受好评的网络设备图书领域"四大金刚"的全新升级版本再现江湖了,他们分别是:<Cisco交换机配置与管理完全手册>(第二版).<H3C交换机配置与管 ...

  6. cisco 3750交换机堆叠配置

    Cisco 3850交换机堆叠配置 Cisco stackwise技术 技术概述 Cisco StackWise 技术为统一利用交换机堆叠的功能提供了创新方法.单个交换机能够以 32-Gbps 交换堆 ...

  7. 全球与中国Cisco硬件经销商市场现状及未来发展趋势

    本文研究全球及中国市场Cisco硬件经销商现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.中国.日本.东南亚和印度等地区的现状及未来发展趋势. 根据QYR(恒州博智)的统计及 ...

  8. ipsec协议_网工知识角轻松学网络|三分钟了解PPPOE协议

    学网络,就在IE-LAB 国内高端网络工程师培养基地 PPPOE( Point-to-PointProtocol Over Ethernet)以太网上的点对点协议,是将点对点协议(PPP)封装在以太网 ...

  9. ftp协议是一种用于_______的协议_网工知识角|快速理解FTP和TFTP的区别,实用收藏...

    点上方蓝字关注公众号,坚持每天技术打卡 学网络,就在IE-LAB 国内最著名的高端网络工程师培养基地 FTP和TFTP的区别是什么 CCNA零基础入门必学 FTP(FileTransfer Proto ...

  10. 对路径的访问被拒绝怎么办_学习了解ACL—扩展访问控制列表,就在网工知识角...

    学网络,就在IE-LAB 国内高端网络工程师培养基地 基于ACL过滤telnet和特定的网段信息 什么是访问控制列表(ACL)? 应用于路由器接口的指令列表,用于指定哪些数据包可以接收转发,哪些数据包 ...

最新文章

  1. 想学Python,梦雅给你指一条明路!
  2. webstorm配置ESLint 一直
  3. fastreport调用frf文件直接打印_来吧~~ 这里提供自助打印~
  4. Redis管道 发布订阅
  5. HDU 3032 Nim or not Nim?
  6. BGP聚合as-set advertise-map
  7. 链表 python 牛客_牛客网《剑指offer》之Python2.7实现:合并两个排序的链表
  8. 西威变频器 服务器显示,西威变频器故障查询及操作方法;
  9. 电容或电感的电压_电感电容等储能元件
  10. CISA要求联邦机构修复被震网病毒攻击利用的漏洞
  11. HDU6070(线段树)
  12. 时尚圈美女撰文主攻方向
  13. 程序员考公指南1-59
  14. 的撒困的空间三看到你塞拉
  15. Eclipse代码提示和补全
  16. 括号配对c语言,括号匹配(c语言实现)
  17. Linux进程优先级和nice值
  18. PHP 调用bing壁纸接口
  19. 2017年,我要怎么学前端
  20. 云笔记Leanote,超级好用的一款开源云笔记

热门文章

  1. python编写环境手机_给android手机上配置python运行环境
  2. idea断点的几个意思_你真的理解Intellij IDEA的Debug技巧吗?这篇文章全部教给你...
  3. Java高级程序员面试大纲——备战金三银四跳槽季
  4. GNU make manual 翻译(四十六)
  5. centos6.0 LAMP源码安装
  6. CentOS中的网络管理
  7. WIFI内部通话系统技术解决方案
  8. 浏览器同步测试神器 — BrowserSync
  9. 忘记root密码,使用救援模式,grup设置密码
  10. docfx daylybuild