Как узнать, какой DNS-сервер я использую (из нескольких настроенных DNS-серверов)

15

У меня настроены два DNS-сервера, которые отображаются при просмотре ipconfig /all

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

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

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

Я знаю, nslookup [host]но для этого используется текущий сервер по умолчанию.

Я знаю, nslookup [server] [host]но это не помогает с подтверждением, какой DNS я в настоящее время использую от tracert или браузера.

Мой вопрос возник из ситуации, когда nslookup даст мне ожидаемый результат для определенного внутреннего хоста. Одновременно мой браузер также tracertне может разрешить хост. Если tracert и мой браузер используют дополнительный DNS-сервер, я бы хотел это подтвердить.

Есть ли способ сделать это?

Пол Джордж
источник

Ответы:

8

Windows запрашивает DNS в следующем порядке:

  1. Файл хостов
  2. Локальный кеш DNS
  3. Предпочитаемые DNS-серверы
  4. Другие DNS-серверы (вторичный, третичный, ...)

Вы можете узнать больше об этом поведении в Microsoft ( как работает DNS-запрос , функции клиента ). Кроме того, есть также список таймаутов для DNS-запросов:

Value        Default Value  Attempt
-------------------------------------------------------------------------------------
1st limit    1 second       Query the preferred DNS server on a preferred connection.
2nd limit    2 seconds      Query the preferred DNS server on all connections.
3rd limit    2 seconds      Query all DNS servers on all connections (1st attempt).
4th limit    4 seconds      Query all DNS servers on all connections (2nd attempt).
5th limit    8 seconds      Query all DNS servers on all connections (3rd attempt).
6th value    (Must be 0.)

Windows может регистрировать тайм-аут DNS-запроса где-то в средстве просмотра событий, я не уверен в этом. Wireshark, упомянутый @BBlake, вероятно, является лучшим выбором для быстрого получения ответа.

JC2k8
источник
8

Я думаю, что лучшее решение - перейти на dnsleaktest и щелкнуть по Стандартному тесту . Я использую этот метод лично все время.

Гаурав Кумар
источник
1
Ссылка не работает.
Пол Мэтьюз
Да, похоже, сейчас нет, я обновил свой ответ новым сайтом.
Гаурав Кумар
Это был, пожалуй, лучший и самый простой способ без установки внешней утилиты. Спасибо!
Анкур Джейн
7

Команда nslookup из командной строки подскажет вам, какую из них она использует (обычно ваша основная). Иногда ввод в поддельный домен (hdhsgdh.com) не удастся на первом DNS-сервере и попытаться использовать второй.

Быстрое редактирование: не вводите адрес после команды nslookup, она скажет вам, какой DNS-сервер он использует.

Дэн
источник
1
nslookupвсегда показывает DNS-сервер по умолчанию.
Нейротрансмиттер
5

Я не знаю ни одного легкого способа, встроенного в Windows, чтобы отслеживать эту информацию. Однако такая утилита, как Wireshark, позволяет довольно легко отслеживать сетевой трафик и фильтровать его по определенным видам трафика, например DNS.

BBlake
источник
2

Я считаю, что вы всегда будете использовать свой основной сервер DNS, если это не сработает. Вот почему у нас есть альтернативный DNS или вторичный DNS-сервер.

techhy
источник
2
Если он вышел из строя, как я могу это увидеть?
Пол Джордж
2

Вы можете посетить http://whatsmyresolver.stdlib.net/. На странице рассказывается, какой DNS-сервер вы использовали для разрешения домена. Это имеет то преимущество, что работает, даже если у вас нет доступа к маршрутизатору, или ваши DNS-запросы находятся в центре вашего ISP или что-то подобное.

Саймон
источник