Час очікування роздільної здатності для Windows 10-ти DHM


11

У мене є декілька багатоходових віртуальних клієнтів 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

Оновлення

Якщо хтось цікавиться, я приєднався до VM Win7 SP1 (без патчів) з тією ж конфігурацією мережевого адаптера до домену, перемістив його в той же ОУ, що й інші віртуальні машини та оновив групову політику щодо клієнта на всякий випадок. Він здатний негайно вирішувати запити DNS як з DNS-серверів DC, так і з моїх Інтернет-провайдерів. Так виглядає, що це поведінка, специфічна для клієнта DNS Windows 10.

Оновлення 2

Тож речі стають незнайомими. Схоже, Win10 за замовчуванням видаватиме запити паралельно, але він не передасть відповідь на будь-який процес, про який його вимагали, до тих пір, поки всі запити не очікуються. І чомусь сервер DNS на моєму другому контролері домену не працює. Хтось знає, як відключити таку поведінку?

Wireshark Packet Trace


Погляньте на це питання: superuser.com/questions/966017/… haarymc зазначив, що роздільна здатність DNS для Windows 10 була значно модифікована та вказує на деякі можливі рішення.
— Брендон Ксав'є

Я б почав з DisableSmartNameResolution, про який згадувалося.
— Брендон Ксав'є

Брендону, схоже, встановлення DisableSmartNameResolution на 1 (а не 0, як рекомендовано посиланням) працювало! Якщо ви хочете опублікувати це як відповідь, я нагороджу представника. Дякую!
— Метт

LOL, стільки проекції. Будьте злі, що Брендон Ксав'є знайшов проблему тут, отримаючи +100 повторень, коли він відправить свій коментар як відповідь, і що вам не вдасться почитати свої власні цитати.
— Метт

1
Ось ще одна хороша посилання про цю нову функцію, і як вона змінюється з ОС Windows 8.1 в ОС Windows 10. medium.com/@ValdikSS / ...
— GuitarPicker

Відповіді:


11

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 для включення розумного дозволу.
З Вимкніть розумну роздільну здатність імені :

Вказує, що мультидомакований DNS-клієнт повинен оптимізувати роздільну здатність імен у мережах. Цей параметр покращує продуктивність, видаючи паралельну локальну роздільну здатність імені багатоадресної ланки DNS (LLMNR) та NetBIOS через TCP / IP (NetBT) запитів у всіх мережах. У разі отримання декількох позитивних відповідей використовується мережевий порядок прив'язки, щоб визначити, яку відповідь прийняти. Якщо ви включите цю політику, налаштування DNS-клієнта не проводитиме жодних оптимізацій. DNS-запити спочатку будуть видаватися у всіх мережах. LLMNR-запити будуть видані, якщо запити DNS не вдаються, а за ними - NetBT-запити, якщо запити LLMNR не вдається. Якщо ви вимкнете цей параметр політики або якщо не налаштовано це налаштування політики політики, оптимізація імені буде оптимізована при видачі DNS-запитів LLMNR та NetBT.

DisableParallelAandAAAA (DWORD)

У ключі реєстру HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters.
Значення - 0 для включення, 1 для відключення запитів DNS A і AAAA паралельно виконувати запити на всіх налаштованих серверах DNS, при цьому найперше теоретично приймається швидкий відповідь.


1
Просто хотів додати, що я на Win 10.0.10586 і HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\DNSClientне існує. Також DisableParallelAandAAAAне існує, але ключі існують, щоб можна було додати його.
— Махді,

Це вирішило проблему VPN split-dns у Windows 10. При підключенні до vpn (тобто за допомогою клієнта Cisco) dns vpn використовується лише деякий час через ці дві функції. Якщо вимкнути обидва ці можливості (смарт-роздільна здатність імені та паралельний запит dns), це дозволяє надійно використовувати dn-адреси VPN. Крім того, він вирішує проблему "протікання dns", яка виникає під час незахищеної / ненадійної мережі Wi-Fi, наприклад, у кав'ярні з Windows 10. Ваші dns-запити перейдуть через vpn зараз, а не іноді в кав'ярню dns. Дуже дякую за надання цього рішення!
— truemedia

2
Зручна версія PowerShell для тих, хто потрапляє на це (ми знаходимось на Stack Exchange): 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
— Нік Крейвер

2
Цей ключ реєстру не вплинув на мій windows10, що спрацювало: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"
— Julien

1

джерело

SMHNR дещо змінено для Windows 10 порівняно з Windows 8. У Windows 10 не можна вимкнути його через реєстр.

Для Windows 10 ви можете використовувати функцію "Місцева політика" для деактивації функції. Для цього виконайте наведені нижче дії.

  • Натисніть WIN + R і напишіть gpedit.msc
  • Розгорнути адміністративні шаблони Розгорнути мережу
  • Клацніть DNS-клієнт Двічі клацніть "Вимкнути розумну роздільну здатність імені"
  • Поставте прапорець "Увімкнено"
  • Клацніть «Застосувати все», а потім «ОК»

Жюльєн, я не кажу, що шляхи не перемістилися в реєстрі, але коли ви оновлюєте налаштування в локальній політиці, переважна більшість того, що ви робите, - це внесення змін до реєстру (редактором локальної політики). Насправді це дуже поширений спосіб розібратися, яку частину реєстру безпосередньо змінити для певного параметра. Запустіть ProcMon (від Sysinternals) і внесіть зміни, а потім визначте, який ефективний шлях до реєстру в якому вулику було оновлено, від чого до чого.
— thepip3r

0

Оскільки ваші доменні сервери DNS не мають доступу до кореневих серверів і у вас немає налаштування переадресації, вам потрібно видалити недоступні кореневі підказки з сервера DNS, щоб пришвидшити запити щодо адрес, на яких він не розміщений. Це повинно прискорити очікування та, в свою чергу, прискорити дозвіл клієнта. Інакше перед тим, як відмовитися, намагатимуться зв’язатися з кореневими серверами.

Порядок видалення кореневих натяків на R2 2008 року задокументований тут .


Дякую за відповідь, але це питання стосувалося поведінки клієнтів, а не DNS-сервера контролера домену, як зазначає "... хто-небудь знає, як має вести себе Windows 10, і ще важливіше, як я можу йти щодо налаштування поведінка »
— Метт

Справедливо. Здавалося, що клієнти поводилися таким чином через неоптимальну конфігурацію. Чи є у вас клієнти, що не належать до Windows 10, які ведуть себе по-різному?
— GuitarPicker

Ні, у мене є інші клієнти Win10 VM, у яких замість Ethernet2 підключено Ethernet3 (VPN на базі доступу до Інтернету та сервер DNS 1.2.3.4), і вони поводяться так само. І як міг багатохолодний клієнт з DNS-серверами для обох мереж коли-небудь вважатись неоптимальним?
— Метт

1
GuitarPicker, я спробував запропонувати клієнтські пропозиції, які не є Win10, і, схоже, це поведінка, специфічна для Windows 10.
— Метт

Відповідь @ harrymc виглядає так, що вона піклується про речі на стороні клієнта. Я насправді знайшов це, прочитавши ваш коментар і перед тим, як прочитати його відповідь. Microsoft напрочуд тихо задокументує це. Моє рішення може дати вам трохи більше прискорення часу для вирішення всіх клієнтів, але його відповідь пояснить різницю клієнтів.
— GuitarPicker
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.