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 లేదా విధాన మార్గం మాత్రమే నిలుస్తుంది. రెండు ట్రాన్స్క్రిప్ట్లను, కనెక్షన్ సమయ ముద్రలను ఉంచుకోండి; నిలుస్తుందా అనే ప్రశ్నను మరో రౌండ్ సవరణల కంటే వేగంగా అవి తీరుస్తాయి.