BGP Error Notification Code 2: OPEN Message Error — Разбор субкодов
- BGP соседство застревает в состоянии
OpenSentилиOpenConfirmи сбрасывается вIdle. - В логах генерируется уведомление:
BGP-3-NOTIFICATION: sent/received 2/2 (Bad Peer AS)или2/3 (Bad BGP Identifier). - Маршрутизаторы не могут согласовать возможности (Capabilities Negotiate Fail).
- Сброс сессии сразу после отправки приветственного пакета OPEN.
1. Разбор субкодов BGP OPEN Message Error
- 2/1 (Unsupported Version Number): Запрошена версия протокола, отличная от BGP-4.
- 2/2 (Bad Peer AS): Номер автономной системы (AS) в пакете OPEN не совпадает со значением
remote-as, настроенным на локальном маршрутизаторе. - 2/3 (Bad BGP Identifier): Некорректный BGP Router ID (например, 0.0.0.0 или совпадает с Router ID соседа).
- 2/4 (Unsupported Optional Parameter): Сосед не понимает переданные параметры Capabilities.
- 2/6 (Unacceptable Hold Time): Предложенное значение Hold Time слишком мало (например, меньше 3 секунд) и отклонено политикой.
2. Исправление ошибки Bad Peer AS (2/2)
Проверьте соответствие номеров AS на обоих маршрутизаторах (учитывайте 2-байтовые и 4-байтовые AS):
# Cisco IOS / FRR:
router bgp 65001
neighbor 192.0.2.2 remote-as 65002
# Проверьте статус:
show ip bgp summary3. Устранение коллизии BGP Router ID (2/3)
Убедитесь, что Router ID уникален и явно задан в виде IPv4 адреса:
# FRRouting / Quagga:
router bgp 65001
bgp router-id 10.255.255.1
# BIRD 2.x:
router id 10.255.255.1;4. Согласование Capabilities и 4-byte AS Support
Если старый маршрутизатор не поддерживает 4-байтовые AS (RFC 6793), отключите анонс 4-byte AS capability:
neighbor 192.0.2.2 dont-capability-negotiate Частые вопросы (FAQ)
Почему BGP Router ID должен быть IPv4 адресом, даже если BGP работает только по IPv6?
По стандарту RFC 4271 BGP Identifier является беззнаковым 32-битным числом, представляемым в формате dotted-decimal (IPv4). Даже в чистых IPv6 сетях BGP Router ID обязан быть уникальным 32-битным значением.
Что произойдет, если у двух пиров настроен одинаковый BGP Router ID?
Сессия будет немедленно разорвана с ошибкой 2/3 (Bad BGP Identifier), так как протокол считает это попыткой подключения маршрутизатора к самому себе.
Как маршрутизаторы согласовывают Hold Time в пакете OPEN?
Каждый маршрутизатор отправляет свое желаемое значение Hold Time. В качестве итогового таймера сессии выбирается наименьшее (min) из двух предложенных значений.
Что делать при ошибке 2/4 (Unsupported Optional Parameter)?
Отключите отправку неподдерживаемых расширений (например, Multiprotocol BGP, Graceful Restart или Route Refresh) в сторону устаревшего соседа.