Устранение ошибки Cisco %PLATFORM-3-TCAM_FULL: исчерпание памяти TCAM
- В системном журнале фиксируется
%PLATFORM-3-TCAM_FULL: Hardware TCAM lookup table is full / ACL cannot be programmed. - Вновь добавленные правила Security ACL, PBR или QoS перестают работать на интерфейсах.
- Часть пакетов начинает пересылаться программно через центральный процессор, вызывая падение Throughput.
- Команда
show platform tcam utilizationпоказывает 100% заполнение одного из банков памяти (Security, Routing или QoS).
1. Просмотр утилизации банков TCAM памяти
Switch# show platform tcam utilization
Switch# show platform hardware tcam utilization table detail2. Проверка текущего SDM шаблона коммутатора
Switch# show sdm prefer3. Смена SDM-шаблона под профиль сети (Routing / Access / Dual-Stack)
Если на L3 коммутаторе не хватает места под маршруты или ACL, выберите подходящий профиль (требуется перезагрузка):
Switch(config)# sdm prefer routing
! Либо для гибридных сетей с длинными ACL:
Switch(config)# sdm prefer dual-ipv4-and-ipv6 default
Switch# copy running-config startup-config
Switch# reload4. Оптимизация списков доступа (Access-List Optimization)
Объединяйте разрозненные ACE с помощью Object Groups для минимизации используемых масок TCAM:
Switch(config)# object-group network CORPORATE_NETS
Switch(config-network-group)# 10.10.0.0 255.255.0.0
Switch(config-network-group)# 10.20.0.0 255.255.0.0
! Использование единого правила вместо десятка строчек
Switch(config)# ip access-list extended FILTER_FW
Switch(config-ext-nacl)# permit tcp object-group CORPORATE_NETS any eq 4435. Отключение аппаратного логирования ACL (log / log-input)
Правила с параметром log заставляют ASIC дублировать запись и отправлять трафик на CPU:
Switch(config-ext-nacl)# no permit ip any any log
Switch(config-ext-nacl)# permit ip any any Частые вопросы (FAQ)
Что такое память TCAM в коммутаторах Cisco?
TCAM (Ternary Content Addressable Memory) — специализированная сверхбыстрая память ASIC, позволяющая выполнять аппаратный поиск по маршрутам, маскам подсетей, ACL и QoS за один такт процессора.
Почему использование операторов 'range' и 'neq' в ACL быстро забивает TCAM?
Диапазоны портов (например, range 1024 65535) не могут быть описаны одной битовой маской и компилируются аппаратным транслятором в десятки отдельных записей LOU (Logical Operation Units) в TCAM.
Что произойдет, если ACL не поместился в TCAM?
В зависимости от модели коммутатора трафик либо начнет сбрасываться (Fail-Close), либо коммутатор перейдет в программный режим обработки пакетов процессором (Software Fallback), что вызовет сильные зависания.
Как узнать, какое именно правило ACL вызвало переполнение?
Используйте команду 'show platform hardware tcam utilization table security detail' или проверьте вывод 'show platform hardware acl-status'.