Резюме

  • ThousandEyes сообщила о двух отдельных сбоях Comcast 8 и 9 ноября 2021 года. Первый начался примерно в 21:44 по тихоокеанскому времени 8 ноября и завершился примерно в 22:48. Второй начался примерно в 05:05 9 ноября и завершился примерно в 06:15.[1]

  • Во время первого события внешние тесты показали потери пакетов на путях, проходящих через ядро Comcast в Саннивейле. Часть трафика, который изначально использовал другие пути, сохраняла работоспособность, а затем выходила из строя после перенаправления через Саннивейл. Такая последовательность — это свидетельство о наблюдаемых путях пересылки, а не полная запись внутренней топологии или конфигурации Comcast.[1]

  • Второе событие имело более широкий наблюдаемый охват. ThousandEyes сообщила, что часть трафика из центральных и восточных регионов США временно направлялась в Саннивейл, даже если конечные точки находились далеко от Калифорнии. Некоторые пути чередовались между полной потерей и успешной доступностью; такое поведение анализ описал как, возможно, связанное с нестабильностью плоскости управления.[1][3]

  • Позднейший обзор ThousandEyes объяснил инцидент непреднамеренным превышением лимита таблицы маршрутизации.[2] Публичный пакет данных не называет конкретное устройство, таблицу, настроенный порог, поведение программного обеспечения, команду, владельца изменения, поставщика или последовательность согласования. Поэтому объяснение через лимит должно оставаться атрибуцией, а не подаваться как полный постмортем Comcast.

  • Лимит таблицы маршрутизации — это механизм подотчётности, поскольку операторы могут измерять заполнение таблицы, скорость роста, зарезервированный запас, пороги сигнализации, поведение при отказе и восстановление. Были ли такие измерения внедрены и эффективны внутри Comcast, замороженные источники не раскрывают.

  • Перенаправление не всегда создавало независимый путь. Наблюдаемый трафик, перенаправленный в повреждённое ядро Саннивейла, также терялся. Непрерывность поэтому зависит от разделения доменов отказа, а не только от существования другого расчёта маршрута.[1]

  • Запись RDAP ARIN для AS7922 даёт контекст атрибуции сетевых ресурсов.[9] Она не показывает живые маршруты, установленные в маршрутизаторе Comcast, внутреннее состояние отражателей маршрутов, топологию, заполнение таблиц или результат пересылки конкретного пакета.

  • Документы IETF объясняют работу BGP, сходимость, отражение маршрутов, плановые изменения и обнаружение отказов.[10]-[20] Они дают управленческий словарь и более поздний или общий проектный контекст. Они не доказывают, какие механизмы Comcast использовала в ноябре 2021 года, и не являются ретроспективным установлением вины.

  • Правила FCC об отчётности о сбоях создают запись подотчётности для квалифицируемых сбоев связи.[7][8] Использованные здесь публичные источники не раскрывают конфиденциальную отчётность Comcast по этому событию. Обязанность отчитываться нельзя считать публичным техническим постмортемом.

  • Доказательства поддерживают измеримый операционный вывод, а не обвинение. Comcast контролировала свою внутреннюю ёмкость маршрутизации, топологию, сигнализацию, процесс изменений, коммуникацию с клиентами и восстановление. Внешние наблюдатели контролировали свои методы измерения. Регуляторы контролировали требования к отчётности. Доступная запись не устанавливает умысел, халатность, юридическую ответственность или индивидуальную вину.

Вопрос подотчётности

События ноября 2021 года важны, потому что интернет отказал не как абстрактное облако. Конкретные пути трафика перестали пересылать пакеты, некоторые альтернативные расчёты направили трафик в то же проблемное ядро, а обслуживание восстановилось после изменения состояния сети. Это наблюдаемая операционная последовательность. Она ставит более узкий и полезный вопрос подотчётности, чем вопрос о том, может ли крупный провайдер вообще испытывать сбои.

Вопрос в том, были ли механизмы контроля ёмкости таблицы маршрутизации и поведения доменов отказа проверяемыми до события. Провайдер может знать, сколько маршрутов поддерживает устройство или процесс. Он может знать текущее заполнение, скорость роста состояния, объём ёмкости, зарезервированный для сходимости, поведение при предупредительном и жёстком лимитах, а также используют ли резервные управляющие элементы один и тот же предел. Он может проверить, приводит ли отказ узла или региона к переходу трафика на действительно независимый путь.

Он может сохранять доказательства срабатывания сигналов, действий сотрудников, внесённых изменений и способа восстановления пересылки.

Публичные доказательства не раскрывают ответы Comcast на эти вопросы. ThousandEyes предоставила внешние наблюдения со своих точек обзора и позднее объяснила инцидент лимитом таблицы маршрутизации.[1][2] Она не опубликовала архив конфигурации Comcast, внутреннюю телеметрию, записи согласований или полный обзор инцидента. Страницы архитектуры Comcast описывают крупную распределённую сеть, но они не были написаны как постмортем для этих двух событий.[5][6] Поэтому анализ подотчётности должен отделять то, что можно наблюдать, от того, что остаётся внутри границы доказательств оператора.

