BIND9 не может разрешить локальный домен

Вопрос или проблема

Я несколько дней мучился, пытаясь настроить bind9 для разрешения моего локального домена, чтобы я мог получить доступ к нему из своей локальной сети.

Подробности:

DNS СЕРВЕР: 192.168.178.46

ВЕБ-СЕРВЕР (apache2): (виртуальная машина VirtualBox, в режиме мост) 192.168.178.36
ХОСТ ВИРТУАЛЬНОЙ МАШИНЫ: 192.168.178.26

ЛОКАЛЬНЫЙ ДОМЕН: acme.local

Я успешно получаю доступ ко всем машинам по IP. Все клиенты настроены с моим внутренним DNS. Я могу получить доступ к своему локальному веб-сайту по IP-адресу.

Демон bind успешно работает без ошибок. Также веб-сервер запущен, и виртуальный хост настроен и включен.

Цель: получить доступ к моему локальному веб-серверу по доменному имени (acme.local) без изменения моего /etc/hosts файла.

На моем DNS сервере (192.168.178.46)

Содержимое /etc/bind/named.conf.options:

options {
    directory "/var/cache/bind";

    // Если ваш интернет-провайдер предоставил один или несколько IP-адресов для стабильных 
    // серверов имен, вы, вероятно, хотите использовать их в качестве пересылателей.  
    // Раскомментируйте следующий блок и вставьте адреса, заменив 
    // заполнитель со всеми нулями.

    // Мне не нужно пересылать на другие серверы имен, поэтому не использую это.
    // forwarders {
    //  0.0.0.0;
    // };

    dnssec-validation auto;
    auth-nxdomain no;    # соответствовать RFC1035
    listen-on-v6 { any; };
};

Содержимое /etc/bind/named.conf.local:

// Чтобы быть уверенным, только для внутренней сети.
acl internals  {
    192.168.178.0/24;
        127.0.0.0/8;
};

// Создание представления для внутреннего ACL.
view "internals" {
    // Совпадение с ACL
    match-clients { internals; };
    // Настройка домена:
    zone "acme.local" {
        type master;
        // указываем на файл зоны.
        file "/etc/bind/zones/db.acme.local";
    };
};

/etc/bind/zones/db.acme.local:

@   IN      SOA     ns1.acme.local. admin.acme.local. (
                              5         ; Серийный номер
                         604800         ; Обновление
                          86400         ; Повтор
                        2419200         ; Истечение
                         604800 )       ; TTL для отрицательного кеша
;

; Серверы имен
; создаем имя для DNS.
acme.local.    IN      NS      ns1.acme.local.

; A записи для серверов имен
; Указываем созданное имя DNS на саму машину.
ns1             IN      A       127.0.0.1

; Другие A записи
; Указатель на веб-сервер:
@               IN      A       192.168.178.36
www             IN      A       192.168.178.36

Информация DiG (сделано на одном из внутренних клиентов)

Вот что говорит dig, я новичок в этой DNS-истории, но мне кажется, что он находит acme.local на 192.168.178.36, но Chrome все равно говорит мне:

Адрес сервера DNS для acme.local не найден.
ERR_NAME_NOT_RESOLVED

Информация от Dig:

; <<>> DiG 9.9.5-9+deb8u9-Debian <<>> acme.local
;; глобальные опции: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44847
;; флаги: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, флаги:; udp: 4096
;; SECTION ВОПРОСА:
;; acme.local.          IN  A

;; SECTION ОТВЕТА:
acme.local.     604800  IN  A   192.168.178.36

;; SECTION АВТОРИТЕТА:
acme.local.     604800  IN  NS  ns1.acme.local.

;; ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ:
ns1.acme.local. 604800  IN  A   192.168.178.46

;; Время запроса: 3 мс
;; СЕРВЕР: 192.168.178.46#53(192.168.178.46)
;; ВРЕМЯ: Пт Янв 20 23:14:04 CET 2017
;; РАЗМЕР СООБЩЕНИЯ, полученного: 91

Вопрос:

Вы можете увидеть, что я делаю неправильно, или дать мне некоторые советы о том, как достичь своей цели, используя bind9?

