路由器 : 思科 12000 系列路由器

在Cisco 12000系列互联网路由器体系结构上已忽略的数据包和没有内存丢包的故障排除

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文解释如何排除故障输出show interfaces命令在Cisco 12000SERIES互联网路由器为什么显示增长数被忽略错误。它为增长数在execute-on slot <slot-> show controllers中(frfab的输出也提供故障排除提示没有mem丢包|qm stat命令的tofab)。当排除故障这些错误中的任一个时,请验证计数器增加并且不是历史值。

注意: 增长数输入队列丢弃,显示在show interfaces输出,分开包括以在Cisco 12000SERIES互联网路由器的故障排除输入丢弃

先决条件

要求

本文要求对Cisco 12000SERIES互联网路由器体系结构,特殊Tofab和Frfab队列的了解。请参阅如何阅读show controllers frfab的输出|tofab队列命令供参考。

使用的组件

本文档中的信息基于以下软件和硬件版本。

  • 支持Cisco 12000SERIES互联网路由器的任何Cisco IOS 软件版本。通常这些是12.0S和12.0ST版本。

  • 所有Cisco 12000平台由本文包括。这些包括12008, 12012, 12016, 12404, 12410和12416。

本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

症状

Cisco 12000SERIES互联网路由器使用一个分布式体系结构保证最佳转发性能。要支持转发速率,它维护在两个Inbound和Outbound线路卡的数据包缓冲。这些数据包缓冲大小不同和通常设计支持最大传输单元(MTU)尺寸帧。

在它确定数据包的后出站接口,转发处理器执行以下:

  1. 转发处理器发送有信息的一台指示器关于数据包(内存的包括其位置)对出站接口的虚拟输出输出队列。

  2. 线卡的调度器发出请求对调度器。调度器发出授予,并且数据包从在交换结构间的缓冲内存发送到出局线路卡。

  3. 出局线路卡缓冲数据包。

  4. L3处理器和相关的专用集成电路(ASIC)在出站LC传输数据包接口。

如果出站接口是订购过量的,开始缓冲多余数据包。在期限持续的超额预订,出站LC的传输队列充满。在此情况下,下列根据出站LC发生:

出站LC引擎类型 对出站拥塞的答复 错误计数器
引擎0和1 发送反压力信号。入站接口上开始缓冲多余数据包。 被忽略错误在show interfaces命令输出中并且/或者没有mem丢包在入站LC的execute-on slot <slot-> show controllers tofab QM stat命令输出中,根据其转发Engine.�的L3
引擎2, 3, 4 丢弃在出口的所有多余数据包。 mem在出站LC的execute-on slot <slot-> show controllers frfab QM stat命令输出中不丢弃。

�You将收到L3引擎的0, 1被忽略错误和2个入口LCs。然而,四,引擎2 LC的16个和更多端口,忽略的计数器不会增加。

在所有智能联网设备上,当一个或更多高速接口相对提供一个低速接口时,在接口速率的一不匹配发生。因为更慢速度出站接口可能不能一样快速的返回缓冲区,象更加快速的入站接口上发送他们对输出保持队列,缓冲区返回的延迟导致某种丢包。此数据包流打破假定出站接口返回缓冲区以速率缓冲管理时间。

除在接口速率的一不匹配之外,被忽略错误能增加,当速率到达数据包比CPU能处理他们极大时。此情况是非常少见的在Cisco 12000和通常起因于很大数量的非常小数据包,或者,当在软件方面实现这些功能的一个CPU密集型功能,例如访问控制列表(ACL)或流量监管,在LC启用。这是大量功能在软件方面实现的引擎0 LCs的论点。然而,在最新引擎,几乎所有功能在硬件方面实现。例如,引擎3 (IP服务引擎- ISE)和引擎4+线卡为边缘应用程序设计并且实现增强的IP RTP优先策略服务(例如服务质量- QoS)在硬件方面没有性能影响。此硬件示例包括1端口CHOC-48 ISE、4端口CHOC-12 ISE、16端口OC-3 POS ISE、4端口OC-12 POS ISE、1端口OC-48 POS ISE和1端口OC-48 POS ISE。

