Маршрутизаторы : Маршрутизаторы Cisco серии 12000

Устранение неполадок, связанных с игнорируемыми пакетами и нехваткой памяти на IP-маршрутизаторе серии Cisco 12000

5 апреля 2016 - Машинный перевод
Другие версии: PDF-версия:pdf | Отзыв


Содержание


Введение

Данный документ объясняет устранение неполадок, связанных с увеличивающимся числом игнорируемых ошибок в выводе команды show interfaces на IP-маршрутизаторе Cisco серии 12000. Это также предоставляет советы по устранению проблем для растущего числа никакого mem, заглядывает выходным данным execute-on slot <slot#> show controllers (frfab | tofab) qm команда статистики. При поиске и устранении любой из этих ошибок убедитесь, что показание счетчика увеличивается, а не является статистическим значением.

Примечание: Растущее число отбрасываний входящей очереди, как показано в выходных данных команды show interfaces, описано отдельно в разделе «Устранение неисправностей при просмотре входной информации на Интернет-маршрутизаторе Cisco серии 12000».

Предварительные условия

Требования

Данный документ требует понимания архитектуры IP-маршрутизатора Cisco серии 12000, в частности очередей ToFab и FrFab. Посмотрите, Как Считать Выходные данные Команд show controllers frfab | tofab queue для ссылки.

Используемые компоненты

Сведения, содержащиеся в данном документе, относятся к следующим версиям программного и аппаратного обеспечения.

  • Любой выпуск ПО IOS� Cisco, который поддерживает Интернет-маршрутизатор Cisco 12000 серии. Обычно это выпуски 12.0S и 12.0ST.

  • В этом документе описаны все платформы Cisco 12000. Они включают 12008, 12012, 12016, 12404, 12410 и 12416.

Сведения, представленные в этом документе, были получены от устройств в специфической лабораторной среде. Все устройства, используемые в этом документе, были запущены с чистой конфигурацией (конфигурацией по умолчанию). При работе с реальной сетью необходимо полностью осознавать возможные результаты использования всех команд.

Условные обозначения

Дополнительные сведения об условных обозначениях см. в документе Технические рекомендации Cisco. Условные обозначения.

Признаки

Интернет-маршрутизатор Cisco 12000 серии использует распределенную архитектуру для обеспечения оптимальной скорости переадресации. Чтобы обеспечить высокую скорость переадресации, буферы пакетов поддерживаются на входящей и исходящей линейной плате. Эти буфера пакетов варьируются по размеру и обычно разработаны для поддержки Максимального размера передаваемого блока данных (MTU) - измеренные кадры.

После того, как это определит исходящий интерфейс для пакета, процессор переадресации делает придерживающееся:

  1. Процессор пересылки отправляет указатель вместе со сведениями о пакете (включая его расположение в памяти) в виртуальную выходную очередь исходящего интерфейса.

  2. Планировщик линейной карты отправляет запрос планировщику. Планировщик дает разрешение, и пакет отправляется из буферной памяти через коммутирующую матрицу на исходящую линейную плату.

  3. Исходящая линейная карта буферизирует пакеты.

  4. Процессор третьего уровня и связанные специализированные интегральные схемы (ASIC) на исходящей LC передают пакеты за пределы интерфейса.

Если исходящий интерфейс превышен, он начинает буферизовать избыточные пакеты. Во время периодов устойчивой избыточной подписки, заливки очередей передачи исходящего LC. В этой ситуации в зависимости от исходящего LC может произойти следующее:

Тип модуля исходящей платы LC Ответ на перегрузку исходящего трафика Счетчик ошибок
Механизм 0 и 1 Отправляется сигнал противодействия. Входной интерфейс начинает буферизовать избыточные пакеты. Пропущенные ошибки в выводе команды show interfaces и/или команды no mem drops in execute-on slot <slot#> show controllers tofab QM stat входящего LC, в зависимости от его механизма пересылки L3. �
Engine 2, 3, 4 Отбрасывает любые избыточные пакеты на выходе. Никакой mem не заглядывает execute-on slot <slot#> выходные данные command статистики QM frfab show controllers на исходящем LC.

