Резюме

  • Сообщение в списке рассылки AfNOG от 20 июля в 10:48 UTC содержало однострочную проверку, которая сделала видимыми дублирующиеся записи вas-TelOneZW.
  • Новый запрос к AFRINIC воспроизвёл 24 строкиmembers:, но только 21 уникальный ASN: AS37183 встречается трижды, а AS37123 — дважды.
  • С точки зрения семантики RPSL повторяющиеся строки не добавляют нового уникального члена. Это свидетельство избыточности на уровне записи, а не сбоя, утечки маршрутов или отклонённого маршрута.
  • AFRINIC отмечает, что апстрим- и транзитные провайдеры обращаются к реестрам маршрутизации интернета для обновления фильтров, поэтому даже безобидную избыточность стоит рассматривать как сигнал о качестве сопровождения данных.

Набор маршрутной политики не получил три сети. Он получил три строки.

Это различие — полезный вывод из короткого сообщения, опубликованного в списке African Network Operators Group в понедельник. S. Moonesamy выполнил компактную команду против сервиса WHOIS AFRINIC, отсортировал составas-TelOneZWи вынес повторяющиеся значения наверх. AS37183 встречался трижды; AS37123 — дважды.

Сообщение не объясняло причину. В нём прямо допускалось, что, вероятно, есть правдоподобное объяснение. Новая проверка BTW после публикации воспроизвела текущую запись: 24 объявления членов, 21 уникальный номер AS. Запись описывает себя как «ASN TelOne», указываетAS8668-MAINTAINERв качестве сопровождающего и AFRINIC в качестве источника.

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

Повторение меняет запись, а не состав

RFC 2622 определяетas-setкак набор, чей атрибутmembersперечисляет номера AS или названия других as-set. На этом семантическом уровне повторение AS37183 не создаёт три автономные системы, а повторение AS37123 — две. Уникальных членов остаётся 21.

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

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

Два повторяющихся ASN также не взаимозаменяемы. В актуальных регистрационных данных AFRINIC AS37183 связан с Utande Internet Services (Pvt) Ltd, а AS37123 — с Telecontract Pvt Ltd, обе компании находятся в Зимбабве. Их присутствие в наборе с меткой TelOne само по себе не доказывает ни собственности, ни дочерних отношений, ни даже текущей коммерческой причины включения. AS-set выражает членство в маршрутной политике; это не корпоративное генеалогическое древо.

Почему безобидный дубликат всё же важен

Записи реестров маршрутизации интернета находятся между заявленной политикой сети и системами, которые могут превратить это заявление в элементы управления. RFC 2622 был разработан, чтобы операторы могли описывать политику на уровне AS достаточно детально для использования в конфигурации маршрутизаторов. Руководство AFRINIC говорит, что апстрим- и транзитные провайдеры обращаются к реестрам маршрутизации для обновления маршрутных фильтров и повышения стабильности и согласованности информации BGP.

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

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

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

Правильная реакция — проверка, а не тревога

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

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

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

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

Источники