Кратко

  • RFC 7911 дополняет prefix локальным четырёхоктетным Path Identifier, поэтому несколько объявлений могут сосуществовать в согласованном направлении сессии.
  • Sender выбирает раскрываемый набор, а receiver сохраняет import policy, best path, multipath и FIB. Identifier не означает ранг, постоянную глобальную личность, происхождение или разнообразие.
  • Безопасное внедрение доказывает направление для AFI/SAFI, точные отправленные и принятые наборы, стоимость состояния, отдельный withdrawal и forwarding. Больше видимых объектов ещё не означает больше работающих выходов.

Route reflection — это сжатие информации. В full-mesh iBGP каждый speaker напрямую слышит кандидатов. Reflector уменьшает число сессий и обычно объявляет путь, который считает лучшим. Client получает итог, но не обязательно все исходные варианты.

Компромисс часто оправдан. Но скрытым может оказаться маршрут, который приняла бы локальная policy клиента, который пережил бы отказ или оказался выгоднее с его позиции в IGP. BGP session может оставаться исправной, хотя клиент видит меньше возможностей, чем существует в физической и коммерческой сети.

Обычный BGP усиливает сжатие. Новое объявление того же NLRI от того же соседа неявно заменяет предыдущее. Ключом служит prefix. Без расширения одна сессия не может одновременно держать два объявления этого prefix и независимо управлять их жизненным циклом.

RFC 7911 помещает четырёхоктетный Path Identifier перед NLRI. Эффективным ключом становится пара prefix-identifier. Новое объявление той же пары заменяет только этот путь; withdrawal удаляет только его. Withdrawal с ранее неизвестным номером следует игнорировать, а не понимать как удаление всех вариантов prefix.

Число имеет локальную область. Его назначает объявляющий speaker для этой связи. При повторном объявлении другой speaker создаёт собственное значение, а не переносит upstream-номер end-to-end. После restart значения могут измениться. Их величина не кодирует предпочтение, возраст, качество или источник.

Поэтому identifier удобен для protocol bookkeeping и опасен как бизнес-идентичность. Collector, связывающий «path 15» двух reflectors, придумывает связь. Проверка, требующая того же номера после restart, путает непрерывность token с непрерывностью маршрута. Сравнивать нужно attributes, назначение, next hop и forwarding.

Capability code 69 задаётся по направлениям. Каждая tuple содержит AFI, SAFI и receive, send или both. Multiple-path encoding действует в сторону, где sender объявил send, а receiver — receive для той же семьи. Обратная сторона может остаться классической.

Поэтому session может передавать несколько IPv4 unicast paths только наружу, сохраняя single-path обратно или для IPv6. Reflector способен показывать варианты clients, не принимая все их кандидаты. Формулировка «ADD-PATH включён» не описывает эти права.

Capability разрешает перенос, но не выбирает состав. RFC 7911 рекомендует включить best route, кроме полученной от того же соседа, однако не требует отправлять всё. Реализация может выбрать all, N-best, best по каждому neighboring AS, multipath-eligible или policy subset.

Именно состав определяет пользу. Два пути с одинаковыми next hop, site, line card, provider и conduit увеличивают state, но не дают двух выходов. Best на каждый AS добавляет коммерческое разнообразие и всё же может идти по одной оптике. Path Identifiers считают control objects, а не независимые failure domains.

RFC 7964 показывает компромисс в узкой задаче постоянной MED-осцилляции. All available paths приближает информационную согласованность full mesh ценой большого состояния. Group Best сокращает набор до лучшего пути на neighboring AS при определённых условиях topology. Это ответ на конкретный механизм, а не универсальная политика.

Receiver остаётся хозяином решения. Он может отклонить объявления, выбрать один best, сформировать multipath или хранить запас вне FIB. RFC 7911 не переписывает Decision Process RFC 4271. Получение четырёх путей не включает ECMP и не обязывает hardware установить их.

Четыре записи Adj-RIB-In не доказывают четыре выхода. Одну может отвергнуть policy, у второй не разрешится next hop, а две сведутся к одной FIB adjacency. Loc-RIB способен выбрать больше, чем программирует платформа. Доказательство проходит policy, decision, recursion, FIB и packet observation.

Path hiding на IXP route server даёт наглядный пример. RFC 7947 описывает server, выбравший путь, который policy конкретного клиента отклонит, хотя другой имеющийся кандидат был бы допустим. Если отправить только выбранный путь, client останется без route. Его policy верна, но input искусственно узок.