Такое разделение не означает отказ от анализа. Оно определяет правильную единицу ответственности. Comcast контролировала внутреннюю систему, в которой был достигнут лимит и выполнено восстановление. ThousandEyes контролировала свои измерения и интерпретацию, а не маршрутизаторы Comcast. ARIN контролировал точность и доступность регистрационной записи AS7922, а не маршруты, установленные в ядре Саннивейла.[9] FCC контролировала требования к отчётности и правила доступа, а не живые решения о пересылке.[7][8]

Получающийся тезис практичен: заявление о непрерывности заслуживает доверия только тогда, когда ёмкость, топология и восстановление можно продемонстрировать в работающих системах. Проектная схема может показывать несколько узлов. Протокол маршрутизации может рассчитывать несколько путей. Реестр может точно идентифицировать автономную систему. Ни один из этих фактов сам по себе не доказывает, что трафик избежит общей повреждённой области при достижении лимита таблицы.

Хронология двух событий для технического анализа

Хронология получена из внешних измерений и должна оставаться обозначенной именно так. Платформа мониторинга путей видит выбранные тесты с выбранных точек обзора. Она может выявлять потери пакетов, изменения путей и повторяющиеся закономерности. Она не может видеть каждую внутреннюю команду, каждый маршрут в каждой таблице или каждую клиентскую сессию. Приведённая ниже хронология фиксирует наблюдения, не превращая их в воображаемый внутренний журнал.

ВремяЗафиксированное событие
До 21:44 по тихоокеанскому времени 8 ноябряПубличный пакет данных не указывает инициирующее изменение, событие роста таблицы, сигнал устройства или внутреннее действие по обслуживанию. Внешние пути, использованные позднейшим анализом, работали до наблюдаемой потери.
Примерно 21:44ThousandEyes отнесла начало первого сбоя примерно к этому времени. Тесты, трафик которых проходил через ядро Саннивейла, начали показывать потери.[1]
Примерно 21:44–21:46Некоторые соседние пути вне Саннивейла продолжали работать. Это наблюдение важно, потому что показывает, что сбой изначально не был одинаковым на всех измеряемых путях.[1]
Примерно с 21:46Часть трафика была перенаправлена через Саннивейл и затем испытала те же полные потери пакетов. Внешняя запись показывает изменение пути с последующим отказом, но не внутреннее решение или маршрут, вызвавший каждое изменение.[1]
Примерно 22:48Первый наблюдаемый сбой завершился. Ранее перенаправленные пути вернулись к прежним маршрутам, а часть трафика через Саннивейл использовала другой набор узлов Саннивейла. Публичная запись не называет корректирующую команду или точную последовательность сходимости.[1]
Между событиямиПакет данных не раскрывает, сохранялось ли общее условие, предпринималось ли изменение и имело ли второе событие тот же непосредственный триггер. Два инцидента демонстрировали похожее поведение, но сходство не является доказательством одной непрерывной внутренней причины.
Примерно 05:05 9 ноябряНачался второй сбой. ThousandEyes наблюдала полную потерю на некоторых путях, проходящих через Саннивейл.[1]
Во время второго событияЧасть трафика из других регионов США перенаправлялась в Саннивейл и терялась. Трафик Чикаго–Чикаго был среди примеров, использованных для иллюстрации неожиданного географического пути.[1]
Во время второго событияНекоторые измеряемые пути чередовались между потерей и успешной доступностью. ThousandEyes обсуждала нестабильность плоскости управления как возможное объяснение такого меняющегося поведения.[1]
Примерно 06:15Второй наблюдаемый сбой завершился, и затронутые пути снова достигли пунктов назначения. Публичный пакет данных не раскрывает, стало ли восстановление результатом отката, изменения ёмкости, перезапуска процесса, отзыва маршрута или другого действия.[1]
Позднейший обзорЕжегодный обзор ThousandEyes объяснил инцидент непреднамеренным превышением лимита таблицы маршрутизации.[2] Это позднейшее объяснение даёт зафиксированный механизм, но не полное внутреннее дерево первопричин.

Эта хронология поддерживает три вывода. Во-первых, два события были разделены во времени, и их не следует объединять в один непрерывный сбой без внутренних доказательств. Во-вторых, ядро Саннивейла было центральным для наблюдаемых отказов. В-третьих, перенаправление могло увеличить число затронутых путей, когда альтернативный расчёт направлял трафик в то же повреждённое ядро.

Она не поддерживает утверждение, что все абоненты Comcast были отключены, что каждый путь проходил через Саннивейл или что лимит одинаково повлиял на каждый маршрутизатор. Она не показывает, вызвал ли жёсткий потолок таблицы отклонение, отзыв, очистку или многократный пересчёт маршрутов. Она не устанавливает, была ли таблица информационной базой маршрутизации BGP, таблицей пересылки, специфической для платформы структурой или иным ресурсом плоскости управления. Эти различия остаются существенными неизвестными.

Что могут установить внешние данные о путях