�You получит пропущенные ошибки для Механизмов L3 0, 1, и 2 входных LC. При этом для четырех, шестнадцати и более портов на Engine 2 LC значение счетчика пропущенный ошибок увеличиваться не будет.

У любого интеллектуального сетевого устройства при обеспечении относительно низкоскоростных интерфейсов одним или несколькими высокоскоростными интерфейсами возникает несоответствие скоростей интерфейсов. Поскольку менее скоростной исходящий интерфейс не может, как правило, возвращать буферы так же быстро, как более скоростной исходящий интерфейс посылает их в выходную очередь ожидания, задержка возврата буфера приводит к определенному типу отбрасываний. Этот поток пакетов разрушает предположение, что исходящий интерфейс возвращает буфер со скоростью организации буферизации данных.

В дополнение к несоответствию в интерфейсных скоростях могут инкрементно увеличиться пропущенные ошибки, когда скорость поступающих пакетов больше, чем ЦПУ может обработать их. Такая ситуация крайне нетипична для Cisco 12000 и обычно возникает при обработке большого числа очень маленьких пакетов, или если на LC включена поддержка какого-либо программного средства, активно потребляющего ресурсы CPU, например списков управления доступом (ACL) или упорядочения трафика. Дело обстоит так для Механизма 0 LC, где много опций реализовано в программном обеспечении. Однако на более поздних механизмах, почти все опции реализованы в аппаратных средствах. Например, Механизм 3 (Механизм IP-сервисов - ISE) и Механизм 4 + линейные карты разработаны для Граничных приложений и внедряют сервисы улучшенного IP (такие как Качество обслуживания - QoS) в аппаратных средствах без влияния на производительность. Примеры подобного оборудования: CHOC-48 ISE с одним портом, CHOC-12 ISE с 4-мя портами, OC-3 POS ISE с 16-ю портами, OC-12 POS ISE с 4-мя портами, OC-48 POS ISE с одним портом и OC-48 POST ISE с одним портом.

Значение счетчика пропущенных ошибок может также увеличиваться, когда на входную линейную плату приходит пакет, для обработки которого не хватает размера буфера пакетов. Однако такие условия создаются очень редко и не рассматриваются в данном документе.

Управление избыточной подпиской на исходящий интерфейс

Решением пропущенных ошибок и никаких отбрасываний mem, вызванных превышением подписки выходного интерфейса, является то же для любого типа Механизма L3 - предотвращают буферное исчерпание ресурсов. Другими словами, нам нужен механизм, который не даст заполниться очередям FrFab.

Механизмы 0 и 1

То есть значение счетчика пропущенных ошибок увеличивается, когда на входную линейную плату (LC) приходит пакет, для обработки которого не хватает размера буфера пакетов. Таким образом, проигнорированные пакеты обычно не могут указывать на ошибки в программном обеспечении Cisco IOS.

Вот пример выходных данных от команды 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, то она посылает на другие LC сообщение противодавления, свидетельствующее о том, что в дальнейшем отправлять данные на эту конкретную LC не следует. Входной интерфейс тогда буферизует избыточные пакеты в своих очередях ToFab, соответствующих этому конечному слоту.

Чтобы отделить наиболее вероятную причину увеличения счетчика пропущенного, нужно посмотреть на очереди ToFab входного LC. Можно присоединиться к линейной плате через шину обслуживания (MBUS) с помощью команды attach либо с помощью команды execute-on slot <slot#> show controllers tofab queue для проверки очередей ToFab. Выполните эту команду несколько раз и постарайтесь найти следующие симптомы:

  • Низкие убывающие или нулевые значения в столбце #Qelem для свободной очереди без использования IPC

  • Большое значение в столбце #Qelem в очереди слота назначения.

Механизмы 2, 3, 4

Линейные карты с помощью более свежей архитектуры Механизма L3 не используют механизм противодавления. Вместо этого, когда интерфейс превышает подписку, а очередь FrFab исчерпывается, при поступлении на выходную линейную плату пакеты просто отклоняются.

