От записи в реестре до правила на оборудовании: технический конвейер целиком

Семь шагов между юридической записью и пакетом в сети — почему это занимает часы

5 мая 2026 6 мин чтения TooTimes Team

Когда новости пишут «домен X добавлен в реестр», в голове у читателя складывается простая картина: где-то в чёрной коробке щёлкнул выключатель, и через минуту все провайдеры страны перестали отдавать сайт. Реальность совершенно другая. Реестр — это распределённая система, оператор — это инженерная организация со своими процессами, а сетевое правило живёт на десятках узлов и обновляется по своему расписанию.

В этой статье — детальная карта того, что происходит между двумя событиями: «запись внесена» и «пользователь видит результат». Семь шагов, каждый со своими сроками, своими ошибками и своими причинами коллатеральных эффектов.

Технический конвейер от записи до правила

  ┌────────────────┐
  │ 1. Регулятор   │   запись внесена в реестр
  └────────┬───────┘
           ▼
  ┌────────────────┐
  │ 2. Выгрузка    │   подписанный JSON/CSV для операторов
  └────────┬───────┘
           ▼
  ┌────────────────┐
  │ 3. Валидация   │   проверка подписи, timestamp, формат
  └────────┬───────┘
           ▼
  ┌────────────────┐
  │ 4. Нормализация│   IDN→Punycode, CIDR, lowercase
  └────────┬───────┘
           ▼
  ┌────────────────┐
  │ 5. Генерация   │   ACL для DNS, IP, SNI, URL
  └────────┬───────┘
           ▼
  ┌────────────────┐
  │ 6. Распростр.  │   ansible/git push на узлы сети
  └────────┬───────┘
           ▼
  ┌────────────────┐
  │ 7. Применение  │   reload nginx/dnsmasq/iptables/DPI
  └────────────────┘

Полный цикл: 15 минут — 24 часа.
Каждый шаг — отдельная инженерная задача со своими таймаутами и логами.

Семь шагов конвейера

Пройдём по каждому шагу подробно — это инженерная истина, а не теория.

  1. Регулятор формирует запись. Сюда входит юридическое решение, оформление, ввод в учётную систему. На этом этапе записи ещё нет в выгрузке.
  2. Выгрузка оператору. С регулярным интервалом (часто 1–3 раза в сутки) формируется снапшот реестра в виде подписанного файла. Это может быть JSON, CSV, XML или специализированный формат. Подпись — RSA или ГОСТ.
  3. Валидация на стороне оператора. Скрипт скачивает файл, проверяет подпись регулятора, сверяет timestamp, валидирует формат. Если что-то не сходится — алерт инженерам.
  4. Нормализация. Доменные имена приводятся к нижнему регистру, IDN-имена конвертируются в Punycode, CIDR-нотация раскручивается в диапазоны IP, URL разбиваются на компоненты. Это нужно, потому что разные узлы сети ожидают разный формат.
  5. Генерация конфигурации. Из нормализованных записей собираются конфиги: zone-файлы для DNS, ACL для маршрутизаторов, signature lists для DPI, URL-паттерны для прокси. Один и тот же домен превращается в несколько разных артефактов.
  6. Распространение. Конфиги разносятся по узлам — обычно через систему управления конфигурацией (Ansible, Salt) или собственный CI/CD. У крупного оператора это сотни узлов в десятках регионов.
  7. Применение. На каждом узле сервис перечитывает конфиг: nginx -s reload, systemctl reload dnsmasq, IP-таблицы обновляются атомарно. На DPI применение требует пересборки сигнатурных таблиц.

Какие типы признаков и чем они различаются

ПризнакУровеньСложностьТочность
IP / CIDRСетевойНизкая (ACL на маршрутизаторе)Низкая (общие IP CDN)
Домен (DNS)ПрикладнойСредняя (DNS-зона)Средняя (обходится сменой DNS)
SNITLS handshakeВысокая (нужен DPI)Высокая (пока нет ECH)
URLHTTP-уровеньОчень высокая (только HTTP без TLS)Точечная
Поведенческий шаблонСтатистикаОчень высокая (ML)Вероятностная

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

Откуда берутся задержки в часах

Полный цикл от записи до применения может занимать от 15 минут до 24 часов. Источники задержки:

  • Окно выгрузки регулятора. Если выгрузка делается раз в 6 часов, среднее ожидание — 3 часа.
  • CI/CD оператора. Запуск скриптов, сборка конфигов, валидация на staging.
  • Распространение на сотни узлов. Не все одновременно, обычно волнами.
  • Кэши. Даже когда узел применил правило, у клиентов могут лежать кэши DNS с большим TTL. На стороне рекурсивных резолверов 3-х сторон (8.8.8.8, 1.1.1.1) запись для не-русских пользователей не появится никогда.
  • CDN-фронтэнды. Если CDN использует anycast и кэширует HTTP-ответ, разные регионы могут видеть разное состояние.

Коллатеральный ущерб: почему задевает «не то»

Главная инженерная проблема грубой фильтрации — точность признака. Несколько типичных историй:

  • IP-уровень и CDN. На одном anycast-IP Cloudflare живут десятки тысяч сайтов. Заблокировать один IP = задеть всех. Поэтому современные операторы избегают чисто IP-уровня для известных CDN.
  • CNAME и subdomains. Доменное правило может неожиданно зацепить субдомены через CNAME-цепочки.
  • SNI и виртуальный хостинг. Если на одном IP несколько сайтов, точный SNI-фильтр работает корректно — но если SNI-фильтр сделан с неточным regex, можно зацепить лишнее.
  • Old Cache, New Reality. После исключения записи из реестра кэши DNS у пользователей продолжают отдавать старый ответ ещё час-сутки.

На каких уровнях сети применяется правило

Одна и та же запись может быть реализована на разных слоях с разным эффектом:

  • DNS-уровень. Резолвер провайдера возвращает NXDOMAIN или специальный «заглушечный» IP. Легко диагностируется через dig @1.1.1.1.
  • IP-маршрутизация. ACL на edge-маршрутизаторе дропает пакеты к определённому IP. Симптом — TCP-таймаут.
  • TLS handshake. DPI разбирает SNI и шлёт TCP RST или дропает. Симптом — соединение устанавливается, но handshake обрывается.
  • HTTP-перехват. На нешифрованном трафике (всё реже) подменяется ответ на страницу-заглушку.

Как диагностировать снаружи

Если хочется понять, на каком уровне применяется правило, четыре шага:

  1. Сравнить ответы DNS с трёх резолверов: dig @8.8.8.8 site, dig @1.1.1.1 site, dig @resolver_провайдера site. Если расхождение — это DNS-уровень.
  2. Если DNS отдаёт нормальный IP, проверить TCP: nc -vz site_ip 443. Если таймаут — IP-фильтрация.
  3. Если TCP-handshake проходит, попробовать TLS: openssl s_client -connect site_ip:443 -servername site. Если соединение рвётся в handshake — SNI-фильтр.
  4. Если TLS-handshake завершается, но curl -v возвращает что-то странное — посмотрите, не приходит ли страница-заглушка от прокси.

Итого

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

Нужен стабильный защищённый доступ к интернету?

TooTimes — зашифрованный туннель до серверов в 9 странах, без логов.

Посмотреть тарифы
✎ Панель блога