忽略的计数器可能也被增加,每当数据包在进入线路卡到达,并且一适当的大小数据包缓冲不是可用处理此数据包。然而,此情况是非常少见的,并且在本文没有包括。

管理出站接口超量 预订

对输出接口超额预订和没有mem丢包的解决方案造成的被忽略错误是相同的为任何L3引擎类型--防止缓冲区缺乏。换句话说,我们需要防止Frfab队列填装的机制。

引擎0和1

简而言之,忽略的计数器被增加,当数据包在进入线路卡(LC)时到达,并且一适当的大小数据包缓冲不是可用处理此数据包。因此,已忽略的数据包在Cisco IOS软件方面不典型地指向一bug。

这是从show interfaces命令的一输出示例:用在Cisco 12000系列路由器的非无效的忽略的计数器:

router#show interfaces G3/0
GigabitEthernet3/0 is up, line protocol is up
  Hardware is GigMac GigabitEthernet, address is 0030.71f5.7980 
     (bia 0030.71f5.7980)
  MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec, rely 255/255, load 1/255
  Encapsulation ARPA, loopback not set
  Keepalive not set
  Full-duplex mode, link type is force-up, media type is SX
  output flow-control is unsupported, input flow-control is unsupported
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input 00:00:00, output 00:00:00, output hang never
  Last clearing of "show interface" counters 00:00:07
  Queueing strategy: fifo
  Output queue 0/40, 0 drops; input queue 0/75, 0 drops
  5 minute input rate 99000 bits/sec, 74 packets/sec
  5 minute output rate 104000 bits/sec, 68 packets/sec
    478 packets input, 71057 bytes, 0 no buffer
    Received 19 broadcasts, 0 runts, 0 giants, 0 throttles
    2 input errors, 2 CRC, 0 frame, 0 overrun, 25 ignored

    !--- Ignored counter is > 0. Ensure it is incrementing.

    
    0 watchdog, 53 multicast, 0 pause input
    541 packets output, 139133 bytes, 0 underruns
    0 output errors, 0 collisions, 0 interface resets
    0 babbles, 0 late collision, 0 deferred
    0 lost carrier, 0 no carrier, 0 pause output
    0 output buffer failures, 0 output buffers swapped out

当出站LC是引擎0或1时,传送反压力信息对告诉另一个的LCs他们不再发送数据到该特定LC。入站接口上然后缓冲在其Tofab队列的多余数据包与此目的地地址槽相应。

要隔离最可能原因忽略的计数器为什么增加,您需要查看入口LC的Tofab队列。使用attach命令,您能或者附加到在维护总线(MBUS)的LC,或者请使用show controllers tofab queue命令execute-on slot的<slot->检查Tofab队列。执行此命令几次并且寻找以下症状:

  • 减小和低值或者值为0在非IPC自由队列的#Qelem列

  • 在#Qelem列的大价值在目的地地址槽队列。

引擎2, 3, 4

线卡使用更加最近的L3引擎体系结构不使用一个反向压力机制。反而,当接口是订购过量的时,并且Frfab队列变得耗尽,数据包丢弃,当他们在出口线路卡到达。

当一个更加小的池变得耗尽时,引擎2 LC不下跌回到下个更加大的缓冲池。划分为上一步机制为在Tofab侧(Rx)的引擎2 LC只实现。如果它发生, "bump count"计数器在stat命令execute-on slot <slot> show controller的tofab QM的输出中将增加。

这些丢包在输出被计算作为没有mem丢包execute-on slot <slot-> show controllers frfab QM stat命令中,如下所示:

Router#execute-on slot 1 show controller
frfab QM stat
========= Line Card (Slot 1) =======

174 no mem drop, 0 soft drop, 0 bump count 

!--- Look for an incrementing value for the "no mem drop" counter

0 rawq drops, 0 global red drops, 0 global force drops
0 no memory (ns), 0 no memory hwm (Ns)
no free queue
0       0       0       0
0       0       0       0
0       0       0       0
0       0       0       0
0 multicast drops
Tx Counts
 Interface 0
