Интенсивное использование CPU в коммутаторе Catalyst 6500/6000 - Часть 2

Общие причины и решения проблем высокой загрузки ЦП

Недостижимости IP

Если группа доступа отклоняет пакет, MSFC отправляет сообщения о недостижимости ICMP. Это действие происходит по умолчанию.

С включенной по умолчанию командой ip unreachables механизм управления сбрасывает большинство отклоненных пакетов на аппаратную обработку. После этого механизм управления отправляет только небольшое количество пакетов с максимальной скоростью 10 п/сек на MSFC для сброса. Это действие генерирует сообщения о недостижимостях ICMP.

Сброс отклоненных пакетов и генерация сообщений о недостижимостях ICMP создают нагрузку на ЦП MSFC. Для устранения этой нагрузки можно выполнить команду конфигурации интерфейса no ip unreachables. Эта команда отключает сообщения о недостижимостях ICMP, что позволяет сбрасывать на аппаратную обработку все пакеты, отклоненные группой доступа.

Сообщения о недостижимостях ICMP не отправляются, если пакет отклонен VACL. Если обслуживание компьютеров выполняет квалифицированными инженерами, то они легко справятся с этой проблемой.

Преобразования NAT

NAT использует и аппаратную и программную пересылку пакетов. Первоначальная установка преобразований NAT должна выполняться программно, а дальнейшая пересылка выполняется аппаратно. NAT также использует таблицу Netflow (максимум 128 кБ). Поэтому если таблица Netflow заполнена, коммутатор начнет применять программную пересылку NAT. Обычно это случается при высоких всплесках трафика и приводит к увеличению загрузки ЦП коммутатора 6500.

Использование табличного пространства CEF FIB в кэш-таблице потока

Supervisor Engine 1 имеет кэш-таблицу потока, которая поддерживает 128000 записей. Однако по соображениям эффективности алгоритма хэширования эти записи адресуются от 32000 до 120000. В Supervisor Engine 2 таблица FIB генерируется и программируется в PFC. Таблица содержит до 256000 записей. Supervisor Engine 720 с PFC3-BXL поддерживает до 1000000 записей. После превышения этого пространства пакеты начинают коммутироваться программно. Это может вызвать высокую загрузку ЦП в RP. Чтобы проверить число маршрутов в таблице CEF FIB, используйте следующие команды:

Router#show processes cpu
CPU utilization for five seconds:  99.26%
                      one minute: 100.00%
                    five minutes: 100.00%

PID Runtime(ms) Invoked    uSecs    5Sec    1Min    5Min    TTY Process
--- ----------- ---------- -------- ------- ------- ------- --- ---------------
1   0           0          0          0.74%   0.00%   0.00% -2  Kernel and Idle
2   2           245        1000       0.00%   0.00%   0.00% -2  Flash MIB Updat
3   0           1          0          0.00%   0.00%   0.00% -2  L2L3IntHdlr    
4   0           1          0          0.00%   0.00%   0.00% -2  L2L3PatchRev   
5   653         11737      1000       0.00%   0.00%   0.00% -2  SynDi

!--- Output is suppressed.

26  10576       615970     1000       0.00%   0.00%   0.00% 0   L3Aging        
27  47432       51696      8000       0.02%   0.00%   0.00% 0   NetFlow        
28  6758259     1060831    501000    96.62%  96.00%  96.00% 0   Fib            
29  0           1          0          0.00%   0.00%   0.00% -2  Fib_bg_task  

!--- Output is suppressed.


CATOS% show mls cef
Total L3 packets switched:           124893998234
Total L3 octets switched:          53019378962495
Total route entries:                       112579
  IP route entries:                        112578
  IPX route entries:                            1
  IPM route entries:                            0
IP load sharing entries:                      295
IPX load sharing entries:                       0
Forwarding entries:                        112521
Bridge entries:                                56
Drop entries:                                   2


IOS% show ip cef summary
IP Distributed CEF with switching (Table Version 86771423), flags=0x0
  112564 routes, 1 reresolve, 0 unresolved (0 old, 0 new)
  112567 leaves, 6888 nodes, 21156688 bytes, 86771426
inserts, 86658859
invalidations
  295 load sharing elements, 96760 bytes, 112359 references
  universal per-destination load sharing algorithm, id 8ADDA64A
  2 CEF resets, 2306608 revisions of existing leaves
  refcounts:  1981829 leaf, 1763584 node

