Làm thế nào để Windows quyết định sử dụng máy chủ DNS nào khi phân giải tên?


41

Windows sử dụng thuật toán nào để quyết định Máy chủ DNS nào sẽ truy vấn để phân giải tên?

Giả sử tôi có một số giao diện, tất cả đều hoạt động, một số không có máy chủ dns được chỉ định, một số được yêu cầu tự động xác định và một số giao diện được chỉ định thủ công (trong giao diện ipv4 VÀ giao diện ipv6).

Tôi đang yêu cầu trả lời cho câu hỏi chung này với hy vọng rằng tôi biết cách giải quyết vấn đề cụ thể hơn trong Windows Vista - Tôi có hai giao diện, một giao diện thấp hơn và máy chủ DNS được chỉ định thủ công. nslookup sử dụng máy chủ DNS NÀY và phân giải tên chính xác. Tuy nhiên, tất cả các ứng dụng khác không thể phân giải tên trừ khi tôi chỉ định thủ công máy chủ DNS cho giao diện khác, sau đó các ứng dụng sẽ sử dụng. nslookup cũng sử dụng máy chủ DNS được chỉ định cho giao diện khác này sau khi được chỉ định.

Cảm ơn

Câu trả lời:


27

Nếu tôi không nhầm, nó được xác định theo thứ tự ràng buộc NIC trong Cài đặt nâng cao trong thư mục kết nối mạng. Bạn có thể xác minh nó bằng cách thay đổi thứ tự ràng buộc của các NIC khác nhau và chạy nslookup dưới dạng thử nghiệm.

Để mở rộng câu trả lời của tôi, trích dẫn bài báo mà Evan liên kết , đây là một đoạn trích từ bài báo đã nói:

Dịch vụ Máy khách DNS truy vấn các máy chủ DNS theo thứ tự sau:

  1. Dịch vụ Máy khách DNS gửi truy vấn tên đến máy chủ DNS đầu tiên trong danh sách máy chủ DNS của bộ điều hợp ưa thích và đợi một giây để nhận phản hồi.

  2. Nếu dịch vụ Máy khách DNS không nhận được phản hồi từ máy chủ DNS đầu tiên trong vòng một giây, nó sẽ gửi truy vấn tên đến các máy chủ DNS đầu tiên trên tất cả các bộ điều hợp vẫn đang được xem xét và chờ hai giây để phản hồi.

  3. Nếu dịch vụ Máy khách DNS không nhận được phản hồi từ bất kỳ máy chủ DNS nào trong vòng hai giây, dịch vụ Máy khách DNS sẽ gửi truy vấn đến tất cả các máy chủ DNS trên tất cả các bộ điều hợp vẫn đang được xem xét và chờ thêm hai giây để phản hồi.

  4. Nếu dịch vụ Máy khách DNS vẫn không nhận được phản hồi từ bất kỳ máy chủ DNS nào, nó sẽ gửi truy vấn tên đến tất cả các máy chủ DNS trên tất cả các bộ điều hợp vẫn đang được xem xét và chờ bốn giây để phản hồi.

  5. Nếu dịch vụ Máy khách DNS không nhận được phản hồi từ bất kỳ máy chủ DNS nào, máy khách DNS sẽ gửi truy vấn đến tất cả các máy chủ DNS trên tất cả các bộ điều hợp vẫn đang được xem xét và chờ tám giây để phản hồi.

Bộ điều hợp ưu tiên trong bước 1 là bộ điều hợp được liệt kê đầu tiên theo thứ tự ràng buộc.


4
Quá trình này đã thay đổi trong Windows 10, mặc dù tôi không biết quy trình mới mà tôi biết ở trên không áp dụng cho Windows 10, hãy xem blog này - blog.technet.microsoft.com/networking/2015/08/14/
Robert

14

Trong Windows 10 (và Windows Server 2016), bạn phải cập nhật số liệu của từng giao diện theo thứ tự bạn muốn.

  1. Bảng điều khiển Goto> Mạng và Internet> Kết nối mạng
  2. Nhấp chuột phải vào kết nối mong muốn (Kết nối ưu tiên cao hơn)
  3. Nhấp vào Thuộc tính> Giao thức Internet Phiên bản 4
  4. Nhấp vào Thuộc tính> Nâng cao
  5. Bỏ chọn 'Số liệu tự động'
  6. Nhập 10 vào 'Số liệu giao diện'
  7. Nhấn vào OK

Người giới thiệu:

