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