Внешние измерения наиболее сильны, когда описывают результаты пересылки. Тест отправляет трафик из известной точки обзора к известному пункту назначения, фиксирует хопы и потери и сравнивает путь до, во время и после инцидента. Когда многие тесты используют один и тот же затронутый интерфейс или локацию, данные могут выявить общую наблюдаемую точку отказа. ThousandEyes описывает этот метод как агрегирование измерений на своей платформе для обнаружения сбоев трафика и маршрутизации.[4]

Для первого события Comcast сравнение успешных путей вне Саннивейла и отказывающих путей через Саннивейл создаёт значимую границу. Оно указывает, что наблюдаемый отказ следовал за размещением пути. Когда часть соседнего трафика была позднее перенаправлена через Саннивейл и затем потеряна, последовательность показала, что альтернативный маршрут не покинул затронутую область.[1]

Второе событие добавило географическую аномалию. Часть трафика с конечными точками в центральных или восточных штатах США наблюдалась проходящей через Саннивейл. Путь может быть технически корректным, но операционно нежелательным во время сбоя. BGP и внутренние системы маршрутизации выбирают пути в соответствии с настроенной политикой и доступным состоянием; они не понимают интуитивного ожидания клиента, что локальный трафик должен оставаться географически локальным.[10] Поэтому механизм подотчётности — это не интуиция, а проверяемое требование к политике и топологии.

Внешние данные о путях имеют ограничения. Видимый хоп не обязан отвечать на каждый вопрос об инкапсуляции, внутренних метках, отражении маршрутов или многопутевой маршрутизации с равной стоимостью. Неотвечающие интерфейсы могут усложнять интерпретацию. Путь, видимый одной точкой обзора, не является универсальным маршрутом. Потеря пакетов на именованном хопе или после него не всегда доказывает, что причиной стал именно отвечающий интерфейс. Выводы ThousandEyes следует читать как наблюдения провайдера измерений, а не как привилегированный доступ к каждому маршрутизатору.

Эти ограничения делают важными сопоставление и хранение данных. Операторы могут сохранять собственное состояние маршрутов, счётчики интерфейсов, заполнение таблиц и записи изменений вместе с независимыми данными о путях. Позднейший обзор сможет проверить, соответствует ли внешний сдвиг пути известному внутреннему событию. Без такого объединённого доказательства внешние наблюдатели могут определить область отказа, но не восстановить полную последовательность управляющих действий.

Ёмкость таблицы маршрутизации — это механизм непрерывности

Системы маршрутизации хранят несколько видов состояния. Узлы BGP получают обновления, применяют политику, выбирают пути и анонсируют разрешённые результаты.[10] Реализации могут поддерживать полученные маршруты, принятые маршруты, выбранные маршруты и записи пересылки в отдельных структурах. Отражатель маршрутов может снизить потребность в полной сетке внутренних сессий BGP, одновременно становясь частью пути распространения маршрутной информации.[12] Аппаратное и программное обеспечение накладывает ограничения на память, записи пересылки, ресурсы процессов и поддерживаемые маршруты.

Поэтому фраза «лимит таблицы маршрутизации» требует точности. Настроенный максимум может быть сознательным ограждением. Ёмкость платформы может быть жёсткой инженерной границей. Процесс может исчерпать память раньше, чем будет достигнут номинальный счётчик маршрутов. Функция maximum-prefix на сессии может закрыть сессию или предупредить оператора. Таблица пересылки может иметь ёмкость, отличную от таблицы плоскости управления. Замороженные публичные доказательства не говорят, какое именно условие возникло в сети Comcast.

Эта неопределённость не делает ёмкость непроверяемой. Оператор может зафиксировать идентичность каждой релевантной таблицы, её поддерживаемые и настроенные лимиты, обычное заполнение, пиковое заполнение, зарезервированный запас для сходимости и ожидаемый рост. Он может определить предупредительные пороги ниже точки отказа и проверить путь доставки сигнала. Он может смоделировать контролируемое увеличение числа маршрутов и проверить, отклоняет ли устройство только избыток, защищает ли установленную пересылку, перезапускает ли процесс, отзывает ли маршруты или распространяет нестабильность.

Запас ёмкости следует определять для сценария отказа, а не для среднего дня. Во время сходимости маршрутизатор может временно хранить старые и новые пути. Обслуживание может вызвать появление альтернативных маршрутов. Ошибка политики может увеличить принятое состояние. Изменение отражателя маршрутов может изменить видимость путей. Поэтому правильный запас включает временное состояние и время, необходимое оператору для действий.

Полезная запись о ёмкости должна содержать как минимум шесть измерений:

  1. текущее заполнение каждой структуры маршрутизации и пересылки;
  2. жёсткий лимит платформы и любой более низкий настроенный лимит;
  3. наибольшее временное заполнение, наблюдавшееся во время проверенной сходимости;
  4. предупредительный порог и проверенное время доставки сигнала;
  5. задокументированное поведение при предупредительном и жёстком лимитах; и
  6. процедура восстановления, включая доказательства, требуемые перед возвращением трафика.

Ноябрьский инцидент делает эту запись значимой, потому что наблюдаемый отказ не остался локальным для трафика, уже использовавшего Саннивейл. Часть трафика была перенаправлена в ядро и отказала там.[1] Если лимит таблицы в одном узле или кластере может притягивать дополнительные пути во время сходимости, лимит становится механизмом контроля радиуса поражения. Тестирование ёмкости должно спрашивать не только о том, выживает ли одно устройство, но и о том, как остальная сеть реагирует на его частичный отказ.

