У меня есть доменное имя, сопоставленное с адресом локальной подсети, чтобы я мог легко тестировать на разных устройствах (test.internetdancefloor.com сопоставляется с 192.168.1.88 или чем-то в этом роде). Этот адрес работает с моих компьютеров с Windows, однако он не работает с моих устройств Android или Mac. Когда я запускаю nslookup на моем Mac, происходит сбой DNS:

users-mbp:~ user$ nslookup internetdancefloor.com
Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
Name:   internetdancefloor.com
Address: 174.127.248.98

users-mbp:~ user$ nslookup test.internetdancefloor.com
Server:     192.168.1.1
Address:    192.168.1.1#53

Non-authoritative answer:
*** Can't find test.internetdancefloor.com: No answer

Любая идея, почему nslookup для test.internetdancefloor.com удается для некоторых машин, но не для других?

Я предполагаю, что DNS-клиент на устройствах Mac и Android отклоняет IP-адреса локальной подсети, потому что позже я добавил традиционную запись DNS (version.internetdancefloor.com), и она отлично работает на всех устройствах. В противном случае я не смог бы доказать эту гипотезу.

@Alex:

users-MacBook-Pro:videoplayer user$ cat /etc/resolv.conf 
#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
nameserver 192.168.1.1

Обновить:

Мы заметили, что Mac использует маршрутизатор непосредственно как DNS-сервер, а не DNS-серверы, которые маршрутизатор настроен для использования. Мой компьютер с Windows не использует маршрутизатор (192.168.1.1) в качестве DNS-сервера, а выбирает статические IP-адреса, на которых настроен маршрутизатор (я полагаю, через DHCP).

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

C:\src> nslookup test.internetdancefloor.com
Server:  DNSresolver-A.spectrumnet.us
Address:  208.76.152.1

Non-authoritative answer:
Name:    test.internetdancefloor.com
Address:  192.168.1.88

C:\src> nslookup test.internetdancefloor.com 208.76.152.1
Server:  DNSresolver-A.spectrumnet.us
Address:  208.76.152.1

Non-authoritative answer:
Name:    test.internetdancefloor.com
Address:  192.168.1.88

C:\src> nslookup test.internetdancefloor.com 192.168.1.1
Server:  unknown
Address:  192.168.1.1

*** No internal type for both IPv4 and IPv6 Addresses (A+AAAA) records available for test.internetdancefloor.com

Кажется неестественным настраивать устройства Android и Mac для использования определенного DNS-сервера, хотя я полагаю, что это сработает. Возможно, мой маршрутизатор фильтрует определенные результаты DNS, которые указывают на одну и ту же подсеть, и это можно отменить. Интересно, почему мои устройства Mac/Android выбирают 192.168.1.1 для своего DNS-сервера? Эти устройства имеют беспроводное соединение, в то время как мои ПК подключены, так что, возможно, это различие между проводной и беспроводной связью.

1 ответ1

0

Спасибо @ alex-mckenzie за то, что привел меня к ответу.

Мой беспроводной маршрутизатор велел клиентам (через DHCP) использовать его в качестве прокси-сервера DNS. По какой-то причине этот маршрутизатор не может разрешать IP-адреса в локальной подсети. Программное обеспечение маршрутизатора - TomatoUSB. Включен параметр конфигурации DHCP "Использовать внутренний DNS". Как только я отключил его, клиенты, подключающиеся через DHCP, будут напрямую использовать вышестоящие DNS-серверы.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .