DNS iestatīšana Windows VPN adapterī ar PowerShell un pēc tam pārbaude
Windows piesaista tuneļa DNS adapterim, nevis VPN profilam. Iestatiet to pēc savienojuma PowerShell un pēc tam pārbaudiet, vai atkārtots savienojums to saglabā.
Windows VPN savienojums neglabā DNS serverus profilā, ko rediģējat iestatījumos. Kad tunelis paceļas, klients vienojas par IP konfigurāciju ar vārteju, vārteja nosūta atrisinātāju sarakstu, un Windows to piemēro tuneļa adapterim. Šis adapteris ir atsevišķa saskarne no jūsu Wi-Fi vai Ethernet, un saraksts pieder saskarnei, nevis profilam. Kad zināt, kurš objekts pārvalda vērtību, tās pārrakstīšana PowerShell ir viena komanda; panākt, lai pārrakstīšana pārdzīvotu atkārtotu savienojumu, ir daļa, kurai nepieciešams lēmums.
Kurš objekts pārvalda adresi
RAS izveido tuneļa adapteri, kad savienojums izdodas, un noņem to, kad savienojums pārtrūkst. DNS serveri, ko redzat ipconfig /all izvadē, parādās šīs konfigurācijas apmaiņas laikā, līdzās IPv4 un IPv6 adresēm un maršrutiem. Tā kā vērtība ir piesaistīta saskarnei, Set-DnsClientServerAddress raksta kaut kur, kas pastāv tikai tik ilgi, kamēr pastāv savienojums.
Šis viens fakts izskaidro lielāko daļu neskaidrības ap VPN DNS. Profilu var apskatīt, kamēr esat atvienots, bet nav saskarnes, uz ko norādīt, tāpēc pieteikšanās skripts, kas izsauc cmdlet pret VPN aizstājvārdu, cieš neveiksmi, pirms kāds ir pievienojies. Tas izskaidro arī izmaiņas, kas šķietami atgriežas: nekas neatgriezās, saskarne tika iznīcināta un pārbūvēta ar vērtībām, ko nosūtīja vārteja.
Atrodiet aizstājvārdu pirms DNS aiztikšanas
Profila nosaukums un saskarnes aizstājvārds parasti ir viena un tā pati virkne, bet tie nav viens un tas pats objekts. Get-VpnConnection uzskaita profilus; Get-NetAdapter uzskaita saskarnes, kas Windows patiešām ir. DNS cmdlet vēlas otro, un abi biežāk atšķiras, nekā cilvēki gaida, it īpaši, ja klients adaptera nosaukumam pievieno aprakstu, piemēram, "(RAS)".
Ja profils neeksistē, PowerShell var izveidot vietēju ierakstu. Tuneļa tipam un autentifikācijai jāatbilst tam, ko piedāvā vārteja, jo neatbilstība parādās savienošanas laikā, nevis izveides laikā:
Add-VpnConnection -Name "Corporate" -ServerAddress vpn.example.net `
-TunnelType Ikev2 -EncryptionLevel Required `
-AuthenticationMethod Eap -AllUserConnection
Pievienojieties vienreiz, pēc tam nolasiet īsto aizstājvārdu, pirms rakstāt jebkuru DNS komandu:
rasdial.exe "Corporate"
Get-NetAdapter | Where-Object InterfaceDescription -like "*VPN*"
Get-DnsClientServerAddress -InterfaceAlias "Corporate"
Piemērojiet pārrakstīšanu pareizajā secībā
Secība ir svarīgāka par sintaksi. Adapterim jābūt aktīvam, aizstājvārdam jāatrisinās, un kontam jābūt atļautam mainīt saskarnes iestatījumus. Viena lietotāja savienojums parasti pieņem izmaiņas no pieteikušā lietotāja; visu lietotāju savienojumam, kas izveidots ar -AllUserConnection, parasti nepieciešama paaugstināta čaula.
Pats cmdlet ir viena rinda, dokumentēts Microsoft Set-DnsClientServerAddress atsaucē:
Set-DnsClientServerAddress -InterfaceAlias "Corporate" -ServerAddresses 10.20.0.53,10.20.0.54
Get-DnsClientServerAddress -InterfaceAlias "Corporate" -AddressFamily IPv4
Divi kļūdu veidi ir vērts atpazīt no pirmā acu uzmetiena. Nepareizs aizstājvārds rada cmdlet kļūdu, un tas ir labs iznākums, jo klusums būtu sliktāks. Pareizs cmdlet bez redzamas ietekmes parasti nozīmē, ka skatāties uz nepareizo adapteri: cita klienta atstātu tuneļa adapteri, fizisku tīkla karti ar līdzīgu aprakstu vai otru virtuālo adapteri, ko izveidojis izolētas vides tīkla rīks.
Kāpēc atkārtots savienojums var atcelt izmaiņas
Pārrakstīšana pieder vienai saskarnes instancei. Kad klients nojauc adapteri un pārbūvē to nākamajā savienojumā, nosūtītās vērtības tiek piemērotas vēlreiz, un jūsu saraksts ir pazudis. Daži klienti izveido saskarni no jauna katrā savienojumā; citi to izmanto visu sesijas darbības laiku. Salīdziniet saskarnes indeksu Get-NetAdapter izvadē starp diviem savienojumiem, un jūs zināsiet, kāda uzvedība jums ir.
Ir trīs ilgtspējīgas atbildes, un to sakraušana rada savas kļūdas. Savienojumam raksturīgs DNS sufikss plus NRPT noteikums sūta tikai iekšējo nosaukumvietu iekšējam atrisinātājam un atstāj publiskos nosaukumus mierā. VPN savienojumam piemērots grupas politikas vai MDM iestatījums iestata DNS savienojuma laikā bez jebkāda skripta. Plānots uzdevums, kas reaģē uz savienojuma notikumu un atkārtoti palaiž cmdlet, ir rupjais variants, bet tas darbojas un atstāj žurnālu. Izvēlieties vienu DNS īpašnieku un pierakstiet, kurš tas ir.
Iekšējiem vienas etiķetes nosaukumiem arī nepieciešams sufiksu meklēšanas saraksts. Set-DnsClientGlobalSetting -SuffixSearchList attiecas uz visu mašīnu, tāpēc tas maina atrisināšanu katram datora adapterim, tostarp Ethernet. Pārbaudiet to laboratorijas mašīnā, pirms tas nonāk attēlā.
Pārbaudiet atrisināšanu, ne tikai iestatījumu
Adapterī norādīts atrisinātājs pierāda tikai to, ka vērtība ir ierakstīta. Jautājiet paredzētajam serverim tieši, pēc tam jautājiet parastajā ceļā:
Resolve-DnsName server01.corp.example -Server 10.20.0.53
Resolve-DnsName server01.corp.example
Šķēlums parāda, kur atrodas kļūda. Tiešais vaicājums atbild, bet parastais vaicājums cieš neveiksmi: adaptera iestatījums vai sufiksu saraksts nav spēkā. Abi cieš neveiksmi: atrisinātājs nav sasniedzams caur tuneli, tāpēc pirms DNS aiztikšanas vēlreiz apskatiet maršrutus un ugunsmūra noteikumus. Tiešais vaicājums cieš neveiksmi, kamēr parastais atbild no citurienes: sadalītais DNS ir nepareizi konfigurēts un uz iekšēju nosaukumu atbild publisks atrisinātājs, kas ir politikas problēma pirms savienojamības problēmas.
Palaidiet testu divreiz, vienreiz tūlīt pēc savienojuma un vienreiz pēc atvienošanās un atkārtotas pievienošanās, un salīdziniet Get-DnsClientServerAddress izvadi no abām reizēm. Ja nosūtītā vērtība ir atgriezusies otrajā savienojumā, pārrakstīšana dzīvoja un nomira kopā ar adapteri, un noturēsies tikai iepriekšējā sadaļā aprakstītais NRPT vai politikas maršruts. Saglabājiet abus ierakstus un savienojuma laika zīmogus; tie atbild uz jautājumu, vai tas paliek, ātrāk nekā vēl viens labojumu aplis.