Линейные платы Engine 2 не используют следующий больший пул буферов, если меньший пул исчерпан. Механизм нейтрализации был только внедрен для LC Engine 2 на стороне ToFab (Rx). В этом случае в выходных данных команды execute-on slot <slot> show controller tofab QM stat значение счетчика "bump count" увеличится.

Такие сбросы учитываются как нехватка памяти (no mem drops) в выходных данных команды 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 или выполняет резервное копирование к входному интерфейсу или просто отбрасывает пакеты.

Простое решение для всех линейных карт, кроме LC Engine 2, должно сократить количество буферов, доступных конкретному исходящему интерфейсу на мультиинтерфейсном LC. По умолчанию может использовать все выделенные буферы FrFab. Используйте команду tx-queue-limit для настройки нестандартного значения. Это предотвращает использование выходным LC буферов, количество которых превышает установленное число пакетов в очереди интерфейса для определенного порта. Это число должно быть достаточно низким, чтобы не включать все очереди FrFab для данного интерфейса. Обратите внимание на то, что этот метод не различает низкий и высокий приоритеты пакетов, а просто более агрессивно отбрасывает остаток для заданного интерфейса.

Линейные платы Engine 3 требуют использования модульного интерфейса QoS CLI (MQC), а не старого интерфейса командной строки (CLI). Эта команда не поддерживается на основанных на engine 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

Другое решение состоит в том, чтобы внедрить более быстрый выходной интерфейс, который дает нам больший канал. Но большие каналы могут заполниться быстро. Таким образом рекомендуемое решение должно внедрить механизмы Качества обслуживания (QoS) на исходящем LC.

Функция Взвешенного произвольного раннего обнаружения (WRED) Cisco внедряет дифференцируемый или интеллектуальный механизм сброса. Разработан для работы с адаптивным трафиком, например, с потоками TCP. Контролирует размер очереди и поддерживает постоянный средний размер очереди, случайным образом отбрасывая пакеты из разных потоков в случае, если расчетный средний размер очереди превышает заданный минимальный порог.

Если в маршрутизаторах Cisco серии 12000 реализована функция WRED, она может предотвратить переполнение очередей FrFab, избирательно отбрасывая пакеты. Engine 0 LC поддерживают механизм WRED на программном уровне, тогда как Engine 1 LC полностью не поддерживают WRED. Другие LC Механизма L3 поддерживают WRED в аппаратных средствах.

Для получения дополнительной информации о настройке WRED сошлитесь на эти документы:

Данный механизм предотвращения перегрузок работает только в среде на основе TCP. TCP отвечает должным образом – даже устойчиво – на падения трафика, замедляя перенос своего трафика. Посмотрите, Как Потеря трафика Маркеров TCP и Как Маршрутизатор Взаимодействует с TCP для подробных данных о том, как TCP реагирует на потерю пакета.

Другой поддерживаемый механизм QoS на Серии Cisco 12000 является мониторингом трафика с помощью Согласованной скорости доступа (CAR) на Механизме 0 и Механизме 1 LC и измененная версия CAR, известного согласно Интерфейсному Регулированию скорости (PIRC) на LC Engine 2. Настройте политики трафика на исходящем интерфейсе.

Управление перегруженным CPU на линейной плате входящего канала

Это чрезвычайно редкая ситуация!

Можно проверить, перегружен ли CPU на входящей LC, используя команду execute-on slot <slot#> show controllers tofab queues. Если в столбце #Qelem строки "Raw Queue" стоит очень большое число, это значит, что для обработки CPU, расположенным на LC, отправлено слишком много пакетов. Вы начнете получать пропущенные пакеты, потому что ЦПУ не может не отставать от суммы пакетов. Эти пакеты направлены к ЦПУ LC, не к Gigabit Route Processor (GRP)!

В этот раз необходимо сдвинуть чаcть трафика с этой входящей LC, чтобы ее CPU был менее нагружен.

