1

Я настроил поддомен с записью A 127.0.0.1 (настроенной более 24 часов назад на официальном сервере, точно так же, как я бы настроил обычный поддомен) для развития. Допустим, это localhost.example.com. Я могу использовать nslookup, чтобы найти это с работы без проблем:

$ nslookup localhost.jasperhorn.nl
Server:  dc01.[...]
Address:  10.1.1.50

Non-authoritative answer:
Name:    localhost.jasperhorn.nl
Address:  127.0.0.1

Однако из дома я не получаю никакого ответа:

$ nslookup localhost.jasperhorn.nl
Server:  dsldevice.lan
Address:  192.168.1.1

DNS request timed out.
    timeout was 2 seconds.
*** Request to dsldevice.lan timed-out

Когда я явно добавляю сервер имен во время работы nslookup дома, он работает без проблем:

$ nslookup localhost.jasperhorn.nl ns1.flexwebhosting.nl
Server:  ns1.flexwebhosting.nl
Address:  82.192.67.204

Name:    localhost.jasperhorn.nl
Address:  127.0.0.1

(На работе добавление сервера имен вызывает проблемы, но я предполагаю, что это из-за брандмауэра и не связано с проблемами дома.)

При попытке выполнить один и тот же вызов с двух моих серверов (на обоих работает linux) я получаю правильный ответ (127.0.0.1) как при указании, так и при не указании сервера имен.

Это указывает на неисправный маршрутизатор или может быть что-то еще, что происходит?

1 ответ1

0

На самом деле, я к сожалению не доверяю некоторым из результатов, которые вы предоставили. (Я не говорю, что вы неточно сообщаете о результатах. Я говорю, что не доверяю результатам.)

Во-первых, просто чтобы убрать это с пути, ваш текущий вопрос показывает:

nslookup localhost.jasperhorn.nl ns1.flexwebhosting.nl

Я получаю те же результаты, что и вы. Однако в этом случае вы не спрашиваете их о localhost.example.com, а спрашиваете о localhost.jasperhorn.nl. Это не то, что спрашивать их о localhost.example.com. Когда я это делаю:

nslookup localhost.example.com ns1.flexwebhosting.nl Server: ns1.flexwebhosting.nl Address: 82.192.67.204

*** ns1.flexwebhosting.nl не может найти localhost.example.com: запрос отклонен

Они предоставили вам результаты. Для меня, находящегося в штате Вашингтон, США, на полпути по всему миру от местоположения этого DNS-сервера, предположительно в Нидерландах, я обнаружил, что они настроили DNS-сервер, который получает мой трафик, и они подтвердили, был ли я уполномочен использовать их, и они выяснили, что я не был, и они удосужились отправить ответ (используя протокол DNS), который дал мне знать, что они отказались от моего запроса. Или, может быть, они просто быстро закрыли / отклонили соединение UDP-порта 53. В любом случае, они как-то быстро дали мне понять, что я не должен пытаться получить от них результаты DNS. Если вы используете один и тот же DNS-сервер, похоже, они тратят время на проверку вашего разрешения на использование сервера. (Обратите внимание, что вы не можете использовать тот же компьютер, что и DNS-сервер, даже если вы указали один и тот же адрес IPv4, поскольку они могут маршрутизировать внутренний трафик IPv4, отличный от внешнего трафика IPv4).

Итак, затем я посмотрел список корневых серверов DNS и попробовал это:

nslookup localhost.example.com 198.41.0.4

Частичные результаты:

Server: UnKnown Address: 198.41.0.4

Имя: localhost.example.com Обслуживается: - m.gtld-servers.net 192.55.83.30 com

Хорошо, так что он не хочет говорить мне. Это говорит, чтобы проверить 192.55.83.30 для ответа вещей, связанных с "ком". (Это имеет смысл, поскольку «localhost.example.com.» Находится внутри «com.», Я показываю часто подразумеваемый последний период.)

хорошо, теперь давайте посмотрим на то, что правильный ответ:

nslookup localhost.example.com m.gtld-servers.net

Ключевая часть результатов:

Server: UnKnown Address: 192.55.83.30