Tôi đã sử dụng 10 cho mạng LAN của mình, 20 cho mạng WLAN và 100 cho Giao diện VPN (Tôi thích DNS cục bộ tại nơi làm việc, điều này có thể ngược lại với những người khác). Nhớ số liệu thấp hơn = ưu tiên cao hơn .

Xem bài viết này trong Hỗ trợ của Microsoft để biết giải thích về tính năng Số liệu tự động cho các tuyến IPv4 .


+1 Đối với tôi trên Windows 10, đây là giải pháp duy nhất, cảm ơn bạn.
Gốtårđïåñ

Sửa đổi số liệu chỉ ảnh hưởng đến việc lựa chọn tuyến đường. Nó không ảnh hưởng đến máy chủ DNS nào sẽ được sử dụng.
Jruv

14 người ủng hộ và kinh nghiệm cá nhân không đồng ý, tôi đồng ý không nên nhưng các nhà phát triển tại microsoft dường như đã mã hóa nó theo cách này.
Jacob Evans

8

Trang này mô tả thuật toán được Windows sử dụng để thực hiện các truy vấn DNS. Nó không đủ sâu để cung cấp cho bạn tất cả các câu trả lời mà bạn đang tìm kiếm, nhưng đôi khi sẽ có một sniffer và bài viết này phải là tất cả những gì bạn cần để xác định những gì đang xảy ra trong tình huống cụ thể của bạn.


3

Tôi đã có cùng vấn đề y hệt. Tôi đã dành một ngày cố gắng để tìm ra nó. Bây giờ tôi biết và nó hoạt động như một nét duyên dáng.

Nếu bạn có một số card mạng và nếu chỉ định máy chủ DNS trong mỗi thẻ. Bạn có biết máy chủ DNS nào sẽ được sử dụng cuối cùng không?

Vâng, bạn có thể kiểm tra nó thông qua thực hành.

nslookup 192.168.3.6

Vì vậy, bạn thấy máy chủ mà PC của bạn thực sự sử dụng

Câu hỏi là - Từ những gì phụ thuộc vào cửa sổ máy chủ DNS chọn sử dụng và cách chúng ta có thể thay đổi nó.

Chúng tôi đặc biệt cần nó khi chúng tôi sử dụng máy khách VPN.

Câu trả lời từ qwerty2010 là đúng và chính xác. Nhưng bạn chỉ có thể sử dụng nó khi bạn có NIC trong bảng điều khiển - mạng và trung tâm chia sẻ - thay đổi cài đặt bộ điều hợp - danh sách các ảnh

Chỉ khi bạn thấy nic có thể sửa chữa được cho máy khách VPN của mình, bạn mới có thể sử dụng cách đồ họa để trỏ các cửa sổ máy chủ dns (được chỉ định trên một nic cụ thể) mà bạn muốn sử dụng.

Vì vậy, bạn truy cập Mạng và trung tâm chia sẻ -> Thay đổi cài đặt bộ điều hợp -> Nâng cao -> Cài đặt nâng cao -> và bạn di chuyển LÊN nic với DNS bạn muốn sử dụng. (LÊN bạn cần nâng nó lên).

Tuy nhiên, nếu bạn sử dụng Shrew vpn client - bạn sẽ không có bất kỳ ảnh nào.

Bạn làm nghề gì.

Bạn mở registry.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

Và bạn tìm trong các thư mục con 0000, 0001, vv thư mục với

DriverDesc = Shrew Soft Virtual Adapter

khỏe. Sau đó, bạn sao chép vào clipboard

NetCfgInstanceId = {B498E7DE-7257-48F6-AD32-60E470030F05}

Bây giờ bạn đi

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Linkage]

và bạn mở key = Bind. Bạn sẽ thấy danh sách như thế này

\Device\{1DF89CE3-CAAD-4EB7-A53F-AD16BC1D5EFD}
\Device\{70126DBE-B44D-4392-9417-0CABD6E384B1}
\Device\{D5127F8E-E7BB-4661-AE5A-A922614173D0}
\Device\{C44039AB-6801-4A9B-A736-3B12782FF411}
\Device\{85231D0F-CD05-4774-A983-632C5D83AC62}
\Device\{7E87BC81-8C58-4E05-9FA0-7897A6AA5CCE}
\Device\{3A1A3EFC-A9DE-4BCA-BAF6-81C7074487E0}
\Device\{8D41EDFC-04AC-4537-B5D5-0D54EB51A023}

Tất cả bạn phải làm là đặt lên hàng đầu

