У меня есть несколько клиентских виртуальных машин с многосетевым интерфейсом Windows 10, подключенных к домену Windows 2012 R2. Ethernet1 подключен к локальной сети с контроллерами домена (у которых нет серверов пересылки или доступа к корневым серверам), Ethernet2 подключен к локальной сети с доступом к Интернету, у Ethernet0 и Ethernet3 оба носителя отключены. Запросы на записи с контроллеров домена возвращаются просто отлично, но запросы на записи из интернета занимают 10 секунд плюс сколько угодно времени, чтобы DNS-серверы моего интернет-провайдера возвращали ответ. Если я запрашиваю DNS-серверы моего интернет-провайдера напрямую через nslookup
имя, оно разрешается быстро (<1 секунда), если я просто запускаю nslookup
без указания DNS-сервера, запрос прерывается, и имя никогда не разрешается, и если я пытаюсь пропинговать DNS-имя, оно занимает> 10 секунд, прежде чем имя будет решено.
Я осмотрел Technet, но, похоже, еще нет документации по Windows 10. Лучшее, что я нашел:
http://blogs.technet.com/b/networking/archive/2009/06/26/dns-client-resolver-behavior.aspx http://blogs.technet.com/b/stdqry/archive/2011/12 /15/dns-clients-and-timeouts-part-2.aspx
Что говорит, что я должен ожидать, что мой клиент будет запрашивать основной DNS-сервер для Ethernet1, ждать 1 секунду для ответа на тайм-аут, а затем запрашивать как дополнительный DNS-сервер для Ethernet1, так и основной DNS-сервер для Ethernet2, но это не похоже быть происходящим. Далее в документации говорится, что после 10 секунд (и еще 3 раундов DNS-запросов с более длительными тайм-аутами) разрешение DNS полностью не будет работать для всех адаптеров, но поведение клиента создает впечатление, что для его прохождения требуется 10 секунд, прежде чем даже попытаться используйте DNS-серверы для второго адаптера.
Если бы я (или вы) не открыл Wireshark и не понюхал строку, или вслепую изменил HKLM\System\CurrentControlSet\Services\dnscache\Parameters\DNSQueryTimeouts
, кто-нибудь знает, как должна вести себя Windows 10, и, что более важно, как я могу настроить поведение? Я готов жить с разрешением ~ 1 секунда, но 10 секунд довольно жестоко.
IPCONFIG
Ethernet adapter Ethernet1:
Connection-specific DNS Suffix . : intranet.mydomain.net
Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connection #2
Physical Address. . . . . . . . . : 00-0C-29-CC-E8-93
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::999b:3e21:749b:6f55%7(Preferred)
IPv4 Address. . . . . . . . . . . : 10.2.0.20(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Lease Obtained. . . . . . . . . . : Sunday, September 6, 2015 8:17:00 AM
Lease Expires . . . . . . . . . . : Sunday, September 13, 2015 8:17:00 AM
Default Gateway . . . . . . . . . :
DHCP Server . . . . . . . . . . . : 10.2.0.2
DHCPv6 IAID . . . . . . . . . . . : 83889193
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1D-74-AB-6A-00-0C-29-CC-E8-89
DNS Servers . . . . . . . . . . . : 10.2.0.1
10.2.0.2
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Ethernet2:
Connection-specific DNS Suffix . : internet.mydomain.net
Description . . . . . . . . . . . : Intel(R) 82574L Gigabit Network Connection #3
Physical Address. . . . . . . . . : 00-0C-29-CC-E8-9D
DHCP Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::944:ded1:dc53:cec4%6(Preferred)
IPv4 Address. . . . . . . . . . . : 192.168.1.116(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Lease Obtained. . . . . . . . . . : Sunday, September 6, 2015 8:17:04 AM
Lease Expires . . . . . . . . . . : Monday, September 7, 2015 8:17:04 AM
Default Gateway . . . . . . . . . : 192.168.1.1
DHCP Server . . . . . . . . . . . : 192.168.1.1
DHCPv6 IAID . . . . . . . . . . . : 83889193
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-1D-74-AB-6A-00-0C-29-CC-E8-89
DNS Servers . . . . . . . . . . . : 75.75.75.75
75.75.76.76
8.8.8.8
NetBIOS over Tcpip. . . . . . . . : Enabled
Nslookup
C:\Users\username>nslookup www.google.com 75.75.75.75
Server: cdns01.comcast.net
Address: 75.75.75.75
Non-authoritative answer:
Name: www.google.com
Addresses: 2607:f8b0:4001:c07::69
74.125.196.106
74.125.196.104
74.125.196.147
74.125.196.105
74.125.196.99
74.125.196.103
C:\Users\username>nslookup www.google.com
DNS request timed out.
timeout was 2 seconds.
Server: UnKnown
Address: 10.2.0.1
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
timeout was 2 seconds.
*** Request to UnKnown timed-out
Обновить
Если кому-то еще интересно, я подключил к домену виртуальную машину Win7 SP1 (без исправлений) с той же конфигурацией сетевого адаптера, перенес ее в то же подразделение, что и другие виртуальные машины, и на всякий случай обновил групповую политику на клиенте. Он способен разрешать DNS-запросы как с DNS-серверов DC, так и с моих интернет-провайдеров. Таким образом, похоже, что это поведение специфично для DNS-клиента Windows 10.
Обновление 2
Так что все становится страннее. Похоже, что Win10 по умолчанию будет выдавать запросы параллельно, но не будет передавать ответ тому процессу, который его запросил, до истечения времени ожидания всех запросов. И по какой-то причине DNS-сервер на моем втором контроллере домена не работает. Кто-нибудь знает, как отключить это поведение?
Ответы:
Microsoft в Windows 10 существенно изменила или переписала DNS Resolver.
Самое большое изменение состояло в том, чтобы выдавать DNS-запросы всем адаптерам параллельно, а затем принимать первый ответ. К сожалению, новый код содержит ошибки и упущения, и кажется, что вместо того, чтобы принимать первый ответ, он ждет всех ответов. Если для одного из DNS-запросов истечет время ожидания, это означает 10-секундное ожидание перед разрешением DNS.
Эта ошибка, несомненно, будет исправлена в будущем обновлении Windows 10. До тех пор, чтобы максимально приблизить поведение к предыдущим версиям Windows, существуют следующие модификации реестра:
DisableSmartNameResolution (DWORD)
В ключе реестра
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
.Значение 1 для отключения, 0 для включения интеллектуального разрешения.
От Выключите смарт многодомного разрешения имен :
DisableParallelAandAAAA (DWORD)
В ключе реестра
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
.Значение 0 для включения, 1 для отключения DNS-запросов A и AAAA от параллельного выполнения на всех настроенных DNS-серверах, причем самый быстрый ответ сначала теоретически принимается.
источник
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClient
не существует. Кроме того,DisableParallelAandAAAA
не существует, но ключи существуют, чтобы можно было добавить его.Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\DNSClient" -Name DisableSmartNameResolution -Value 1 -Type DWord
иSet-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters" -Name DisableParallelAandAAAA -Value 1 -Type DWord
Press WIN+R and write gpedit.msc Expand Administrative templates Expand Network Click DNS-client Double-click "Turn off smart multi-homed name resolution" Check the box called "Enabled" Click "Apply all" and then "OK"
источник
SMHNR слегка изменен для Windows 10 по сравнению с Windows 8. В Windows 10 его нельзя отключить через реестр.
В Windows 10 вы можете использовать «Локальные политики», чтобы отключить эту функцию. Для этого выполните следующие действия:
источник
Поскольку DNS-серверы вашего домена не имеют доступа к корневым серверам, и у вас нет настроенной переадресации, вам нужно удалить недостижимые корневые ссылки с DNS-сервера, чтобы ускорить запросы по адресам, которые он не размещает. Это должно ускорить время ожидания и, в свою очередь, ускорить разрешение клиента. В противном случае он будет пытаться связаться с корневыми серверами, прежде чем сдаться.
Процедура удаления корневых ссылок в 2008 R2 описана здесь .
источник