8390658710246 TX bytes, 2098330790 TX pkts, 212452 kbps, 6641 pps
 Interface 1
0 TX bytes, 0 TX pkts, 0 kbps, 0 PPS Interface 2
0 TX bytes, 0 TX pkts, 0 kbps, 0 PPS Interface 3
0 TX bytes, 0 TX pkts, 0 kbps, 0 PPS

您需要查找方式防止Frfab侧缓冲到LC备份对入站接口上或丢弃数据包的点。

所有线卡的一个简单解决方案,除了引擎2 LC,将使可用缓冲区数的降低到在多接口LC的一个特殊的出局接口。默认情况下,接口能使用所有被雕刻的FrFab缓冲区。请使用tx-queue-limit命令配置非默认值。这比数据包配置的号码防止出口LC缓冲更多在接口队列的该特定端口的。确保您配置足够此编号低,以便不包含此接口的所有Frfab队列。注意此方法不区分在高和低优先级信息包之间和为特定接口强烈实施尾部丢弃。

引擎3线卡要求使用模块化QoS CLI (MQC)而不是传统命令行界面(CLI)。基于引擎2的线路卡不支持此命令。

使用传统业务类别(CoS)配置,这是配置示例:

interface POS 0/0
    tx-queue-limit <max Q length in packets>

使用MQC,这是配置示例:

policy-map TX_QUEUE_LIMIT
    class class-default
        queue-limit 

interface POS 0/0
    service-policy out TX_QUEUE_LIMIT

另一解决方案将应用为一个更加快速的输出接口,给我们一条更加大的管道。但是更加大的管道能迅速填装。因此,推荐的解决方案将实现在出站LC的服务质量(QoS)机制。

思科的加权随机早期检测(WRED)功能实现被区分的或智能丢弃机制。它设计与可适应流量一起使用,例如TCP流。它监控队列大小并且工作通过掉数据包维护一个一致平均队列大小从多种流,当计算的平均队列在可配置最低门限值上上升。

当实现在Cisco 12000系列, WRED可以防止Frfab队列填装和重要地是有选择性的关于哪些数据包丢弃。引擎0 LCs支持WRED在软件方面,而引擎1 LCs根本不支持WRED。另一个L3引擎LCs支持WRED在硬件方面。

关于配置WRED的更多信息,参考这些文档:

此拥塞避免机制在一个基于TCP的环境仅工作。TCP响应适当地-均等结实地-对流量丢包通过减速其数据流传输。如何请参阅TCP把柄数据流损失,并且路由器如何与TCP呼应关于TCP如何的详情起反应对包丢失。

使用在引擎0和引擎1 LCs的承诺接入速率(CAR)在Cisco 12000系列的另一支持的QoS机制是流量监管和根据接口速率控制已知的CAR修正的版本(PIRC)在引擎2 LC。配置在出站接口的流量监管。

管理输入站路卡上的 CPU 超载

此情况是非常少见的!

您能检查CPU使用execute-on slot <slot -> show controllers tofab queues命令,是否在流入LC被超载。如果看到在" Raw Queue "行的#Qelem列的非常大量,意味着过多的数据包打算由(在LC查找)处理的CPU。因为CPU不能跟上相当数量数据包,您将开始得到已忽略的数据包。这些数据包被导向对LC的CPU,不对千兆路由处理器(GRP)!

什么您需要此时执行是班次每一部分的从此入站LC的流量,以便其CPU被影响。

您应该也查看一下检查LC的配置是否有对此配置的一些功能影响CPU。一些功能(例如CAR、ACL和Netflow)在软件方面能降低LC的性能,当实现(仅在引擎0 LCs)。如果这是实际情形,您应该通过删除功能或升级Cisco IOS软件相应地操作对同一个功能实施改善的一最新版本(例如Turbo ACL)。请参阅功能为不同的LCs实现或改善思科12000系列路由器的版本注释发现。

最后,唯一的解决方案可能将交换LC到一更加最近的一个请求的功能在硬件里的地方实现。这确实取决于LC的引擎类型。

您能使用以下快捷命令确定LC的L3引擎类型:

