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-ийн эргэн тойрны ихэнх зөрчилдөөнийг тайлбарладаг. Профайлыг холболтгүй үед ч шалгаж болно, гэхдээ зааж өгөх интерфейс байхгүй тул VPN-ийн өөр нэр рүү cmdlet дууддаг нэвтрэх скрипт хэн нэгэн холбогдохоос өмнө бүтэлгүйтдэг. Энэ нь буцаасан мэт харагдах өөрчлөлтийг ч тайлбарладаг: юу ч буцаагүй, интерфейс устгагдаж, гарцын илгээсэн утгуудаар дахин бүтээгдсэн.
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 эсвэл бодлогын зам л тэсвэрлэнэ. Хоёр бичлэг болон холболтын цагийн тэмдгийг хадгална уу; тэдгээр нь үлдэх эсэх асуултыг дахин нэг засварын шатнаас хурдан шийднэ.