Ни один источник в пакете данных не устанавливает, что у Comcast отсутствовали эти измерения. Доказательства показывают, что превышение лимита было названо позднее и что внешне наблюдаемые пути отказывали. Вывод о подотчётности состоит в том, что соответствующие измерения должны быть проверяемыми, а не в том, что их отсутствие доказано.

Почему перенаправление не было независимой отказоустойчивостью

Сети часто описывают как отказоустойчивые, потому что трафик может пойти по другому пути. Это утверждение опускает самый важный вопрос: независимый от чего? Два пути могут использовать разные интерфейсы, но иметь общий отражатель маршрутов, версию программного обеспечения, потолок таблицы, домен питания, магистральное ядро метро, процесс обслуживания или источник конфигурации. Новый расчёт пути поэтому может сохранить тот же базовый отказ.

Первое событие Comcast даёт конкретный пример. Часть трафика вне Саннивейла изначально оставалась успешной. После перенаправления через Саннивейл она также отказала.[1] Протокол нашёл маршрут, но маршрут вошёл в повреждённую область. С точки зрения пользователя существование второго расчёта не создало непрерывности.

Анализ доменов отказа следует проводить на нескольких уровнях. Физическое разнообразие спрашивает, разделены ли каналы, площадки и системы питания. Разнообразие плоскости управления спрашивает, могут ли процессы распространения маршрутов и принятия решений отказывать независимо. Разнообразие ёмкости спрашивает, имеют ли альтернативные узлы независимый и достаточный запас ёмкости таблиц. Операционное разнообразие спрашивает, может ли одно изменение, система автоматизации или согласование затронуть все предполагаемые альтернативы.

Разнообразие наблюдаемости спрашивает, остаётся ли мониторинг доступным, когда производственная плоскость управления повреждена.

Ядро в стиле Клоза может предоставить несколько путей и горизонтальное масштабирование. ThousandEyes обсуждала использование Comcast архитектуры spine-leaf при интерпретации события.[1] Этот архитектурный контекст объясняет, почему важны поведение на уровне узла и на уровне фабрики. Он не раскрывает точную производственную топологию затронутого ядра и не доказывает, что каждый путь имел одну общую управляющую зависимость.

Правильная проверка является состязательной, но ограниченной. Операторы могут вывести узел, изолировать отражатель маршрутов, ограничить таблицу, задержать обновление и наблюдать, куда перемещается трафик. Тест должен подтвердить, что альтернативный путь избегает исходного физического и логического домена отказа, имеет достаточную ёмкость и не создаёт неожиданного географического обхода. Результаты следует фиксировать измерениями плоскости пересылки изнутри и снаружи сети.

Отказоустойчивость демонстрируется, когда альтернативный путь несёт трафик при проверяемом отказе. Она не демонстрируется, когда топологическая схема содержит несколько линий.

Сходимость, отражение маршрутов и изменение путей

BGP не обновляет весь интернет или крупную внутреннюю сеть мгновенно. Маршрутизаторы получают изменения в разное время, применяют локальную политику и анонсируют новые результаты. RFC 4277 описывает поведение сходимости и задержки или временные состояния, которые могут возникать после изменений маршрутизации.[11] Отражатели маршрутов меняют структуру распространения внутри автономной системы, позволяя клиентам обмениваться маршрутами без полной внутренней сетки.[12]

ThousandEyes наблюдала, как некоторые пути Comcast во время второго события чередовались между полной потерей и нормальной доступностью, и назвала нестабильность плоскости управления возможным объяснением.[1] Публичные доказательства не показывают точные обновления, вызвавшие это. Тем не менее они устанавливают, почему поведение сходимости относится к проверке ёмкости. Система, близкая к лимиту, может реагировать иначе, когда старые и новые пути сосуществуют или когда сессии сбрасываются и заново заполняют состояние.

Механизмы плавного перезапуска и плавного отключения решают отдельные проблемы переходных процессов. RFC 4724 описывает сохранение состояния пересылки во время определённых перезапусков BGP.[13] RFC 6198 устанавливает требования к снижению потерь трафика при намеренном закрытии сессии BGP, а RFC 8326 задаёт механизм плавного отключения.[15][19] Эти документы не доказывают, что механизмы были релевантны, доступны или развёрнуты в инциденте Comcast.

Они показывают, что фраза «протокол сошёлся» не является полным операционным стандартом. Событие сходимости может сопровождаться потерей пакетов, временными петлями, устаревшим состоянием или изменениями путей, нарушающими задуманную локальность. Проверенная сеть должна определять приемлемое время сходимости и потери для каждого класса отказов. Она также должна определять, что происходит, когда ресурс плоскости управления, а не канал, достигает лимита.

