Кратко
- RFC 8212 не мешает EBGP-сессии достичь Established, но без явной политики импорта полученные маршруты не допускаются к процессу выбора, а без политики экспорта маршруты не попадают в Adj-RIB-Out.
- Импорт и экспорт — отдельные локальные разрешения для каждого AFI/SAFI. Явный
permit allформально считается политикой, поэтому стандарт устраняет опасность пропуска настройки, но не способен распознать безрассудное разрешение. - После чистой установки и после обновления один выпуск ПО может иметь разные эффективные defaults. Надёжная миграция доказывает режим, версию и привязку политики, множества до и после фильтра, наблюдение соседа, FIB и прохождение пакетов.
В полночь старый пограничный узел заменяют новым. TCP-подключение к порту 179 проходит, участники обмениваются OPEN и возможностями, конечный автомат достигает Established. Дежурный видит растущий uptime и считает BGP работающим. Однако FRRouting показывает (Policy), полезных IPv4-маршрутов нет, а IPv6 из другого шаблона уже экспортирует узкий агрегат.
Это не одна сломанная сессия. Это четыре раздельных решения: импорт и экспорт для двух семейств адресов. Самое быстрое на вид исправление — глобально отключить требование или назначить безусловное разрешение — способно превратить ограниченное отсутствие связности в неограниченную утечку маршрутов.
Транспортное соседство не является мандатом на маршрутизацию
RFC 4271 разделяет конечный автомат BGP и базы маршрутной информации. Два узла могут успешно завершить OPEN и обмениваться KEEPALIVE до того, как хотя бы один маршрут станет допустимым для выбора или объявления. RFC 8212 меняет последующие стадии принятия решения и распространения, а не рукопожатие.
На входе UPDATE может присутствовать в Adj-RIB-In или в pre-policy-представлении реализации. Но при отсутствии явной Import Policy он не должен становиться кандидатом Decision Process. Поэтому захват пакетов может показывать полученные объявления, в то время как Loc-RIB остаётся пустым. Утверждения «сосед ничего не прислал» и «локальная система ничего не разрешила» требуют разных доказательств.
На выходе маршрут может существовать в Loc-RIB и FIB и обеспечивать локальную пересылку, но не попадать в Adj-RIB-Out конкретного внешнего соседа без Export Policy. Исправная пересылка внутри сети не доказывает внешнюю достижимость.
Здесь проходит граница полномочий. Сосед вправе предложить маршруты, но не может заставить получателя использовать их. Локальная система может владеть маршрутом, но наличие внешнего соединения не означает разрешения раскрыть его. Каждое направление требует отдельного локального акта.
Два шлюза умножаются на число семейств адресов
Импорт и экспорт не образуют один двусторонний выключатель. Оператор может принимать default route и объявлять только клиентские префиксы; ничего не принимать, но отправлять сервисный агрегат; разрешить IPv6 раньше IPv4. Политика и итоговое множество существуют отдельно для каждого активного AFI/SAFI.
Отсюда возникают асимметричные отказы. Без входной политики IPv4 локальная таблица IPv4 может быть пустой, хотя экспорт работает. Без выходной политики IPv6 полученные маршруты могут использоваться внутри, но сосед не увидит обратного объявления. Индикатор Established скрывает именно те измерения, которые нужны для диагноза.
Инвентаризация должна называть соседа, VRF, локальную и удалённую AS, AFI/SAFI, направление и точку привязки. Фразы «policy настроена на neighbour» недостаточно. Peer-group способен унаследовать одно направление, а адресное переопределение удалить другое. Объект может присутствовать в сгенерированной конфигурации, но не быть подключён к активному экземпляру.
Идея Minimum Initial Specification проявляется здесь как отказ, а не как общее разрешение. Минимальное правило утверждает лишь: отсутствие решения не должно превращаться в распространение. Какие префиксы, origins, пути, communities и коммерческие отношения авторизовать, каждый оператор решает самостоятельно.
Явное не означает безопасное
RFC 8212 устраняет опасность забытой настройки, но не оценивает качество её содержания. Намеренно заданный permit all остаётся явной политикой. Документация BIRD сохраняет blanket-варианты all и none как допустимые явные решения, хотя для внешнего BGP требует import и export policy.
Это не лазейка, а граница между безопасным default протокола и полномочием оператора. Полное разрешение может быть оправдано в лаборатории, схеме route server или короткой миграции. На транзитной границе Интернета та же строка может быть разрушительной. Синтаксис не знает договорных обязательств.
Успокаивающее имя фильтра тоже не является доказательством. Route-map может ссылаться на пустой prefix-set, устаревшую выгрузку IRR, неверное пространство community или предыдущую версию политики. Привязка к peer-group может быть перекрыта настройкой конкретного соседа. Наличие объекта — только первый порог.
В доказательстве нужно фиксировать разрешённое содержимое и его хэш, а не одно имя. Для импорта сравнивают pre-policy input, post-policy eligible routes и причины выбора. Для экспорта — кандидатов до фильтра, Adj-RIB-Out после него и фактическое наблюдение принимающей стороны. Нулевой результат допустим лишь с установленной причиной: политика отсутствует, политика явно запрещает либо ни один маршрут не соответствует разрешению.
Во время миграции defaults расходятся
RFC 8212 допускает настройку отклонения и в ненормативном приложении описывает переход N+1/N+2: сначала появляется insecure-mode и предупреждения, затем безопасный default для новых установок. Узел, прошедший обновление через прежнюю версию, может сохранить разрешающее поведение; чисто установленный узел той же версии — отклонять по умолчанию.
Поэтому одинаковая версия и похожий neighbour stanza дают противоположные результаты. Один маршрутизатор импортирует всё благодаря сохранённому миграционному состоянию, другой — ничего, потому что его жизненный цикл начался после смены default. Копирование видимой конфигурации не копирует скрытое происхождение состояния.
FRRouting предоставляет ebgp-requires-policy, способ отключения и индикатор (Policy) при недостающих фильтрах. BIRD 3.3.0 требует явные политики для внешнего BGP. Это полезные операционные поверхности, но не универсальные гарантии. Доказательством остаются конкретный выпуск, история запуска, сгенерированная конфигурация и эффективное runtime-значение.
Исключение insecure-mode следует управлять как выдачу полномочий: указать владельца, причину, затронутых соседей и семейства, точное множество маршрутов, срок и тест удаления. Миграционный обход без срока превращается в невидимую архитектуру.
Активация политики меняет состояние, а не только текст конфигурации
Добавление фильтра не доказывает, что ранее полученные UPDATE были переоценены. Реализация может сохранять pre-policy-таблицу, запрашивать Route Refresh, повторно обрабатывать сохранённые данные либо требовать reset сессии. RFC 2918 позволяет запросить повторную передачу текущего экспорта, но только при согласованной capability и с учётом текущей удалённой политики.
Путь активации должен входить в план изменения. После появления корректной политики импорта оператору необходимо знать, пришли ли маршруты из сохранённого Adj-RIB-In, после refresh или после reconnect. Количество и атрибуты следует предсказать заранее.
Включение экспорта потенциально опаснее: тысячи уже существующих Loc-RIB-маршрутов могут одновременно стать допустимыми. Политический движок должен вычислить точную дельту Adj-RIB-Out, а сосед — подтвердить ожидаемое множество. Совместное включение импорта и экспорта скрывает, какое разрешение породило достижимость или утечку.
Направления следует вводить поэтапно. Сначала — явный deny в обе стороны, затем небольшой входной canary и только после него выходной. Расширение допустимо после совпадения наблюдаемой дельты с утверждённым контрактом.
Default reject — основание, а не законченная система безопасности
RFC 7454 описывает фильтры префиксов, AS path и communities, зависящие от отношений. RFC 7908 классифицирует утечки, нарушающие ожидания распространения. RFC 9234 вводит BGP Roles и OTC, делая часть отношений машиночитаемой. RPKI origin validation проверяет, разрешено ли AS быть origin данного префикса.
Ни один механизм не заменяет явную политику. Маршрут с valid origin всё равно может быть нежелательным. OTC не определяет множество клиентских префиксов. Maximum-prefix ограничивает объём состояния после выбранной границы счёта, но не решает, какой маршрут достоин допуска. Default reject гарантирует только, что отсутствие конфигурации не станет молчаливым разрешением.
Вторичный эффект организационный: пустой default вынуждает кого-то назвать грант и взять его во владение. Риск третьего порядка — формальное соблюдение, когда универсальные allow-политики создают лишь ради зелёного статуса развёртывания и перестают рассуждать о реальном отношении.
Принцип Running Code не даёт остановиться на декларации. Текст настройки выражает намерение. Скомпилированная политика и граф привязок показывают исполняемый ввод. RIB до и после — эффект control plane. Наблюдение соседа доказывает пересечение границы, а FIB и пакеты — реальную достижимость.
Canary начинается с предсказуемого нуля
Нужно выбрать соседа с малым радиусом поражения или изолированное семейство. Сессия устанавливается без import/export policy. Ожидаемая база: OPEN и KEEPALIVE успешны, pre-policy receipt может быть виден, пригодных маршрутов нет, Adj-RIB-Out пуст.
Затем в обе стороны назначают явный deny. Счётчики остаются нулевыми, но runtime теперь выражает намеренный нулевой грант, а не отсутствие решения. Фиксируются идентичность политики и путь активации.
На входе разрешают один sentinel prefix и заранее задают его атрибуты, post-import-представление, выбор и FIB next hop. Если тест обещает пересылку, проверяют пакет. После этого один sentinel prefix разрешают на выходе и сопоставляют точную запись Adj-RIB-Out с наблюдением соседа.
Процедуру повторяют для каждого AFI/SAFI и направления. Включают намеренно не совпадающий маршрут, сравнение invalid origin, атрибут отношения и границу длины префикса, чтобы доказать отрицательное пространство. Rollback снимает узкое разрешение, подтверждает withdrawal и возвращает известный нулевой default. Глобальное отключение RFC 8212 не является rollback: оно расширяет полномочия на всех соседей без политики.
Established-сессия с нулём маршрутов не обязательно означает незавершённую инфраструктуру. Это может быть точное утверждение: транспорт существует, но право маршрутизации ещё не выдано. Безопасная система делает такое состояние видимым, обратимым и проверяемым — и требует более сильного доказательства, прежде чем молчание превратится в достижимость.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
