Назад | Перейти на главную страницу

Легкий Linux DNS

Может ли кто-нибудь порекомендовать облегченный DNS-сервер Linux, который подойдет для дата-центра?

РЕДАКТИРОВАТЬ: Обычно мы говорим о дата-центре в пределах 10-20 серверов, максимум до 100. Для большего количества действительно есть смысл использовать BIND.

Я ищу что-то более легкое, BIND (если есть что-то подобное).

Если он включен в обычные репозитории YUM для CentOS 5.4, тем лучше.

dnsmasq может быть хорошим вариантом. Он может работать как с dns, так и с dhcp. Просто использует файл хоста и имеет простую конфигурацию. И это должно быть в репозиториях по умолчанию для вашего дистрибутива.

Изменить: позвольте мне уточнить свой ответ, так как он получает несколько голосов и комментариев. Вопрос не ясен в отношении всего варианта использования и масштаба. Так что, хотя вы можете не согласиться с этим, dnsmasq является вполне допустимым решением при правильных обстоятельствах. OP должен будет выяснить, что подходит их конкретному случаю, поскольку в их вопросе немного не хватало деталей.

Я бы рекомендовал это только как жизнеспособное решение, если оно предназначено для внутреннего разрешения DNS в сегменте частной локальной сети центра обработки данных. При условии, что мы не говорим о сотнях серверов. Если вы хотите запустить свой собственный общедоступный DNS, вам лучше подготовиться к запуску взрослого DNS-решения как минимум в двух географических центрах обработки данных.

Взгляните на DNS DJB (djbdns и tinydns) из http://cr.yp.to/djbdns.html? Можно даже использовать файлы зон BIND.

Какой DNS вам нужен? Вам нужен рекурсивный преобразователь для клиентов в центре обработки данных? Авторитетный сервер для некоторых доменов, которые вы размещаете? Вы хотите удалить зависимость (внешний рекурсивный поиск DNS) со своих серверов?

Краткий ответ (и это что-то вроде религиозного вопроса, так что отнеситесь к нему с недоверием):

  • запускать рекурсивные преобразователи на локальном хосте каждого сервера, каждый сервер использует себя для рекурсивного DNS. PowerDNS создает резолвер, работающий в Windows и UNIX; Dnscache DJB, часть пакета tinydns, также на 100% защищен от пуль, но вам, возможно, придется настроить его, чтобы он мог следовать очень длинным цепочкам cname (акамай, я смотрю на вас).

  • запустите отдельный DNS-сервер для принадлежащих вам адресов. Опять же, PowerDNS - это выбор, используемый Википедией. У него есть всевозможные прекрасные серверные части от файлов зоны привязки до баз данных postgresql. Tinydns тоже хорош, хотя и немного странный, если вы приехали из привязанной земли. Запустите эти DNS-серверы на интерфейсах "не локального хоста" и опубликуйте эти адреса у своего регистратора. Будьте хозяином своего домена!

  • если вы предоставляете рекурсивную службу другим хостам в центре обработки данных, запустите dnscache или pdns-recursor на машине, которая в других случаях не предоставляет службы DNS, и установите ACL для резолвера только на запросы обслуживания из центра обработки данных. Случайные хосты в Интернете могут проводить дурацкие атаки с отравлением кеша против DNS-серверов, поэтому им не стоит доверять, если у вас есть выбор.

PowerDNS, вероятно, проще всего установить из пакета; в далеком прошлом DJB был очень параноиком в отношении третьих лиц, портящих его детей, поэтому у него были странные лицензионные ограничения на двоичные дистрибутивы; с тех пор они были удалены, но недобрые чувства к набору утилит DNS DJB остались.

я использую нсд для авторитетных серверов имен я админ. Имейте в виду, что все nsd действует как авторитетный сервер имен, поэтому я использую "несвязанный" (от тех же разработчиков) для внутренних рекурсивных запросов от самих серверов.

