Windows VPN-де қате DNS сервері: метрика, байланысу реті немесе жұрнақ
Windows-тың үш механизмі DNS шешушісін таңдайды және олар әрқалай істен шығады. Атау кеңістігінің ауқымы, жаһандық рет немесе түзетудің қайта қосылудан сақталуы бойынша шешіңіз.
Windows клиентінде жұмыс істеп тұрған туннель болуы, корпоративтік шешушіні алып жүруі мүмкін, бірақ ішкі атауларды үйдегі маршрутизаторға жібере береді. Қай сервер жауап беретінін үш түрлі механизм шешеді және олар әрқалай істен шығады. Үшеуін түзетудің қажеті жоқ: симптом қайсысының ойында екенін айтады. Төмендегі шешім ағашы бірнеше минут алады және әдеттегі нәтиженің алдын алады: метрика өзгерісі, тізілімді қайта реттеу және NRPT ережесі бірге келіп, ешкім қайсысы не істегенін білмейді.
Үш механизм шешеді, әдетте біреуі қате
Интерфейс метрикасы белгілі бір мекенжайлар отбасы үшін адаптерлерді реттейді. Tcpip\Linkage астындағы байланысу реті ескі код жолдары әлі сұрайтын, машина деңгейіндегі интерфейс идентификаторларының тізімі. Атауды шешу саясаты кестесі (NRPT) атау кеңістігін нақты серверлерге байланыстырады, ал жұрнақ тізімі қысқа атау жалпы кеңейтіле ме, жоқ па соны шешеді. Олар тәуелсіз, сондықтан VPN адаптеріндегі дұрыс шешуші басқа жердегі ескірген таңдауға жоғалтады.
| What you see | Mechanism to check | First command |
|---|---|---|
| Every name is slow, public names sometimes wrong | Global adapter order: metric, then Linkage | Get-NetIPInterface |
| Internal names resolve to a public address | The query left through the home resolver, not the tunnel | Resolve-DnsName intranet.corp.example -Type A, then the same query with -Server 10.20.0.10 |
| Only corp.example names fail, public names fine | Namespace binding: NRPT or suffix | Get-DnsClientNrptRule |
| Short name fails, fully qualified name works | Suffix list on the adapter, with the corporate suffix ahead of other entries, or pushed by the server | Get-DnsClientGlobalSetting |
| Works, then breaks after a reconnect | Runtime setting that was never persisted | Get-VpnConnection for the stored profile, then Get-NetIPInterface again after a reconnect |
Бұл механизмдердің ешқайсысы туннельдің арғы жағы емес. VPN итеріп отырған сервер атауды шеше алмаса, клиент жағындағы барлық баптау тек әшекей, сондықтан бірінші шешім — шешушінің өзіне тікелей сұрақ қойғанда жауап бере ала ма.
Бірінші шешім: итерілген шешуші жалпы жауап бере ала ма?
Серверден анық сұраңыз және қарапайым іздеумен салыстырыңыз. Жауаптар арасындағы айырмашылық таңдау мәселесін жету мәселесінен бөледі, және бұл жерде ең жылдам тармақ:
Resolve-DnsName intranet.corp.example -Server 10.20.0.10 -Type A
Resolve-DnsName intranet.corp.example -Type A
Біріншісі сәтті, екіншісі сәтсіз болса, шешуші қолжетімді және Windows нашар таңдайды; төмендегі атау кеңістігі мен рет туралы шешімдерге өтіңіз. Біріншісі де сәтсіз болса, клиентте ештеңе көмектеспейді: UDP мен TCP 53 туннель арқылы серверге жететінін, сервердегі хост қабырғасы пулды тастамайтынын және сервердің өз жіберушілерінің сау екенін тексеріңіз.
Осы тармақта тоқтаңыз. Жете алмайтын шешушіге NRPT ережесін қолдану сол ақауды көбірек қайтарылатын конфигурациямен береді және нақты ақауды беделді көрінетін ереженің артына жасырады.
Екінші шешім: бір атау кеңістігі ме, әлде әр сұрау ма?
Ауқым құралды шешеді. Тек корпоративтік атаулар сәтсіз болса, машинаны қайта реттеудің орнына атау кеңістігін байланыстырыңыз: NRPT ережесі сол жұрнақты туннель шешушісіне жібереді және қалғанын тыныш қалдырады. Әр іздеу зардап шексе, мәселе — жаһандық адаптер таңдауы, ал метрика бастауға тиісті жер, өйткені ол сервер баптауын өзгертпейді.
Метриканы әр мекенжайлар отбасы үшін, екі интерфейсте де орнатыңыз, содан кейін ретті растаңыз:
Get-NetIPInterface | Select-Object ifIndex, InterfaceAlias, AddressFamily, InterfaceMetric
Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 1 -AddressFamily IPv4
Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 1 -AddressFamily IPv6
11-ді жоғарыдағы жолдан туннель адаптерінің ifIndex-імен ауыстырыңыз; егер 11 LAN адаптері болса, сол команда дұрыс емес жолды төмендетеді. Оның орнына LAN адаптерін көтеру екінші жақтан сол ретке жетеді: netsh int ip set interface interface="Ethernet" metric=15, және екінші отбасы үшін netsh int ipv6 set interface interface="Ethernet" metric=15, өйткені int ip тек IPv4-ке тиеді.
Байланысу реті бірінші қадам емес, соңғы шара. HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage құрылғы идентификаторларының Bind тізімін ұстайды, және туннель идентификаторын алға жылжыту шынымен қай адаптер бірінші сұралатынын өзгертеді, бірақ бұл әр атау кеңістігі үшін ауқымы жоқ, машина деңгейіндегі тізілім мәні. Өңдеуден бұрын оны экспорттаңыз, содан кейін туннельді қайта қосыңыз, осылайша рет клиент күтетін күйде қолданылады.
Бір атау кеңістігі үшін тар құралды таңдаңыз:
Add-DnsClientNrptRule -Namespace ".corp.example" -NameServers 10.20.0.10
Get-DnsClientNrptRule | Select-Object Namespace, NameServers
Үшінші шешім: түзету қайта қосылудан кейін де сақтала ма?
Келесі телефон желісі арқылы қайта қосылуға дейін жұмыс істейтін метрика ешқашан сақталмаған. L2TP/IPsec және басқа қосылым профильдері қосылым басталғанда қайта жасалады, сондықтан сақталған мән телефон кітапшасының жазбасында IpInterfaceMetric ретінде өмір сүреді, тек тірі интерфейсте емес. Кейбір орталар бұл өрісті дәл осы себеппен скрипттейді; басқалары таңдауды басқару саясатынан итереді және соңғы нүктені тыныш қалдырады.
Кэш пен тіркеу — бөлек қабат. Туннель көтерілгеннен кейін оларды іске қосу ескірген жазбаларды түзетеді және клиентті қайта тіркейді, бірақ ешқайсысы адаптерді қайта реттемейді:
ipconfig /registerdns
ipconfig /flushdns
Сол қабатта сөндіргіш бар. Физикалық адаптерде динамикалық тіркеуді өшіру клиенттің VPN жағындағы мекенжайын қате атаумен жариялауына жол бермейді, және бұл жоғарыдағы жаңартудан өзгеше жөндеу.
IPv6 шешімде өз жолына лайық. Физикалық адаптерде жаһандық IPv6 мекенжайы болса, ал туннель тек IPv4 тасыса, Windows атауды шешу үшін туннельсіз жолды таңдауы мүмкін. Бұл отбасын бөлек тексеріңіз, өйткені IPv4 үшін қойылған метрика ол туралы ештеңе айтпайды:
Get-NetIPInterface -AddressFamily IPv6 | Select-Object ifIndex, InterfaceAlias, InterfaceMetric
LAN адаптерінде IPv6-ны өшіру сол жолды және онымен бірге хаттаманы жояды; IPv6 интерфейсіндегі метрика өзгерісі немесе корпоративтік атау кеңістігі үшін NRPT ережесі отбасын сақтайды және таңдауды түзетеді. Тар нұсқаны таңдаңыз, егер сол байланыста IPv6 болмауы керек деп шешпесеңіз.
Аталған дереккөзбен тексеріңіз және бір иесін ұстаңыз
Парақша жүктеле ме, жоқ па ғана емес, қай дереккөз күшінде екенін хабарлайтын құралдармен тексеріңіз:
ipconfig /all
Get-DnsClientServerAddress -AddressFamily IPv4
Resolve-DnsName fileserver.corp.example -Server 10.20.0.10 -Type A
Содан кейін сүзуді таңдаудан бөліңіз, өйткені қолданба ішінен олар бірдей көрінеді. OpenVPN-нің block-outside-dns параметрі басқа адаптерлерде 53 портын бөгейді; ол шешуші таңдамайды. Егер қазір әр сұрау сәтсіз болса, сүзгі жалғыз қолжетімді серверді бөгеп жатқан болуы мүмкін; егер конфигурацияланған шешуші еленбесе, рет немесе атау кеңістігі ережесі қате. Екеуін бірге өзгерту бөгелген сұрауды еленбеген сұраудан ажыраталмайды.
DNS саясаты үшін бір иесін ұстаңыз: VPN профилі, басқару саясаты немесе NRPT ережесі, олардың екеуі емес. Жабар алдында:
- Итерілген шешуші анық аталғанда жауап береді, және қарапайым іздеу оны пайдаланады.
- Сіз өзгерткен ереже немесе метрика сұрауларды шынымен таситын мекенжайлар отбасын қамтиды.
- Баптау ажырату мен қайта қосылудан кейін сақталады, немесе сіз оны сақталған профильге көшірдіңіз.
- Дәл бір механизм беделді, ал қалғандары қалай болса солай қалдырылды.
Ретті аяқтайтын нәрсе емес, орта күйі ретінде қарастырыңыз. Қайта қосылғаннан кейін және желілік стекке тиетін Windows жаңартуынан кейін оны қайта тексеріңіз, өйткені екеуінің кез келгені физикалық адаптерді қайтадан алдыға шығаруы мүмкін.