1

В моей домашней сети у меня есть пара компьютеров на базе Windows, у которых нет известных проблем с DNS, но с моим OSX iMac у меня есть проблемы с разрешением нескольких случайных доменов. Некоторые домены, с которыми у меня проблемы:

  • ehow.com
  • about.com
  • nationalshoppingservice.com

Помимо просмотра файла /etc/hosts (который я считаю вполне подходящим), что я должен проверить на iMac на наличие проблем, связанных с DNS, или какие инструменты следует использовать, чтобы помочь диагностировать проблему, с которой я сталкиваюсь?

Используя команду dig, я получаю:

; <<>> DiG 9.4.3-P3 <<>> @4.2.2.2 www.nationalshoppingservice.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3468
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.nationalshoppingservice.com. IN    A

;; ANSWER SECTION:
www.nationalshoppingservice.com. 14400 IN A 64.40.111.81

;; Query time: 86 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Tue Apr 12 18:22:42 2011
;; MSG SIZE  rcvd: 65

После того, как я попробовал некоторые из предложений, я считаю, что DNS - это неправильная проблема ... когда я выполнил эхо-запрос www.nationalshoppingservice.com, я получил следующее:

PING www.nationalshoppingservice.com (64.40.111.81): 56 data bytes
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host
ping: sendto: No route to host

Таким образом, похоже, что DNS разрешается, но маршрут к хосту не может быть найден? Что здесь происходит?

4 ответа4

3

Для устранения проблем с DNS в Mac OS X вы должны использовать как традиционный инструмент поиска DNS Unix, такой как (выберите one:) host , dig и nslookup , так и современный инструмент, который вызывает специфичные для Mac OS X API поиска DNS, такие как dns-sd -Q .

API поиска DNS, вызываемые большинством приложений Какао, маршрутизируются через демон mDNSResponder , что означает, что если у ваших приложений с графическим интерфейсом возникают проблемы с поиском DNS, dns-sd -Q , вероятно, покажет вам то же самое.

Традиционные средства поиска DNS Unix используют более традиционный код распознавателя DNS Unix, что означает, что они могут разрешать то, что приложения Cocoa не могут (и наоборот).

Если вы можете найти что-то с помощью dig но не с помощью dns-sd , тогда вы можете попытаться убить демон mDNSResponder и позволить launchd автоматически перезапустить его (я обнаружил, что HUPping mDNSResponder не всегда достаточно).

sudo killall mDNSResponder
3

Командная строка будет вашим другом. Во-первых, у вас может не быть проблем с DNS. Вы должны определить это в первую очередь. Лучший инструмент для этой работы - dig . Откройте терминал и введите

dig @4.2.2.2 ehow.com

Компоненты этой команды:

dig          :   the command
@4.2.2.2     :   this tells dig where to ask.  We are specifically asking a
                 known provider in this case Level3.  You could easily put
                 8.8.8.8 (Google) or any other provider here.
ehow.com     :   the domain you wish to query for.

Вы получите обратно вывод, как:

; <<>> DiG 9.7.2-P2 <<>> @4.2.2.2 ehow.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43699
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ehow.com.          IN  A

**;; ANSWER SECTION:
ehow.com.       118 IN  A   98.124.249.20**

;; Query time: 1 msec
;; SERVER: 4.2.2.2#53(4.2.2.2)
;; WHEN: Mon Apr 11 01:51:12 2011
;; MSG SIZE  rcvd: 42

РАЗДЕЛ ОТВЕТА является важной частью. Если вы получили ответ, то знаете, что с вашим iMac все в порядке и он может "получить" доступ к этому домену.

Следующим шагом будет замена @ 4.2.2.2 на IP или имя хоста вашего обычного DNS-сервера. Обычно это предоставляется вашим провайдером. Если вы получите тот же ответ, то вы знаете, что DNS не является вашей проблемой, и вы можете начать искать в другом месте. Вам также нужно выполнить эти тесты несколько раз, чтобы убедиться, что вы получаете хорошее время отклика. Если вы когда-нибудь получите:

;; connection timed out; no servers could be reached

Тогда вы знаете, что не получаете ответ. Если это происходит периодически, вы можете заметить это больше на iMac по сравнению с вашими компьютерами Windows из-за кэширования. По своему опыту я обнаружил, что машины Windows кешируют ответы DNS дольше, чем Mac.

1

У вас на iMac установлено какое-либо программное обеспечение для блокировки IP-адресов или аналогичные устройства?

Кроме того, попробуйте зайти в Настройки-> Сеть-> Дополнительно-> DNS и сбросить записи DNS; избавиться от посторонних.

Если это не сработает, попробуйте (временно) создать новую учетную запись в iMac или войдите в другую, чтобы узнать, можете ли вы получить доступ к веб-сайтам из них.

0

Чтобы проверить что-то, вы можете перейти в «Настройки» -> «Сеть» -> «Дополнительно» -> DNS и добавить запись DNS для общедоступного DNS Google 8.8.8.8. Если это решит проблему, вам придется выяснить, какие настройки DHCP использует ваш маршрутизатор при раздаче IP-адресов и информации DNS. Если ваш маршрутизатор получает информацию DNS от вашего интернет-провайдера, то это может быть вашей проблемой, возможно, просто медленным ответом. Вам не нужно использовать настройки DNS вашего интернет-провайдера.

Я часто использую 8.8.8.8 для тестирования, но в основном использую Opendns для дополнительного контроля.

надеюсь, это поможет

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