Третьего дня забрал приехавшие железки. Продолжаем популяризировать правильные решения (верхняя коробка, нижняя коробка) на местном телекоммуникационном рынке. Кстати, несколько дней назад заметили одну неприятную особенность каталистов (отмечено на 3560 в L3-режиме). Так вот, этот самый каталист выполняет функции BGP. С одного из пиров прилетело значительное количество префиксов. Как известно, количество записей в роутинговой таблице Cisco Catalyst 3560 ограничено, что логично, и посмотреть этот параметр можно следующей командой:
cat3560#sh sdm prefer
The current template is "desktop routing" template.
The selected template optimizes the resources in
the switch to support this level of features for
8 routed interfaces and 1024 VLANs.
number of unicast mac addresses: 3K
number of IPv4 IGMP groups + multicast routes: 1K
number of IPv4 unicast routes: 11K
number of directly-connected IPv4 hosts: 3K
number of indirect IPv4 routes: 8K
number of IPv4 policy based routing aces: 0.5K
number of IPv4/MAC qos aces: 0.5K
number of IPv4/MAC security aces: 1K
Видим 8 тыс. записей, что в ряде случаев достаточно. Возвращаясь к “багам” – в каталист прилетает, допустим, 100к записей. Логично предположить, что он банально не должен принимать префиксы, выходящие за лимит. Но этого не происходит – свитч загружает префиксы к себе память и мы получаем 100% загрузку CPU и out of memory со сбросом всех активных BGP-сессий. Нелогично, но это происходит.
Самое интересное потом – так как нет свободной памяти, свитч выключает cef (Cisco Express Forwarding). Это приводит к началу маршрутизации самым медленным способом – через process switching, самый медленный способ маршрутизации. Это ведет к сумасшедшей деградации производительности (по моим оценкам и графикам, макс. производительность 3560 в этом режиме – не более 25-30Мбит/с), потерям и т.д. Ладно, проблему нашли, фильтры поставили, память появилась – cef включить нельзя! Как в старой присказке – восемь бед, один ресет, помогает только reload.
Кто предупрежден, как говориться, тот вооружен.