Следует также проверить, есть ли в конфигурации LC какие-либо функции и параметры, которые могут влиять на CPU. Некоторые функции (например, CAR, ACL и NetFlow) могут снизить производительность LC при программной реализации (только на LC Engine 0)., Если это верно, необходимо действовать соответственно или по удалению функции или по обновлению программного обеспечения Cisco IOS к более позднему выпуску, где та же реализация функции улучшена (такие как Turbo ACL). Обратитесь к проектной документации Cisco 12000 Series Routers, чтобы выяснить, какая функция была реализована или улучшена для различных LC.

В результате, единственным решением остается подкачка LC для увеличения частоты в тех случаях, когда необходимая функция встроена в аппаратную часть. Это действительно зависит от Типа модуля LC.

При помощи следующей команды можно определить тип устройства L3 на LC:

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)
...

Примечание: Линейные платы Engine 3 (модуль IP-служб - ISE) и Engine 4+ предназначены для приложений Edge и реализуют улучшенные IP-службы (например, QoS) в оборудовании без негативного влияния на производительность.

Краткое изложение Руководства по проектированию

  • Используйте списки Turbo ACL, обеспечивающие оптимизацию производительности за счет компиляции списков ACL до загрузки их в процессор LC.

  • Избегайте использования ключевого слова "log" в списках ACL.

  • По возможности избегайте исходящих списков ACL. В системе с Механизмом 0, 1 и 2 LC, вся обработка ACL сделана на входящем LC. Даже фильтрация исходящих списков ACL выполняется на входящей плате, как только станет известно, какой исходящий интерфейс является получателем пакета. По этой причине настройка исходящего ACL для интерфейса влияет на все LC в системе. В дополнение, линейные платы Engine 2 могут выполнять входящие или исходящие операции ACL (но не те и другие одновременно) в ASIC, который производит аппаратную переадресацию. Если настроены входящий и исходящий списки ACL, LC использует перенаправление на основе CPU для исходящих списков доступа, что влияет на производительность коммутации LC. Однако, более поздние версии модулей Engines, такие как Engine 3 и Engine 4+ оптимизированы в большей степени для улучшенных служб IP, таких как ACL и процесс вывода ACL на выходной линейной плате LC.

  • Назначьте трафик, требующий определенных функций к одному набору LC.

  • Для поддержания пиковой скорости пересылки пакетов присвойте трафик, не требующий специальных функций, другому набору LC.

  • Используйте LC c ядром более мощных типов, если требуется повышенная производительность.

  • Проектирование LC для опорной или базовой сети для запуска средств, поддерживаемых аппаратно или микропрограммой.

Примеры практического применения

Эти Примеры практического применения показывает, каким образом устранять неполадки, включающие пропущенные ошибки интерфейса LC в разъеме 6.

Шаг 1 – проверьте очереди ToFab в слоте 6.

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. Проверьте очереди FrFab в слоте 4.

Так как Выходные данные очереди ToFab указали, что большое число пакетов в очереди, предназначенных для LC в слоте 4, проверяет очереди FrFab на этом LC.

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 controllers frfab queue" с выводом команды "show interfaces" для того же интерфейса. Следующие выходные данные подтверждают, что скорость интерфейса вывода равна скорости линии и превышает выделенный объем трафика:

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 – реализация решения.

Следующие шаги по устранению увеличивающегося числа пропущенных ошибок, основанные на архитектуре определенного исходящего интерфейса, см. в разделе решений данного документа. Например, на Engine 0 линейной платы попробуйте направить часть трафика в другой интерфейс или, как временную меру, уменьшить число буферов пакетов, которое определенный интерфейс может использовать из свободных очередей линейной платы. Используйте следующую команду:

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

Ошибки в программном обеспечении Cisco IOS

Иногда значения счетчиков возрастают из-за неисправности программного обеспечения Cisco IOS. Убедитесь, что запущен самый последний доступный Cisco IOS Software Release в вашей системе, чтобы избавиться от всех тех ошибок, которые уже были исправлены. Если вы все еще видите пропущенные пакеты, и сведения в этом документе не решают проблему, связываются с Центром технической поддержки (TAC) Cisco для помощи.

Связанные обсуждения сообщества поддержки Cisco

В рамках сообщества поддержки Cisco можно задавать и отвечать на вопросы, обмениваться рекомендациями и совместно работать со своими коллегами.


Дополнительные сведения