Odjemalec Windows ima lahko delujoč tunel, nosi lahko korporativni razreševalnik in še vedno pošilja notranja imena v domači usmerjevalnik. Kateri strežnik odgovori, odločajo trije različni mehanizmi, in vsak odpove drugače. Ni treba popraviti vseh treh: simptom vam pove, kateri je v igri. Odločitveno drevo spodaj vzame nekaj minut in prepreči običajen izid, ko sprememba metrike, preureditev registra in pravilo NRPT prispejo hkrati in nihče ne ve, katero je kaj naredilo.

Odločajo trije mehanizmi, in običajno je eden napačen

Metrika vmesnika razvrsti vmesnike za določeno družino naslovov. Vrstni red vezave pod Tcpip\Linkage je seznam identifikatorjev vmesnikov za celoten računalnik, ki ga starejše poti kode še vedno pregledujejo. Tabela pravil razreševanja imen (NRPT) veže imenski prostor na določene strežnike, seznam pripon pa odloči, ali se kratko ime sploh razširi. So neodvisni, zato pravilen razreševalnik na vmesniku VPN izgubi proti zastareli nastavitvi drugje.

What you seeMechanism to checkFirst command
Every name is slow, public names sometimes wrongGlobal adapter order: metric, then LinkageGet-NetIPInterface
Internal names resolve to a public addressThe query left through the home resolver, not the tunnelResolve-DnsName intranet.corp.example -Type A, then the same query with -Server 10.20.0.10
Only corp.example names fail, public names fineNamespace binding: NRPT or suffixGet-DnsClientNrptRule
Short name fails, fully qualified name worksSuffix list on the adapter, with the corporate suffix ahead of other entries, or pushed by the serverGet-DnsClientGlobalSetting
Works, then breaks after a reconnectRuntime setting that was never persistedGet-VpnConnection for the stored profile, then Get-NetIPInterface again after a reconnect

Noben od teh mehanizmov ni ona stran tunela. Če strežnik, ki ga VPN potiska, ne more razrešiti imena, je vsaka nastavitev na strani odjemalca le okras, zato je prva odločitev, ali lahko razreševalnik sam odgovori, ko ga vprašate neposredno.

Odločitev ena: ali potisnjeni razreševalnik sploh lahko odgovori?

Vprašajte strežnik izrecno in primerjajte z običajnim iskanjem. Razlika med odgovoroma loči težavo izbire od težave dosegljivosti, in tukaj je najhitrejša razvejitev:

Resolve-DnsName intranet.corp.example -Server 10.20.0.10 -Type A
Resolve-DnsName intranet.corp.example -Type A

Če prvi uspe in drugi ne, je razreševalnik dosegljiv in Windows izbira slabo; pojdite na odločitve o imenskem prostoru in vrstnem redu spodaj. Če tudi prvi ne uspe, na odjemalcu ne bo pomagalo nič: preverite, ali UDP in TCP 53 prideta skozi tunel do strežnika, ali gostiteljska požarna pregrada na strežniku ne zavrže nabora in ali so lastni posredovalniki strežnika zdravi.

Ustavite se na tej razvejitvi. Uporaba pravila NRPT na razreševalniku, do katerega ne morete priti, da isto napako z več konfiguracije za razveljavitev in skrije pravo okvaro za pravilom, ki je videti verodostojno.

Odločitev dve: en imenski prostor ali vsaka poizvedba?

Obseg odloča o orodju. Ko odpovedo le korporativna imena, povežite imenski prostor, namesto da bi preurejali računalnik: pravilo NRPT pošlje to pripono razreševalniku tunela, vse drugo pa pusti pri miru. Ko je prizadeto vsako iskanje, je težava globalna nastavitev vmesnikov, in metrika je mesto za začetek, ker ne spremeni nobene strežniške nastavitve.

Nastavite metriko za vsako družino naslovov, na obeh vmesnikih, in nato potrdite vrstni red:

Get-NetIPInterface | Select-Object ifIndex, InterfaceAlias, AddressFamily, InterfaceMetric
Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 1 -AddressFamily IPv4
Set-NetIPInterface -InterfaceIndex 11 -InterfaceMetric 1 -AddressFamily IPv6

Zamenjajte 11 z ifIndex vmesnika tunela iz vrstice zgoraj; če je 11 vmesnik LAN, ista ukaz zniža napačno pot. Dvig vmesnika LAN doseže isti vrstni red z druge strani: netsh int ip set interface interface="Ethernet" metric=15, in netsh int ipv6 set interface interface="Ethernet" metric=15 za drugo družino, ker int ip se dotakne le IPv4.