Router#show diag | i (SLOT | Engine)
...
SLOT 1  (RP/LC 1 ): 1 port ATM Over SONET OC12c/STM-4c Multi Mode
  L3 Engine: 0 - OC12 (622 Mbps)
SLOT 3  (RP/LC 3 ): 3 Port Gigabit Ethernet
  L3 Engine: 2 - Backbone OC48 (2.5 Gbps)
...

注意: 引擎3 (IP服务引擎- ISE)和引擎4+线卡为边缘应用程序设计并且实现增强的IP RTP优先策略服务(例如QoS)在硬件方面没有性能影响。

设计指南摘要

  • 请使用涡轮ACL,通过允许路由器在下载前编译ACL优化性能他们到LC处理器。

  • 避免使用在ACL的“日志”关键字。

  • 避免流出的ACL,当可能。在一个系统中用引擎0, 1个和2个LCs,所有处理ACL在入站LC完成。outbou nd ACL过滤在入站卡执行,一旦知道对哪出站接口数据包是注定的。为此,配置在接口的一出站ACL影响在系统的所有LCs。另外,引擎2 LC在执行硬件转发的ASIC可同时执行流入或流出的ACL,但是不是两个。如果配置入站和出站ACL, LC下跌回到流出的访问列表的基于CPU的转发,影响LC的交换性能。然而,更新的引擎例如引擎3和引擎4+为增强的IP RTP优先策略服务是最佳类似ACL并且处理在流出的LC的出站ACL。

  • 分配要求特定功能的流量到一套LCs。

  • 分配不要求的流量功能到另一套LCs维护高峰信息包转发性能。

  • 当高性能是需要的时,请以更高的引擎类型使用LCs。

  • 设计骨干网或面向内核的LCs运行支持硬件或者微码功能。

案例研究

此案例研究显示如何排除故障增加在LC的接口的被忽略错误在slot 6.的。

步骤1 - 检查插槽 6 上的 ToFab 队列。

Router#exec slot 6 show controllers tofab queue
========= Line Card (Slot 6) =======
Carve information for ToFab buffers
   SDRAM size: 134217728 bytes, address: 30000000, carve base: 30019100
   134115072 bytes carve size,  4 SDRAM bank(s), 8192 bytes SDRAM pagesize,
      2 carve(s)
   max buffer data size 4544 bytes, min buffer data size 80 bytes
   174538/174538 buffers specified/carved
   110797216/110797216 bytes sum buffer sizes specified/carved
        Qnum    Head    Tail            #Qelem  LenThresh
        ----    ----    ----            ------  ---------

   4 non-IPC free queues:
        88964/88964 (buffers specified/carved), 50.97%, 80 byte data size
        1       21120          84604     81074   262143
        54076/54076 (buffers specified/carved), 30.98%, 608 byte data size
        2       122270         116965    49567   262143
        26165/26165 (buffers specified/carved), 14.99%, 1568 byte data size
        3       164160         145355    19518   262143

        !-- Out of the 26165 buffers that are carved, only 19518 are available

        5233/5233 (buffers specified/carved), 2.99%, 4544 byte data size
        4       172325         172088    5233    262143
   IPC Queue:
        100/100 (buffers specified/carved), 0.5%, 4112 byte data size
        30      61             60              100     262143
   Raw Queue:
        31      44229          88895        0       43634

        !-- The Raw Queue has a low or 0 value for the #Qelem column, indicating
        !-- that the CPU is not overwhelmed with packets destined to it.

   ToFab Queues:
        Dest
        Slot
        0       73769          60489           0       262143
        1       7909           27395           0       262143
        2       61416          71346           0       262143
        3       80352          14567           0       262143
        4       138236         107121        18955     262143     

        !-- 18955 packets are waiting for space in the outbound queues
        !-- on the LC in slot 4.

        5       4852           48171           0       262143
        6       98318          111757          0       262143
        7       44229          88895           0       262143
        8       0              0               0       262143
        9       0              0               0       262143
        10      0              0               0       262143
        11      0              0               0       262143
        12      0              0               0       262143
        13      0              0               0       262143
        14      0              0               0       262143
        15      0              0               0       262143
 Multicast      0              0               0       262143

