24.9. Создание локального кэширующего сервера имён на базе djbdns

Проблема

Создание локального кэширующего DNS-сервера на базе djbdns значительно ускорит обработку запросов DNS в вашей локальной сети. Это улучшит производительность, ускорит загрузку веб-страниц, работу электронной почты и других интернет-служб, благодаря снижению времени на разрешение имён.

Решение

Программа для настройки кэширующего DNS-сервера в пакете djbdns называется dnscache. Перед началом работы установите пакеты daemontools, ucspi-tcp и djbdns (см. раздел 24.7). Проверьте успешность установки djbdns командой:

$ dnsip www.oreillynet.com
208.201.239.37 208.201.239.36

Создайте двух системных пользователей для управления dnscache и dnslog. Назовите их соответственно:

# useradd -d /dev/null -s /bin/false dnscache
# useradd -d /dev/null -s /bin/false dnslog

Задайте IP-адрес и каталог для dnscache, чтобы указать серверу, на каком адресе и в каком каталоге работать:

# dnscache-conf dnscache dnslog /etc/dnscache 192.168.1.5

Для безопасности и контроля укажите список «разрешённых» устройств в локальной сети, которым будет доступен сервер. В этом примере доступ получают все устройства с IP-адресами, начинающимися на 192.168.1:

# touch /etc/dnscache/root/ip/192.168.1

Запустите сервер с помощью символической ссылки, чтобы dnscache автоматически запускался с системой:

# ln -s /etc/dnscache /service

Проверьте, что сервер работает, командой svstat:

# svstat /service/dnscache
/service/dnscache: up (pid 6776) 30 seconds

Чтобы убедиться, что сервер корректно обслуживает DNS-запросы, проверьте кэш с помощью команды:

# env DNSCACHEIP=192.168.1.5 dnsqr a www.yahoo.com
1 www.yahoo.com:
193 bytes, 1+9+0+0 records, response, noerror
query: 1 www.yahoo.com
answer: www.yahoo.com 286 CNAME www.yahoo.akadns.net
answer: www.yahoo.akadns.net 60 A 66.94.230.52

Настройте клиентские устройства для использования вашего локального DNS-сервера (см. раздел 24.10) и укажите его IP-адрес как сервер DNS в настройках сети на каждом устройстве.

Комментарий

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

djbdns включает полезные утилиты для получения информации о DNS и диагностики, такие как dnsqr, dnstrace, dnsip, tinydns-get, dnsipq, dnsmx и dnsname. Эти инструменты помогут тестировать, настраивать и мониторить работу DNS-сервера.

Преимущества использования локального кэширующего DNS-сервера

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

Обновление и поддержка djbdns

Хотя djbdns остаётся популярным и надёжным решением для DNS-серверов, разработка проекта давно завершена. Для современных систем рассмотрите альтернативы, такие как Unbound и dnsmasq, которые активно поддерживаются и обновляются, обеспечивая актуальную безопасность и совместимость.

См. также

Утилиты командной строки для получения информации DNS; Утилиты командной строки для отладки конфигурации DNS; Разные способы настройки dnscache; Life with Djbdns, Simple Setup