У меня есть доменное имя, сопоставленное с адресом локальной подсети, чтобы я мог легко тестировать на разных устройствах (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-сервера? Эти устройства имеют беспроводное соединение, в то время как мои ПК подключены, так что, возможно, это различие между проводной и беспроводной связью.