Plan and summary of the isolated Compose run on copies of the real data files: migration without losses, real collection of AS62041, diff, backup and restore. Updates the analysis (observation 1, risk 9). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
5.5 KiB
Итоги: тестовый запуск на реальных данных (AS62041)
План: docs/plan-real-data-run.md. Закрывает часть наблюдения 1 и риска 9 анализа (analysis-2026-09-21.md).
Как проводилось
Изолированный стенд Compose (проект ripereal, порт 18000, отдельный том). В том скопированы копии реальных data.json и fqdn_data.json (24 префикса шести ASN и 4 IP четырёх имён, формат до TTL, last_updated февраля 2026) и конфигурация: копия реальной с одним ASN 62041 и реальными тремя FQDN (*.whatsapp.com). Реальные внешние запросы: RIPEstat для AS62041 и DNS. Исходные файлы проекта не менялись (контрольные суммы до и после совпали); стенд убран (контейнеры, том, образ, .env).
Результаты
| Проверка | Итог |
|---|---|
| Миграция | При первом обращении API: user_version 3, таблицы addresses, changes, meta, source_status; импортировано 24 префикса и 4 значения FQDN, число по источникам совпало с файлами; first_seen сохранён (из last_updated), last_seen = время миграции; оригиналы в томе переименованы в *.migrated-<время>; журнал и состояние источников пусты, курсор 0. |
| До сбора | /health ok (collector_alive), /sources без попыток, /addresses 26 значений. |
| Сбор | POST /collect (asn + fqdn): AS62041 +14/-0 префиксов, три FQDN +3 строки; /sources: успех у всех, сбоев 0; в логе итоговые строки запусков. |
| Diff на реальных данных | since=0: 15 добавлений, 0 удалений: 14 новых префиксов AS62041 (149.154.160-167.0/24, 91.108.4-10.0/22-23, 95.161.64/72.0/21) и один IPv6-адрес имён; все 11 префиксов из февральского файла подтверждены RIPE (удалений нет). Три имени получили один и тот же новый адрес - в журнале одна запись (журнал считает значения, а не строки источников). |
| Копия и восстановление | Задание backup (расписание временно * * * * *, затем возвращено к умолчанию) создало копию 45 КБ; после записи мусора поверх ripe.db первый же запрос вернул данные (HTTP 200), 41 значение, хеш выдачи совпал с хешем до порчи; last_restore в /health, карантинный файл сохранён; старый курсор дал 410, новый (1000015) принят. |
| Размеры и время | ripe.db 45 КБ, копия 45 КБ; ответы /addresses, /addresses (nftables, агрегация), /addresses/diff, /health, /sources: 6-9 мс. |
| Журнал | В логах два ERROR (умышленная порча и восстановление), трейсбеков нет. |
Замечания
- Данные не настроенных источников выдаются, пока не истекут по TTL: в тестовой конфигурации остались ASN 62014, 59930, 44907, 211157 и
google.com(13 префиксов и один IP из 41 значения). При штатной конфигурации с шестью ASN это касается толькоgoogle.com. - AS11917 в файле февраля без префиксов: при запуске с полной конфигурацией источник даст корректный, но возможно пустой ответ - он не вызовет
degraded, но будет виден в/sourcesсaddresses: 0. - Что не проверено: штатное расписание (
*/15для ASN, суточное для FQDN) не наблюдалось, сборы запускались вручную; остальные пять ASN не опрашивались; старение по TTL и накопление журнала во времени не воспроизводились; нагрузка мала (24 значения при миграции, 41 после сбора). Это тест на копиях боевых файлов, а не боевое развёртывание. - Первая порча/восстановление проходят без потери данных на копии, снятой ~15 секунд до порчи; данные после точки копии в реальной эксплуатации будут доначитаны сборщиком.
Вывод
Миграция боевых файлов, сбор по реальному источнику, diff, копия и восстановление работают на реальных данных; критерии плана выполнены. Осталось боевое развёртывание с полной конфигурацией (шесть ASN) и наблюдение за расписанием.