Отражение маршрутов заслуживает отдельного доказательства, потому что логическая избыточность всё равно может совместно использовать состояние распространения. Оператор должен знать, какие клиенты зависят от каждого отражателя, имеют ли альтернативные отражатели независимую ёмкость, как выбираются пути, когда один отражатель теряет состояние, и как сигнал о лимите меняет распространение. Статья не утверждает, что отражатель маршрутов вызвал инцидент Comcast. Она указывает тип зависимости, который постмортем о лимите таблицы маршрутизации должен исследовать.

Обнаружение должно переживать сбой, о котором сообщает

Быстрое обнаружение полезно только тогда, когда сигнал доходит до оператора и идентифицирует затронутую область контроля. Двунаправленное обнаружение пересылки может быстро выявлять определённые отказы путей пересылки.[14] Само по себе оно не диагностирует лимит таблицы маршрутизации. Телеметрия устройства может сообщать заполнение таблицы и здоровье процесса. Коллекторы маршрутов и внешние тесты путей могут выявлять изменения доступности. Сообщения клиентов могут показывать симптомы отказа услуги. Каждый источник видит свою часть события.

Подотчётная конструкция мониторинга связывает эти уровни. Предупреждение о таблице должно называть устройство, структуру, текущее значение, настроенный лимит и тренд. Сигнал маршрутизации должен показывать, какое состояние изменилось. Сигнал о пути должен показывать, какие пункты назначения и регионы потеряли доступность. Система влияния на клиентов должна связывать сетевое событие с затронутыми услугами, не заявляя больше пользователей, чем поддерживают доказательства.

Мониторинг также нуждается в независимом пути доставки. Если сигналы, дашборды, аутентификация или чат инцидента зависят от той же повреждённой сети, оператор может потерять инструменты, необходимые для восстановления. Публичный пакет Comcast не говорит, произошло ли это. Это остаётся измеримым требованием непрерывности, вытекающим из класса отказа, а не обвинением в адрес события.

Внешние измерения дают отдельную проверку реальности. ThousandEyes могла сравнивать успешные и отказывающие пути до того, как Comcast опубликовала подробное объяснение.[1][4] Оператор может использовать аналогичные внешние данные, чтобы проверить, соответствует ли внутренний «зелёный» статус успешной пересылке. Финальный шлюз восстановления должен требовать как внутренней стабильности, так и внешней доступности из нескольких регионов.

Такой шлюз предотвращает распространённую ошибку закрытия инцидента: объявление восстановления, когда управляющий процесс перезапущен, но пересылка остаётся нестабильной. В хронологии Comcast наблюдаемое конечное состояние состояло в том, что затронутые пути снова достигли пунктов назначения.[1] Публичная запись не раскрывает внутренние критерии объявления восстановления Comcast, поэтому сравнение невозможно. Инцидент всё же показывает, почему доказательства пересылки должны входить в критерии.

Данные реестра и реальная работа сети

RDAP-сервис ARIN фиксирует AS7922 как зарегистрированный ресурс автономной системы.[9] Такие записи важны. Они помогают операторам и исследователям идентифицировать организацию, связанную с номерным ресурсом, поддерживать контакты и отличать одну сеть от другой. Точность, уникальность и актуальность записей поддерживают координацию.

Запись не управляет BGP. Она не хранит полную таблицу маршрутов маршрутизатора Comcast, не выбирает путь, не применяет порог таблицы и не направляет трафик Чикаго в обход Калифорнии. Эти результаты возникают из работающего программного обеспечения, установленного состояния, топологии и политики оператора.

Такое различие позволяет избежать двух ошибок. Первая — считать атрибуцию из реестра доказательством каждого внутреннего действия. Вид AS7922 в пути может идентифицировать сетевой контекст, но не может назвать сотрудника, конфигурацию или юридическую ответственность за отказ. Вторая — отвергать данные реестра, потому что они не управляют пересылкой. Актуальная запись остаётся полезной для атрибуции и координации инцидента, даже если она не является системой управления путями.

Сетевая подотчётность зависит от соединения уровня записей с уровнем реальности. Идентификатор ресурса, инвентарь устройств, политика маршрутизации, телеметрия таблиц, запись изменений, сигналы и внешние наблюдения путей должны относиться к одному и тому же операционному событию. Когда эти связи сохранены, обзор может спросить, кто контролировал каждое решение, не делая вид, что одна база данных управляла всей сетью.

Подотчётность в отчётности и конфиденциальные доказательства

Правила части 4 FCC и связанные руководства устанавливают требования к отчётности и хранению записей для квалифицируемых сбоев связи.[7][8] Правила признают, что географический охват, продолжительность, число пользователей и последствия для общественной безопасности могут иметь значение для надзора. Они также защищают информацию о сбоях, которая не является общедоступной.

Эта статья не имеет конфиденциальной отчётности Comcast в NORS по событиям ноября 2021 года. Поэтому она не может утверждать, что Comcast назвала первопричиной, сколько пользователей было учтено по регуляторным определениям, был ли достигнут порог и какие меры были представлены FCC.

Эта граница важна, потому что отчётность и публичный постмортем служат разным аудиториям. Регулятор может получить чувствительные детали инфраструктуры, которые не следует раскрывать публично. Клиентам и зависимым операторам по-прежнему нужно достаточно публичной информации, чтобы понимать природу отказа и оценивать непрерывность. Подотчётность не требует публикации топологии, готовой к эксплуатации уязвимостей. Она требует достоверного публичного объяснения класса отказа, охвата, восстановления и измеримой профилактики.

