Переполнение аппаратных таблиц коммутатора: TCAM, CAM и MAC Exhaustion
- Аппаратные ACL перестают применяться, новые маршруты не попадают в FIB (Forwarding Information Base).
- Резкий рост утилизации CPU коммутатора процессами
FIB / IP Inputиз-за сброса обработки пакетов на программный уровень (Punt to CPU / Software Switching). - В системном журнале появляются ошибки:
%TCAM-3-RESOURCE_LIMIT: TCAM table fullили%FIB-4-PUNT: Punting packet to software. - Коммутатор начинает пересылать unicast-трафик на все порты VLAN (Unicast Flooding) из-за переполнения MAC-таблицы (CAM).
1. Проверка утилизации аппаратной памяти TCAM
# На коммутаторах Cisco Catalyst:
show platform tcam utilization
show platform hardware capacity
# На Nexus (NX-OS):
show hardware internal tcam utilization2. Проверка состояния таблицы MAC-адресов (CAM)
show mac address-table count
show mac address-table dynamicЕсли количество MAC-адресов достигло аппаратного максимума платформы (например, 8192 или 32768), возможно проведение атаки MAC Flooding (CAM Table Overflow).
3. Оптимизация шаблонов SDM (Switch Database Management)
Измените профиль распределения памяти ASIC под задачи коммутатора (требует перезагрузки):
# Просмотр текущего шаблона:
show sdm prefer
# Переключение шаблона (например, для L3 маршрутизации):
configure terminal
sdm prefer routing
exit
write memory
reload4. Аппаратная оптимизация списков доступа (ACL Optimization)
Удалите избыточные и неиспользуемые правила ACL. Объединяйте диапазоны портов и одиночные хосты в бинарные маски или группы объектов (Object Groups), чтобы они занимали одну строку TCAM вместо десятков.
5. Включение защиты Port Security от переполнения MAC-таблицы
interface range GigabitEthernet1/0/1 - 48
switchport mode access
switchport port-security
switchport port-security maximum 5
switchport port-security violation restrict
switchport port-security aging time 5
switchport port-security aging type inactivity
exit Частые вопросы (FAQ)
Чем TCAM отличается от обычной оперативной памяти (RAM)?
Ternary Content Addressable Memory (TCAM) способна за один такт процессора выполнить параллельный поиск по маске с тремя состояниями (0, 1 и 'любое значение' X), что обеспечивает мгновенную аппаратную фильтрацию ACL, QoS и выбор longest prefix match в FIB.
Что такое Unicast Flooding и почему оно возникает при переполнении CAM?
Если коммутатор не может сохранить новый MAC-адрес получателя в переполненную CAM-таблицу, он не знает, на какой конкретно порт слать трафик, и транслирует unicast-кадры во все порты VLAN, превращаясь в сетевой концентратор (Hub).
Как шаблон SDM 'VLAN' отличается от шаблона 'Routing'?
Шаблон 'VLAN' отдает максимальный объем TCAM под MAC-адреса и L2-функции. Шаблон 'Routing' перераспределяет блоки TCAM под хранение маршрутов IPv4/IPv6 и списков доступа (ACL).
Что происходит с пакетами, которые не поместились в TCAM?
В зависимости от архитектуры коммутатор либо отбрасывает их, либо передает (Punt) на обработку центральному процессору (CPU), что резко снижает скорость с десятков гигабит до нескольких мегабит и вешает процессор управления.