Windows, adları çözerken hangi DNS Sunucusunu kullanacağına nasıl karar verir?


41

Windows, adları çözmek için hangi DNS Sunucusunu sorgulayacağına karar vermek için hangi algoritmayı kullanır?

Diyelim ki hepsi aktif, bazıları dns sunucusu belirtilmemiş, bazıları otomatik olarak belirlenecek, bazıları da manuel olarak belirtilmiş birkaç arayüze sahibim (arayüz ipv4 VE arayüz ipv6'da).

Windows Vista'da daha spesifik bir problemi nasıl çözeceğimi bildiğimi umarak bu genel sorunun cevabını soruyorum - bir tane daha düşük bir metrik ve manuel olarak belirtilen bir DNS sunucusundan oluşan iki arayüzüm var. nslookup, BU DNS sunucusunu kullanır ve adları doğru şekilde çözümler. Ancak, diğer tüm uygulamalar için daha sonra kullanacakları bir DNS sunucusu el ile belirlemediğim sürece, diğer tüm uygulamalar adı çözemez. nslookup, belirtildikten sonra bu diğer arabirim için belirtilen DNS sunucusunu da kullanır.

Teşekkürler

Yanıtlar:


27

Yanılmıyorsam, ağ bağlantıları klasöründeki Gelişmiş Ayarlar'daki NIC bağlayıcı sırasına göre belirlenir. Bunu, çeşitli NIC'lerin bağlama sırasını değiştirerek ve nslookup uygulamasını bir test olarak çalıştırarak doğrulayabilirsiniz.

Cevabımı genişletmek için , Evan'ın bağladığı makaleye değinmek gerekirse , işte sözü geçen makaleden bir alıntı:

DNS İstemcisi hizmeti, DNS sunucularını aşağıdaki sırayla sorgular:

  1. DNS İstemcisi hizmeti, ad sorgusunu, tercih edilen adaptörün DNS sunucuları listesinde bulunan ilk DNS sunucusuna gönderir ve yanıt için bir saniye bekler.

  2. DNS İstemcisi hizmeti, bir saniye içinde ilk DNS sunucusundan bir yanıt almazsa, ad sorgusunu hala değerlendirilmekte olan tüm bağdaştırıcılardaki ilk DNS sunucularına gönderir ve bir yanıt için iki saniye bekler.

  3. DNS İstemcisi hizmeti, iki saniye içinde herhangi bir DNS sunucusundan yanıt almazsa, DNS İstemcisi hizmeti, halen üzerinde durulmakta olan tüm bağdaştırıcılar üzerindeki tüm DNS sunucularına sorguyu gönderir ve yanıt için iki saniye bekler.

  4. DNS İstemcisi hizmeti hala herhangi bir DNS sunucusundan yanıt alamıyorsa, ad sorgusunu hâlâ değerlendirilmekte olan tüm bağdaştırıcılardaki tüm DNS sunucularına gönderir ve yanıt için dört saniye bekler.

  5. DNS İstemcisi hizmeti herhangi bir DNS sunucusundan yanıt alamazsa, DNS istemcisi sorguyu hala göz önünde bulundurulmakta olan tüm bağdaştırıcılar üzerindeki tüm DNS sunucularına gönderir ve yanıt için sekiz saniye bekler.

1. adımda tercih edilen adaptör, ilk önce ciltleme sırasına göre listelenen adaptördür.


4
Bu işlem, Windows 10’da değişti, ancak yukarıdakileri Windows 10’a uygulayamadığımı bildiğim yeni işlemleri bilmiyorum, bu blogu görün - blogs.technet.microsoft.com/networking/2015/08/14/…
Robert

14

Windows 10'da (ve Windows Server 2016'da), her bir arayüzün metrikini istediğiniz sırayla güncellemelisiniz.

  1. Goto Denetim Masası> Ağ ve İnternet> Ağ Bağlantıları
  2. İstediğiniz bağlantıya sağ tıklayın (Yüksek Öncelikli Bağlantı)
  3. Özellikler> İnternet Protokolü Sürüm 4'ü tıklayın.
  4. Özellikler> Gelişmiş'i tıklayın.
  5. 'Otomatik Metrik' seçeneğinin işaretini kaldırın
  6. 'Arayüz Metrik' bölümüne 10 girin
  7. Tamam'ı tıklayın

Referanslar:

LAN'ım için 10, WLAN için 20 ve VPN Arayüzleri için 100 kullandım (işyerinde yerel DNS'i tercih ederim, bu diğerleri için ters olabilir). Unutmayın alt metrik = yüksek öncelik .

IPv4 yolları için Otomatik Metrik özelliğinin bir açıklaması için Microsoft Destek'teki bu makaleye bakın .


+1 Windows 10'da benim için tek çözüm buydu, teşekkür ederim.
GµårÐïåñ

Metrik değişiklik sadece rota seçimini etkiler. Hangi DNS sunucusunun kullanılacağını etkilemez.
Jruv

14 upvotes ve kişisel deneyim, aynı fikirde değil, kabul etmemeliyim ama dev'in microsoft'taki bu şekilde kodlanmış gibiydi.
Jacob Evans

8

Bu sayfa , Windows tarafından DNS sorgularını gerçekleştirmek için kullanılan algoritmayı açıklar. Size aradığınız tüm cevapları verebilecek kadar derin değil, ancak bir süre bir keskin nişancı ile ve bu makalede, sizin özel durumunuzda neler olup bittiğini belirlemek için ihtiyacınız olan her şey olmalı.


3

Ben tam olarak aynı problem vardı. Anlamaya çalışarak bir gün geçirdim. Şimdi biliyorum ve bir cazibe gibi çalışıyor.

