Bir bağdaştırıcıdaki iki DNS sunucusu ad alanlarını bölmez
Bir bağdaştırıcıda iki çözümleyici listelemek her etki alanına kendi yetkisini vermez. Kapsamlı iki kural oluşturun, seçimi test edin ve tam olarak bunları kaldırın.
Bir bağdaştırıcıda iki çözümleyici listelemek, bir etki alanını bir sunucuya ve başka bir etki alanını diğerine göndermenin bir yolu gibi görünür ve çözümleyici listesindeki hiçbir şey böyle çalışmaz. Windows ada göre çözümler ve hangi sunucuya sorulacağı kararı sıralı bir adres listesinden değil, ilke nesnelerinden gelir. Değiştirilmesi gereken zihinsel model kuyruktur: A etki alanı için birinci sunucu ve B etki alanı için ikinci sunucu diye bir şey yoktur. Sunucuları açıkça adlandıran, her ad alanına özgü bir kural kümesi vardır ve bu kurallar var olduğunda bağdaştırıcı listesi ilginç olmaktan çıkar.
Mit: iki adres iki etki alanını böler
Bu inanç, bir sunucu her şeye yanıt verdiğinde ve ikincisi yalnızca yedek olduğunda tesadüfen işe yaradığı için sürer. İstemci birinci sunucuya sorar, o sunucu iletir ya da özyineleme yapar ve yanıt gelir; kimse bölgeyi gerçekte hangi çözümleyicinin tuttuğunu fark etmez. Yanılsama, iki ad alanı aralarında iletme olmaksızın ayrı özel bölgelerde yaşamaya başladığı anda kırılır, çünkü birinci sunucu o zaman adın var olmadığını yetkili biçimde yanıtlar. Birinci sunucunun olumsuz yanıtı yedeği tetiklemez, çünkü istemci hata değil kesin bir yanıt almıştır.
Sıralı bir listenin etki alanı kavramı yoktur, bu yüzden niyeti ifade edemez. Listenin gerçekte denetlediği şey hangi sunucuya önce sorulacağı ve hangisinin ikinci olarak deneneceğidir ve bu iki yanıt her ada eşit biçimde uygulanır.
Windows seçmek için gerçekte ne kullanır
Ad Çözümleme İlkesi Tablosu bir adı yapılandırılmış ad alanlarıyla eşleştirir ve o eşleşme için sunucuları ve seçenekleri seçer. Kurallar yerel olarak yapılandırılabilir, Grup İlkesi ile dağıtılabilir veya bir VPN profiliyle sağlanabilir ve etkin ilke tek bir liste değil bir bileşimdir. Bu nedenle ilk tanılama her zaman etkin durumdur: yerel olarak oluşturulan bir kural yönetilen bir ilkeye yenilirse, yapılandırmasının ima ettiğinden tamamen farklı davranan bir laboratuvar ortaya çıkar. Kurallar ayrıca belirginliğe göre eşleştirilir, bu yüzden geniş bir ad alanı girdisi dar bir girdiyi yapılandırılmış öğeler listesinde görünmeyen biçimlerde gölgeleyebilir. Etkin sırayı okumak hangi kuralın kazandığını görmenin tek yoludur.
Get-DnsClientNrptRule
Get-DnsClientNrptPolicy -Effective
İlk komut makinede neyin yapılandırıldığını listeler; ikincisi istemcinin gerçekte neyi uygulayacağını, başka yerden gelen girdiler dahil gösterir. Etkin çıktı yönetilen ad alanları içeriyorsa, değişiklik istemek için doğru yer o ilkenin sahibidir, yerel kural listesi değil. İki komut da yalnızca durumu okur, bu nedenle kimse değişikliği kabul etmeden önce onları çalıştırmanın maliyeti yoktur.
Her ad alanı için bir kural, nesneyi saklayın
Etkin durum anlaşıldıktan sonra her ad alanı için bir kural oluşturun ve her komutun döndürdüğü nesneyi saklayın. Görünen adlar insanlar için etiketlerdir ve döndürülen nesnedeki benzersiz tanımlayıcı sonrasında güvenilir silme hedefidir. İki tanımlayıcıyı da ad alanlarını ve çözümleyicileri kaydeden aynı değişiklik notuna yazın, çünkü onları oluşturan oturum temizleyen oturum olmayacaktır.
$svcRule = Add-DnsClientNrptRule -Namespace ".svc.internal.example" -NameServers "10.60.0.53" -DisplayName "VPN lab services" -PassThru
$resRule = Add-DnsClientNrptRule -Namespace ".research.internal.example" -NameServers "10.61.0.53" -DisplayName "VPN lab research" -PassThru
$svcRule | Select-Object Name, Namespace, NameServers
$resRule | Select-Object Name, Namespace, NameServers
Baştaki nokta bir sonek eşleşmesi belirtir, bu yüzden kural app.svc.internal.example ve altındaki her şeyi kapsar. Buradaki iki adres bu laboratuvarın kendi yönlendirme planına aittir; bir kural bölge oluşturmaz, yol kurmaz ve sonunda bağlanan uygulamaya yetki vermez, ve Add-DnsClientNrptRule başvurusu hangi parametrenin ne yaptığını tam olarak belgeler.
Bu komutların ne yapmadığına dikkat edin: bunlar makinenin tamamı için geçerlidir, bir VPN oturumuyla sınırlı değildir, ve pencere kapandıktan sonra da kalır. Bunu unutan bir laboratuvar tünel gittikten sonra geride ilke bırakır.
İstemcinin sunucuyu seçtiğini kanıtlayın
Belirli bir sunucuya bir adı bilip bilmediğini sormak o sunucunun yanıt verebildiğini kanıtlar, bu da istemcinin o sunucuyu seçtiği iddiasıyla aynı şey değildir. Önemli olan test, gerçek bir adı istemcinin olağan yolundan çözer ve ardından hangi çözümleyicinin onunla ilgilendiğini doğrular, tercihen yolu sağlayan tünel açıkken. Tünel kapalıysa, doğru kapsamlandırılmış bir kural yine de erişilemeyen bir sunucuya işaret eder ve bu ilke değil yönlendirme sorunudur. Daha sonra ayırt edilebilmeleri için iki durumu da test edin.
Resolve-DnsName app.svc.internal.example
Resolve-DnsName build.research.internal.example
Resolve-DnsName app.svc.internal.example -DnsOnly -NoHostsFile
Kurallar var olmadan önceki dönemin önbelleğe alınmış yanıtlarına ve sistem çözümleyicisini kendi şifreli DNS'leriyle tamamen atlayan uygulamalara dikkat edin. Arama sonekleri bir başka ayrı özelliktir: bir kural tam bir ad için çözümleyici seçebilir, ancak Windows'a çıplak ana bilgisayar adını o ad alanına genişletmeyi öğretmez.
Oluşturduğunuzu tam olarak kaldırın
Temizlik, bir laboratuvarın uyarıcı bir hikâyeye dönüştüğü yerdir. Makinedeki her kuralı silmek hızlıdır ve başka birinin bağımlı olduğu ilkeyi kaldırır, bu nedenle kurallar oluşturulurken yakalanan tanımlayıcıları kullanın ve ardından makinenin başladığı yere döndüğünü doğrulamak için etkin durumu yeniden okuyun. Onları oluşturan oturum yoksa, değişiklik notu tanımlayıcıların var olduğu tek yerdir. Bu yüzden ilk komut çalışmadan önce yazılırlar, sonra değil.
Remove-DnsClientNrptRule -Name $svcRule.Name -Force
Remove-DnsClientNrptRule -Name $resRule.Name -Force
Get-DnsClientNrptPolicy -Effective
Bir laboratuvar değil dağıtım için, yaşam süresi sorusu kural kadar önemlidir. Bir VPN profili ad alanı kurallarını taşıyabilir ve bağlantıdan sonra kalıp kalmayacaklarını seçebilir; çözümleyici erişilemezken kalan bir kural istemcilerin ölü bir sunucuyu tercih etmesine yol açar ve bağlantıyla sınırlı bir kural tünel gittiğinde kaybolur. Hizmetin bu davranışlardan hangisine ihtiyacı olduğuna karar verin, kuralın kime ait olduğunu işaretleyin ve yetki bölünmesini birinin laboratuvar anısında değil, profilin yanında belgelenmiş bırakın.