CoreDNS — гибкий DNS-сервер и форвардер с поддержкой плагинов, разработанный для обеспечения разрешения имён и сопутствующих сетевых сервисов в современных распределённых средах. Проект сохраняет модульную архитектуру: основная функциональность расширяется набором плагинов, каждый из которых реализует конкретные возможности — от кэширования и переадресации до интеграции с бэкендами и поддержкой разнообразных транспортов. Благодаря такому подходу CoreDNS используется как в небольших инфраструктурах, так и в крупных оркестрационных системах, где требуется гибкое управление DNS-поведение и интеграция с другими компонентами.
Сервер поддерживает стандартные протоколы DNS поверх UDP и TCP, а также реализует современные защищённые транзиты и интерфейсы, включая DNS over TLS (DoT), DNS over HTTPS (DoH) и DNS over QUIC (DoQ). CoreDNS может работать как автономный рекурсивный резолвер, как кэширующий форвардер или как авторитетный сервер с автозагрузкой зон из различных источников. Его конфигурация обычно задаётся простым декларативным файлом, в котором перечислены включённые плагины и правила их применения, что упрощает адаптацию под конкретные требования эксплуатации.
- Модульная архитектура: расширение возможностей через плагины, позволяющие выбирать только необходимые функции.
- Поддержка протоколов: DNS по UDP/TCP, DoT, DoH и DoQ для защищённого и совместимого разрешения имён.
- Кэширование и форвардинг: локальное кэширование ответов и переадресация запросов к внешним резолверам.
- Интеграция с бэкендами: возможность автозагрузки зон и данных из etcd, Kubernetes и других источников.
- Авторитетный и рекурсивный режимы: может выполнять функции авторитетного сервера и/или рекурсивного резолвера.
- Гибкая конфигурация: декларативный файл конфигурации для управления порядком и параметрами плагинов.
- Масштабируемость: подходит для использования в контейнерных и оркестрационных средах благодаря лёгкой интеграции и небольшому footprint.
- Логирование и наблюдаемость: поддержка различных режимов логирования и метрик для мониторинга состояния и производительности.
- Расширяемость: разработка собственных плагинов для специфичных задач и политик разрешения имён.
- Безопасность и контроль доступа: механизмы ограничения исходящих и входящих запросов, фильтрации и политик обработки.