Для справки (несколько бессмысленной) один первичный сервер имен, обслуживающий полдюжины зон, примерно по 20 записей в каждой, имеет объем резидентной памяти около 1,1 МБ.

Я обнаружил, что nsd очень стабилен. Единственная проблема заключается в том, что передача зон между серверами может быть сложной задачей, конечно, не такой простой, как между двумя серверами BIND. В итоге я использовал сценарий rsync для обновления / перестройки / перезагрузки записей моего вторичного сервера имен.

Другой вариант, который я пробовал, - это MaraDNS, который дает хорошие результаты, но ненамного легче BIND.

ИМХО «вес» службы DNS - это не само программное обеспечение, а обрабатываемый им трафик и работа, которую он должен выполнять, чтобы разрешить адрес. Вы можете развернуть несколько DNS в своем центре обработки данных, чтобы минимизировать нагрузку и уменьшить возможную единую точку отказа. Но имейте в виду, что низкая производительность DNS может снизить производительность других служб.

С тех пор, как был задан этот вопрос, в ландшафте DNS произошли изменения, о которых стоит упомянуть. Похоже, что запрашивающий ищет рекурсор DNS. Стоит обсудить следующие варианты:

  • несвязанный - Полнофункциональный, но при этом легкий преобразователь DNS. Несвязанный - маленький, прочный и безопасный. Это первый сторонний преобразователь, заменить BIND в выпуске ОС. Настоятельно рекомендуется.
  • dnscache - выпущен как часть djbdns, это оригинальный легкий DNS-рекурсор. Он твердый, не пропускает память, очень безопасно, и работает хорошо. Недостатки немного необычная установка, отсутствие DNSSEC, отсутствие поддержки нескольких процессоров и обработка CNAME, которая дает сбой при достаточных обстоятельствах, чтобы вызвать беспокойство.
  • Рекурсор PowerDNS - сложнее назвать pdns облегченным. PowerDNS объявляет себя "высокопроизводительным" рекурсором и имеет худшая запись о безопасности чем dnscache и unbound. У меня недостаточно опыта, чтобы комментировать дальше.
  • BIND - несправедливо называть BIND легковесным, это не его фокус. BIND стремится стать максимальным DNS-сервером, поддерживающим все протоколы DNS в каждой ОС. Это часто влечет за собой штраф за производительность, размер и особенно безопасность.

Возможности легкого авторитетного DNS-сервера сейчас значительно шире, чем в прошлые годы. Knot, NSD, tinydns и Yadifa имеют слабые или нулевые уязвимости безопасности (бонусные баллы к tinydns, так как он был выпущен намного дольше), очень легкие демоны. Все 4 работают очень хорошо, каждый из которых обладает определенными эзотерическими способностями.

  • Knot, NSD, Yadifa - все очень легкое, безопасное и очень и очень быстрое. Каждый из этих трех был написан для обслуживания TLD (несколько зон, много записей), но также хорошо работают для обслуживания более общей рабочей нагрузки ISP во многих зонах с несколькими записями в каждой.
  • tinydns - очень безопасный и очень быстрый. Поддерживает DNSCurve (почти 0% внедрения), а не DNSSEC (широко распространенный и растущий). Необычная установка, но чрезвычайно надежная в эксплуатации.
  • PowerDNS - PowerDNS работает достаточно хорошо. Как и BIND, PowerDNS можно было бы выбрать больше за его набор функций, чем за его производительность и безопасность.
  • BIND - как упоминалось ранее, не является легковесным.

Другое требование - решение должно быть HA, то есть серверы DNS будут синхронизировать данные между собой. И последнее (желательно, но не обязательно) - иметь простой веб-интерфейс для всего.

Только PowerDNS имеет веб-интерфейс, «связанный» с DNS-сервером. Для веб-интерфейс для управления авторитетным DNS, есть несколько вариантов. NicTool, безусловно, мой любимый, так как его можно использовать с tinydns, BIND, Knot, NSD, Yadifa или любой их комбинацией.