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-сервера
- Резервное копирование файла конфигурации: Периодически создавайте резервные копии файла
/etc/tinydns/root/data
для сохранения всех записей. - Регулярное обновление DNS-записей: При добавлении новых хостов в локальную сеть не забывайте обновлять записи в файле
data
и перезапускатьtinydns
, чтобы изменения вступили в силу. - Оптимизация конфигурации: Использование
tinydns
позволяет динамически добавлять и удалять записи, что полезно для крупных сетей.
Дополнительная информация
Кроме настройки локального DNS, рассмотрите возможность настройки кеширующего DNS для ускорения работы сети. Кеширующий DNS-сервер хранит временные копии ранее запрашиваемых DNS-записей, что снижает время отклика при повторных обращениях.
См. также