Tetapkan DNS pada penyesuai VPN Windows dengan PowerShell, kemudian sahkan
Windows melampirkan DNS terowong pada penyesuai, bukan pada profil VPN. Tetapkan selepas bersambung dalam PowerShell, kemudian uji sama ada sambungan semula mengekalkannya.
Sambungan VPN Windows tidak menyimpan pelayan DNS dalam profil yang anda edit dalam Tetapan. Apabila terowong timbul, klien berunding konfigurasi IP dengan gerbang, gerbang menghantar senarai penyelesai, dan Windows menggunakannya pada penyesuai terowong. Penyesuai itu ialah antara muka berasingan daripada Wi-Fi atau Ethernet anda, dan senarai itu milik antara muka, bukan milik profil. Setelah anda tahu objek mana yang memiliki nilai itu, menimpanya dalam PowerShell ialah satu arahan; menjadikan penimpaan bertahan melalui sambungan semula ialah bahagian yang memerlukan keputusan.
Objek mana yang memiliki alamat itu
RAS mencipta penyesuai terowong apabila sambungan berjaya dan mengalih keluarnya apabila sambungan terputus. Pelayan DNS yang anda lihat dalam ipconfig /all tiba semasa pertukaran konfigurasi itu, bersebelahan alamat IPv4 dan IPv6 serta laluan. Oleh sebab nilai itu terikat pada antara muka, Set-DnsClientServerAddress menulis ke sesuatu yang wujud hanya selagi sambungan wujud.
Satu fakta itu menjelaskan sebahagian besar kekeliruan sekitar DNS VPN. Profil boleh diperiksa semasa terputus, tetapi tiada antara muka untuk dituju, jadi skrip log masuk yang memanggil cmdlet terhadap alias VPN gagal sebelum sesiapa bersambung. Ia juga menjelaskan perubahan yang kelihatan berbalik: tiada apa yang berbalik, antara muka itu dimusnahkan dan dibina semula dengan nilai yang dihantar oleh gerbang.
Cari alias sebelum menyentuh DNS
Nama profil dan alias antara muka biasanya rentetan yang sama, tetapi ia bukan objek yang sama. Get-VpnConnection menyenaraikan profil; Get-NetAdapter menyenaraikan antara muka yang benar-benar ada pada Windows. Cmdlet DNS mahukan yang kedua, dan kedua-duanya lebih kerap berbeza daripada yang dijangka orang, terutamanya apabila klien menambah penerang seperti "(RAS)" pada nama penyesuai.
Jika profil tidak wujud, PowerShell boleh mencipta entri asli. Jenis terowong dan pengesahan mesti sepadan dengan apa yang ditawarkan gerbang, kerana ketidakpadanan muncul semasa bersambung dan bukan semasa mencipta:
Add-VpnConnection -Name "Corporate" -ServerAddress vpn.example.net `
-TunnelType Ikev2 -EncryptionLevel Required `
-AuthenticationMethod Eap -AllUserConnection
Bersambung sekali, kemudian baca alias sebenar sebelum menulis sebarang arahan DNS:
rasdial.exe "Corporate"
Get-NetAdapter | Where-Object InterfaceDescription -like "*VPN*"
Get-DnsClientServerAddress -InterfaceAlias "Corporate"
Gunakan penimpaan dalam urutan yang betul
Urutan lebih penting daripada sintaks. Penyesuai mesti naik, alias mesti diselesaikan, dan akaun mesti dibenarkan mengubah tetapan antara muka. Sambungan setiap pengguna biasanya menerima perubahan daripada pengguna yang log masuk; sambungan semua pengguna yang dicipta dengan -AllUserConnection umumnya memerlukan shell yang dinaikkan.
Cmdlet itu sendiri ialah satu baris, didokumenkan dalam rujukan Set-DnsClientServerAddress Microsoft:
Set-DnsClientServerAddress -InterfaceAlias "Corporate" -ServerAddresses 10.20.0.53,10.20.0.54
Get-DnsClientServerAddress -InterfaceAlias "Corporate" -AddressFamily IPv4
Dua mod kegagalan patut dikenali secara visual. Alias yang salah menghasilkan ralat daripada cmdlet, dan itu hasil yang baik, kerana senyap akan lebih teruk. Cmdlet yang betul tanpa kesan kelihatan biasanya bermaksud anda melihat penyesuai yang salah: penyesuai terowong tinggalan daripada klien lain, kad rangkaian fizikal dengan penerangan serupa, atau penyesuai maya kedua yang dicipta oleh alat rangkaian sandbox.
Mengapa sambungan semula boleh membatalkan perubahan
Penimpaan itu milik satu instans antara muka. Apabila klien merobohkan penyesuai dan membinanya semula pada sambungan seterusnya, nilai yang dihantar digunakan semula dan senarai anda hilang. Sesetengah klien mencipta semula antara muka pada setiap sambungan; yang lain menggunakannya sepanjang hayat sesi. Bandingkan indeks antara muka dalam Get-NetAdapter merentas dua sambungan dan anda akan tahu tingkah laku mana yang anda ada.
Terdapat tiga jawapan tahan lama, dan menyusunnya mencipta pepijat tersendiri. Akhiran DNS khusus sambungan ditambah peraturan NRPT hanya menghantar ruang nama dalaman kepada penyelesai dalaman dan membiarkan nama awam. Tetapan Dasar Kumpulan atau MDM yang digunakan pada sambungan VPN menetapkan DNS semasa bersambung tanpa sebarang skrip. Tugas berjadual yang bertindak balas terhadap peristiwa sambungan dan menjalankan semula cmdlet ialah pilihan kasar, tetapi ia berfungsi dan meninggalkan log. Pilih satu pemilik untuk DNS dan tuliskan yang mana.
Nama dalaman label tunggal juga memerlukan senarai carian akhiran. Set-DnsClientGlobalSetting -SuffixSearchList terpakai untuk seluruh mesin, jadi ia mengubah penyelesaian untuk setiap penyesuai pada mesin itu, termasuk Ethernet. Uji pada mesin makmal sebelum ia masuk ke dalam imej.
Sahkan penyelesaian, bukan hanya tetapan
Penyelesai yang tersenarai pada penyesuai hanya membuktikan bahawa nilai telah ditulis. Tanya pelayan yang dimaksudkan secara langsung, kemudian tanya melalui laluan biasa:
Resolve-DnsName server01.corp.example -Server 10.20.0.53
Resolve-DnsName server01.corp.example
Pemisahan itu memberitahu anda di mana kerosakannya. Pertanyaan langsung menjawab dan pertanyaan biasa gagal: tetapan penyesuai atau senarai akhiran tidak berkuat kuasa. Kedua-duanya gagal: penyelesai tidak dapat dicapai melalui terowong, jadi lihat laluan dan peraturan tembok api sebelum menyentuh DNS lagi. Pertanyaan langsung gagal sementara pertanyaan biasa menjawab dari tempat lain: DNS berpecah salah dikonfigurasikan dan nama dalaman dijawab oleh penyelesai awam, yang merupakan masalah dasar sebelum menjadi masalah kesambungan.
Jalankan ujian dua kali, sekali sejurus selepas bersambung dan sekali selepas terputus dan bersambung semula, dan bandingkan keluaran Get-DnsClientServerAddress daripada kedua-dua larian. Jika nilai yang dihantar kembali pada sambungan kedua, penimpaan itu hidup dan mati bersama penyesuai, dan hanya laluan NRPT atau dasar daripada bahagian sebelumnya akan bertahan. Simpan kedua-dua transkrip dan cap masa sambungan; ia menyelesaikan soalan sama ada ia kekal lebih cepat daripada satu lagi pusingan suntingan.