DNS pre VPN prevzame vsako poizvedbo: popravite dns-priority v NetworkManagerju
Povezava VPN ima privzeto prednost 0 in zahteva vsako domeno. Za vrstni red nastavite negativno prednost, nato pa preostanek vrnite z usmerjevalnimi domenami.
Povežite pisarniški VPN in nenadoma gre vsaka poizvedba imena k poslovnemu resolverju. Javna imena se še vedno razrešujejo, zato nič ne izgleda pokvarjeno, dokler ne odpove ime lokalnega tiskalnika ali zapis split-horizon ne vrne pisarniškega naslova. V nekaterih namestitvah Fedore se zgodi nasprotno: resolver ponudnika še naprej odgovarja, ko je tunel vzpostavljen. Oboje je eno vprašanje — kateri resolver je lastnik te poizvedbe — in v sistemih NetworkManager odgovor živi v lastnostih DNS vsake povezave.
Dve povezavi, en zmagovalni resolver
Vsaka povezava navede prednost DNS. Običajne povezave imajo privzeto 50, povezave VPN pa 0, in zmaga nižja vrednost. Prav ta privzeta vrednost je razlog, da povezava VPN tiho prehiti žično povezavo za vsako domeno, ki jo zahteva: nič premaga petdeset, ne da bi to kdo izbral.
Prednost razvrsti kandidate. Ne omejuje, o čem se sprašuje zmagovalca. Povezava VPN brez iskalne domene zahteva vse, zato njena prednost pošlje tudi javne poizvedbe v tunel in pri razdeljenem tunelu tja, kamor poslovni resolver posreduje.
Prednost določi vrstni red, iskalni seznam lastništvo
nmcli -f connection.id,ipv4.dns,ipv4.dns-search,ipv4.dns-priority con show "Corp VPN"
resolvectl status
readlink -f /etc/resolv.conf
Iskalni seznam je izjava o lastništvu. Gola domena, kot je corp.example, postane iskalna pripona in usmerjevalna domena. Oblika samo za usmerjanje ~corp.example pošlje poizvedbe pod to pripono tej povezavi, ne da bi domeno dodala kratkim imenom. Ta tilda je razlika med »vprašaj ta strežnik« in »vprašaj ta strežnik in dokončaj moje tipkanje«.
Uporabite obe obliki, ko uporabniki vpisujejo kratka imena gostiteljev in so zapisi naslovljeni tudi s polno kvalificiranimi imeni. Uporabite samo obliko za usmerjanje, ko želite razdelitev brez spreminjanja tega, kako resolver dopolni golo ime.
Nato naredite prednost izrecno in povezavo znova aktivirajte:
nmcli con modify "Corp VPN" ipv4.dns-priority -100
nmcli con modify "Corp VPN" ipv6.dns-priority -100
nmcli con modify "Corp VPN" ipv4.dns-search "~corp.example,corp.example"
nmcli con up "Corp VPN"
Negativna prednost je dokumentiran način, da rečete »prednost daj tej povezavi«, in nastavitev obeh družin naslovov ohranja vedenje dosledno na gostitelju s povezljivostjo IPv6. Spreminjanje lastnosti brez ponovne aktivacije povezave ne spremeni ničesar od tega, kar zdaj teče, zato se zaporedje konča z izrecnim up.
Pustite systemd-resolved, da drži razdelitev
Privzeti vtičnik dnsmasq steka poizvedbe v en lokalni resolver, zato ločevanje po povezavi ostane grobo. systemd-resolved razkrije razdelitev po povezavi, in resolvectl query poimenuje povezavo, ki je odgovorila.
systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved NetworkManager
resolvectl query build.corp.example
Po tem poslovna povezava nosi corp.example, javni resolver pa služi preostanku. Ko poizvedba prispe na napačno povezavo, ukaz poimenuje povezavo, ki je odgovorila nanjo, in to vedeti je bolje kot poznati le naslov.
Uskladite zasnovo DNS z vrsto tunela
Zasnove za zasebnost, ki pošiljajo vse skozi tunel, ne smejo imeti seznama razdelitve, ker bi ta vrnil javna imena lokalnemu resolverju in razveljavil namen. Zasnove z razdeljenim tunelom ga potrebujejo: brez njega poslovni resolver vidi vsako javno poizvedbo in nastavitev se zlomi v trenutku, ko tunel pade.
Nato je tu kill switch, ki blokira DNS zunaj tunela. Imena se razrešujejo za območja tunela in spodletijo povsod drugje, medtem ko je povezava popolnoma zdrava. Izvedljivi odgovori so izrecno dovoljenje za resolver v LAN ali lokalni predpomnilnik, ki posreduje samo poslovno območje, in oboje je izjema z lastnikom, ne okvara v tunelu.
Profil, ki ob zagonu vmesnika prepiše konfiguracijo resolverja, se obnaša skoraj enako: ko lokalni resolver postane nedosegljiv, se razrešijo samo imena, ki jih tunel pozna. Ne glede na mehanizem zapišite, katera imena naj delujejo v katerem stanju, in ta seznam dajte tistemu, ki obravnava poročila.
Preverite po povezavah in nato še enkrat po ponovni povezavi
Vprašajte za eno notranje in eno javno ime ter opazujte, kam poizvedba v resnici gre. Stran za preverjanje uhajanja pove, kateri resolver je odgovoril, ne pa, katero povezavo je izbral sistem, zato ne pove ničesar o vrstnem redu, ki ste ga pravkar nastavili.
Znova zaženite obe poizvedbi po prekinitvi in ponovni povezavi. Prednosti se znova uporabijo, ko se povezava aktivira, in stara simbolična povezava lahko preživi nadgradnjo, ki se je nihče ne spomni. Na koncu želite imeti zapisano, kateri resolver ima katero pripono, skupaj s preverjanjem, ki bo veljalo tudi jutri.