我们在这篇文章将通过一个例子对路由器网络接口进行全面的介绍和分析。我们分成三个部分进行阐述
首先讲解第一部分《路由器网络接口解析大全(一)》
(1) 接口和活动状态
(2) 字段为你提供接口的硬件类型
(3) Internet地址
(4) MTU
(5) BW
(6) DLY
(7) 可靠性
(8) 负载
(9)封装
(10)回送
(11)ARP类型
(12)ARP超时
(13)最后的输入和输出
(14)输出中断
(15)最后一次清除
(16)排队策略
(17)队列消息
(18)5-分钟I/O速率
(19)分组和字节输入
(20)无缓冲
(21)接收的广播
(22)Runts
(23)Giants
(24)Throttles
实例:
Router# show interface e0/0
Ethernet0/0 is up, line protocol is down
Hardware is AmdP2, address is 0009.4375.5e20 (bia 0009.4375.5e20)
Internet address is 192.168.1.53/24
MTU 1500 bytes, BW 10000 Kbit, DLY 1000 usec,
reliability 172/255, txload 3/255, rxload 39/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
ARP type: ARPA, ARP Timeout 04:00:00
Last input never, output 00:00:07, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/0/0 (size/max/drops/flushes); Total output
drops: 0
Queueing strategy: fifo
Output queue :0/40 (size/max)
5 minute input rate 0 bits/sec, 0 packets/sec
5 minute output rate 0 bits/sec, 0 packets/sec
0 packets input, 0 bytes, 0 no buffer
Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 input packets with dribble condition detected
50 packets output, 3270 bytes, 0 underruns
50 output errors, 0 collisions, 2 interface resets
0 babbles, 0 late collision, 0 deferred
50 lost carrier, 0 no carrier
0 output buffer failures, 0 output buffers swapped out
(1) 接口和活动状态
在上面的显示中,内容表示硬件接口是活动的,而处理行协议的软件过程相信此接口可用。如果路由器操作员拆卸此硬件接口,第一个字段将显示信息is administratively down.如果路由器在活动间隔内收到5000个以上的错误,单词Disabled将出现在此字段中,以显示连路由器自动禁用此端口。行协议字段还显示以前提到的三个描述之一:up、down、administratively down.如果字段项是up,则表示处理行协议和软件过程相信此接口可用,因为她正在接收keepalives的目的也是如此,其他设备可以确定某个空闲连接是否仍然活动。对于以太网接口,Keepalives的默认值是10s。我们不久将注意到,Keepalives设置可以通过为特定接口使用show interfaces命令来获得。可以用keepalive interface 命令来改变keepalives设置。此命令的格式如下:Keepalive seconds
(2) 硬件字段为你提供接口的硬件类型
在以上的例子中,硬件是扩展总线(CxBus)以太网,即接口处理器的533-Mbps数据总线。因此,硬件通知我们高速CxBus接口处理器用于支持以太网连接。同时还要注意显示字段包括接口的Mac地址。Mac是48位长的。因为Mac地址的头24位是表示生产厂家ID,所以十六进制数00-10-79是由IEEE分配给Csico的标识符。
(3) Internet地址
如果某个接口是为IP路由配置,那么将为它分配一个Internet地址。此地址后面是他的子网掩码。IP地址是205.141.192.1/24。反斜杠(/)后面表示此地址的头24位表示网络,他等于子网掩码255.255.255.0。
(4) MTU
最大传输单元(MTU)表示运行在接口上的协议的信息字段所支持的最大字节数。因为以太网桢的信息字段的最大长度是1500字节,所以它的MTU显示为1500字节。对于几乎所有的以太网应用程序,默认的1500字节MTU应该是有效的。对于令牌环,默认的MTU值为8192字节;但是应该注意的一点是RFC1191建议的MTU值为16-Mbps令牌环选择17914的,而为4-Mbps令牌环选择4464字节。最小的MTU是64个字节,而最大的值是65535字节。如果IP数据报超过最大的MTU,将对它进行分段,这将增加额外开销,因为每个最后的数据报都包含它自己的报头。虽然在高速LAN连接中,通常无需担心与分段有关的额外开销,但在低速串行接口上,这可能会是一个比较严重的问题。可以用MTUinterface命令来改变默认的MTU,此命令格式如下:
mtu bytes
字节数可以是从64~6553。
(5) BW
接口带宽(BW)通常指的是接口的运行速率,用每秒千字节表示。因为以太网运行速率为10Mbps,所以BW值显示为10 000Kb。
可以用Bandwidth命令设置信息带宽值,但实际上不用它来调整接口的带宽,因为对于某些类型的介质,如以太网,带宽是固定的。对于其他的介质,如串行线,通常通过调整硬件来调整其运行速率。例如通过DSU/CSU上设置不同的时钟速率来提高或降低串行接口的运行速率。因此,bandwidth命令主要目的是使当前带宽与高层协议。可以通过以下命令格式设置带宽值,千位表示以千位每秒表示的带宽。Bandwidth kilobits
(6) DLY
此字段表示接口的延迟,用微秒表示。以太网的延迟(DLY)为1000s。可以使用delay interface命令为接口设置延迟值。此命令的格式如下:
delay tens-of-microseconds
(7) 可靠性
可靠性字段表示接口的可靠性,用255分之几表示。此字段中所显示的值由在5分钟内的幂平均值计算。因为以太网为每个桢计算CRC,所以可靠性是基于CRC错误率,而不是位错误率。255/255表示接口在5分钟内100%可靠。
虽然没有可靠性命令,可以考虑定期使用的一个重要命令是clear conuter EXEC命令。此命令的功能是清楚或重置接口计数器。此命令的一般格式取决于正在使用的路由器。下面显示的是第二种格式用于Cisco7000系列产品:
clear counter [type number]
clear counter [type slot/port]
type表示特定的接口类型。如果你不指定特定接口,所有接口的计数器都被清除。
(8) 负载
接口上的发送和接收负载均显示为255分之几。与可靠性字段类似,负载字段也是计算5分钟内的幂平均值。从上面可以看出,发送(Txload)负载表示为3/255,而接收(rxload)负载为39/255。因为以太网运行速率为10Mbps,所以可以通过将每分数乘以运行速率来获得接口活动的一般指示。这是因为每个以太网桢都至少有26个额外字节,而当信息字段少于45字节时,将使PAD字符添加到信息字段中。【未完待续】
使用CEF必须满足的条件
当您在网络中使用CEF时,请先考虑以下项目:
● 加载当前完整的Internet路由信息的平台所需的最小内存(推荐):
- 集中路由模块上需要128MB
- 每个线路卡上需要64MB
● CEF不能在一个线路卡上和VIP-分布式快速交换同时运行。
● 缺省情况下,如果 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不支持的功能时,路由器将采用更高级别的交换方法处理数据包。
丢弃邻接数据包被丢弃。这种邻接类型仅仅在12000系列路由器上出现。
释放邻接数据包被释放,但是前缀仍然有效。
没有被分解的邻接
当链路层头标信息被附加到数据包上时,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和邻接表的同步。
在12000系列路由器中,线路卡负责执行CEF交换。在其他路由器中,或许您使用的不是同一种类型的线路卡,有可能某个接口卡不支持CEF交换。当某个不支持CEF交换的线路卡收到数据包时,她将数据包转发给更高的交换层(比如路由处理模块)或者把数据包转发给下一跳处理。这种机制允许旧的接口模块和新的接口模块并存。
笔记
1Cisco12000系列千兆交换路由器上只运行dCEF模式。
2一个VIP卡上不允许同时运行分布式CEF交换和分布式快速交换。
3Cisco7200系列路由器不支持分布式CEF交换。
附加的新功能
在配置集中模式CEF和分布模式CEF时,您还可以配置以下功能:
● 分布式CEF支持访问控制列表
● 分布式CEF支持帧中继包
● 分布式CEF支持数据包分片
● 支持基于每一个包或者每一个目标的负载平衡
● 支持网络计费,可以收集数据包的个数和字节数
● 分布式CEF支持跨隧道的交换
配置任务
这部分描述配置CEF的必要选项和可选选项。第一个任务是必要的,其他都是可选的。
●启用和禁用CEF或者dCEF
●为CEF配置负载平衡
●为CEF配置网络计费
●为CEF配置跨隧道交换
启用和禁用CEF或者dCEF
如果用户的路由器中有接口处理器支持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命令实现。
笔记
在12000系列路由器上,您不可以在某个接口上禁用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支持跨隧道的交换,例如隧道。当你启用CEF或者dCEF模式时,跨隧道的交换会被自动启用,所以您无需再执行任何附加*作来启用跨隧道的交换。


