24.12. Построение частного сервера DNS

Проблема

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

Решение

Для начала настройте сервер dnscache в вашей локальной сети, следуя инструкциям из раздела 24.9. После этого настроим сервер tinydns (см. раздел 24.11), куда необходимо внести данные внутренних хостов. Основной конфигурационный файл для этих записей — /etc/tinydns/root/data. Этот файл будет содержать все необходимые DNS-записи для вашей частной сети, например, IP-адреса и доменные имена внутренних ресурсов.

Теперь нужно настроить сервер dnscache так, чтобы он обращался за доменными записями к локальному серверу tinydns. Используем сеть pixels.net в качестве примера (см. раздел 24.11). Выполните следующие команды, чтобы указать IP-адрес частного сервера tinydns:

# echo 192.168.1.100 > /service/dnscache/root/servers/pixels.net
# echo 192.168.1.100 > /service/dnscache/root/servers/0.168.192.in-addr.arpa

Пользователь dnscache должен быть владельцем созданных файлов. Выполните следующие команды для установки владельца:

# chown dnscache: /service/dnscache/root/servers/pixels.net
# chown dnscache: /service/dnscache/root/servers/0.168.192.in-addr.arpa

Затем перезапустите dnscache для применения изменений:

# svc -t /service/dnscache

Теперь dnscache будет обращаться за внутренними DNS-записями к tinydns для доменов, таких как pixels.net. Запросы на внешние доменные имена будут перенаправлены к файлу /etc/service/dnscache/root/servers/@, который определяет серверы для внешнего DNS.

Комментарий

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

Советы по настройке частного DNS-сервера

Дополнительная информация

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

См. также

Создание сервера DNS