Введение
В данной статье представлено сравнение функциональных возможностей, поддержки платформ и способов распространения множества независимых реализаций программного обеспечения DNS-серверов.
This article presents a comparison of the features, platform support, and packaging of many independent implementations of Domain Name System (DNS) name server software.
Сравнение серверов
Каждый из этих DNS-серверов является независимой реализацией протоколов DNS, способной разрешать DNS-имена для других компьютеров, публиковать DNS-имена компьютеров или и то, и другое. Не рассматриваются однофункциональные инструменты DNS (такие как прокси, фильтры и брандмауэры) и перераспределения серверов, перечисленных здесь (многие продукты переупаковывают BIND, например, с проприетарными пользовательскими интерфейсами). DNS-серверы группируются в несколько категорий в зависимости от специализации обслуживания запросов системы доменных имен. Две основные роли, которые могут быть реализованы либо единообразно, либо в комбинации в данном продукте:
Авторитетный сервер: авторитетные серверы имен публикуют DNS-отображения для доменов, находящихся под их авторитетным контролем. Как правило, компания (например, "Acme Example Widgets") предоставляет собственные службы авторитетности для ответа на адресные запросы или для получения другой информации DNS для www.example.int. Эти серверы указаны как находящиеся на вершине цепочки авторитетности для своих соответствующих доменов и способны предоставить окончательный ответ. Авторитетные серверы имен могут быть первичными серверами имен, также известными как мастер-серверы, то есть они содержат исходный набор данных, или они могут быть вторичными или ведомыми серверами имен, содержащими копии данных, обычно получаемые путем синхронизации непосредственно с первичным сервером либо через механизм DNS, либо другими механизмами синхронизации хранилища данных.
Рекурсивный сервер: рекурсивные серверы (иногда называемые "DNS-кэшами", "кэширующими только именными серверами") обеспечивают разрешение DNS-имен для приложений, пересылая запросы клиентского приложения в цепочку авторитетных именных серверов для полного разрешения сетевого имени. Они также (как правило) кэшируют результат, чтобы отвечать на потенциальные будущие запросы в течение определенного периода времени жизни (TTL). Большинство пользователей Интернета обращаются к рекурсивному серверу, предоставляемому их интернет-провайдером, для поиска интернет-хостов, таких как www.example.com.
Authoritative server: authoritative name servers publish DNS mappings for domains under their authoritative control. Typically, a company (e. g. "Acme Example Widgets") would provide its own authority services to respond to address queries, or for other DNS information, for www. example. int. These servers are listed as being at the top of the authority chain for their respective domains, and are capable of providing a definitive answer. Authoritative name servers can be primary name servers, also known as master servers, i. e. they contain the original set of data, or they can be secondary or slave name servers, containing data copies usually obtained from synchronization directly with the primary server, either via a DNS mechanism, or by other data store synchronization mechanisms. Recursive server: recursive servers (sometimes called "DNS caches", "caching only name servers") provide DNS name resolution for applications, by relaying the requests of the client application to the chain of authoritative name servers to fully resolve a network name. They also (typically) cache the result to answer potential future queries within a certain expiration (time to live) period. Most Internet users access a recursive server provided by their internet service provider to locate internet hosts such as www. example. com.
BIG-IP DNS
Линейка продуктов F5 Networks BIG-IP предоставляет DNS как авторитетный или рекурсивный сервер и добавляет дополнительные средства защиты. Ключевым преимуществом является возможность использования одного и того же контроллера доставки приложений для поддержки DNS и ускорения работы приложений.
СТАТЬЯ
BIND является фактическим стандартом DNS-сервера. Это программное обеспечение с открытым исходным кодом, распространяемое с большинством платформ Unix и Linux, где оно чаще всего также известно как named (демон имен). Это наиболее широко используемый DNS-сервер. Исторически BIND претерпел три основных пересмотра, каждый из которых имел существенно отличающуюся архитектуру: BIND4, BIND8 и BIND9. BIND4 и BIND8 в настоящее время технически устарели и не рассматриваются в данной статье. BIND9 – это полная переработка BIND, включающая полную поддержку DNSSEC, а также другие функции и улучшения. Internet Systems Consortium начала разработку новой версии, BIND 10. Первый релиз состоялся в апреле 2010 года, но участие ISC завершилось выпуском BIND 10 версии 1.2 в апреле 2014 года. ISC объяснила это недостатком ресурсов для продолжения разработки BIND 10 и подтвердила свою приверженность BIND9. Кодовая база BIND 10 продолжает развиваться как проект с открытым исходным кодом. В настоящее время она не включена в данное сравнение.
Регистратор сети Cisco
CNR включает в себя коммерческий DNS-сервер от Cisco Systems, который обычно используется совместно с сервером CNR DHCP (Dynamic Host Configuration Protocol). Он поддерживает высокую скорость динамических обновлений.
КоренДНС
CoreDNS — рекомендуемый DNS-сервер для Kubernetes, получивший статус выпускника CNCF в 2019 году.
Dnsmasq (на английском языке)
Dnsmasq — это легковесный, простой в настройке DNS-форвардер, предназначенный для предоставления DNS-сервисов (а также опционально DHCP и TFTP) для небольших сетей. Он может разрешать имена локальных машин, отсутствующих в глобальной DNS. Dnsmasq принимает DNS-запросы и отвечает на них либо из небольшого локального кэша, либо перенаправляет их на рекурсивный DNS-сервер. Он загружает содержимое файла /etc/hosts, что позволяет разрешать локальные имена хостов, не зарегистрированные в глобальной DNS.
ДДБДН
Djbdns — это набор DNS-приложений, включающий tinydns, который в 2004 году был вторым по распространенности бесплатным DNS-сервером. Исходный код не поддерживается централизованно и был передан в общественное достояние в 2007 году. Существует множество ответвлений и более десятка патчей, добавляющих дополнительные функции в djbdns.
ГДНСД
gdnsd — это DNS-сервер, предназначенный для географического балансирования нагрузки. gdnsd — это DNS-сервер, используемый Википедией для своих серверов и сетевой инфраструктуры.
DNS узлов
Knot DNS — это свободный программный авторитетный DNS-сервер, разработанный CZ. NIC. Knot DNS ставит своей целью быть быстрым и отказоустойчивым DNS-сервером, пригодным для использования в инфраструктуре (корневых и TLD-серверах) и для услуг DNS-хостинга. Knot DNS поддерживает подпись DNSSEC и, в частности, обслуживает корневую зону (корневые серверы имен B, K и L), а также несколько доменов верхнего уровня.
Резольвер узлов
Knot Resolver – это современная реализация резольвера с открытым исходным кодом, разработанная для масштабируемости, отказоустойчивости и гибкости. Его базовая архитектура компактна и эффективна, а большинство расширенных функций реализованы в виде опциональных модулей, что снижает поверхность атаки и повышает производительность. Многие функции резольвера доступны сразу из коробки в виде модулей, при этом сохраняя ядро компактным и эффективным. Модульная архитектура предоставляет API, подобный конечному автомату, для расширений, таких как модули на C и Lua.
МараДНС
MaraDNS — это бесплатный программный DNS-сервер, разработанный Сэмом Тренхольмом, который отличается хорошей историей безопасности и простотой использования. Для изменения каких-либо DNS-записей требуется перезапуск MaraDNS. Как и dnscache от djbdns, автономный рекурсивный резольвер MaraDNS 2.0 ("Deadwood") не использует потоки.
DNS от Microsoft
Компонент Windows DNS, являющийся частью Microsoft DNS. Это программное обеспечение может быть настроено для работы в авторитарном, рекурсивном и гибридном режимах. Программное обеспечение интегрировано с Active Directory, что делает его DNS-сервером по умолчанию для многих корпоративных сетей, построенных на базе Active Directory. Оно также позволяет создавать зоны с использованием стандартных DNS-файлов зон. Программное обеспечение поставляется в составе Windows Server в качестве роли. Серверное программное обеспечение включает в себя командную строку dnscmd, мастер графического интерфейса для управления DNS и пакет DNS PowerShell. В Windows Server 2012 Windows DNS добавил поддержку DNSSEC, включая полноценное онлайн-подписание, поддержку Dynamic DNS и NSEC3, а также алгоритмы подписи RSASHA и ECDSA. Предусмотрен встроенный поставщик хранения ключей и поддержка любых сторонних поставщиков, соответствующих стандарту CNG. Также были улучшены пользовательский интерфейс и поддержка PowerShell для управления DNS и DNSSEC. В Windows Server 2016 DNS-сервер поддерживает политики DNS, позволяющие администраторам более детально контролировать процесс разрешения имен.
НДС
NSD — это авторитетный сервер свободного программного обеспечения, разработанный NLNet Labs. NSD служит платформой для тестирования DNSSEC, и новые функции протокола DNSSEC часто впервые реализуются именно в коде NSD. NSD обслуживает несколько доменов верхнего уровня и управляет тремя из корневых серверов имен.
ПДНСД
Pdnsd — это кэширующий DNS-прокси-сервер, который хранит кэшированные DNS-записи на диске для длительного хранения. Pdnsd разработан для высокой адаптивности в условиях медленного, ненадежного, недоступного или сильно динамичного сетевого подключения, с ограниченными возможностями функционирования как авторитетный сервер имен. Распространяется по лицензии GPL.
Позади
Posadis — это бесплатный DNS-сервер, написанный на C++, с поддержкой динамического обновления DNS.
PowerDNS (полное имя)
PowerDNS — это бесплатный DNS-сервер, поддерживающий различные варианты хранения данных и функции балансировки нагрузки. Функции авторитетного и рекурсивного серверов реализованы в виде отдельных приложений, а также существует отдельный DNS-кэширующий прокси (dnsdist), реализующий такие возможности, как DNS over HTTPS.
Secure64 DNS
DNS Authority – это коммерческое программное обеспечение для авторитетных DNS-серверов от Secure64, компании, разработавшей приложения и операционную систему Genuinely Secure DNS и полностью автоматизировавшей развертывание DNSSEC. DNS Cache – это масштабируемое и высокозащищенное рекурсивное DNS-программное обеспечение от Secure64, обеспечивающее встроенную защиту от атак типа «отказ в обслуживании» большой интенсивности, включая атаки типа Pseudo Random Sub Domain (PRSD).
Простой DNS плюс
Simple DNS Plus — это коммерческий DNS-сервер, работающий в среде Microsoft Windows с упором на простой в использовании графический интерфейс. Поддержка программного обеспечения, по всей видимости, ослабла в последние годы.
Сервер DNS Technitium
Technitium DNS Server – это бесплатное программное обеспечение с открытым исходным кодом (GPLv3), кроссплатформенный, авторитетный, кэширующий и рекурсивный DNS-сервер. Он поддерживает зашифрованные протоколы DNS – DNS over TLS, DNS over HTTPS и DNS over QUIC. Также поддерживается подпись и проверка DNSSEC для алгоритмов RSA и ECDSA с использованием NSEC и NSEC3. DNS-сервер позволяет блокировать доменные имена с помощью чёрных списков и поддерживает использование HTTP или SOCKS5 для передачи DNS-запросов через сеть Tor. DNS-сервер поддерживает запуск независимо разработанных плагинов для обработки и ответа на DNS-запросы, а также предоставляет HTTP API для управления сервером сторонним программным обеспечением.
Необязательно
Unbound — это валидирующий, рекурсивный и кэширующий DNS-сервер, разработанный для обеспечения высокой производительности. Он был выпущен 20 мая 2008 года (версия 1.0.0) как бесплатное программное обеспечение, распространяемое по лицензии BSD компанией NLnet Labs. Он устанавливается как часть базовой системы в FreeBSD, начиная с версии 10.0, и в NetBSD с версии 8.0. Версия также доступна в OpenBSD, начиная с версии 5.6. (В предыдущих версиях FreeBSD входил в состав BIND.)
ЯДИФА
YADIFA — это DNS-сервер, написанный на языке C, распространяемый по лицензии BSD и эффективно использующий память. Акроним YADIFA расшифровывается как Yet Another DNS Implementation For All. Он был разработан EURid, оператором домена верхнего уровня .eu.
Особенности
Некоторые функции DNS актуальны только для рекурсивных или авторитетных серверов. Следовательно, матрица функций, подобная представленной в этой статье, сама по себе не может отразить эффективность или зрелость конкретной реализации. Важным фактором также является архитектура сервера. Некоторые DNS-серверы поддерживают обе роли в единой "монолитной" программе, а другие разделены на небольшие программы, каждая из которых реализует подсистему сервера. Как и в классических дискуссиях о микроядрах в информатике, значимость и полезность этого различия активно обсуждаются. Матрица функций в данной статье не рассматривает, реализованы ли функции DNS в одной или нескольких программах, если эти функции входят в базовый комплект сервера, а не поставляются как стороннее программное обеспечение.
Матрица характеристик
Сервер авторитетный рекурсивный рекурсия ACL Вторичный режим Кэширование DNSSEC TSIG IPv6 Wildcard Свободное программное обеспечение Интерфейс разделение горизонта DNS через HTTPS DNS через QUIC BIG IP DNS API, командная строка BIND ✔ ✔ (с версии 9.x) (с версии 4.x) Веб, командная строка ✔ PowerDNS ✔ ✔ ✔ ✔ ✔ ✔ (с версии 3.0) ✔ (с версии 3.0) ✔ ✔ ✔ REST, Веб, командная строка ✔ (в dnsdist) CoreDNS ✔ через проксирование ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ API ✔ ✔ djbdns через обобщенные записи. командная строка и веб (VegaDNS & NicTool) dbndns командная строка и веб pdnsd командная строка, программа pdnsd ctl MaraDNS ✔ ✔ ✔ командная строка Posadis ✔ командная строка, API Unbound командная строка, API ✔ Dnsmasq (с версии 2.69) командная строка NSD ✔ ✔ ✔ командная строка Knot DNS ✔ ✔ командная строка ✔ ✔ Knot Resolver ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ cli / socket ✔ YADIFA ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ командная строка Microsoft DNS ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ GUI, командная строка, API, WMI, RPC ✔ Simple DNS Plus GUI, Web, командная строка ✔ Secure64 DNS Authority Command Line или Web GUI Secure64 DNS Cache Command Line или Web GUI Technitium DNS Server Web GUI или HTTP API Сервер авторитетный рекурсивный рекурсия ACL Вторичный режим Кэширование DNSSEC TSIG IPv6 Wildcard Свободное программное обеспечение Интерфейс разделение горизонта DNS через HTTPS DNS через QUIC
Упаковка
Стоимость создания сервера (USD) Публичный исходный код Лицензия на программное обеспечение BIND Internet Systems Consortium Бесплатная ✔ BSD, MPL 2.0 для 9.11+ Microsoft DNS Microsoft Включена в Windows Server Лицензия Clickwrap djbdns Daniel J. Bernstein Бесплатная ✔ Общественное достояние Dnsmasq Simon Kelley Бесплатная ✔ GPL Simple DNS Plus JH Software $79 – $379 Лицензия Clickwrap NSD NLnet Labs Бесплатная ✔ Вариант BSD Knot DNS CZ. NIC Бесплатная ✔ GPL Knot Resolver CZ. NIC Бесплатная ✔ GPL PowerDNS PowerDNS. COM BV / Bert Hubert Бесплатная ✔ GPL MaraDNS Sam Trenholme Бесплатная ✔ Вариант BSD pdnsd Thomas Moestl и Paul Rombouts Бесплатная ✔ GPL Posadis Meilof Veeningen Бесплатная ✔ GPL Unbound NLnet Labs Бесплатная ✔ BSD YADIFA EURid Бесплатная ✔ BSD Secure64 DNS Authority Secure64 Неопубликованная цена Лицензия Clickwrap Secure64 DNS Cache Secure64 Неопубликованная цена Лицензия Clickwrap Technitium DNS Server Technitium Бесплатная GPL