Vrstni red vezave je zadnja možnost in ne prvi korak. HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage vsebuje seznam Bind identifikatorjev naprav, in premik identifikatorja tunela naprej res spremeni, kateri vmesnik je vprašan prvi, vendar je to vrednost registra za celoten računalnik brez obsega po imenskem prostoru. Izvozite jo pred urejanjem in nato tunel znova povežite, da bo vrstni red veljal v stanju, ki ga odjemalec pričakuje.

Za en imenski prostor raje uporabite ožje orodje:

Add-DnsClientNrptRule -Namespace ".corp.example" -NameServers 10.20.0.10
Get-DnsClientNrptRule | Select-Object Namespace, NameServers

Odločitev tri: ali popravek preživi ponovno povezavo?

Metrika, ki deluje do naslednje klicne povezave, ni bila nikoli shranjena. L2TP/IPsec in drugi profili povezave se ob začetku povezave ustvarijo znova, zato shranjena vrednost živi v vnosu telefonskega imenika kot IpInterfaceMetric, ne le na aktivnem vmesniku. Nekatera okolja to polje skriptirajo prav zato; druga potisnejo nastavitev iz upravljavske politike in končno točko pustijo pri miru.

Predpomnilnik in registracija sta ločena plast. Izvajanje teh po dvigu tunela popravi zastarele vnose in znova registrira odjemalca, vendar nobeno od tega ne preuredi vmesnika:

ipconfig /registerdns
ipconfig /flushdns

V isti plasti je stikalo za izklop. Izklop dinamične registracije na fizičnem vmesniku prepreči odjemalcu, da bi svoj naslov na strani VPN oglaševal pod napačnim imenom, in to je drugačno popravilo od osvežitve zgoraj.

IPv6 si v odločitvi zasluži svojo vrstico. Če ima fizični vmesnik globalni naslov IPv6, medtem ko tunel prenaša le IPv4, lahko Windows za razreševanje imen raje izbere pot brez tunela. To družino preverite ločeno, ker metrika, nastavljena za IPv4, o njej ne pove nič:

Get-NetIPInterface -AddressFamily IPv6 | Select-Object ifIndex, InterfaceAlias, InterfaceMetric

Izklop IPv6 na vmesniku LAN odstrani to pot in z njo protokol; sprememba metrike na vmesniku IPv6 ali pravilo NRPT za korporativni imenski prostor ohrani družino in popravi nastavitev. Izberite ožjo, razen če ste se odločili, da ta povezava ne sme imeti IPv6.

Preverjajte z imenovanim virom in ohranite enega lastnika

Preverjajte z orodji, ki poročajo, kateri vir velja, ne le ali se stran naloži:

ipconfig /all
Get-DnsClientServerAddress -AddressFamily IPv4
Resolve-DnsName fileserver.corp.example -Server 10.20.0.10 -Type A

Nato ločite filtriranje od izbire, ker se znotraj aplikacije zdita enaka. block-outside-dns v OpenVPN blokira vrata 53 na drugih vmesnikih; razreševalnika ne izbere. Če zdaj odpove vsaka poizvedba, lahko filter blokira edini dosegljivi strežnik; če je konfigurirani razreševalnik prezrt, je vrstni red ali pravilo imenskega prostora napačno. Spreminjanje obojega hkrati naredi blokirano poizvedbo in prezrto poizvedbo nerazločljivi.

Ohranite enega lastnika politike DNS: profil VPN, upravljavsko politiko ali pravilo NRPT, ne dveh od tega. Preden zaprete:

  • Potisnjeni razreševalnik odgovori, ko ga izrecno imenujete, in običajno iskanje ga uporablja.
  • Pravilo ali metrika, ki ste jo spremenili, pokriva družino naslovov, ki poizvedbe resnično prenaša.
  • Nastavitev preživi prekinitev in ponovno povezavo, ali pa ste jo premaknili v shranjeni profil.
  • Pristojen je natanko en mehanizem, drugi pa so ostali takšni, kot so bili.

Vrstni red obravnavajte kot stanje okolja in ne kot nekaj, kar dokončate. Znova ga preverite po ponovni povezavi in po posodobitvi Windows, ki se dotakne omrežnega sklada, ker lahko oboje spet postavi fizični vmesnik naprej.

Sorodni članki