Почему мой беспроводной маршрутизатор некорректно выполняет поиск имени хоста?

Почему мой беспроводной маршрутизатор некорректно выполняет поиск имени хоста?

Проблема: У меня есть два компьютера в моей беспроводной сети (доменное имя "serenity", 192.168.1.1), имена хостов "jayne" (Arch Linux, 192.168.1.108) и "mal" (Mac OS X, 192.168.1.101). Когда я пытаюсь заставить их общаться, происходит следующее:

jayne$ ping mal
PING mal.serenity (184.106.31.161) ... [pings go through to weird IP]

и

mal$ ping jayne
PING jayne.serenity (184.106.31.161) ...

Однако пинг маршрутизатора работает:

jayne or mal$ ping serenity
PING serenity.serenity (192.168.1.1) ...

И тут начинаются странности:

jayne or mal$ ping google
PING google.serenity (184.106.31.161) ... [same IP as before]

jayne or mal$ ping google.com
PING google.com (74.125.115.106) ... [works as expected]

jayne$ ping 192.168.1.101
PING  192.168.1.101 (192.168.1.101) ... [works as expected]

Так почему же Мэл и Джейн не могут видеть друг друга?

Улов: serenity в настоящее время подключен к другому, уже существующему маршрутизатору (у него нет доменного имени), который является основным шлюзом в Интернет, расположенным по адресу 192.168.0.1. Я настроил статическое правило DHCP, чтобы всегда сопоставлять serenity с 192.168.0.2.

Теперь я заметил, что когда я перехожу по несуществующему URL в своем браузере, меня перенаправляют на страницу моего интернет-провайдера «Поиск * в Интернете», поэтому я решил, что странные IP-адреса, которые преобразовывались в пинги, вероятно, принадлежали какому-то серверу, который обрабатывал это у интернет-провайдера, и изменил DNS-серверы на маршрутизаторе .0.1 наПубличный DNS Googleуслуга.

Теперь, ping malили ping jayneвообще не разрешать ("ping: unknown host mal", "ping: cannot resolve jayne: Unknown host"), даже с "полными" именами (например, "mal.serenity"), но я все равно могу успешно ping serenity.

Так почему же Мэл и Джейн не могут видеть друг друга?

Я не особо разбираюсь в сетях, так что, возможно, у меня просто где-то неправильная настройка, но пока я использую hostsфайлы, чтобы обойти это, вручную сопоставляя имена хостов с IP-адресами, но это всего лишь устранение симптома, а не проблемы.

решение1

Я могу изменить или удалить это на основе вашего ответа на приведенный выше комментарий/вопрос.

Вот что, как я полагаю, происходит, и это может вам немного помочь. Первая часть проста: вы пытаетесь использовать DNS для пингования рабочих станций, которые нигде не зарегистрированы в DNS, и ваш маршрутизатор/DNS-сервер возвращает свой внешний IP-адрес (я полагаю, и ваш ответ на вопрос выше это подтвердит).

Вторая часть заключается в том, что если вы сравните две рабочие станции Windows, когда они не регистрируются на локальном DNS-сервере, они используют NetBIOS через TCP/IP, чтобы найти друг друга. В вашем случае я не уверен, есть ли у вас что-то похожее, что вы можете использовать, поскольку я не парень Linux или Mac, а если и есть, то это в настоящее время не используется.

Что я могу сказать, так это то, что вы можете настроить свой Linux-бокс на работу в качестве DNS-сервера, разместить свой собственный DNS и зарегистрировать свои компьютеры на этом сервере; или вы можете просто продолжать использовать файлы HOSTS. Наконец, кто-то, скорее всего, придет и добавит еще один ответ, который расскажет вам, как разрешить Linux и Mac взаимодействовать без использования DNS, подобно NetBIOS через TCP/IP.

Если кто-то не согласен с концепцией NetBIOS через TCP/IP, то, по моему личному мнению, вас вполне устроит использование файлов HOSTS, и это правильный путь.

решение2

Бит ".serenity" мог быть добавлен как домен поиска DNS. Это может быть автоматически настроено через DHCP, так что, вероятно, вы получаете его оттуда. В настройках DHCP вашего маршрутизатора очистите все поля домена поиска (если таковые имеются).

Если вы все еще видите его, в Windows перейдите в настройки TCP/IP, нажмите «Дополнительно» и на вкладке DNS выполните следующие действия.

  • Снимите флажок «DNS-суффикс для этого подключения».
  • Выберите «Добавить эти DNS-суффиксы» и убедитесь, что в списке ничего нет.

Возможно, вам придется сделать это как для IPv4, так и для IPv6.

На Mac перейдите в раздел «Сеть» в «Системных настройках». Нажмите кнопку «Дополнительно» вашего подключения и на вкладке DNS нажмите кнопку «+», чтобы добавить пустую запись. (Вы должны увидеть, что фиктивная запись от DHCP выделена серым цветом, поэтому удалить ее можно только таким образом.)

И на Mac, и на Linux вам, возможно, придется проверить, /etc/resolve.confнет ли там домена поиска.


Что касается загадочного результата DNS, я думаю, это какая-то услуга "catch all" или "domain name correction", которую использует ваш DNS-провайдер. Обычно они возвращают этот результат для всех несуществующих доменов, чтобы получить от вас немного дохода от рекламы. OpenDNS и многие интернет-провайдеры так делают.

Имя хоста, добавленное к домену поиска, больше не является допустимым локальным именем хоста, а выглядит как правильное полное доменное имя для ОС, поэтому последняя отправляет его на DNS-сервер, а не обращается к NetBIOS. Если у вас нет этой службы "catch all", ваша ОС в конечном итоге поймет, что это не правильный домен, и вернется к NetBIOS или другому механизму разрешения имен.

Связанный контент