ADD-PATH расширяет input, однако важна trust boundary. RFC 7947 предупреждает: двусторонний режим может распространить inactive, invalid или suboptimal client paths. Для этого случая рекомендуется send-only server и receive-only clients. Это распределение полномочий для IXP, который не пересылает трафик, а не шаблон любого внутреннего reflector.

Внутри AS разные client sets могут быть намеренными. Мощному edge router нужна большая видимость, малому устройству — низкий предел. Каждое различие требует role, family, algorithm, maximum и ожидаемой convergence. Иначе во время incident невозможно восстановить, какие пути клиент имел право видеть.

Дополнительное состояние имеет цену. RFC 7911 отмечает memory exhaustion и network-wide instability. Каждый path добавляет RIB, attributes, policy evaluation, updates и telemetry. Тихий резерв при нормальной работе способен стать волной решений и withdrawals при отказе.

RFC 6774 приходит к той же границе через другую архитектуру распределения. Снижение path starvation и знание backup до аварии требуют копий и обработки. Видимость — ресурс с budget, admission limit и измеримой целью.

Продукты разделяют слои. Cisco отличает capability, additional-path selection и advertisement. Junos отделяет send/receive configuration от negotiated state. FRRouting предлагает all, per-AS-best, N-best и receive limits. Это не универсальные обещания, но точный перечень для change record.

Первый артефакт — матрица по neighbor и AFI/SAFI: локально объявленные modes, удалённо полученные и эффективное направление. Затем фиксируются sender algorithm, maximum, export filters, включение обычного best и различия между clients.

Baseline хранит точные множества, не только counts. Для Adj-RIB-Out: prefix, локальный Path Identifier, next hop, AS_PATH, origin, MED, communities и причина eligibility. У receiver: Adj-RIB-In, import result, best reason, multipath, Loc-RIB и FIB. Identifier разных speakers никогда не становится global key.

Replacement и withdrawal испытываются по полному ключу. Повторное объявление пары с новыми attributes меняет только её. Withdrawal одного identifier оставляет siblings. Неизвестный номер не удаляет ничего. Так обнаруживаются collectors и automation с prefix-only identity.

Restart имеет другой критерий. Номера могут измениться. Старые identifiers должны исчезнуть, ожидаемые альтернативы вернуться вовремя, а orphan не должен остаться в FIB. Стабильный объект доказательства — отношение route, policy и usable forwarding.

Разнообразие измеряется failure domain: next hop, neighboring AS, site, line card, link, provider, conduit и policy. Когда данных нет, ответ — неизвестно. Два token не превращают неизвестность в redundancy.

Финальное испытание убирает preferred egress. Наблюдается, станет ли уже видимая альтернатива best без нового remote exploration; измеряются update volume, decision time, next-hop resolution, FIB programming и packet loss. Проверяются также filtered, unresolved и shared-fate candidates.

Capacity — договор admission. До запуска задаются пределы по peer, family и prefix, память, update rate, telemetry retention и поведение при превышении. Тихое отбрасывание произвольных путей воссоздаёт path hiding за успешным status capability.

Rollback — не удаление строки. Нужно сократить набор, убрать старые identifiers и FIB residue. Если renegotiation требует session reset, риск reachability входит в первоначальное решение.

Принцип минимальной начальной спецификации Heng Lu объясняет границу. Общий механизм мал: directional capability и local discriminator. Состав раскрытия, бюджет приёма и выбор FIB остаются локальными. Interoperability не требует централизации будущей policy.

Running-code primacy задаёт порядок доказательств. Configuration — намерение. Negotiated capability, переданная tuple, принятая route, причина выбора, programmed next hop и наблюдаемый packet — всё более сильные факты. Не прошедшая цепочку альтернатива не стала рабочим выбором.

Data sovereignty здесь означает власть над видимостью. Sender контролирует раскрытие, receiver — использование, а физическая сеть ограничивает результат. Path count не отменяет раздельные полномочия.

ADD-PATH не приказывает отправлять всё и не гарантирует resilience. Он мешает prefix-only identity стирать альтернативы одной session. Ценность появляется у намеренного, ограниченного и понятного набора, где после потери preferred route видимый кандидат превращается в forwarding.

Источники