Кратко
- RFC 4456 разрешает route reflector нарушить обычный запрет повторной передачи iBGP-маршрута.
ORIGINATOR_IDиCLUSTER_LISTограничивают исключение памятью об источнике и пути отражения. - Совпадение с локальной идентичностью позволяет игнорировать UPDATE. В одной резервированной паре это полезно; между независимыми областями оно превращает правильный маршрут в ложное возвращение.
- Доказательство соединяет сырые attributes, точную причину, роли, кандидатов, выход для каждого соседа, FIB и пакеты. Состояние Established не доказывает наличие NLRI.
Один шаблон на две области
Восточная и западная области имеют по два резервных RR. Восточная пара намеренно использует 10.0.0.42: оба устройства представляют один logical cluster и должны узнавать уже отражённую партнёром информацию.
При консолидации тот же шаблон попадает на запад. Иерархия областей не объединена, но protocol values объявляют их эквивалентными. Маршрут восточного клиента прибывает на запад с этим числом в списке. Получатель видит собственный Cluster ID и отбрасывает UPDATE.
TCP продолжает работать, KEEPALIVE идут, NOTIFICATION не требуется. Панель соседей зелёная, но префикс исчез до выбора лучшего пути. Четырёхоктетный символ получил власть над доступностью.
Исключение из правила iBGP
Обычный iBGP не передаёт одному внутреннему peer маршрут, выученный от другого внутреннего peer. Это защищает от петли, но требует full mesh. Reflection заменяет часть связей настроенными ролями.
Лучший путь от non-client RR передаёт clients; путь от client может идти clients и non-clients. Роль не согласуется протоколом. Две стороны способны поддерживать исправную session и разные представления о графе.
ORIGINATOR_ID — optional non-transitive attribute типа 9, четыре октета. При reflection он сохраняет BGP Identifier внутреннего originator. Router, увидевший собственное значение, должен игнорировать маршрут.
CLUSTER_LIST типа 10 хранит упорядоченную последовательность Cluster IDs. Каждый RR добавляет local ID в начало. Найдя свой ID, получатель считает информацию вернувшейся в уже пройденную область.
Это не аутентификация. RFC 6286 требует ненулевой и уникальный в AS BGP Identifier, но не реально назначенный IPv4 address. Точечная форма — представление. Логическая метка важна потому, что equality меняет набор кандидатов.
Правильное равенство и коллизия
Резервные RRs одного кластера могут разделять ID: так они не отражают друг другу одну и ту же информацию. Это осмысленный equivalence class, а не дефект.
Опасность возникает при расширении scope. Копирование, повторное использование router ID, слияние inventory, per-neighbor override или незавершённая миграция делают чужие области равными. Код не знает замысла и сравнивает только значения.
Дублированные BGP Identifiers дают параллельную ошибку: один speaker может принять маршрут другого за собственное возвращение. Packet loop ещё не доказан, но решение об удалении уже принято.
BGP Identifier должен быть уникален во всём AS. Cluster ID допустимо разделять истинным членам одного кластера, но он не должен повторно встречаться на корректном пути между разными областями.
Причина решения важнее общего счётчика
Корректно закодированный список с локальным ID не является malformed attribute. Он активирует семантический loop check. RFC 7606 рассматривает ошибки структуры. Telemetry должна различать parser failure, import policy, originator match, cluster match и потерю при best-path selection.
Attributes влияют и на tie-break. ORIGINATOR_ID замещает Identifier рекламировавшего speaker на соответствующем шаге, затем предпочтение получает более короткий CLUSTER_LIST. Это длина истории reflection, не задержка, физическая дистанция или доверие.
ORR меняет IGP-perspective, ADD-PATH — число раскрытых кандидатов. Они не отменяют проверку возвращения. RFC 3345 и 7964 описывают oscillation при сокращении информации и MED; ложное совпадение способно создать стабильное отсутствие. Защищённый transport подтверждает байты, а не правильность карты.
Ledger и canary
Для каждого AS, VRF, AFI/SAFI сохраняются BGP Identifier, global и per-peer Cluster IDs, role, redundancy group, уровень, версия и owner. Любое общее значение имеет объяснение, почему устройства представляют одну область.
Для NLRI сохраняются raw UPDATE, ORIGINATOR_ID, ordered list, local comparison values и точная disposition. Далее — candidate set, Loc-RIB, Adj-RIB-Out каждого соседа, downstream Adj-RIB-In, FIB и пакеты. Конфигурация выражает намерение; running output показывает действие.
До изменения моделируется directed client graph. Canaries проходят каждую пару, ступень, семью адресов, платформу и release. Проверяется порядок значений. При необъяснённом совпадении или исчезновении маршрута без session event работа останавливается. Rollback завершён только после replay, восстановления downstream и packet test.
Источники
- RFC 4456 — Route Reflection BGP
- RFC 4271 — BGP-4
- RFC 6286 — уникальный в AS BGP Identifier
- RFC 7606 — обработка ошибок UPDATE
- RFC 9107 — Optimal Route Reflection
- RFC 7911 — объявление нескольких путей
- RFC 7964 — решения persistent oscillation
- RFC 3345 — условие persistent oscillation
- FRRouting — BGP
- Juniper — BGP Route Reflectors
- Cisco 8000 — BGP Route Reflectors
- Heng Lu — минимальная начальная спецификация
- Heng Lu — слои реальности и символическая власть
- Heng Lu — первичность работающего кода
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
