Кратко

  • Тест, добавленный 10 сентября, ожидает статус reserved для AS64495-AS131071 и AS131070-AS131072, хотя каждый пример выходит на один номер за разные края тестового диапазона 64496-131071.
  • Реализация проверяет любое пересечение, после чего RDAP-маппер превращает ответ в единый статус объекта. Поэтому без исходных границ его нельзя разносить на все ASN как индивидуальный факт.

Два примера устроены симметрично. Первый начинается на единицу раньше зарезервированного интервала, второй заканчивается на единицу позже. Оба считаются зарезервированными. Полностью внешний AS131072-AS131073 — нет. Условие требует соприкосновения диапазонов, а не одинакового состояния всех элементов.

В актуальном реестре IANA лишняя единица меняет смысл. AS64495 завершает диапазон, назначенный RIPE NCC, а AS64496 открывает участок для документации. Сверху AS131071 ещё зарезервирован, но с AS131072 начинается диапазон, назначенный APNIC. Следовательно, оба тестовых ключа объединяют у одной из границ разные глобальные категории.

Метод ReservedResources.isReservedAsBlock именно так и работает. Он разбирает ключ в числовой интервал и проверяет, пересекается ли тот с каким-либо настроенным зарезервированным интервалом. Полного включения не требуется. Затем RdapObjectMapper выбирает для AS-BLOCK состояние RESERVED либо ACTIVE.

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

Аккуратный потребитель RDAP сохраняет тип объекта, начало, конец и статус, а затем может повторить сверку с IANA. Менее аккуратный конвейер способен развернуть блок по отдельным ASN и скопировать reserved в каждую строку. Тогда AS64495 или AS131072 получат описание соседнего участка, хотя IANA относит их к назначенным диапазонам. Источники не показывают, что конкретный сервис уже допустил такую ошибку. Они показывают проверяемый путь потери данных.

В документации RIPE Database у AS-BLOCK есть административная задача: делегировать диапазон номеров AS региональному реестру либо отметить его как зарезервированный. Создавать такие объекты могут только администраторы базы, а сопровождающие родительского блока участвуют в авторизации создания нижестоящих объектов aut-num. Этот контекст оправдывает консервативный барьер, но не превращает статус маппера в решение IANA о распределении, проверку источника BGP-маршрута или вывод о доступности.

Новизну коммита тоже нельзя преувеличивать. Изменение Edward Shryane от 10 сентября добавляет один тестовый файл на 53 строки, не меняя метод и маппер. Последний зафиксированный тег, WHOIS 1.124.1, опубликован 31 августа. Тест появился после него, но это не устанавливает дату ввода прежней логики в эксплуатацию, факт развёртывания самого коммита или наличие смешанного AS-BLOCK в работающей базе.

Зато теперь неявная семантика границы стала исполняемым контрактом: достаточно пересечения. Практичный следующий шаг — не обязательно ослаблять правило. Полезнее передавать вместе с результатом диапазон-кандидат, совпавший зарезервированный участок, версию реестра и версию маппера. Тогда фразы «объект касается зарезервированного пространства» и «каждый ASN объекта зарезервирован» перестанут сливаться в один статус.

Источники