PowerShell аркылуу Windows VPN адаптеринде DNS орнотуп, анан текшериңиз
Windows туннелдин DNS'ин профилге эмес, адаптерге байланыштырат. Туташкандан кийин аны PowerShell'де орнотуп, кайра туташуу аны сактайбы, ошону текшериңиз.
Windows VPN туташуусу DNS серверлерин Семеөлөрдө оңдогон профилде сактабайт. Туннель көтөрүлгөндө кардар шлюз менен IP конфигурациясын сүйлөшөт, шлюз чечүүчүлөрдүн тизмесин жиберет, ал эми Windows аны туннелдин адаптерине колдонот. Бул адаптер Wi-Fi же Ethernet'ден өзүнчө интерфейс, ал эми тизме интерфейске таандык, профилге эмес. Маанини кайсы объект кармап турганын билгенден кийин, аны PowerShell'де кайра жазуу бир буйрук; кайра жазуды кайра туташуудан өткөрүү — чечим талап кылган бөлүк.
Даректи кайсы объект кармайт
RAS туннелдин адаптерин туташуу ийгиликтүү болгондо түзөт жана туташуу үзүлгөндө жок кылат. ipconfig /all ичинде көргөн DNS серверлер ошол конфигурация алмашуу учурунда, IPv4 жана IPv6 даректери менен маршруттардын жанында келет. Маани интерфейске байлангандыктан, Set-DnsClientServerAddress туташуу бар болгончо гана бар нерсеге жазат.
Ушул бир факт VPN DNS'инин айланасындагы баш аламандыктын көбүн түшүндүрөт. Профилди ажыратылган абалда да караса болот, бирок көрсөтө турган интерфейс жок, ошондуктан cmdlet'ти VPN'дин псевдонимине чакырган кирүү скрипти бирөө туташканга чейин эле ийгиликсиз болот. Ал ошондой эле артка кайткандай көрүнгөн өзгөрүүнү түшүндүрөт: эч нерсе кайткан жок, интерфейс жок кылынып, шлюз жиберген маанилер менен кайра курулду.
DNS'ке тийүүдөн мурун псевдонимди табыңыз
Профилдин аты жана интерфейстин псевдоними адатта бир сап, бирок алар бир объект эмес. Get-VpnConnection профилдерди тизмелейт; Get-NetAdapter Windows чындап ээ болгон интерфейстерди тизмелейт. DNS cmdlet'тери экинчисин каалайт, жана бул экөө адамдар күткөндөн көп жолу ажырайт, өзгөчө кардар адаптердин атына "(RAS)" сыяктуу сүрөттөмө кошкондо.
Эгер профил жок болсо, PowerShell жергиликтүү жазуу түзө алат. Туннелдин түрү жана аутентификация шлюз сунуш кылганга дал келиши керек, анткени дал келбестик түзүү убагында эмес, туташуу убагында чыгат:
Add-VpnConnection -Name "Corporate" -ServerAddress vpn.example.net `
-TunnelType Ikev2 -EncryptionLevel Required `
-AuthenticationMethod Eap -AllUserConnection
Бир жолу туташып, анан кандайдыр бир DNS буйругун жазганга чейин чыныгы псевдонимди окуңуз:
rasdial.exe "Corporate"
Get-NetAdapter | Where-Object InterfaceDescription -like "*VPN*"
Get-DnsClientServerAddress -InterfaceAlias "Corporate"
Кайра жазуды туура тартипте колдонуңуз
Тартип синтаксистен маанилүү. Адаптер көтөрүлгөн болушу, псевдоним чечилиши жана аккаунт интерфейс жөндөөлөрүн өзгөртүүгө уруксат алышы керек. Ар бир колдонуучуга арналган туташуу адатта кирген колдонуучунун өзгөрүүсүн кабыл алат; -AllUserConnection менен түзүлгөн бардык колдонуучулардын туташуусу адатта көтөрүлгөн shell талап кылат.
cmdlet'тин өзү бир сап, Microsoft'тун Set-DnsClientServerAddress маалымдамасында документтелген:
Set-DnsClientServerAddress -InterfaceAlias "Corporate" -ServerAddresses 10.20.0.53,10.20.0.54
Get-DnsClientServerAddress -InterfaceAlias "Corporate" -AddressFamily IPv4
Ийгиликсиздиктин эки түрүн бир караштан эле тааныса болот. Туура эмес псевдоним cmdlet'тен ката чыгарат, жана бул жакшы жыйынтык, анткени унчукпоо андан жаман болмок. Туура cmdlet көрүнө турган таасирсиз калса, адатта туура эмес адаптерди карап жатканыңызды билдирет: башка кардардан калган туннелдин адаптерин, сүрөттөмөсү окшош физикалык тармак картасын же обочолонгон чөйрөдөгү тармак куралы түзгөн экинчи виртуалдык адаптерди.
Эмне үчүн кайра туташуу өзгөрүүнү жокко чыгары мүмкүн
Кайра жазуу интерфейстин бир нускасына таандык. Кардар адаптерди бузуп, кийинки туташууда кайра тургузганда, жиберилген маанилер кайра колдонулат жана тизмеңиз жоголот. Айрым кардарлар интерфейсти ар бир туташууда кайра түзөт; башкалары аны сессиянын бүт убагында колдонот. Get-NetAdapter ичиндеги интерфейс индексин эки туташуунун ортосунда салыштырыңыз, ошондо кандай жүрүм-турум бар экенин билесиз.
Үч туруктуу жооп бар, аларды биринин үстүнө бирин коюу өзүнүн кемчиликтерин жаратат. Туташууга мүнөздүү DNS уландысы жана NRPT эрежеси ички аттар мейкиндигин гана ички чечүүчүгө жиберет, ал эми ачык аттарды тынч калтырат. VPN туташуусуна колдонулган топтук саясат же MDM жөндөөсү DNS'ти туташуу убагында эч кандай скриптиз орнотот. Туташуу окуясына жооп берип, cmdlet'ти кайра иштетүүчү пландалган тапшырма орой вариант, бирок иштейт жана журнал калтырат. DNS үчүн бир ээсин тандап, кайсы экенин жазып коюңуз.
Бир белгиси бар ички аттарга уланды издөө тизмеси да керек. Set-DnsClientGlobalSetting -SuffixSearchList бүтүндөй машинага тиешелүү, ошондуктан компьютердеги ар бир адаптер үчүн, Ethernet'ти кошкондо, чечүүнү өзгөртөт. Сүрөткө киргизээрден мурун лабораториялык машинада сынап көрүңүз.
Жөндөөнү гана эмес, чечүүнү да текшериңиз
Адаптерде тизилген чечүүчү маани жазылганын гана далилдейт. Максаттуу серверден түз сураңыз, анан кадимки жол менен сураңыз:
Resolve-DnsName server01.corp.example -Server 10.20.0.53
Resolve-DnsName server01.corp.example
Бул бөлүнүү кемчилик кайда экенин айтат. Түз суроо жооп берет, кадимки суроо ийгиликсиз болот: адаптердин жөндөөсү же уланды тизмеси күчүндө эмес. Экөө тең ийгиликсиз: чечүүчүгө туннель аркылуу жетүү мүмкүн эмес, ошондуктан DNS'ке кайра тийүүдөн мурун маршруттарды жана коргоо дубалынын эрежелерин караңыз. Түз суроо ийгиликсиз болуп, кадимки суроо башка жерден жооп берсе: бөлүнгөн DNS туура эмес конфигурацияланган жана ички атка ачык чечүүчү жооп берип жатат, бул туташуу маселесинен мурун саясат маселеси.
Тестти эки жолу иштетиңиз, бирин туташкандан кийин дароо, экинчисин ажыратып кайра туташкандан кийин, жана эки иштетүүнүн Get-DnsClientServerAddress чыгышын салыштырыңыз. Эгер жиберилген маани экинчи туташууда кайтадан пайда болсо, кайра жазуу адаптер менен бирге жашап, бирге өлдү, жана мурунку бөлүмдөгү NRPT же саясат маршруту гана туруштук берет. Эки жазууну жана туташуу убакыт белгилерин сактаңыз; алар сакталабы деген суроону дагы бир оңдоо айлампасынан тезирээк чечет.