Я только что настроил внутренний http-сервер для внутреннего использования (я установил Redmine) в небольшой сети (около 30 ПК).
Я установил http-сервер на виртуальном ящике ubuntu, который также запускает DNS-сервер (привязка). В поиске DNS я добавил имя сервера Redmine (redmine.engserver <-> 192.168.1.14) и в качестве серверов пересылки IP-адреса DNS внешнего провайдера.
Я использую небольшой маршрутизатор Wi-Fi (ASUS RT-N66U) в качестве DHCP (и в качестве шлюза). На странице конфигурации DHCP я настроил в качестве DNS IP-адрес сервера ubuntu (фиксированный 192.168.1.14). Теперь, когда я подключаю новый компьютер к сети, DHCP-маршрутизатор выдает свой новый IP-адрес, а в качестве DNS-серверов он выдает: основной: 192.168.1.14 (машина ubuntu) и вторичный 192.168.1.1 (сам маршрутизатор).
ipconfig / all Шлюз по умолчанию. . . . . . . . . : 192.168.1.1 DHCP-сервер. . . . . . . . . . . : 192.168.1.1 DHCPv6 IAID. . . . . . . . . . . : 248539109 DUID клиента DHCPv6. . . . . . . . : 00-01-00-01-17-15-AA-3F-D0-67-E5-49-A7-EF
DNS-серверы. . . . . . . . . . . : 192.168.1.14 192.168.1.1 NetBIOS через Tcpip. . . . . . . . : Включено
Перед изменением настройки DHCP на маршрутизаторе я всегда получал только один DNS-сервер: 192.168.1.1 (который, вероятно, использует переадресацию DNS на внешние общедоступные службы DNS).
Проблема в следующем: если в моем браузере я набираю www.google.com, он работает все время. Если в браузере набираю http: //redmine.engserver/ он работает большую часть времени, но иногда заканчивается поиском по странице Yahoo или чем-то еще. В кеше DNS это отображается как (Сервер не найден). ipconfig / displaydns
Я смотрел с wirehark, и мне кажется, что иногда клиентский компьютер опрашивает вторичный DNS (192.168.1.1) вместо первого 192.168.1.14. Очевидно, что это общественное достояние, и в нем нет записи redmine.engserver.
Что не так в этой конфигурации? Можно ли вообще иметь 2 несовместимых DNS (один внутренний и один перенаправленный маршрутизатором)? Есть ли другой способ использовать локальную службу имен в сети небольшого офиса? Почему DHCP маршрутизатора выдает себя как DNS?
Вы уже поняли это. Половина ваших DNS-запросов направляется маршрутизатору вместо вашего внутреннего DNS-сервера (который не может разрешить «redmine» внутренне). Ваш маршрутизатор должен назначить только 192.168.1.14 в качестве DNS-сервера в DHCP. В сети вашего размера вы, вероятно, сможете обойтись только одним DNS-сервером. (Это должно быть опцией в конфигурации.)
Можно ли вообще иметь 2 несовместимых DNS (один внутренний и один перенаправленный маршрутизатором)?
Нет, это очень плохая практика по причинам, с которыми вы столкнулись.
Почему DHCP маршрутизатора выдает себя как DNS?
Это можно сделать с настройками по умолчанию для DHCP на любом маршрутизаторе. Я предполагаю, что это может быть какая-то полная чушь с устройством, которое не позволяет вам его отключить. Если это так, немедленно выбросьте его в корзину и замените чем-то, что дает вам контроль над вашей сетью.
Если у вас есть DNS в поле ubuntu, вы также можете удалить запись DNS из DHCP маршрутизатора (так что он предоставляет только сам маршрутизатор в качестве DNS для клиента) и добавить ubunto в качестве основного DNS-сервера и резервного в качестве вторичного DNS-сервера.
К вашему сведению: я вижу точно такую же проблему на моем WiFi-роутере ASUS. У меня Asus RT-N16. Я также настроил dhcp-сервер, чтобы предоставить клиентам другой DNS-сервер. Однако этот asus настаивает на предоставлении клиентам адреса маршрутизатора 192.168.1.1. Это плохо по указанным вами причинам.
Есть ли способ использовать dhcp на роутере, но не его DNS? Интересно, может, лучше просто перепрошить роутер dd-wrt.