BGP Error: Maximum-prefix limit reached — Teardown connection with peer
BGP-сессия переходит в состояние IDLE (PfxCt) или Idle (prefix limit reached). В системном журнале маршрутизатора фиксируется событие отправки или получения BGP NOTIFICATION Type 6 (Cease), Subcode 1 (Maximum Number of Prefixes Reached):
%BGP-3-MAXPFXEXCEED: Number of prefixes received from 198.51.100.1 has reached 50000, max 50000
%BGP-5-ADJCHANGE: neighbor 198.51.100.1 Down - BGP Notification sent
%BGP-3-NOTIFICATION: sent to neighbor 198.51.100.1 6/1 (cease / max prefixes reached) 0 bytes- Полный сброс маршрутной информации, полученной от пира.
- Трафик, маршрутизируемый через данного соседа, начинает отбрасываться (blackhole) либо перенаправляется по субоптимальным путям.
- Повторные попытки установки сессии блокируются до ручного сброса или истечения таймера ожидания.
1. Проверка текущего счетчика полученных префиксов
Определите точное число анонсированных пиром маршрутов до и после применения входящего фильтра:
# Cisco IOS-XE
show ip bgp neighbors 198.51.100.1 | include prefix|Threshold|State
show ip bgp neighbors 198.51.100.1 received-routes
# Junos
show bgp neighbor 198.51.100.1 | match "prefix|rib"
# Arista EOS
show ip bgp neighbors 198.51.100.1 | grep -i prefix2. Временный ручной сброс сессии
Если превышение было вызвано разовым всплеском маршрутов у апстрима, и порог был согласован, сбросьте сессию:
# Cisco IOS-XE (ручной клиринг счетчика)
clear ip bgp 198.51.100.1
# Junos
clear bgp neighbor 198.51.100.13. Корректировка лимита и включение автоматического восстановления
Настройте безопасный порог с предупреждением на 80% и таймером повторного поднятия (restart timer):
# Cisco IOS-XE
router bgp 65001
neighbor 198.51.100.1 maximum-prefix 100000 80 restart 15
# Junos
set protocols bgp group EXTERNAL-PEERS neighbor 198.51.100.1 family inet unicast prefix-limit maximum 100000
set protocols bgp group EXTERNAL-PEERS neighbor 198.51.100.1 family inet unicast prefix-limit teardown 80 idle-timeout 15
# Arista EOS
router bgp 65001
neighbor 198.51.100.1 maximum-routes 100000 warning-limit 80 percent
neighbor 198.51.100.1 maximum-routes 100000 restart 154. Применение входящей фильтрации (Route-Map / Prefix-List)
Для предотвращения утечек Full-View от клиентов настройте жесткий префикс-лист:
ip prefix-list PL_CLIENT_IN seq 10 permit 203.0.113.0/24 le 28
route-map RM_CLIENT_IN permit 10
match ip address prefix-list PL_CLIENT_IN
router bgp 65001
neighbor 198.51.100.1 route-map RM_CLIENT_IN in Частые вопросы (FAQ)
В чем разница между 'maximum-prefix' и 'maximum-routes'?
В Cisco IOS 'maximum-prefix' ограничивает количество префиксов, полученных от соседа до применения inbound route-map (pre-policy). В ряде платформ (например, Arista или Cisco IOS-XR с опцией discard-extra-paths) термин 'maximum-routes' может применяться к числу маршрутов, фактически принятых в RIB/FIB после фильтрации.
Почему после команды 'clear ip bgp' сессия снова сразу падает?
Если удаленный пир продолжает передавать объем префиксов, превышающий установленный maximum-prefix, маршрутизатор разрывает сессию в момент завершения фазы Open/Update, как только счетчик префиксов преодолеет заданный жесткий лимит.
Что делает параметр 'warning-only' в настройке maximum-prefix?
Опция 'warning-only' запрещает разрыв TCP/BGP сессии при превышении лимита. Вместо отправки NOTIFICATION Cease маршрутизатор только генерирует запись в syslog, продолжая принимать и маршрутизировать избыточные префиксы.
Какой BGP Notification код отправляется при срабатывании лимита?
Отправляется BGP NOTIFICATION Code 6 (Cease), Subcode 1 (Maximum Number of Prefixes Reached) согласно RFC 4486 / RFC 4271.