Кратко

  • RFC 9003 разрешает до 255 октетов свободного UTF-8 только с Administrative Shutdown или Administrative Reset; прежний RFC 8203 с пределом 128 октетов устарел.
  • NOTIFICATION завершает соединение, поэтому BGP не подтверждает получение или понимание. Без целостности и конфиденциальности транспорта строку можно подделать или прочитать.
  • Объяснение, отвод трафика и сохранение маршрутов — разные механизмы. Нужны байты, журнал получателя, retry, RIB/FIB и пакеты.

В 02:00 маршрутизатор отправляет [CHG-4281] обновление edge; возврат через 30 минут и закрывает TCP. У соседнего NOC появляется полезная гипотеза. Но нет доказательства полномочий автора, выполненного drain или точности срока.

Узкое окно для текста

RFC 4486 классифицирует причины Cease. RFC 9003 даёт свободное поле только подкодам 2 и 4. Prefix limit, удаление peer, collision и out of resources сохраняют свои значения. Проза не должна маскировать неверный код.

Один октет содержит длину, затем идут октеты UTF-8. Ноль означает отсутствие текста; NUL нет, shortest form обязателен. Максимум — 255 октетов, не символов. Многобайтные языки помещают меньше знаков, что и потребовало заменить предел RFC 8203.

128 остаётся границей совместимости. При доказанной поддержке можно 255, при неизвестной — не более 128. Старый speaker может записать длинные данные как ошибку, но всё равно обработать терминальную NOTIFICATION.

Это минимальная общая спецификация: формат общий, ticket system, язык, раскрытие и retention локальны.

Последней строке нельзя ответить

RFC 4271 закрывает BGP сразу после NOTIFICATION. Ошибку в ней нельзя сообщить второй NOTIFICATION. Поэтому RFC 9003 прямо исключает подтверждение получения и правильного понимания.

Лог отправителя доказывает попытку, pcap — байты, удалённый daemon — получение. Они не доказывают, что человек прочитал, нашёл тикет или согласился.

Общий change ID должен вести к аутентифицированному внеполосному уведомлению. BGP оставляет индекс в момент исчезновения; согласование и исправление принадлежат двустороннему каналу.

Валидный UTF-8 не делает утверждение истинным

Корректная строка может содержать ложный тикет, похожие Unicode-символы или разметку, выглядящую как новая запись syslog. shortest form защищает декодирование, не смысл.

Получатель хранит raw отдельно от безопасного отображения, экранирует control characters и отмечает происхождение от peer. Лимит ограничивает объём, но не очищает данные.

Без integrity возможна подделка, без confidentiality — наблюдение. Минимизировать нужно до общей ссылки, класса и окна. Имена, credentials, клиенты, внутренние hosts, topology и предварительная root cause не должны выходить на провод.

Даже защищённый transport подтверждает endpoint, а не автора и обещание. До corroboration это заявление соседа.

Объяснение не перемещает трафик

RFC 8326 снижает preference и ждёт convergence до разрыва. RFC 9003 говорит в самом завершении. Текст не создаёт alternative и не меняет LOCAL_PREF.

Оператор может сначала доказать drain, потом закрыть с объяснением. Два механизма требуют двух доказательств.

RFC 8538 добавляет N-bit Graceful Notification. После взаимного обмена NOTIFICATION, кроме Hard Reset, может сохранить stale routes. Cease 9 требует full reset. Для Administrative Shutdown рекомендован Hard Reset; для Reset оставлен user control.

В сочетании с Hard Reset внешний подкод равен 9, а административное сообщение и текст инкапсулированы. Система, показывающая только оболочку, теряет причину. Сохранённая route также может вести в мёртвый next hop.

Реакция остаётся местной

Отправитель контролирует закрытие и фразу. Получатель — log, redaction, alert, retry и stale policy. RFC 4486 рекомендует тормозить и ограничивать переподключения после долгих причин вроде Administrative Shutdown. Строка не устанавливает удалённый timer.

Automation следует подкоду и локальной подтверждённой policy. Известный ticket добавляет контекст, неизвестный требует проверки. Ошибочная классификация создаёт retry loop или лишнюю задержку восстановления.

Проверка заканчивается пакетами

Определить авторов, namespace, словарь, запрещённые данные и октетный предел. Тестировать ASCII и multibyte canaries известной длины: 128 везде, 255 после доказательства поддержки.

Снять endpoints, время, code, subcode, length, raw bytes, decode, N-bit и encapsulation. На приёме проверить rendering, escaping, syslog, telemetry, ticket, retention и redaction.

Затем записать socket, FSM, retries, withdrawal/stale, timer, RIB/FIB. Измерить трафик, потери и recovery. Только вся цепочка доказывает событие.

Rollback убирает свободный текст, возвращает 128, controlled vocabulary или одну ссылку. Реальная классификация Cease и внеполосная запись сохраняются.

RFC 9003 оставляет уходящей сессии небольшой совместимый след. Полномочия, минимум данных, независимая проверка и running code превращают след в доказательство. Объяснить — не значит приказать.