Организация Linux Foundation представила DNS-сервер CoreDNS 1.0.0

Организация Linux Foundation опубликовала значительный выпуск DNS-сервера CoreDNS 1.0.0, написанного на языке Go и построенного с использованием наработок проекта Caddy. CoreDNS может применяться в качестве авторитетного, кэширующего или рекурсивного DNS-сервера, предоставляя возможности, достаточные для работы в качестве замены BIND 9, Knot, NSD или PowerDNS. Сервер развивается в направлении максимального упрощения настройки и обеспечения гибкости в реализации задуманных решений. Код распространяется под лицензией Apache 2.0.

Все этапы обработки данных DNS можно контролировать и при необходимости расширять функциональность через плагины. Более того, сам по себе CoreDNS предствляет набор плагинов, в которые вынесены как основные возможности, связанные с DNS (обработка файлов зонами, поддержание кэша, DNSSEC), так и дополнительные функции, такие как обнаружение сервисов Kubernetes, накопление метрик для системы мониторинга Prometheus, поддержка фильтров для перезаписи запросов, интеграция с системой хранения конфигурации etcd, балансировка нагрузки и т.п. DNS-запросы могут приниматься как через традиционные UDP/TCP, так и при помощи TLS (RFC 7858) и gRPC.

Основные возможности:

  • Обработка данных доменных зон из файлов, как для DNS, так и для DNSSEC (поддерживается только NSEC);
  • Получение данных доменных зон от первичных DNS-серверов (работа в роли вторичного DNS-сервера) с передачей информации посредством AXFR;
  • Формирование цифровых подписей для данных DNS-зон на лету (DNSSEC);
  • Балансировка нагрузки на несколько серверов;
  • Поддержка трансфера зон (работа в роли первичного DNS-сервера);
  • Автоматическая загрузка файлов с данными DNS-зон с диска;
  • Работа в роли кэширующего сервера;
  • Средства для проверки работоспособности узлов (плагин health);
  • Поддержка использования etcd в качестве бэкенда и работы в роли замены SkyDNS;
  • Поддержка использования k8s (kubernetes);
  • Поддержка функционирования в роли прокси для перенаправления запросов на другие серверы (рекурсивный сервер);
  • Предоставления метрик для систем мониторинга;
  • Предоставление логов запросов и ошибок;
  • Поддержка DNS-класса CH, используемого в Chaosnet;
  • Наличие средств для профилирования работы;
  • Возможности перезаписи запросов (qtype, qclass и qname);
  • Работа в роли сервиса whoami.

В новом выпуске значительно улучшены возможности для интеграции с платформой оркестровки контейнеров Kubernetes — CoreDNS теперь может применяться для организации работы службы DNS в качестве полноценной замены kube-dns. При этом CoreDNS демонстрирует более высокую производительность и достаточно скромные требования к ресурсам. Например, при использовании в кластере из 5000 серверов с нагрузкой 18 тысяч DNS-запросов в секунду, CoreDNS потребляет около 73 Мб ОЗУ, в то время как kube-dns расходует 97 Мб ОЗУ и способен обработать только 7 тысяч DNS-запросов в секунду.

В CoreDNS также добавлена порция дополнительных возможностей для Kubernete, отсутствующих в kube-dns, таких как фильтрация записей по метке или пространству имён, режим верификации pod-ов, получение данных через endpoint_pod_names, реализация поиска специфичных для пространств имён путей на стороне сервера, возможность создания собственных DNS-записей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.