Il-laptop tiegħek qiegħed fuq il-VPN, dig service.internal.example iwieġeb b’indirizz 10.x, u curl xorta jispiċċa b’Could not resolve host. Il-mina mhijiex il-problema: ġarrbet it-talba ta’ dig mingħajr ilmenti. Dak li hu differenti huwa min jagħmel il-mistoqsija. dig jibgħat talba waħda lil server wieħed li tispeċifika int, filwaqt li curl jgħaddi mill-katina tar-riżoluzzjoni tas-sistema operattiva, u dik il-katina għandha r-regoli tagħha dwar liema server jiġi mistoqsi.

Żewġ riżoluzzjonijiet għall-istess isem

dig huwa stub resolver tiegħu nnifsu. Jaqra /etc/resolv.conf, jagħżel nameserver, jibgħat talba waħda A jew AAAA u jipprintja t-tweġiba. Jaqbeż nsswitch għal kollox u ma jafx xejn dwar l-istat għal kull link li systemd-resolved jew NetworkManager iżommu barra minn dak il-fajl, u għalhekk tweġiba ta’ dig tista’ tkun korretta u xorta ma tgħidlek xejn dwar dak li se jara l-applikazzjoni tiegħek.

L-applikazzjonijiet isejħu getaddrinfo, u getaddrinfo jimxi fuq katina itwal: l-ordni tal-modi ta’ nsswitch, imbagħad il-mod li jittratta l-isem, u mbagħad ir-resolver mibni mill-konfigurazzjoni tal-link attwali. Fuq magna systemd it-talba tmur lil 127.0.0.53 u systemd-resolved jagħżel server upstream għal kull link skont id-dominju tar-routing marbut mal-interface tun.

Żewġ kmandi jifirdu dawk is-saffi mingħajr ma jaqtgħu bl-addoċċ:

getent ahosts service.internal.example
resolvectl query service.internal.example

getent juża l-istess triq bħal curl, għalhekk falliment ta’ getent ħdejn dig li jaħdem jillokalizza l-ħsara fil-politika tar-riżoluzzjoni u mhux fir-routing tal-pakketti. resolvectl query jipprintja wkoll l-interface u l-upstream li pprovda t-tweġiba, li juri jekk il-link tal-mina jew il-link fiżiku rebaħ id-deċiżjoni.

Aqra r-resolver li l-applikazzjoni attwalment tuża

/etc/resolv.conf jiġi ġġenerat fuq il-biċċa l-kbira tad-desktops, u klijent VPN għandu tliet modi kif jinteraġixxi miegħu: iqiegħed nameserver quddiem, jikteb il-fajl mill-ġdid, jew jgħaddi s-server tiegħu lil NetworkManager u jħalli d-daemon jikteb mill-ġdid. It-tielet mudell biss iżomm id-DNS għal kull link, għax is-server jibqgħu marbutin ma’ interface minflok ma jiġu ċċattjati f’lista globali waħda.

Fuq sistemi NetworkManager ir-riżultat jiddependi mill-backend f’/etc/NetworkManager/NetworkManager.conf:

[main]
dns=systemd-resolved

B’dns=default is-server tal-klijent jingħaqdu f’resolv.conf fl-ordni li tirbaħ, u riżoluzzjoni privata xorta tista’ tintbagħat lir-resolver pubbliku. B’backend li jifhem il-links, systemd-resolved jew dnsmasq, is-server tal-mina jibqgħu limitati għall-mina u jinżlu hemm biss l-ismijiet li jaqblu mad-dominju tar-routing tagħha. Dik il-limitazzjoni hija dak li tfisser split DNS fil-prattika, u hija l-biċċa li l-aktar ta’ spiss tonqos meta klijent jgħid li jappoġġjaha.

Aqra l-istat qabel ma tibdel xejn:

resolvectl status
resolvectl dns tun0

Trid tara l-interface tun elenkata b’server DNS u dominju tar-routing għas-suffiss privat, murija bħala ~internal.example. L-ebda server fuq il-link ifisser li l-klijent ma bagħat xejn. Server mingħajr dominju ifisser li r-riżoluzzjonijiet kollha jmorru hemm jew l-ebda, skont il-klijent, u l-ebda wieħed minnhom mhu split DNS.

Fejn nsswitch itemm ir-riżoluzzjoni qabel iż-żmien

Linja standard tad-desktop tidher hekk:

hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns myhostname

mdns4_minimal jittratta d-DNS multicast u jitlob kull isem li jispiċċa f’.local. Servizz Kubernetes bħal api.infra.svc.cluster.local jispiċċa wkoll f’.local. Meta l-mod mDNS jirrapporta NOTFOUND, l-azzjoni [NOTFOUND=return] itemm ir-riżoluzzjoni kollha minflok tkompli lejn il-mod dns, għalhekk l-isem qatt ma jintbagħat lir-resolver tal-VPN. dig iwarrab il-fajl għal kollox, u huwa eżattament għalhekk li ż-żewġ għodod ma jaqblux.

Dak huwa l-aktar kuntrast qawwi f’dan il-problema, u jiddependi fuq kelma waħda f’fajl ta’ konfigurazzjoni eqdem mill-VPN tiegħek. Tibdil tal-azzjoni għal [NOTFOUND=continue] iżomm mDNS għall-printers u l-apparati lokali filwaqt li jħalli d-DNS jara l-isem. Issostitwixxi l-linja b’hosts: files dns jaħdem ukoll u huwa aktar goff: ineħħi r-riżoluzzjoni .local għall-printer li attwalment tuża.