Имя: localhost.example.com Обслуживается: - a.iana-servers.net 199.43.132.53 2001: 500: 8c:: 53 example.com - b.iana-servers.net 199.43.133.53 2001: 500: 8d:: 53 пример.com

О, они тоже не хотят мне говорить. Они говорят мне, что a.iana-servers.net - лучшее место, чтобы спросить о localhost.example.com. Хорошо, я сделаю это.

nslookup localhost.example.com a.iana-servers.net Server: a.iana-servers.net Address: 199.43.132.53

*** a.iana-servers.net can't find localhost.example.com: Non-existent domain

Хорошо. Вот и ты. Это официальный правильный ответ. Все остальные DNS-серверы должны предоставить тот же ответ. Давайте проверим это немного:

nslookup localhost.example.com google-public-dns-a.google.com Server: google-public-dns-a.google.com Address: 8.8.8.8

*** google-public-dns-a.google.com не может найти localhost.example.com: несуществующий домен

Вот еще один сервер имен:

nslookup localhost.example.com resolver1.opendns.com Server: resolver1.opendns.com Address: 208.67.222.222

*** resolver1.opendns.com can't find localhost.example.com: Non-existent domain

Итак, эти авторитетные источники согласны с официально правильным источником. Итак, для первых результатов, которые вы показываете, где 10.1.1.50 (который является частным адресом IPv4, который указывает на другое оборудование в зависимости от того, в какой сети вы находитесь), устройство, которое ответило, предоставило неавторизованный ответ, который не соответствует на самом деле правильный ответ. Вместо того чтобы сказать, что домен не существует, он сказал: Address: 127.0.0.1

Позор этому устройству. Я бы назвал это неправильной конфигурацией. Возможно, довольно разумный: «example.com» часто трактуется особым образом, поэтому тот факт, что «example.com» может дать интересные результаты, не обязательно означает, что DNS-сервер будет плохо выполнять стандартную задачу: поиск несвойственных доменов. Тем не менее, я бы предпочел, чтобы устройство показывало правильную информацию.

Теперь, наконец, давайте обсудим роутер. Маршрутизатор не отвечает. Это заставляет меня задуматься о том, что произойдет, если вы предоставите маршрутизатору другой несуществующий домен.

Теперь я уже сказал, почему я не буду слишком беспокоиться о результатах из домена «example.com» (потому что некоторые люди могут относиться к нему особенным; неправильное обращение с ним не обязательно означает, что другие домены также будут обрабатываться неправильно). Итак, позвольте мне перестать фокусироваться на имени «example.com» и просто немного обобщить ситуацию (притворяться, что это может произойти и с другими именами). Что происходит, когда сервер имен дает неверные результаты? Я собираюсь просто проигнорировать, какое доменное имя вы указали, и обсудить, как обращаться с устройством, которое не отвечает правильно.

Это могло бы предложить ошибочный сервер имен. Исходя из вашего примера, ошибочный сервер имен находится по адресу 192.168.1.1, который называется "dsldevice.lan". Если это ваш роутер (что кажется вероятным, в зависимости от имени), то это источник проблемы. Это устройство, кажется, пытается перехитрить вас, действуя особым образом с определенными результатами, и делает это в нарушение принципа работы DNS. Если бы я заметил это, я бы сделал одно из:

  • Посмотрите, можно ли починить роутер, отрегулировав некоторые настройки. (В частности, настройки для настройки, скорее всего, связаны с DNS, службой имен и т.д.)
  • Посмотрите, можно ли починить маршрутизатор, сменив прошивку (на официальное обновление или неофициальный дистрибутив, такой как DD-WRT). Вот как бы я справился с роутером. Если бы мы не говорили о маршрутизаторе, я мог бы обобщить этот подход, сказав: «заменить DNS-сервер (другим программным обеспечением)».
  • просто проигнорируйте проблему, и пусть маршрутизатор перестанет быть DNS-сервером. (Самый простой способ использовать другой DNS-сервер - это настроить параметры DHCP-сервера, который указывает, какой DNS-сервер использовать. Во многих случаях DHCP-сервер может быть маршрутизатором. В этом случае я бы изменил настройки DHCP в маршрутизаторе, указав маршрутизатору указывать устройства на другой DNS-сервер, который предоставляет результаты, которым я доверяю)

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