!--- You see these messages if the TCAM space is exceeded:

%MLSCEF-SP-7-FIB_EXCEPTION: FIB TCAM exception, Some entries will be software switched
%MLSCEF-SP-7-END_FIB_EXCEPTION: FIB TCAM exception cleared, all CEF entries will be 
  hardware switched

В Supervisor Engine 2 число записей FIB уменьшается наполовину, если настроена проверка RPF на интерфейсах. Такая настройка может привести к программной коммутации большинства пакетов и, в результате, к высокой загрузке ЦП.

Чтобы решить проблему высокой загрузки ЦП, включите суммирование маршрутов. Суммирование маршрутов может минимизировать задержку в сложной сети, уменьшая нагрузки на ЦП, требования к памяти и требование полосы пропускания.

Оптимизированное ведение журнала ACL

Оптимизированное ведение журнала ACL (OAL) обеспечивает аппаратную поддержку для ведения журнала ACL. Если OAL не настроено, обработка пакетов, требующих регистрации в журнале, выполняется полностью программно в MSFC3. OAL разрешает или сбрасывает пакеты на аппаратную обработку в PFC3. OAL использует оптимизированную процедуру отправки данных на MSFC3 для генерации сообщений регистрации.

Ограничение скорости пакетов для ЦП

В Supervisor Engine 720 ограничители скороти могут управлять скоростью, с которой пакеты могут поступать на программную обработку. Такое управление скоростью помогает предотвратить атаки, нацеленные на отказ в обслуживании (DoS). Несколько таких ограничителей скорости также можно использовать и в Supervisor Engine 2:

Router#show mls rate-limit
   Rate Limiter Type       Status     Packets/s   Burst
---------------------   ----------   ---------   -----
         MCAST NON RPF   Off                  -       -
        MCAST DFLT ADJ   On              100000     100
      MCAST DIRECT CON   Off                  -       -
        ACL BRIDGED IN   Off                  -       -
       ACL BRIDGED OUT   Off                  -       -
           IP FEATURES   Off                  -       -
          ACL VACL LOG   On                2000       1
           CEF RECEIVE   Off                  -       -
             CEF GLEAN   Off                  -       -
      MCAST PARTIAL SC   On              100000     100
        IP RPF FAILURE   On                 500      10
           TTL FAILURE   Off                  -       -
ICMP UNREAC. NO-ROUTE   On                 500      10
ICMP UNREAC. ACL-DROP   On                 500      10
         ICMP REDIRECT   Off                  -       -
           MTU FAILURE   Off                  -       -
           LAYER_2 PDU   Off                  -       -
            LAYER_2 PT   Off                  -       -
             IP ERRORS   On                 500      10
           CAPTURE PKT   Off                  -       -
            MCAST IGMP   Off                  -       -

Router(config)#mls rate-limit ?
  all        Rate Limiting for both Unicast and Multicast packets
  layer2     layer2 protocol cases
  multicast  Rate limiting for Multicast packets
  unicast    Rate limiting for Unicast packets

Например:

Router(config)#mls rate-limit layer2 l2pt 3000

Чтобы ограничить скорость всех пакетов, отправляемых CEF на MSFC, выполните команду, приведенную в этом примере:

Router(config)#mls ip cef rate-limit 50000

Чтобы уменьшить число пакетов, отправляемых на ЦП из-за TTL=1, выполните следующую команду:

Router(config)#mls rate-limit all ttl-failure 15


!--- where 15 is the number of packets per second with TTL=1.
!--- The valid range is from 10 to 1000000 pps.

Причиной высокой загрузки ЦП также могут быть пакеты с TTL=1, которые доходят до ЦП. Чтобы ограничить число пакетов, проходящих на ЦП, настройте аппаратный ограничитель скорости. Этот способ не поможет заблокировать одноклассники. Ограничители скорости могут ограничивать скорость пакетов, которые проходят из пути аппаратных данных на путь программных данных. Ограничители скорости защищают путь программных данных от перегрузки, сбрасывая трафик, превышающий настроенную скорость. Ограничение скорости настраивается с помощью команды mls rate-limit all ttl-failure.

Заказать звонок

Пожалуйста, оставьте свои контакты