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 അല്ലെങ്കിൽ നയ പാത മാത്രം നിലനിൽക്കും. രണ്ട് ട്രാൻസ്ക്രിപ്റ്റുകളും കണക്ഷൻ സമയമുദ്രകളും സൂക്ഷിക്കുക; മറ്റൊരു റൗണ്ട് തിരുത്തലുകളേക്കാൾ വേഗത്തിൽ അവ നിലനിൽക്കുന്നുവോ എന്ന ചോദ്യം തീർപ്പാക്കുന്നു.