Birden fazla ağ kartınız varsa ve bunların her birinde DNS sunucusu varsa. Hangi DNS sunucusunu kullanacağınızı biliyor musunuz?

Peki, pratik yoluyla kontrol edebilirsiniz.

nslookup 192.168.3.6

Yani PC'nizin gerçekte kullandığı sunucuyu görürsünüz

Asıl soru - Hangi DNS sunucusu penceresinin kullanmayı seçtiğine ve onu nasıl değiştirebileceğimize bağlı.

Özellikle VPN istemcileri kullanırken buna ihtiyacımız var.

Cevap den qwerty2010 doğru ve doğru. Ancak SADECE kontrol panelinde NIC olduğunda - ağ ve paylaşım merkezi - adaptör ayarlarını değiştir - nics listesini kullanabilirsiniz.

Yalnızca VPN istemciniz için yanıt verebilecek bir nicki görürseniz, kullanmak istediğiniz dns sunucusunu (belirli bir nic üzerinde belirtilmiş olan) hangi pencereyi işaret etmek için grafiksel bir şekilde kullanabilirsiniz.

Böylece, Ağ ve paylaşım merkezi -> Bağdaştırıcı ayarlarını değiştir -> Gelişmiş -> Gelişmiş ayarlar -> seçeneğine girersiniz ve KULLANIMI kullanmak istediğiniz DNS ile tetiği yükseltirsiniz. (YUKARI yukarı kaldırmanız gerekir).

Bununla birlikte, örneğin, Shrew vpn istemcisini kullanırsanız, hiçbir nics sahibi olmayacaksınız.

Ne yaparsın.

Kayıt defterini aç.

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

Ve 0000, 0001 gibi alt klasörlere bakarsınız.

DriverDesc = Shrew Soft Virtual Adapter

ince. Sonra panoya kopyalayın

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

Şimdi sen git

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

ve sen aç key = Bind. Listeyi böyle göreceksin

\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}

Tek yapman gereken üste koymak

\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}

Bu kadar. Yeniden başlatmaya gerek yok.

Artık vpn bağlantısını kullandığınızda pencereleriniz vpn nic kodunda belirtilen DNS'yi kullanacak.


0

Bu size veya başkalarına yardımcı olabileceğinden, dns kullanımını daha öngörülebilir hale getirmek için listelenen dns'lerin pencerelerinin yuvarlak-robin kullanımını devre dışı bırakabilirsiniz. Dns yuvarlak döngüsünü devre dışı bırakmak için ( referans ) RoundRobin=0içinde ayarlamayı deneyin .HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters

Sunucuları döndürmek için bir "zaman aşımı" da vardır, ayrıca sıfıra ayarlamayı deneyebilirsiniz :

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

Bahsedilen "referans" (link) 'a göre bu, DNS sunucusunu, sorgulanandan sorguya döndürülen sıralama düzeninde bazı sorgulanan FQDN için birden fazla IP adresi sağlayarak yapılandırmak için geçerlidir. Bunun bir DNS çözücüsünün (istemcinin) sorgulanacak DNS sunucusunu nasıl seçtiği sorusu ile ilgisi yoktur.
Thomas Urban,

-13

Rastgele karar vermiyor. DNS sunucusu olan bir şirketten IP alan bir yönlendiriciye bağlısınız. IP'yi manuel olarak başka bir DNS ile değiştirmeden isteğinizi alırlar, örneğin: OpenDns . Belki de kendi DNS sunucularınıza sahip olmaya karar verdiniz. Bu da işe yarıyor. Sadece IP adreslerini ağ merkezine girin ve her şey yolunda olmalı. Ve evet, bunları manuel olarak ayarlamanız gerekecek.

Ayrıca C:\Windows\System32, uzantısı olmayan "ana bilgisayar" adlı bir dosyayı da ayarlayabilirsiniz . Standart DNS’ye gönderilmek yerine URL isteklerinin yönlendirilmesini sağlar. Yerel bir sunucuya (80 numaralı bağlantı noktasını çalıştırıyor ve dinliyor olmalı)


18
Burada söylediğim Temelde her şey yanlış
MDMarra

3
Ve ana bilgisayar dosyası olan festering suistimalinden bahsetmek için bile ek bir -1.
Maximus Minimus,

Bilgilendirici olmanın yolu MarkM
KdgDev

4
@WebDevHobo - Bir yorumda düzeltilecek çok şey var, ancak büyük noktalara değineceğim. 1) OP'nin çoklu arayüzlü (büyük olasılıkla ayrı NIC'ler) olan bir bilgisayarı var ve her birinde tanımlanmış farklı bir DNS var. Soru bağlamında, açıkça birkaç dahili DNS sunucusu çalıştırıyor veya birkaç tane tercih edilen harici DNS sunucusuna sahip - kutu muhtemelen birden fazla ana bilgisayara bağlı. 2) DHCP kullanıyorsanız, DHCP sunucusunun konfigürasyonunda bu adres havuzu için bir iç DNS sunucusu adresi manuel olarak ayarlamanıza gerek yoktur. 3)
Anasistem

3
Ve HOSTS dosyası bu durumda kullanılmamalı veya yerel olarak geliştirme yapmadan ve HOST başlıkları veya benzer bir şey kullanmadan ve yerel olarak çözmek için bir FQDN'ye ihtiyaç duymadan pratikte kullanılmamalıdır. Sunucunun, ad çözümlemesi için HOSTS dosyasını ya da bir DNS sunucusunu kullanması durumunda, bağlantı noktası 80'i çalıştırması gerekmez. Basitçe ekleyin: port_number URL'nin sonuna. HOSTS portu umursamıyor, tıpkı DNS'in yapamadığı gibi - bir ana bilgisayar adını bir IP adresine çevirme yöntemi ve daha fazlası değil.
MDMarra
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.