步骤 2 - 检查插槽 4 上的 FrFab 队列。

因为Tofab队列输出指示为在插槽4的LC注定的很大数量的排队的信息包,请检查在此LC的Frfab队列。

Router#exec slot 4 show controllers frfab queue
========= Line Card (Slot 4) =======
Carve information for FrFab buffers
   SDRAM size: 67108864 bytes, address: 20000000, carve base: 2002D100
   66924288 bytes carve size,  0 SDRAM bank(s), 0 bytes SDRAM pagesize, 
      2 carve(s)
   max buffer data size 4544 bytes, min buffer data size 80 bytes
   65534/65534 buffers specified/carved
   66789056/66789056 bytes sum buffer sizes specified/carved
        Qnum    Head    Tail            #Qelem  LenThresh
        ----    ----    ----            ------  ---------
   4 non-IPC free queues:
        
        26174/26174 (buffers specified/carved), 39.93%, 80 byte data size
        1       10123   4332            14515   65535
        
        19630/19630 (buffers specified/carved), 29.95%, 608 byte data size
        2       27898   37167           12279   65535
        
        13087/13087 (buffers specified/carved), 19.96%, 1568 byte data size
        3   0       52275          0       65535        

        !-- Zero buffers available for this pool

        
        6543/6543 (buffers specified/carved), 9.98%, 4544 byte data size
        4       60805   60804           6543    65535
   
   IPC Queue:
        
        100/100 (buffers specified/carved), 0.15%, 4112 byte data size
        30      75      74              100     65535
   
   Raw Queue:
        
        31      0       80              0       65535
   
   Interface Queues:
        
        0       0       39413           0       65535
        1       0       44192           0       65535
        2       48426   58230           32111   65535     

        !-- Interface 2 is using half or 32111 of the carved packet buffers

        3       0       41219           0       65535

第 3 步 - 比较同一个超载接口的 show interfaces 命令的输出。

匹配在与为同一个接口输出的show interfaces的show controllers frfab队列输出中指示的订购过量接口。以下输出确认输出接口速率是以线路速率并且是订购过量的:

Router#show interfaces POS 4/2
POS4/2 is up, line protocol is up
  Hardware is Packet over SONET
  Description: Pacbell OC3 to other ISP...
  Internet address is 10.10.10.10/30
  MTU 4470 bytes, BW 155000 Kbit, DLY 100 usec, rely 255/255, load 156/255
  Encapsulation HDLC, crc 32, loopback not set
  Keepalive set (10 sec)
  Scramble enabled
  Last input 00:00:01, output 00:00:03, output hang never
  Last clearing of "show interface" counters never
  Queueing strategy: FIFO  Output queue 0/300, 0 drops; input queue 0/300, 
     0 drops
  5 minute input rate 20274000 bits/sec, 6263 packets/sec
  5 minute output rate 148605000 bits/sec, 28776 packets/sec
  
!-- The output interface rate is at line rate which means that the interface 
  !-- is oversubscribed.


     1018621328 packets input, 2339977099 bytes, 0 no buffer
     Received 0 broadcasts, 1 runts, 0 giants, 0 throttles
              0 parity
     1 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     378645 packets output, 156727974 bytes, 0 underruns
     0 output errors, 0 applique, 0 interface resets
     0 output buffer failures, 0 output buffers swapped out
     1 carrier transitions

第 4 步 - 实施解决方案。

请参阅本文的解决方案部分关于以下步骤解决增加根据特殊的出局接口的体系结构的被忽略错误。例如,在引擎0 LC,将若干流量转变的尝试为另一个接口或,作为临时测量,减少此特定接口能从线卡的自由队列使用数据包缓冲的数量。请使用以下命令:

Router(config)#int POS 4/2
Router(config-if)#tx-queue-limit 5000

Cisco IOS 软件 Bug

有时计数器增加由于Cisco IOS软件缺陷。请务必您运行在您的系列的最新的可用的Cisco IOS软件版本摆脱已经修复的所有Bug。如果仍然看到已忽略的数据包,并且本文档中的信息不解决您的问题,与协助的思科的技术支持中心(TAC)联系

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 18003