Спасибо в любом случае!

ИЗМЕНЕНИЕ / ОБНОВЛЕНИЕ:

Одна часть решена, благодаря @Barmar мне указали правильное направление. DNS казался нормальным. Для моего ноутбука на Debian мне нужно было изменить порядок значений в /etc/nsswitch.conf с hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns на hosts: dns files myhostname mdns4_minimal [NOTFOUND=return]. Я не уверен, почему это сработало, но это сработало. Но…

Я также хотел бы получить доступ к моему локальному домену с мобильных устройств (Android), подключенных к моему Wi-Fi. И это по-прежнему не работает. Однако я настроил соединение Wi-Fi с DNS на каждом устройстве…

Я думаю, что эта строка:

ns1             IN      A       127.0.0.1

является проблемой.

Замените 127.0.0.1 на фактический адрес вашего DNS-сервера (192.168.178.46).

Ответ или решение

Бинд9 не может разрешить локальный домен: Причины и Решения

Если вы сталкиваетесь с проблемой, когда BIND9 (Berkeley Internet Name Domain) не может разрешить локальный домен, это может быть вызвано несколькими факторами в конфигурации вашего DNS-сервера. Давайте разберем ваше описание проблемы и предложим возможные решения, которые помогут добиться доступа к локальному веб-серверу по доменному имени.

Обзор молекулы

Основные параметры вашей конфигурации:

  • DNS Сервер: 192.168.178.46
  • Веб-сервер (Apache2): 192.168.178.36 (виртуальная машина в режиме Bridged)
  • Локальный домен: acme.local
  • Темы конфигурации: файлы /etc/bind/named.conf.options, /etc/bind/named.conf.local, и /etc/bind/zones/db.acme.local

Анализ конфигураций

  1. Проблемы с адресами имён:
    Ваша запись for ns1.acme.local указывает на 127.0.0.1. Это создаёт проблемы, так как любые запросы на ns1.acme.local будут отправляться на локальную машину DNS, а не на ваш сервер (192.168.178.46). Следует изменить эту запись:

    ns1             IN      A       192.168.178.46
  2. Конфигурация файла /etc/nsswitch.conf
    Изменения в этом файле помогли вашему Debian-ноутбуку, так как порядок настраивает приоритеты поиска. Для совместимости с мобильными устройствами и другими компьютерами убедитесь, что порядок совпадает везде. Запись должна выглядеть следующим образом:

    hosts: dns files myhostname mdns4_minimal [NOTFOUND=return]

    Это означает, что система сначала будет искать записи в DNS, а затем в /etc/hosts.

  3. Проверка настроек DHCP:
    Если ваши мобильные устройства правильно настроены на использование DNS-сервера (192.168.178.46), необходимо убедиться, что ваш роутер корректно раздаёт этот адрес через DHCP. Проверьте настройки DHCP и убедитесь, что указанный DNS-сервер указан в качестве обработчика DNS для ваших устройств.

  4. Firewall и безопасность сети:
    Убедитесь, что файрволл на вашем DNS-сервере (192.168.178.46) не блокирует входящие DNS-запросы (порт 53). Аналогично, проверьте настройки сетевого оборудования, чтобы исключить внешние блокировки.

  5. Логи BIND9:
    Для более детального изучения проблемы полезно включить ведение журналов в named.conf.options. Добавьте следующие строки для получения более подробной информации о работе BIND9:

    logging {
       channel default_log {
           file "/var/log/named/default.log";
           severity info;
           print-time yes;
       };
       category default { default_log; };
    };

    Затем, настройте уровень ведения журналов для решений проблем и анализа ошибок.

Итог

Следуя вышеупомянутым рекомендациям, вы сможете наладить работу DNS для доступа к вашему локальному веб-серверу по доменному имени acme.local. Приведенные меры помогут устранить возможные ошибки конфигурации, что повысит доступность вашего локального домена. Обязательно протестируйте изменения, чтобы обеспечить корректное разрешение DNS как для ваших компьютеров, так и для мобильных устройств.

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

Оцените материал
Добавить комментарий

Капча загружается...