Траблшутинг нехватки памяти при приеме BGP Full View (Out of Memory)
- Маршрутизатор аварийно перезагружается с сообщением
%SYS-2-MALLOCFAIL: Memory allocation failed. - BGP сессия переходит в состояние Active или Connect, сбрасывая соединение при получении префиксов.
- Консоль фиксирует падение демона маршрутизации:
%BGP-3-MAXPFX: No of prefixes received from x.x.x.x reaches limit. - Ошибки распределения аппаратной памяти CEF/TCAM:
%FIB-3-FIBFAULT.
1. Анализ потребления памяти BGP таблицей
На сегодняшний день глобальная таблица IPv4 BGP Full View превышает 950 000 маршрутов, а IPv6 — 200 000. Прием 2–3 Full View каналов требует не менее 4–8 ГБ оперативной памяти только под нужды процесса BGP (BGP Path Attributes, RIB, Loc-RIB).
2. Проверка состояния памяти и емкости префиксов
! Проверка доступной системной памяти
show memory statistics
! Проверка количества маршрутов по соседям
show ip bgp summary
! Анализ памяти, занимаемой непосредственно BGP
show ip bgp memory3. Ограничение входящих префиксов (Maximum-Prefix Protection)
Для предотвращения аварийного падения router OOM при переполнении таблицы аплинком настройте лимит:
router bgp 65001
neighbor 198.51.100.1 remote-as 64500
! Предупреждение на 85%, разрыв сессии на 1 000 000 префиксов
neighbor 198.51.100.1 maximum-prefix 1000000 85 restart 154. Отключение неоптимального Soft Reconfiguration Inbound
Директива soft-reconfiguration inbound удваивает потребление оперативной памяти, так как хранит исходную копию всех префиксов до фильтрации:
router bgp 65001
neighbor 198.51.100.1 remote-as 64500
! Отключаем дублирование памяти
no neighbor 198.51.100.1 soft-reconfiguration inbound
! Вместо этого используем стандартный Route Refresh (RFC 2918)
exit5. Переход на схему Default-Route + IX/Local Prefixes
Если объем оперативной памяти ограничен (например, 2GB RAM), запросите у оператора отправку маршрута по умолчанию и клиентских префиксов:
ip prefix-list PL_RFC1918_AND_DEFAULT permit 0.0.0.0/0
route-map RM_UPSTREAM_IN permit 10
match ip address prefix-list PL_RFC1918_AND_DEFAULT
!
router bgp 65001
neighbor 198.51.100.1 route-map RM_UPSTREAM_IN in Частые вопросы (FAQ)
Почему после очистки маршрутов BGP оперативная память не возвращается операционной системе сразу?
В Cisco IOS/IOS-XE менеджер памяти не всегда возвращает освобожденные страницы ядру немедленно из-за фрагментации пулов (Memory Fragmentation). Память резервируется под будущие аллокации процесса BGP.
Что такое Route Refresh Capability и почему оно лучше Soft Reconfiguration?
Route Refresh (RFC 2918) позволяет динамически запросить у соседа повторную передачу обновлений BGP без сброса TCP сессии. В отличие от Soft Reconfiguration Inbound, оно не требует хранения гигабайтов нефильтрованных префиксов в оперативной памяти.
Как защитить TCAM коммутатора при приеме Full View?
Коммутаторы (L3 Switches) имеют жестко ограниченную память TCAM (обычно 32k-128k маршрутов). На них категорически запрещено принимать Full View — необходимо фильтровать входящие анонсы до default-route или суммаризированных префиксов /16-/24.
Что означает статус 'restart 15' в директиве maximum-prefix?
Это указывает маршрутизатору автоматически попытаться восстановить сброшенную BGP-сессию через 15 минут после превышения установленного лимита префиксов.