Полезная публичная запись могла бы сообщить, что лимит маршрутного состояния был превышен, описать затронутую область управления на подходящем уровне, дать временные окна наблюдения и восстановления, объяснить, почему перенаправленный трафик вошёл в ту же область, и перечислить изменённые после этого меры контроля. Это можно сделать, не называя отдельных инженеров и не публикуя чувствительные конфигурации маршрутизаторов.

Отсутствие таких деталей в замороженном публичном пакете ограничивает выводы. Оно не доказывает, что Comcast не отчиталась конфиденциально или не устранила проблему. Оно показывает, что внешним наблюдателям приходится полагаться прежде всего на внешние измерения для технической реконструкции.

Владельцы средств контроля и обязанности по доказательствам

Подотчётность должна следовать за практическим контролем, а не за близостью к заголовку.

Comcast контролировала внутреннюю ёмкость маршрутизации.Оператор мог инвентаризировать платформы, устанавливать или принимать лимиты, отслеживать заполнение, резервировать запас и тестировать поведение при отказе. Доказательства включали бы инвентаризацию устройств и программного обеспечения, телеметрию таблиц, конфигурации лимитов, сигналы и результаты тестов ёмкости.

Comcast контролировала топологию и распространение маршрутов.Она могла проектировать домены отказа ядра, отношения отражателей маршрутов, предпочтения путей и географические ограничения. Доказательства включали бы утверждённую топологию, политику маршрутизации, карты зависимостей и результаты внесения отказов. Публичный пакет не раскрывает эти материалы.

Comcast контролировала изменения и восстановление.Она могла авторизовывать изменения, поэтапно внедрять их, сохранять состояние до и после, выполнять откат и проверять пересылку. Доказательства включали бы тикеты, согласования, диффы, журналы команд, решения по инциденту и внешние тесты восстановления.

Поставщики контролировали поведение продуктов внутри своих продуктов.Поставщик маршрутизатора или программного обеспечения может определять ёмкость, сигналы и режимы отказа. Замороженные источники не называют поставщика или продукт, поэтому статья не может возложить обязательство или дефект на конкретного поставщика.

Внешние наблюдатели контролировали качество измерений.ThousandEyes контролировала свои точки обзора, тесты, интерпретацию путей и опубликованный анализ.[1]-[4] Её данные могут показывать закономерности, но должны раскрывать ограничения и оставаться открытыми для сравнения с внутренними данными.

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

ARIN контролировал точность и доступность записей реестра.Он не контролировал внутренние маршруты Comcast.[9]

FCC контролировала правила отчётности и защищённые надзорные записи.Она не контролировала решение о маршрутизации, направившее путь через Саннивейл.[7][8]

Такое распределение — не утверждение, что каждый участник потерпел неудачу. Это карта того, кто мог предоставить доказательства, необходимые для оценки конкретного механизма контроля.

Измеримые меры по устранению

Самая сильная программа устранения превращает неизвестные инцидента в повторяющиеся тесты.

1. Определите каждый релевантный лимит.Для каждой структуры маршрутизации и пересылки зафиксируйте максимум платформы, настроенный максимум, текущее заполнение, ожидаемый рост и аварийный резерв. Разделяйте полученное, принятое, выбранное и установленное состояние там, где платформа их раскрывает. Один общий счётчик маршрутов недостаточен, если меньшая внутренняя структура может отказать первой.

2. Настройте многоступенчатые сигналы.Предупредительные пороги должны оставлять достаточно времени для расследования до жёсткого лимита. Сигналы должны включать затронутую структуру, текущее значение, скорость изменения, релевантного соседа или процесс и безопасный ответ. Доставку сигналов необходимо проверять по независимому каналу управления.

3. Тестируйте временный запас ёмкости.Модели ёмкости должны включать обычный рост плюс дополнительное состояние, возникающее при обслуживании, повторной сходимости маршрутов, восстановлении сессий и откате политики. Тест должен измерять пик, а не только финальную стабильную таблицу.

4. Проверяйте поведение при отказе.В контролируемой среде приблизьтесь к настроенному лимиту или превысьте его и зафиксируйте, что делает система. Отклоняет ли она новые маршруты, сбрасывает ли сессию, отзывает ли существующие маршруты, перезапускает ли процесс, сохраняет ли пересылку или создаёт нестабильность? Документированный лимит без проверенного режима отказа неполон.

5. Картируйте общие управляющие зависимости.Резервные узлы следует проверять на общие отражатели маршрутов, системы конфигурации, версии программного обеспечения, потолки таблиц, домены питания и каналы управления. Цель переключения, использующая тот же ограничивающий ресурс, не является независимой.

6. Тестируйте географическую локальность.Определите, какие классы трафика должны оставаться внутри региона при указанных отказах. Используйте внутренние и внешние измерения, чтобы убедиться, что локальный путь не перенаправляется через удалённое повреждённое ядро без явной и проверенной причины.

