Назад | Перейти на главную страницу

Список адресов Windows DNS не откатывается

Я установил свой собственный DNS-сервер (Bind9) на Pine64 под управлением Ubuntu. На моем компьютере с Windows 10 я добавил IP-адрес своего DNS в верхнюю часть DNS server addresses в Advanced TCP/IP Settings. «Настоящие» DNS-серверы, предоставленные моим интернет-провайдером, также были добавлены с более низким приоритетом, как резервные (см. Снимок экрана).

Пока отвечает мой собственный DNS, с этой конфигурацией все работает отлично.

Однако, если я отключу свой собственный DNS-сервер, Windows не сможет разрешить имена. Делая nslookup приводит к истечению времени ожидания запроса DNS.

В соответствии с Документация Microsoft, если первый DNS не работает, следует попробовать следующий из списка:

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

У меня вопрос почему Windows не использует второй DNS при выходе из строя первого?

В этом случае я ожидал, что второй DNS (83.255.229.23) успешно ответит, но он даже не отправил запрос.

Обновление / решено:

Благодаря ответу Zoredache я понял, что мой список DNS (в Windows) неверен. DNS-серверы на скриншотах названы «ns1.comhem.se» и принадлежат моему интернет-провайдеру. Однако, очевидно, их нельзя использовать напрямую:

Resolve-DnsName -DnsOnly -Name ubuntu.com -Server 83.255.229.23
Resolve-DnsName : ubuntu.com : DNS operation refused
At line:1 char:1
+ Resolve-DnsName -DnsOnly -Name ubuntu.com -Server 83.255.229.23
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (ubuntu.com:String) [Resolve-DnsName], Win32Exception
    + FullyQualifiedErrorId : RCODE_REFUSED,Microsoft.DnsClient.Commands.ResolveDnsName

Я посмотрел, какие DNS-адреса получил мой маршрутизатор от моего интернет-провайдера, и оказалось, что они называются «anyresolver1.comhem.se» (IP 83.255.255.1). Когда я поместил их в список, все заработало точно так, как ожидалось!

Ну почти все. Как отмечено в комментариях ниже, nslookup все еще не работает:

nslookup
DNS request timed out.
    timeout was 2 seconds.
Default Server:  UnKnown
Address:  192.168.0.18

> set d2
> ubuntu.com
Server:  UnKnown
Address:  192.168.0.18

------------
SendRequest(), len 33
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        ubuntu.com.home, type = A, class = IN

------------
DNS request timed out.
    timeout was 2 seconds.
timeout (2 secs)
SendRequest failed
------------
SendRequest(), len 33
    HEADER:
        opcode = QUERY, id = 3, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        ubuntu.com.home, type = AAAA, class = IN

------------
DNS request timed out.
    timeout was 2 seconds.
timeout (2 secs)
SendRequest failed
------------
SendRequest(), len 28
    HEADER:
        opcode = QUERY, id = 4, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        ubuntu.com, type = A, class = IN

------------
DNS request timed out.
    timeout was 2 seconds.
timeout (2 secs)
SendRequest failed
------------
SendRequest(), len 28
    HEADER:
        opcode = QUERY, id = 5, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        ubuntu.com, type = AAAA, class = IN

------------
DNS request timed out.
    timeout was 2 seconds.
timeout (2 secs)
SendRequest failed
*** Request to UnKnown timed-out
>

Но просмотр Интернета и разрешение имен действительно работают:

Resolve-DnsName -DnsOnly -Name ubuntu.com

Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
ubuntu.com                                     A      600   Answer     91.189.94.40

Подвести итог: Используйте правильные настройки DNS! (:

Команда nslookup не всегда является самым полезным инструментом для проверки того, как клиент решает проблемы. Хотя команда nslookup будет подключаться к одному из DNS-серверов, настроенных для этого клиента, она не переключится автоматически. В отличие от встроенного преобразователя Windows.

Если вы используете последнюю версию Windows, вам следует открыть powershell и использовать командлет Resolve-DnsName вместо этого для разрешения имен с помощью стандартных API Windows.