PowerShell ile Windows VPN bağdaştırıcısında DNS ayarlama ve ardından doğrulama
Windows, tünelin DNS'ini VPN profiline değil bağdaştırıcıya bağlar. Bağlandıktan sonra PowerShell'de ayarlayın, ardından yeniden bağlanmanın bunu koruyup korumadığını test edin.
Bir Windows VPN bağlantısı, Ayarlar'da düzenlediğiniz profilde DNS sunucularını saklamaz. Tünel açıldığında istemci IP yapılandırmasını ağ geçidiyle müzakere eder, ağ geçidi bir çözümleyici listesi gönderir ve Windows bunu tünel bağdaştırıcısına uygular. Bu bağdaştırıcı, Wi-Fi veya Ethernet'inizden ayrı bir arabirimdir ve liste arabirime aittir, profile değil. Değerin hangi nesneye ait olduğunu bildiğinizde, PowerShell'de onu geçersiz kılmak tek bir komuttur; geçersiz kılmanın yeniden bağlanmadan sağ çıkmasını sağlamak ise karar gerektiren kısımdır.
Adresi hangi nesne tutar
RAS, tünel bağdaştırıcısını bağlantı başarılı olduğunda oluşturur ve bağlantı kesildiğinde kaldırır. ipconfig /all çıktısında gördüğünüz DNS sunucuları o yapılandırma alışverişi sırasında, IPv4 ve IPv6 adreslerinin ve yolların yanında gelir. Değer arabirime bağlı olduğundan, Set-DnsClientServerAddress yalnızca bağlantı var olduğu sürece var olan bir şeye yazar.
Bu tek gerçek, VPN DNS'i etrafındaki karışıklığın çoğunu açıklar. Bir profil bağlantı yokken incelenebilir, ancak işaret edilecek bir arabirim yoktur, bu nedenle cmdlet'i VPN diğer adına karşı çağıran bir oturum açma betiği, kimse bağlanmadan başarısız olur. Ayrıca geri alınmış gibi görünen bir değişikliği de açıklar: hiçbir şey geri alınmadı, arabirim yok edildi ve ağ geçidinin gönderdiği değerlerle yeniden oluşturuldu.
DNS'e dokunmadan önce diğer adı bulun
Profil adı ve arabirim diğer adı genellikle aynı dizedir, ancak aynı nesne değildir. Get-VpnConnection profilleri listeler; Get-NetAdapter Windows'un gerçekten sahip olduğu arabirimleri listeler. DNS cmdlet'leri ikincisini ister ve bu ikisi insanların beklediğinden daha sık ayrışır, özellikle istemci bağdaştırıcı adına "(RAS)" gibi bir tanımlayıcı eklediğinde.
Profil yoksa PowerShell yerel bir giriş oluşturabilir. Tünel türü ve kimlik doğrulama, ağ geçidinin sunduğuyla eşleşmelidir, çünkü uyumsuzluk oluşturma anında değil bağlanma anında ortaya çıkar:
Add-VpnConnection -Name "Corporate" -ServerAddress vpn.example.net `
-TunnelType Ikev2 -EncryptionLevel Required `
-AuthenticationMethod Eap -AllUserConnection
Bir kez bağlanın, ardından herhangi bir DNS komutu yazmadan önce gerçek diğer adı okuyun:
rasdial.exe "Corporate"
Get-NetAdapter | Where-Object InterfaceDescription -like "*VPN*"
Get-DnsClientServerAddress -InterfaceAlias "Corporate"
Geçersiz kılmayı doğru sırayla uygulayın
Sıra, sözdiziminden daha önemlidir. Bağdaştırıcı açık olmalı, diğer ad çözümlenmeli ve hesabın arabirim ayarlarını değiştirme izni olmalıdır. Kullanıcı başına bağlantı genellikle oturum açmış kullanıcıdan gelen değişikliği kabul eder; -AllUserConnection ile oluşturulan tüm kullanıcılar bağlantısı genellikle yükseltilmiş bir kabuk gerektirir.
Cmdlet'in kendisi tek satırdır ve Microsoft'un Set-DnsClientServerAddress başvurusunda belgelenmiştir:
Set-DnsClientServerAddress -InterfaceAlias "Corporate" -ServerAddresses 10.20.0.53,10.20.0.54
Get-DnsClientServerAddress -InterfaceAlias "Corporate" -AddressFamily IPv4
İki arıza biçimini bir bakışta tanımakta yarar var. Yanlış diğer ad, cmdlet'ten bir hata üretir ve bu iyi sonuçtur, çünkü sessizlik daha kötü olurdu. Görünür etkisi olmayan doğru bir cmdlet genellikle yanlış bağdaştırıcıya baktığınız anlamına gelir: başka bir istemciden kalmış bir tünel bağdaştırıcısı, benzer açıklamaya sahip fiziksel bir ağ kartı veya korumalı alandaki bir ağ aracının oluşturduğu ikinci bir sanal bağdaştırıcı.
Yeniden bağlanma değişikliği neden geri alabilir
Geçersiz kılma tek bir arabirim örneğine aittir. İstemci bağdaştırıcıyı söküp bir sonraki bağlantıda yeniden oluşturduğunda, gönderilen değerler yeniden uygulanır ve listeniz kaybolur. Bazı istemciler arabirimi her bağlantıda yeniden oluşturur; diğerleri oturum boyunca yeniden kullanır. Get-NetAdapter içindeki arabirim dizinini iki bağlantı arasında karşılaştırın, hangi davranışa sahip olduğunuzu bilirsiniz.
Üç kalıcı yanıt vardır ve bunları üst üste yığmak kendi hatalarını doğurur. Bağlantıya özgü bir DNS soneki artı bir NRPT kuralı, yalnızca iç ad alanını iç çözümleyiciye gönderir ve genel adları rahat bırakır. VPN bağlantısına uygulanan bir Grup İlkesi veya MDM ayarı, hiçbir betik olmadan DNS'i bağlanma anında ayarlar. Bağlantı olayına tepki verip cmdlet'i yeniden çalıştıran zamanlanmış bir görev kaba seçenektir, ama çalışır ve bir günlük bırakır. DNS için tek bir sahip seçin ve hangisi olduğunu yazın.
Tek etiketli iç adların ayrıca bir sonek arama listesine ihtiyacı vardır. Set-DnsClientGlobalSetting -SuffixSearchList makine genelindedir, bu nedenle makinedeki her bağdaştırıcı için, Ethernet dahil, çözümlemeyi değiştirir. Bir imaja girmeden önce laboratuvar makinesinde test edin.
Yalnızca ayarı değil çözümlemeyi de doğrulayın
Bir bağdaştırıcıda listelenen çözümleyici yalnızca bir değerin yazıldığını kanıtlar. Amaçlanan sunucuya doğrudan sorun, ardından normal yoldan sorun:
Resolve-DnsName server01.corp.example -Server 10.20.0.53
Resolve-DnsName server01.corp.example
Ayrım, arızanın nerede olduğunu söyler. Doğrudan sorgu yanıt verir ve normal sorgu başarısız olur: bağdaştırıcı ayarı veya sonek listesi yürürlükte değildir. İkisi de başarısız olur: çözümleyiciye tünelden ulaşılamıyor, bu yüzden DNS'e tekrar dokunmadan önce yollara ve güvenlik duvarı kurallarına bakın. Doğrudan sorgu başarısızken normal sorgu başka bir yerden yanıt verir: bölünmüş DNS yanlış yapılandırılmıştır ve bir iç adı genel bir çözümleyici yanıtlıyordur, bu da bağlantı sorunundan önce bir ilke sorunudur.
Testi iki kez çalıştırın; biri bağlandıktan hemen sonra, diğeri bağlantıyı kesip yeniden bağlandıktan sonra ve iki çalıştırmadaki Get-DnsClientServerAddress çıktısını karşılaştırın. Gönderilen değer ikinci bağlantıda geri döndüyse, geçersiz kılma bağdaştırıcıyla birlikte yaşayıp öldü ve yalnızca önceki bölümdeki NRPT veya ilke yolu dayanacaktır. Her iki dökümü ve bağlantı zaman damgalarını saklayın; kalıp kalmadığı sorusunu bir tur daha düzenlemeden daha hızlı çözerler.