Кратко
- BGP-конфедерация представляет несколько Member-AS одним AS Confederation Identifier. AS_CONFED_SEQUENCE и AS_CONFED_SET хранят внутренний путь, но перед объявлением настоящему внешнему соседу должны быть удалены.
- Очистка облегчает внешнюю координацию, но не доказывает единство эксплуатации. LOCAL_PREF, MED, NEXT_HOP, набор кандидатов, member identity и route reflection способны изменить reachability при неизменном публичном AS_PATH.
- Leadership может разрешить такую компрессию только при наличии pre-sanitisation ledger, владельца каждой границы, проверок RIB/FIB и packets и rollback, который возвращает identity, policy и route state.
В 01:40 начинается заключительный этап внутренней реорганизации. Border router Delta переводят из Member-AS 65021 в 65031. Оба входят в конфедерацию 64500. Внешним transit providers, customers и peering partners не нужно знать, как компания делит собственную сеть.
Change system сообщает об успехе. Внешние sessions Delta зелёные, public collector сохраняет 64500, origin authorization не изменилась. Dashboard принимает неизменную публичную identity за доказательство continuity.
У neighbor Echo осталась старая модель. Delta посылает OPEN как 65031, Echo ждёт confederation peer 65021. Одна implementation не поднимает adjacency. Через резервную ветвь route сохраняется, но её NEXT_HOP не разрешается новым IGP. В другой точке изменился candidate set для MED. Customer peer остаётся Established, а полезного маршрута в FIB нет.
Инцидент синтетический, граница реальна. RFC 5065 требует удалить Member-AS history перед внешним export. Публичный AS_PATH не забыл причину; он намеренно не содержит её. Ошибка организации — использовать сокращённую внешнюю запись как доказательство внутренней корректности.
Внешний идентификатор и внутренние домены
AS Confederation Identifier — номер, под которым вся конфедерация видна не входящим в неё speakers. Member-AS — внутренняя routing/policy domain, а Member-AS Number идентифицирует её для других участников.
Во внешних OPEN и AS_PATH router использует Confederation Identifier. Между членами он использует Member-AS Number. Сессия между разными членами работает как EBGP, но ряд правил выбора требует считать полученный путь внутренним для общей конфедерации.
Такая схема уменьшает full-mesh pressure большого IBGP и позволяет разделить policy по регионам или функциям. Однако внутри каждого Member-AS остаётся собственный mesh либо RR topology. Различаться могут IGP, команда и failure budget.
Публичный ASN выполняет минимальную координационную задачу: сообщает, кто объявляет путь. Он не говорит, какой member принял route, кто установил LOCAL_PREF, где достигается next hop и какой ASIC пересылает packet. Общая identity может отражать единое управление, но сама его не создаёт.
Путь создаётся внутри и исчезает на выходе
AS_CONFED_SEQUENCE — упорядоченная последовательность пройденных Member-AS. AS_CONFED_SET — неупорядоченное множество, связанное, например, с aggregation. При объявлении другому члену speaker добавляет свой number в начало sequence или создаёт новый segment.
История участвует в loop detection. Router, увидевший собственный Member-AS Number в confederation segment, обращается с route как с обычным AS loop. Локальный Confederation Identifier в обычном пути также означает возвращение к собственной внешней identity.
На настоящей внешней границе все AS_CONFED_SEQUENCE и AS_CONFED_SET удаляются. После этого Confederation Identifier добавляется как обычный AS_SEQUENCE. RFC 6793 запрещает confederation segments и в AS4_PATH, чтобы four-octet compatibility не раскрывала внутренний маршрут.
External collector получает правдивое, но сжатое утверждение: путь прошёл AS 64500. Он не восстановит внутреннюю цепочку 65021, 65017, 65009. Это уменьшает координационные издержки Интернета, но обязывает оператора сохранять последний полный путь перед sanitisation.
Нельзя требовать от сокращённой записи ответа на вопрос, данные для которого были удалены по спецификации.
Membership выполняется на обоих концах
Рамка на diagram не образует BGP adjacency. Оба neighbor должны согласованно настроить local AS, peer AS и confederation membership. Актуальная документация Juniper указывает, что adjacency не формируется, если соседи расходятся в том, относится ли она к конфедерации.
RFC 5065 требует, чтобы route от другого Member-AS начиналась с AS_CONFED_SEQUENCE. Confederation segments нельзя отправлять внешнему peer. Все внутренние участники обязаны понимать эти типы; внешним speakers расширение не нужно, поскольку увидеть его они не должны.
RFC 7606 обычно применяет treat-as-withdraw к malformed AS_PATH. Соответствующие NLRI исчезают, но session остаётся. Blast radius меньше, зато session health отделяется от route health. Несогласованные внутренние states способны вызвать unreachability, suboptimal forwarding или долговременный loop.
Proof chain включает configuration, observed OPEN, segment type, policy action, Adj-RIB-In, Loc-RIB, recursion, FIB и packets. Зелёный peer доказывает лишь продолжение разговора.
EBGP на wire, внутренний смысл в выборе
Между Member-AS устанавливается EBGP. Но на шаге IBGP-versus-EBGP route от члена той же конфедерации считается internal. CONFED_SEQUENCE и CONFED_SET не увеличивают AS_PATH length.
LOCAL_PREF может переходить member boundary. NEXT_HOP и MED могут сохраняться. Эти исключения позволяют членам действовать как общая policy system, но переносят скрытые зависимости.
При общем IGP неизменный next hop может быть доступен всюду. При независимых IGP recursion способна сломаться; RFC 5065 прямо допускает policy для изменения NEXT_HOP. Принятая BGP route может не попасть в hardware.
MED обычно сравнивается после пропуска confederation segments по первому обычному AS_SEQUENCE. Implementation может предоставлять дополнительные режимы между member paths. Если migration меняет видимые candidates, меняется и winner, хотя публичные attributes остаются прежними.
Runbook должен фиксировать по AFI/SAFI attribute treatment, next-hop scope, MED rule, candidate source и owner. Ярлык «confed EBGP» этого не описывает.
Осцилляция, скрытая за стабильным публичным путём
RFC 5065 предупреждает о duplicate advertisements, расходе ресурсов, flaps и задержке convergence. Confederations и route reflectors могут показывать разным decision points разные candidates. С определёнными MED возникает persistent route oscillation из RFC 3345.
Один node выбирает A и перестаёт распространять B. Отсутствие B меняет выбор второго node. Его новая реклама возвращает B и переворачивает первый выбор. Каждый локальный шаг может следовать правилам, а система не сходится.
External peer видит только winner после export policy и удаления segments. Losing candidate и Member-AS path отсутствуют. Topology-aware IGP metrics, consistent tie-break, duplicate filters и более полная distribution помогают, но не доказывают completeness.
Для расследования сохраняют candidates, сравнимые MED, reject reasons и topology epoch в каждой точке. График best path содержит результат, но не входные данные решения.
Private ASN уникален лишь в своём scope
RFC 6996 резервирует 64512–65534 и 4200000000–4294967294 для private use. Их часто выбирают для Member-AS, поскольку segments удаляются на border. RFC 5065 не требует использовать именно private numbers.
Две изолированные компании могут иметь 65021. Merger или временный interconnect объединяет scopes, и совпадение становится конфликтом для loop detection, filters, logging и ownership.
Member-AS registry связывает number, owner, region, IGP domain, RR cluster, AFI/SAFI, four-octet capability и retirement. Network due diligence сравнивает эти inventories до соединения инфраструктур.
remove-private — иной control. Juniper документирует, что он применяется после удаления confederation member segments. Чистый внешний path не является доказательством обоих этапов.
Ledger должен стоять до sanitisation
Для каждой adjacency и AFI/SAFI сохраняются local member, expected peer, identifier, observed OPEN, capabilities, raw segments, policy version, LOCAL_PREF, MED, NEXT_HOP, best-path reason и error action.
Связываются pre/post-policy Adj-RIB-In, Loc-RIB candidates, pre/post-policy Adj-RIB-Out к следующему member и очищенный external export. Hash topology и policy привязывает решение к исполненному состоянию.
Затем проверяются recursion, FIB/ASIC и packet path. Корректный segment не доказывает reachable next hop. FIB entry не доказывает expected egress. Public collector подтверждает финальное внешнее заявление, а не скрытую decision chain.
Alerts должны видеть divergence: OPEN не совпадает с membership, external присылает confed segment, internal его теряет, private number сталкивается, treat-as-withdraw происходит при живой session, best path меняется без внешнего изменения или повторяется MED cycle.
Renumbering — это protocol migration
Смена Member-AS затрагивает path prepend, loop identity, policy match, telemetry, peer classification и иногда RR domain. Old-to-new map охватывает routers, sessions, policies, communities, monitoring, collectors и owners.
Canary ограничивается одной резервированной границей, одной AFI/SAFI и контролируемыми prefixes. До и после сравниваются OPEN, segments, candidates, selection, recursion, FIB и packets в обоих направлениях. Окно должно показать MED cycles и delayed RR effects.
Rollback возвращает number, membership list, peer type, policies, reflection relationship, labels и route state, а также очищает определённые stale routes. Возврат файла конфигурации без доказательства forwarding не завершает rollback.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