7. Свяжите доказательства плоскости управления и плоскости пересылки.Маршрут может существовать в управляющей таблице, пока пакеты всё равно теряются. Восстановление должно требовать успешных тестов пересылки, приемлемых потерь и стабильных путей из нескольких точек обзора. Внутреннее состояние маршрутов и внешние данные о путях должны быть выровнены по времени.

8. Сохраняйте триггер, обнаружение, реакцию и восстановление отдельно.Инициирующее событие может предшествовать первому сигналу. Внешний наблюдатель может заметить симптомы раньше, чем оператор определит причину. Откат может произойти до стабилизации глобальных путей. Постмортем должен фиксировать каждую метку времени и источник доказательства, а не сжимать их в одну продолжительность сбоя.

9. Проверяйте поведение отражателей маршрутов и сходимость.Там, где используется отражение маршрутов, тестируйте поведение клиентов, ёмкость альтернативных отражателей, видимость путей и повторное заполнение состояния.[12] Определите приемлемую сходимость и потери для каждого планового отказа.[11] Механизмы плавного перехода можно оценивать там, где они релевантны, не предполагая, что они решают исчерпание таблицы.[13][15][19]

10. Сохраняйте точность терминологии междоменной политики.RFC 7908 определяет утечки маршрутов, а RFC 8212 и RFC 9234 касаются явной политики и контролей на основе отношений.[17][18][20] Доказательства Comcast в этом пакете касаются внутренних изменений путей и лимита таблицы. Операторам не следует называть каждое неожиданное перенаправление утечкой маршрута, потому что неверный ярлык направляет меры на неправильный механизм контроля.

11. Отрабатывайте цепочку зависимостей управления инцидентом.Система мониторинга, сервис аутентификации, статусная страница, поддержка клиентов, инженерная коммуникация и путь изменений должны оставаться доступными, когда производственное ядро повреждено. Учение должно включать потерю основной сетевой доступности.

12. Публикуйте ограниченный технический отчёт.Публичный отчёт должен называть класс отказа, временное окно, затронутую область управления, метод восстановления и проверенные меры, не раскрывая чувствительную топологию. Он должен различать измеренные факты, внутренние выводы и нерешённые вопросы.

Каждая мера нуждается в условии прохождения. «Следить за размером таблицы» не является условием прохождения. «Подать сигнал при заданном резерве, доставить его по независимому каналу в течение проверенного интервала и продемонстрировать, что операторы могут восстановить достаточный запас до жёсткого лимита» — проверяемо. «Обеспечить избыточность» не является условием прохождения. «При изолированном отказе ядра Саннивейла указанный трафик остаётся доступным без пересечения изолированной области и с потерями ниже заданного порога» — проверяемо.

У мер контроля также должны быть владельцы и даты пересмотра. Ёмкость может меняться по мере изменения клиентов, пиров, префиксов, услуг и политик управления трафиком. Пройденный результат одного года не может устанавливать бессрочную безопасность. Доказательства должны показывать, когда тест выполнялся, для какого программного обеспечения и топологии, и какие исключения остаются.

Эти предложения не являются доказательством того, что Comcast их не выполняла. Это измеримые меры контроля, логически связанные с внешне наблюдаемым отказом и приписанным механизмом лимита.

Более поздние стандарты — это контекст, а не вердикты

Несколько документов IETF в наборе источников датированы позже инцидента или обобщают за его пределами. RFC 8212 описывает поведение отклонения по умолчанию, когда внешняя политика BGP не настроена явно.[18] RFC 9234 описывает роли BGP и атрибут Only-to-Customer для снижения числа определённых утечек маршрутов.[20] Ни один документ не устанавливает причину внутреннего лимита таблицы маршрутизации и не доказывает конфигурацию Comcast 2021 года.

RFC 7454 собирает операционные практики и практики безопасности BGP.[16] RFC 6198 и RFC 8326 касаются требований и сигнализации плавного отключения.[15][19] RFC 5880 определяет BFD.[14] Они помогают формулировать вопросы о политике, плановых изменениях и обнаружении. Их не следует подавать как контрольный список, который публичные доказательства доказывают нарушенным Comcast.

Такое различие защищает анализ от предвзятости задним числом. Стандарты могут показывать, что мера контроля была известна или технически возможна. Они не могут установить, что она требовалась по контракту, поддерживалась на конкретной платформе, была настроена в затронутой сети или могла предотвратить именно этот отказ. Такие выводы требуют дополнительных доказательств.

Статья использует стандарты для определения измеримых альтернатив. Она не использует их для создания вывода о вине.

Что эта статья не смешивает

События ноября 2021 года — это не сбой Comcast 2017 года, связанный с утечкой маршрутов BGP Level 3. Тот случай включал утечки внешних маршрутов и другой наблюдаемый механизм. Это не сбой Comcast 2018 года из-за обрыва оптоволокна, когда физическое повреждение и более специфичные анонсы сформировали другую запись восстановления. Это не инцидент 2023 года с данными клиентов, связанный с CitrixBleed, который касался подверженного уязвимости пограничного устройства и записей идентичности.