Ismijiet li jgħixu f’netwerk wieħed biss

Iż-żoni privati huma awtorevoli f’post wieħed biss. Isem AWS bħal ip-10-0-4-31.eu-west-1.compute.internal jiġi mwieġeb mir-resolver tal-VPC ta’ dak ir-reġjun, u biss sakemm l-endpoint tal-VPN tiegħek ikun fl-istess reġjun tar-riżorsa. Qabbad ma’ endpoint fi Frankfurt, staqsi isem compute.internal mill-Irlanda, u l-ebda setting lokali ma jgħin: iż-żona li żżomm ir-rekord mhijiex aċċessibbli minn hemm.

Id-dominji tat-tfittxija jipproduċu l-immaġni mċaqilba. service nieqes jiġi komplut bis-suffiss li r-resolver jaħseb li japplika, u b’link VPN id-dominju lokali jista’ jirbaħ lil dak korporattiv. Staqsi b’punt fl-aħħar biex tneħħi l-preżunzjoni, getent ahosts service.internal.example., u jekk dan jaħdem filwaqt li l-isem qasir ifalli, is-sewwa hija d-dominju tat-tfittxija fuq il-mina, mhux l-indirizz tas-server.

Il-klijenti ġestiti jżidu t-tielet saff fuq ir-resolver tas-sistema. Profil VPN ta’ Windows jista’ jġorr il-politika tiegħu tar-riżoluzzjoni tal-ismijiet, regoli għal kull app u tabella NRPT li tapplika wkoll meta l-mina tkun waqfa. L-applikazzjonijiet biċ-cache DNS tagħhom, komuni fir-runtimes .NET u Java, iżommu falliment skadut ħafna wara li l-katina tiġi ssewwa. Il-klijenti Apple jikkonfiguraw is-split DNS permezz ta’ dominji ta’ tqabbil fis-settings tad-DNS minflok permezz ta’ resolv.conf, u Chromium jew Firefox fil-modalità secure-DNS jistgħu jaqbżu r-resolver tas-sistema għall-ismijiet pubbliċi. Ir-referenza ta’ Microsoft dwar ir-riżoluzzjoni tal-ismijiet tal-VPN tiddeskrivi n-naħa Windows ta’ dak is-saff ta’ politika.

Iddeċiedi liema saff għandu jiġi ssewwa

Aħdem mis-sintomu għas-saff minflok tipprova s-sewwiet fl-ordni:

SymptomWhat it meansCheck first
dig answers, getent failslookup chain, not the packet pathnsswitch line and resolvectl status
Timeout rather than NXDOMAINprivate resolver unreachable through the tunnelresolvectl dns tun0, route to that address
NXDOMAINan authority answered and does not know the namezone owner, endpoint region
FQDN works, short name failssearch suffix mismatchresolvectl domain on the tun link
getent works, app failsapp cache or its own resolverrestart the app, check secure DNS

Żewġ ringieli jġorru l-biċċa l-kbira tal-piż. Timeout huwa problema ta’ aċċessibbiltà: ir-resolver privat mhux qiegħed iwieġeb mill-mina, għalhekk iċċekkja r-rotta lejn l-indirizz tiegħu u jekk is-server DNS fuq il-link huwiex dak li taħseb. NXDOMAIN hija problema ta’ awtorità: xi ħaġa wieġbet u ma tafx l-isem, li jwassal għaż-żona, għar-reġjun jew għal resolver li qatt ma kellu jirċievi t-talba.

L-aħħar ringiela hija dik li n-nies jaqbeżu għax iż-żewġ nofsijiet jidhru bħala suċċess. Isem qasir li jiġi riżolt b’mod differenti mill-FQDN huwa nuqqas ta’ qbil fis-suffiss, u li terġa’ tqabbad il-mina ma jbiddilx liema suffiss jibgħat il-klijent.

Aqbad l-istat qabel ma tibdel fajl ta’ konfigurazzjoni, biex tkun tista’ tgħid jekk il-bidla għamlitx xi ħaġa:

resolvectl status > before.txt
getent ahosts service.internal.example >> before.txt

Mexxi l-kontrolli f’din l-ordni u waqaf fl-ewwel waħda li tfalli. getent u resolvectl query għandhom jaqblu; jekk getent ifalli filwaqt li dig iwieġeb, ibqa’ fil-katina tar-riżoluzzjoni u tmissx ir-routing. resolvectl status għandu juri server DNS u dominju tar-routing fuq l-interface tun. nsswitch m’għandux jirritorna kmieni fuq NOTFOUND għas-suffiss li qed tittestja. L-isem għandu jkun awtorevoli fin-netwerk li miegħu huwa mqabbad l-endpoint tiegħek, ittestjat b’punt fl-aħħar. L-applikazzjoni m’għandhiex iżżomm cache tagħha jew override ta’ secure-DNS.

Sewwi biss l-ewwel saff li jfalli u mbagħad erġa’ mexzi l-istess kmandi. Żewġ bidliet f’daqqa jħalluk ma tistax tgħid liema waħda għamlet differenza, u l-ħsara li jmiss tibda l-investigazzjoni minn żero.

Artikli relatati