Этот репозиторий содержит реализацию решения кейса "Кэширование DNS (Применение внешних баз данных для кэширования DNS записей на неограниченный срок)" в рамках направления «Системный анализ и суперкомпьютерное моделирование» конкурса «Твой проект» 2025/2026.
Проект демонстрирует возможности по:
- Продлению времени жизни (TTL) DNS-записей сверх установленного значения
- Использованию внешней базы данных (Redis) для кэширования DNS-ответов
- Обходу ограничений DNSSEC через локальную подмену DNS-зон
| Материал | Описание | Файл |
|---|---|---|
| Презентация | Итоговая презентация проекта | PDF PPTX |
| Отчёт | Финальный отчёт | DOCX |
| Черновик | Файл с поэтапным решением в черновом варианте | MD |
Компоненты:
| Компонент | Роль |
|---|---|
| Unbound | DNS-резолвер с поддержкой Python-модулей и локальных зон |
| Redis | Внешний кэш — хранит DNS-ответы дольше TTL |
| Pythonmod | Интеграция Unbound ↔ Redis, генерация зон |
dns-cache-project/
├── unbound/
│ ├── unbound.conf # основная конфигурация резолвера
│ ├── redis_pythonmod.py # Python-модуль: интеграция с Redis
│ ├── local-zones.conf # локальные зоны (переопределение DNSSEC)
│ ├── root.hints # адреса корневых DNS-серверов
│ └── Dockerfile # образ Unbound
├── redis/
│ └── redis.conf # конфигурация Redis
├── scripts/
│ ├── fill_cache.py # заполнение Redis DNS-записями
│ └── collect_zone.py # сбор данных для локальных зон
├── report/
│ ├── README.md # черновик отчёта
│ ├── main.docx # финальный отчёт
│ ├── main.pptx # презентация
│ └── assets/ # скриншоты и иллюстрации
└── docker-compose.yml # инструкция запуска всего стека
