В данной статье представлено сравнение функций, поддержки платформ и упаковки многих независимых реализаций программного обеспечения сервера имен системы доменных имен (DNS) .
Сравнение серверов
Каждый из этих DNS- серверов представляет собой независимую реализацию протоколов DNS, способную разрешать DNS-имена для других компьютеров, публиковать DNS-имена компьютеров или и то, и другое. Из рассмотрения исключены однофункциональные DNS-инструменты (такие как прокси, фильтры и брандмауэры) и перераспределения серверов, перечисленных здесь (многие продукты переупаковывают BIND, например, с помощью собственных пользовательских интерфейсов).
DNS-серверы сгруппированы в несколько категорий специализации обслуживания запросов системы доменных имен. Две основные роли, которые могут быть реализованы либо по отдельности, либо в сочетании в данном продукте, это:
- Авторитетный сервер : авторитетные серверы имен публикуют сопоставления DNS для доменов, находящихся под их авторитарным контролем. Обычно компания (например, «Acme Example Widgets») предоставляет собственные службы авторизации для ответа на запросы адресов или для другой информации DNS для www.example.int . Эти серверы указаны как находящиеся наверху цепочки авторизации для своих соответствующих доменов и способны предоставить окончательный ответ. Авторитетные серверы имен могут быть первичными серверами имен , также известными как главные серверы, т. е. они содержат исходный набор данных, или они могут быть вторичными или подчиненными серверами имен , содержащими копии данных, обычно получаемые путем синхронизации непосредственно с первичным сервером, либо через механизм DNS, либо с помощью других механизмов синхронизации хранилища данных.
- Рекурсивный сервер : рекурсивные серверы (иногда называемые «DNS-кэшами», «серверами имен только для кэширования») обеспечивают разрешение имен DNS для приложений, передавая запросы клиентского приложения в цепочку авторитетных серверов имен для полного разрешения сетевого имени. Они также (обычно) кэшируют результат для ответа на потенциальные будущие запросы в течение определенного срока действия ( time-to-live ). Большинство пользователей Интернета обращаются к рекурсивному серверу, предоставленному их интернет-провайдером, для поиска интернет- хостов, таких как www.example.com .
BIG-IP DNS
Линейка продуктов BIG-IP от F5 Networks предлагает DNS как авторитетный или рекурсивный сервер и добавляет дополнительные меры безопасности. Ключевым преимуществом является использование одного и того же контроллера доставки приложений для поддержки DNS и ускорения приложений. [ необходима цитата ]
СВЯЗЫВАТЬ
BIND — это фактический стандарт DNS-сервера. Это бесплатный программный продукт, распространяемый с большинством платформ Unix и Linux, где его чаще всего также называют named (name daemon). Это наиболее широко используемый DNS-сервер. [1] Исторически BIND претерпел три основных ревизии, каждая из которых имела существенно отличающуюся архитектуру: BIND4, BIND8 и BIND9. BIND4 и BIND8 в настоящее время технически устарели и не рассматриваются в этой статье. BIND9 — это полностью переписанный BIND с полной поддержкой DNSSEC в дополнение к другим функциям и улучшениям.
Консорциум Интернет-систем начал разработку новой версии BIND 10. Первый релиз состоялся в апреле 2010 года, но участие ISC завершилось выпуском BIND 10 версии 1.2 в апреле 2014 года. ISC сослалась на нехватку ресурсов для продолжения разработки BIND 10 и подтвердила свою приверженность BIND9. [2]
Кодовая база BIND 10 продолжает оставаться проектом с открытым исходным кодом. В настоящее время она не включена в это сравнение.
Сетевой регистратор Cisco
CNR включает в себя коммерческий DNS-сервер от Cisco Systems, обычно используемый совместно с сервером CNR DHCP ( Dynamic Host Configuration Protocol ). Он поддерживает высокие скорости динамического обновления.
CoreDNS
CoreDNS — рекомендуемый DNS-сервер [3] для Kubernetes , получивший сертификат CNCF в 2019 году. [4]
DNSmasq
Dnsmasq — это легкий, простой в настройке DNS-пересылатель, предназначенный для предоставления DNS (и опционально DHCP и TFTP ) услуг для небольшой сети. Он может обслуживать имена локальных машин, которые не находятся в глобальном DNS.
Dnsmasq принимает DNS-запросы и либо отвечает на них из небольшого локального кэша, либо пересылает их на реальный рекурсивный DNS-сервер. Он загружает содержимое /etc/hosts , так что локальные имена хостов, которые не отображаются в глобальном DNS, могут быть разрешены.
djbdns
Djbdns — это набор приложений DNS, включая tinydns , который был вторым по использованию бесплатным программным обеспечением DNS-сервером в 2004 году. [1] Он был разработан Дэниелом Дж. Бернстайном , автором qmail , с упором на соображения безопасности. В марте 2009 года Бернстайн заплатил 1000 долларов первому человеку, который найдет уязвимость в безопасности djbdns. [5] Исходный код не поддерживается централизованно и был передан в общественное достояние в 2007 году. Существует несколько форков и более дюжины патчей для добавления дополнительных функций в djbdns.
гднсд
gdnsd — это DNS-сервер, разработанный для географической балансировки. [6] gdnsd — это DNS-сервер, используемый Википедией для своих серверов и сетей. [7]
Узел DNS
Knot DNS — это бесплатный авторитарный DNS-сервер от CZ.NIC . Knot DNS стремится стать быстрым, отказоустойчивым DNS-сервером, пригодным для инфраструктуры (корневой и TLD) и услуг хостинга DNS . Knot DNS поддерживает подписывание DNSSEC и, среди прочего, размещает корневую зону ( корневые серверы имен B, K и L ), несколько доменов верхнего уровня .
Разрешитель узлов
Knot Resolver — это современная реализация решателя с открытым исходным кодом , разработанная для масштабируемости, отказоустойчивости и гибкости. Ее основная архитектура крошечная и эффективная, а большинство богатых функций реализованы как дополнительные модули, что ограничивает поверхность атаки и повышает производительность. Многие функции решателя доступны из коробки как модули, сохраняя при этом ядро крошечным и эффективным. Модульная архитектура предоставляет API, подобный конечному автомату, для расширений, таких как модули C и Lua. [8]
МараDNS
MaraDNS — это бесплатный программный DNS-сервер Сэма Тренхолма, который заявляет о хорошей истории безопасности и простоте использования. [9] [10]
Чтобы изменить какие-либо записи DNS, MaraDNS необходимо перезапустить. Как и djbdns dnscache, автономный рекурсивный распознаватель MaraDNS 2.0 («Deadwood») не использует потоки. [11]
Microsoft DNS
Windows DNS Server [12] компонент Microsoft DNS. Это же программное обеспечение может быть настроено для поддержки авторитетного, рекурсивного и гибридного режима. Программное обеспечение интегрировано с Active Directory , что делает его программным обеспечением DNS по умолчанию для многих корпоративных сетей, основанных на Active Directory . Оно также позволяет создавать зоны с помощью стандартного файла зоны DNS . Программное обеспечение поставляется в виде роли в Windows Server . Серверное программное обеспечение поставляется с приложением командной строки dnscmd, [13] мастером графического интерфейса управления DNS и пакетом DNS PowerShell [14] . В Windows Server 2012 в Windows DNS добавлена поддержка DNSSEC, [15] с полноценной онлайн-подписью, с поддержкой Dynamic DNS и NSEC3 , а также алгоритмами подписи RSASHA и ECDSA. Он предоставляет встроенного поставщика хранилища ключей и поддержку любого стороннего поставщика хранилища ключей, совместимого с CNG. Также были улучшены пользовательский интерфейс и поддержка PowerShell для управления DNS и DNSSEC. В Windows Server 2016 DNS-сервер поддерживает политики DNS, с помощью которых администраторы могут иметь больший контроль над процессом разрешения имен. [16]
НСД
NSD — это бесплатный авторитарный сервер программного обеспечения, предоставляемый NLNet Labs. NSD — это тестовый сервер для DNSSEC; новые функции протокола DNSSEC часто прототипируются с использованием кодовой базы NSD. NSD размещает несколько доменов верхнего уровня и управляет тремя корневыми серверами имен .
пднсд
Pdnsd — это кэширующий DNS-прокси-сервер, который сохраняет кэшированные записи DNS на диске для долгосрочного хранения. Pdnsd разработан для высокой степени адаптации к ситуациям, когда сетевое подключение медленное, ненадежное, недоступное или очень динамичное, с ограниченными возможностями выступать в качестве авторитетного сервера имен. Он лицензирован под GPL . [17]
Посадис
Posadis — это бесплатный программный DNS-сервер, написанный на C++, с поддержкой динамического обновления DNS .
PowerDNS
PowerDNS — это бесплатный программный DNS-сервер с различными бэкэндами для хранения данных и функциями балансировки нагрузки. Авторитетные и рекурсивные функции сервера реализованы как отдельные приложения, а также как отдельный кэширующий DNS-прокси (dnsdist), который реализует такие функции, как DNS через HTTPS.
Безопасный DNS64
DNS Authority — это коммерческое программное обеспечение авторитетного сервера имен от Secure64 , компании, которая создала подлинно безопасные приложения DNS и операционную систему и полностью автоматизировала развертывание DNSSEC.
DNS Cache — масштабируемое, высокозащищенное рекурсивное программное обеспечение DNS от Secure64, которое обеспечивает встроенную защиту от массовых атак типа «отказ в обслуживании», включая атаки псевдослучайных поддоменов (PRSD).
Простой DNS Плюс
Simple DNS Plus — это коммерческий продукт DNS-сервера, работающий под управлением Microsoft Windows с упором на простой в использовании графический интерфейс . Техническое обслуживание программного обеспечения, похоже, в последние годы ослабло.
DNS-сервер Technitium
Technitium DNS Server [18] [19] — это бесплатный , с открытым исходным кодом [20] (GPLv3), [21] кроссплатформенный, авторитетный, кэширующий и рекурсивный DNS-сервер. Он поддерживает зашифрованные DNS-протоколы DNS-over-TLS , DNS-over-HTTPS и DNS-over-QUIC . [22] Он также поддерживает подписывание и проверку DNSSEC для алгоритмов RSA и ECDSA с NSEC и NSEC3.
DNS-сервер также имеет функцию блокировки доменных имен с использованием списков блокировки [23] , а также поддерживает использование HTTP или SOCKS5 для передачи DNS-запросов через сеть Tor . [24]
DNS-сервер поддерживает запуск независимо разработанных плагинов, которые могут использоваться для обработки и ответа на DNS-запросы. Он также предоставляет HTTP API, который может использоваться сторонним программным обеспечением для управления DNS-сервером. [25]
Несвязанный
Unbound — это проверяющий, рекурсивный и кэширующий DNS-сервер, разработанный для высокой производительности. Он был выпущен 20 мая 2008 года (версия 1.0.0) как свободное программное обеспечение , лицензированное по лицензии BSD компанией NLnet Labs. Он устанавливается как часть базовой системы в FreeBSD , начиная с версии 10.0, и в NetBSD с версии 8.0. Версия также доступна в OpenBSD версии 5.6 и выше. (Предыдущие версии FreeBSD поставлялись с BIND.)
ЯДИФА
YADIFA — это лицензированный BSD, эффективно использующий память DNS-сервер, написанный на языке C. Аббревиатура YADIFA означает Yet Another DNS Implementation For All (еще одна реализация DNS для всех) . Он был создан EURid , который управляет доменом верхнего уровня .eu. [26]
Функции
Некоторые функции DNS актуальны только для рекурсивных серверов или авторитетных серверов. В результате матрица функций, такая как в этой статье, сама по себе не может отражать эффективность или зрелость данной реализации.
Другим важным квалификатором является архитектура сервера. Некоторые DNS-серверы обеспечивают поддержку обеих ролей сервера в одной «монолитной» программе. Другие разделены на более мелкие программы, каждая из которых реализует подсистему сервера. Как и в классических дебатах о микроядре Computer Science , важность и полезность этого различия горячо обсуждаются. Матрица функций в этой статье не обсуждает, предоставляются ли функции DNS в одной программе или в нескольких, при условии, что эти функции предоставляются с базовым серверным пакетом, а не с дополнительным программным обеспечением сторонних разработчиков.
Объяснение особенностей
- Авторитетный
- Основная категория функциональности DNS-сервера, см. выше.
- Рекурсивный
- Основная категория функциональности DNS-сервера, см. выше.
- Рекурсивный контроль доступа
- Серверы с этой функцией обеспечивают контроль над тем, каким хостам разрешены рекурсивные поиски DNS. Это полезно для балансировки нагрузки и защиты сервисов.
- Вторичный режим (или подчиненный режим)
- Авторитетные серверы могут публиковать контент, который исходит из первичного хранилища данных (например, файлы зон или базы данных, подключенные к процессам бизнес-администрирования) — иногда также называемые «главными» серверами — или могут быть вторичными (или подчиненными ) серверами, повторно публикуя контент, извлеченный и синхронизированный с такими первичными серверами. Серверы с функцией «вторичного режима» имеют встроенную возможность извлекать и повторно публиковать контент с других серверов. Обычно, хотя и не всегда, это обеспечивается с помощью протокола AXFR DNS.
- Кэширование
- Серверы с этой функцией предоставляют рекурсивные сервисы для приложений и кэшируют результаты, чтобы на будущие запросы того же имени можно было быстро отвечать, без полного поиска DNS. Это важная функция производительности, поскольку она значительно сокращает задержку DNS-запросов.
- DNSSEC
- Серверы с этой функцией реализуют некоторые варианты протоколов DNSSEC . Они могут публиковать имена с подписями записей ресурсов (предоставляя «безопасную службу полномочий») и могут проверять эти подписи во время рекурсивных поисков (предоставляя «безопасный распознаватель»). DNSSEC становится все более распространенным, поскольку развертывание корневого ключа DNSSEC было выполнено ICANN . Развертывание на отдельных сайтах растет, поскольку домены верхнего уровня также начинают развертывать DNSSEC. Наличие функций DNSSEC является заметной характеристикой DNS-сервера.
- ТСИГ
- Серверы с этой функцией обычно предоставляют услуги DNSSEC. Кроме того, они поддерживают протокол TSIG (Transaction SIGnature), который позволяет клиентам DNS устанавливать защищенный сеанс с сервером для публикации динамических записей DNS или запрашивать безопасные поиски DNS без необходимости вносить затраты и сложность полной поддержки DNSSEC.
- IPv6
- Серверы с этой функцией способны публиковать или обрабатывать записи DNS, которые ссылаются на адреса IPv6 . В дополнение к полной совместимости с IPv6 они должны реализовать транспортный протокол IPv6 для запросов и зонных передач во вторичных/первичных отношениях и функциях пересылки.
- Универсальный символ
- Серверы с этой функцией могут публиковать информацию для подстановочных записей , которые предоставляют данные о DNS-именах в зонах DNS, которые специально не перечислены в зоне.
- Разделенный горизонт
- Серверы с функцией «расщепления горизонта» DNS могут давать разные ответы в зависимости от исходного IP-адреса запроса.
Матрица характеристик
- ^ Модуль конфигурации BIND доступен для Webmin во многих дистрибутивах Linux.
- ^ BIND пока не поддерживает DoQ
- ^ ab Поддержка первичной/вторичной IPv6 в PowerDNS неполная в версиях <3.0. Передача зон в первичной/вторичной репликации по IPv6 поддерживается с версии 3.0.
- ^ Полная поддержка DNSSEC в PowerDNS появилась в версии 3.0. В более ранних версиях она в настоящее время ограничена возможностью обслуживания записей ресурсов, связанных с DNSSEC.
- ^ Powerdns.com предложил усовершенствования на
- ^ Используйте бэкэнд geoip для конфигурации с разделением горизонта.
- ^ PowerDNS пока не поддерживает DoQ и может поддерживать его только в отдельном пакете dnsdist. [1]
- ^ djbdns предоставляет возможности для передачи зон; после завершения передачи зоны djbdns может действовать как авторитетный сервер для этой зоны. Дополнительную информацию см. в документации axfr-get.
- ^ Патч для публикации авторитетных данных, защищенных DNSSEC, доступен по адресу [2].
- ^ djbdns поддерживает подстановочные записи DNS , но не таким образом, чтобы это соответствовало RFC.
- ^ Это не то же самое, что представления в bind. Но это решение с сопоставимыми возможностями. См. раздел tinydns-data.
- ^ MaraDNS не может напрямую предоставлять вторичную поддержку. Вместо этого требуется передача зоны, после чего MaraDNS будет действовать как авторитетный сервер для этой зоны. Для получения дополнительной информации см. DNS Slave.
- ^ dnsmasq имеет ограниченную авторитетную поддержку, предназначенную для использования внутри сети, а не в публичном Интернете. [ необходима ссылка ] Записи A поддерживаются через /etc/hosts, а также имеется некоторая поддержка записей MX, TXT и SRV через командную строку.
- ^ Проверка DNSSEC была добавлена в Dnsmasq версии 2.69 [3]. Более ранние версии могли передавать результаты проверки только от своих собственных серверов имен верхнего уровня.[4]
- ^ Dnsmasq может выполнять базовую функцию DNS с разделением горизонтов на основе интерфейса исходного запроса с использованием параметра конфигурации localise-queries .
- ^ Knot DNS предоставляет ответы на основе исходного адреса запроса через свои модули geoip и queryacl.
- ^ Узел DNS версии 3.3.0
- ^ Начиная с версии 5.5.2, это просто выбирает правило на основе имени ключа, но пока не проверяет ключ или подпись. [5]
- ^ Такие настройки, как «расщепление горизонта», которые зависят от изолированных кэшей DNS, явно не поддерживаются. https://knot-resolver.readthedocs.io/en/v5.5.2/modules-view.html
- ^ ab В технической версии Windows Server (2016) можно создавать политики DNS для управления тем, как DNS-сервер обрабатывает DNS-запросы на основе различных параметров. Это поддерживает управление рекурсией, ответы с учетом местоположения, развертывание с разделением мозга, фильтры и т. д. [6] параметр конфигурации.
- ^ Windows Server 2008 R2 поддерживает DNSSEC, однако динамический DNS не поддерживается для зон, подписанных DNSSEC. Он полностью поддерживается в Windows Server 2012. Для более ранних версий, включая Windows Server 2003, функциональность DNSSEC должна быть вручную активирована в реестре Архивировано 2008-03-25 на Wayback Machine . В этих версиях поддержка DNSSEC достаточна для работы в качестве подчиненного/вторичного сервера для подписанной зоны, но недостаточна для создания подписанной зоны (отсутствие утилит генерации ключей и подписи).
- ^ Microsoft DNS поддерживает алгоритм GSS-TSIG для безопасного динамического обновления при интеграции с Active Directory , используя RFC 3645, приложение GSS-API RFC 2743.
- ^ Функциональность IPv6 на DNS-сервере Microsoft доступна только в Windows Server 2003 и более поздних версиях.
- ^ "Справочник API DNS-сервера Microsoft". Msdn.microsoft.com . Получено 2011-10-26 .
- ^ "Спецификация поставщика Microsoft DNS WMI". Msdn.microsoft.com . Получено 2011-10-26 .
- ^ Спецификация протокола управления DNS-сервером MS-DNSP (использует RPC )
- ^ Simple DNS Plus не имеет «представлений» в том виде, в котором они есть у BIND, но имеет функцию «NAT IP Alias», которая позволяет записям хостов разрешаться в разные IP-адреса в зависимости от того, откуда поступает DNS-запрос.
Платформы
В этом обзоре поддержки операционных систем для обсуждаемого DNS-сервера следующие термины указывают уровень поддержки:
- «Нет» означает, что он не существует или никогда не был опубликован.
- Частично указывает на то, что, хотя сервер и работает, ему не хватает важных функций по сравнению с версиями для других ОС; однако он все еще находится в стадии разработки.
- Бета-версия указывает на то, что, хотя версия полностью функциональна и уже выпущена, она все еще находится в стадии разработки (например, для обеспечения стабильности).
- «Да» означает, что он был официально выпущен в виде полностью функциональной, стабильной версии.
- «Включено» означает, что сервер поставляется предварительно упакованным или интегрированным в операционную систему.
Данная подборка не является исчерпывающей, а скорее отражает наиболее распространённые на сегодняшний день платформы.
- ^ BIND доступен для систем на базе Windows NT по ftp (включая Windows 2000 , XP и Server 2003 ) в порте (в каталоге contrib), известном как ntbind (начиная с версии 9.3.3 присутствуют сборки Windows).
- ^ Поддержка компиляции и запуска BIND 9 в Windows полностью удалена, начиная с версии 9.18.0.
- ^ Функциональность, доступная с сервером Microsoft DNS, зависит от версии базовой операционной системы; как и большинство компонентов Windows Server, он обновляется только с остальной частью операционной системы. Определенная функциональность, такая как поддержка DNSSEC и IPv6 , доступна только в версии Windows Server 2000-2003. Windows 2000 Server включает поддержку TSIG . Сервер Microsoft DNS недоступен в клиентских операционных системах Windows, таких как Windows XP.
Упаковка
Смотрите также
Ссылки
- ^ ab Moore, Don (2004). "Обзор DNS-серверов" . Получено 2005-01-06 .
- ^ "ISC завершает разработку BIND 10 с выпуском 1.2". 17 апреля 2014 г.
- ^ «Настройка службы DNS».
- ^ Клэберн, Томас (24.01.2019). «CoreDNS уже совсем взрослый и готов к работе: сетевой инструментарий Kubernetes наконец-то выпущен». The Register . Получено 20.01.2020 .
- ^ "Приз djbdns получен". Архивировано из оригинала 2009-03-05 . Получено 2009-03-04 .
- ^ "gdnsd". gdnsd.org . Получено 2022-09-23 .
- ^ "DNS - Викитех" . wikitech.wikimedia.org . Проверено 23 сентября 2022 г.
- ^ "Knot Resolver". Knot Resolver . Получено 11 января 2024 г. .
- ^ Менс, Ян-Пит (2008). Альтернативные DNS-серверы: выбор и развертывание, и необязательные SQL/LDAP-серверы (мягкая обложка) . UIT Cambridge Ltd. ISBN 978-0-9544529-9-5.
- ^ Данчев, Данчо. «Как OpenDNS, PowerDNS и MaraDNS остались незатронутыми уязвимостью отравления кэша DNS». ZDNet . Архивировано из оригинала 29 июля 2008 г. Получено 2009-10-10 .
- ^ «MaraDNS — безопасный DNS-сервер» . МараDNS . Проверено 15 декабря 2010 г.
- ^ «Инструменты разработчика, техническая документация и примеры кодирования». Microsoft .
- ^ «Синтаксис DNSCMD: Система доменных имен (DNS)». 3 сентября 2012 г.
- ^ "Domain Name System (DNS) Server Cmdlets". Архивировано из оригинала 2015-05-18 . Получено 2015-05-08 .
- ^ "DNSSEC в Windows Server 2012". 31 августа 2016 г.
- ^ «Что нового в DNS-сервере в Windows Server 2016». 20 октября 2021 г.
- ^ "Домашняя страница pdnsd". Phys.uu.nl. Получено 2011-10-26 .
- ^ «DNS-сервер Technitium».
- ^ «DNS-сервер (и сопутствующее) программное обеспечение для Unix».
- ^ "Исходный код". GitHub .
- ^ "Лицензия GPLv3". GitHub .
- ^ «Состояние реализации конфиденциальности DNS».
- ^ «5 лучших самостоятельных DNS-серверов с открытым исходным кодом, таких как Pi-Hole». 8 апреля 2023 г.
- ^ «Настройка DNS-сервера для обеспечения конфиденциальности и безопасности».
- ^ "Документация API DNS-сервера Technitium". GitHub .
- ^ "О YADIFA" . Получено 2013-04-11 .
- ^ "pdns NEWS". Архивировано из оригинала 2013-06-25 . Получено 2013-03-29 ."в pdnsd пока нет поддержки самого протокола DNSSEC"
- ^ "pdnsd homepage" . Получено 2013-03-29 .«pdnsd был запущен на Linux и с тех пор был перенесен на FreeBSD (а также Cygwin и Darwin). 90% исходного кода должно быть легко переносимо на POSIX- и BSD-совместимые системы, при условии, что эти системы поддерживают потоки POSIX (pthreads). Остальное может потребовать переписывания с учетом особенностей ОС».
Внешние ссылки
- Опрос DNS Интернета Дона Мура за май 2004 г.
- Обзор DNS-исследования Measurement Factory: апрель и июнь 2005 г.
- Опрос DNS Beehive/CoDoNS: июль 2004 г.
- Опрос МСЭ по DNS ccTLD