\Device\{B498E7DE-7257-48F6-AD32-60E470030F05}
\Device\{1DF89CE3-CAAD-4EB7-A53F-AD16BC1D5EFD}
\Device\{70126DBE-B44D-4392-9417-0CABD6E384B1}
\Device\{D5127F8E-E7BB-4661-AE5A-A922614173D0}
\Device\{C44039AB-6801-4A9B-A736-3B12782FF411}
\Device\{85231D0F-CD05-4774-A983-632C5D83AC62}
\Device\{7E87BC81-8C58-4E05-9FA0-7897A6AA5CCE}
\Device\{3A1A3EFC-A9DE-4BCA-BAF6-81C7074487E0}
\Device\{8D41EDFC-04AC-4537-B5D5-0D54EB51A023}

Đó là tất cả. Không cần phải khởi động lại.

Bây giờ các cửa sổ của bạn sẽ sử dụng DNS được chỉ định trong shrew vpn nic khi bạn sử dụng kết nối vpn.


0

Vì điều này có thể giúp bạn hoặc người khác, bạn có thể vô hiệu hóa việc sử dụng vòng tròn cửa sổ của các dns được liệt kê để làm cho việc sử dụng dns dễ dự đoán hơn. Hãy thử đặt RoundRobin=0trong HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters( tham chiếu ) để vô hiệu hóa tính năng quay vòng dns.

Ngoài ra còn có "thời gian chờ" để xoay các máy chủ, bạn cũng có thể thử đặt nó về 0 :

 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
 ServerPriorityTimeLimit=0

Theo "tham chiếu" (liên kết) đã đề cập, điều này áp dụng để định cấu hình máy chủ DNS trong việc cung cấp nhiều địa chỉ IP cho một số FQDN được yêu cầu theo thứ tự sắp xếp được xoay từ truy vấn sang truy vấn. Điều này không liên quan gì đến câu hỏi về cách trình phân giải DNS (máy khách) đang chọn máy chủ DNS được truy vấn.
Thomas Urban

-13

Nó không quyết định ngẫu nhiên. Bạn đã kết nối với bộ định tuyến lấy IP từ một công ty có máy chủ DNS. Họ nhận được yêu cầu của bạn trừ khi bạn thay đổi IP thủ công sang DNS khác, ví dụ: OpenDns . Hoặc có lẽ bạn quyết định có máy chủ DNS của riêng bạn. Điều đó cũng làm việc. Chỉ cần nhập địa chỉ IP trong trung tâm mạng và tất cả sẽ ổn. Và vâng, bạn sẽ phải đặt chúng theo cách thủ công.

Bạn cũng có thể điều chỉnh một tệp trong C:\Windows\System32"máy chủ" không có phần mở rộng. Nó cho phép bạn chuyển hướng yêu cầu URL thay vì được gửi đến DNS tiêu chuẩn. Đến máy chủ cục bộ (phải chạy và nghe cổng 80)


18
Về cơ bản mọi thứ bạn nói ở đây đều sai
MDMarra

3
Và thêm -1 cho việc đề cập đến sự ghê tởm đó là tập tin máy chủ.
Maximus Minimus

Cách để được thông tin MarkM
KdgDev

4
@WebDevHobo - Thực sự có quá nhiều điều để sửa trong một bình luận, nhưng tôi sẽ chạm vào những điểm lớn. 1) OP có một máy tính có nhiều giao diện (rất có thể là các NIC riêng biệt) và mỗi máy có một DNS khác nhau được xác định trên đó. Trong bối cảnh của câu hỏi, rõ ràng anh ta đang chạy một vài máy chủ DNS nội bộ hoặc có một vài máy chủ DNS bên ngoài ưa thích - hộp có thể là nhiều homed. 2) Bạn không cần phải đặt địa chỉ máy chủ DNS nội bộ theo cách thủ công nếu bạn đang sử dụng DHCP trong cấu hình của máy chủ DHCP cho nhóm địa chỉ đó. 3) Đường dẫn đến tệp máy chủ là c: \ windows \ system32 \ driver \ etc
MDMarra

3
Và tệp HOSTS không nên được sử dụng trong tình huống này hoặc thực tế là trừ khi bạn đang thực hiện phát triển cục bộ và sử dụng các tiêu đề HOST hoặc một cái gì đó tương tự và cần FQDN để giải quyết cục bộ. Và máy chủ không cần chạy cổng 80 cho dù sử dụng tệp HOSTS để phân giải tên hoặc máy chủ DNS. Chỉ cần nối thêm: port_number vào cuối URL. HOSTS không quan tâm đến cổng, giống như DNS không - đó là cách dịch tên máy chủ thành địa chỉ IP và không có gì khác.
MDMarra
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.