Статья также не приравнивает любое перенаправление к утечке маршрута. Утечка маршрута имеет конкретное значение в междоменной политике.[17] Пакет 2021 года показывает изменение внутренних или контролируемых провайдером путей и попадание трафика в повреждённое ядро. Без соответствующих анонсов маршрутов и доказательств отношений называть такое поведение утечкой маршрута было бы необоснованно.

Сбой не является доказательством отказа реестра. Запись ARIN для AS7922 помогает идентифицировать сетевой ресурс.[9] Корректная запись не может предотвратить достижение таблицей маршрутов лимита, а лимит таблицы не делает запись реестра некорректной.

Наконец, сбой не является доказательством атаки. Замороженные источники не устанавливают злонамеренных действий, несанкционированного доступа, преднамеренного нарушения работы или преступного умысла.

Ключевые неопределённости

Точная таблица и порог остаются неизвестными. Триггерное изменение состояния, устройство, программное обеспечение, команда и ответственная роль остаются неизвестными. Топология и заполнение таблиц каждого узла Саннивейла остаются неизвестными. Полное влияние на клиентов и услуги остаётся неизвестным.

Внутренняя хронология сигналов, решения о реагировании, метод восстановления и пост-инцидентные меры отсутствуют в замороженном публичном пакете. Содержимое любой конфиденциальной отчётности о сбое недоступно. Ни один использованный источник не устанавливает дефект поставщика, индивидуальную ошибку, халатность, юридическую ответственность или количественно оценённый ущерб.

Эти пробелы ограничивают заявления о вине, но не операционные вопросы. Наблюдаемые пути и приписанный лимит всё же указывают, какие доказательства были бы необходимы для полного обзора.

Вывод

Сбои Comcast в ноябре 2021 года превратили границу ёмкости в тест сетевой подотчётности. ThousandEyes наблюдала два инцидента с центром в ядре Саннивейла. Трафик, уже использовавший ядро, отказывал, а часть трафика, который был успешным, отказала после перенаправления в Саннивейл. Во время второго события пути из удалённых регионов направлялись через ту же область и иногда чередовались между потерей и доступностью.[1][3]

Позднейший обзор ThousandEyes объяснил инцидент непреднамеренным превышением лимита таблицы маршрутизации.[2] Это объяснение не раскрывает точный внутренний триггер, но определяет конкретную область контроля. Заполнение таблицы маршрутизации, пороги, временный запас, поведение при отказе, топологические зависимости, сигналы, откат и восстановление плоскости пересылки — всё это измеримо.

Событие также показывает, почему записей и схем недостаточно. ARIN может точно зафиксировать AS7922.[9] BGP может рассчитать новый путь.[10] Топология может содержать несколько узлов. Непрерывность всё равно отказывает, если работающее состояние достигает лимита или если альтернативный путь входит в ту же повреждённую область.

Поэтому подотчётность опирается на доказательства операционного контроля. Comcast контролировала систему маршрутизации и её восстановление. Внешние наблюдатели контролировали свои измерения. Регуляторы контролировали требования к отчётности. Поставщики могли контролировать поведение продуктов, но публичный пакет не называет ни одного. Клиенты контролировали только практически доступные им альтернативы.

Обоснованный вывод не в том, что один стандарт предотвратил бы сбой, и не в том, что оператор никогда не может ошибаться. Он в том, что заявление о непрерывности должно подкрепляться проверенным запасом ёмкости, независимыми доменами отказа, устойчивым мониторингом, ограниченным публичным объяснением и внешне проверенным восстановлением. В крупной сети отказоустойчивость — это не наличие другого маршрута. Это доказательство того, что другой маршрут работает, когда основная область управления не работает.

Источники

  1. https://www.thousandeyes.com/blog/comcast-outage-analysis-nov-9-2021
  2. https://www.thousandeyes.com/blog/seven-outages-shook-up-2021
  3. https://www.thousandeyes.com/blog/internet-report-weekly-pulse-nov-15
  4. https://www.thousandeyes.com/blog/analyzing-internet-issues-traffic-outage-detection
  5. https://corporate.comcast.com/comcast-voices/one-of-the-most-sophisticated-networks-in-the-world-2
  6. https://corporate.comcast.com/press/releases/comcast-harnessing-cloud-and-ai-to-transform-next-generation-internet-experiences
  7. https://docs.fcc.gov/public/attachments/DA-22-1300A1.pdf
  8. https://www.ecfr.gov/current/title-47/chapter-I/subchapter-A/part-4
  9. https://rdap.arin.net/registry/autnum/7922
  10. https://www.rfc-editor.org/rfc/rfc4271
  11. https://www.rfc-editor.org/rfc/rfc4277
  12. https://www.rfc-editor.org/rfc/rfc4456
  13. https://www.rfc-editor.org/rfc/rfc4724
  14. https://www.rfc-editor.org/rfc/rfc5880
  15. https://www.rfc-editor.org/rfc/rfc6198
  16. https://www.rfc-editor.org/rfc/rfc7454
  17. https://www.rfc-editor.org/rfc/rfc7908
  18. https://www.rfc-editor.org/rfc/rfc8212
  19. https://www.rfc-editor.org/rfc/rfc8326
  20. https://www.rfc-editor.org/rfc/rfc9234