DNS geet ëmmer erëm zréck, de VPN-Reconnect mécht Är Korrektur réckgängeg, an irgendwann proposéiert een am Team d'Datei ze spären. Dës Sequenz ass e Symptom, keng Léisung: zwou Komponenten mengen allebéid, si beséissen /etc/resolv.conf, an dee deen als leschte schreift, gewënnt. D'Datei ze spären léist den Eegentumskonflikt net, et verstoppt en just a brécht dobäi déi Komponent, déi Dir eigentlech wollt. Maacht déi véier Kontrollen hei ënnen der Rei no, a verbessert d'Arrangement op där Niveau, déi se besëtzt, net op der Datei.

Kontroll 1: ass et e Symlink, a wouhin

Fänkt mat der Datei selwer un, well de Wee deen Dir ännert ass vläicht guer net d'Datei. E Symlink an den Runtime-Verzeechnis vun engem Resolver verhält sech ganz anescht wéi eng gewéinlech Datei, déi e Client-Skript nei schreift:

ls -l /etc/resolv.conf
readlink -f /etc/resolv.conf
cat /etc/resolv.conf

E Link op e Stub-Wee vu systemd-resolved heescht, datt den Inhalt vun der Datei generéiert gëtt, an eng manuell Ännerung gëtt beim nächsten Event iwwerschriwwen. Eng gewéinlech Datei mat nameserver-Linnen gëtt meeschtens vun deem Client oder DHCP-Hook geschriwwen, deen beim Verbannen leeft. Béides ass legitim; wichteg ass ze wëssen, wat Dir hutt, éier Dir eppes ännert.

Kontroll 2: wéi en Daemon leeft

Fannt eraus wat tatsächlech aktiv ass, net wat installéiert ass. Op enger moderner Distributioun kënnen etlech Resolver präsent sinn, an deen deen de Port 53 um Loopback-Interface hält, äntwert:

systemctl status systemd-resolved --no-pager
resolvectl status
ss -lunp | grep ':53'

D'Statusausgab nennt d'DNS-Server pro Verbindung an d'Routing-Domänen, dat ass d'Kaart déi Dir fir split DNS braucht. Wann intern Nimm op en internen Server mussen an alles anescht op en ëffentlechen, dann lieft déi Politik an den Domänen pro Verbindung, an se an eng statesch nameserver-Lëscht an der Datei ofzeflachen verléiert dësen Ënnerscheed roueg.

D'Konfiguratioun vum NetworkManager selwer entscheet, wéi ee vun dëse Backends en benotzt. Seng dns=-Astellung an der Haaptkonfiguratiounsdatei wielt tëscht sengem internen Resolver, dnsmasq, systemd-resolved an none, an eng Distributioun huet vläicht fir Iech gewielt. Liest déi Astellung éier Dir entscheet, wat “DNS reparéieren” op dësem Host bedeit.

Kontroll 3: wat den VPN-Client dierf schreiwen

Hei wunnt de Konflikt meeschtens. En VPN-Client deen d'Resolver-Datei direkt nei schreift, wäert mat all Service kämpfen, deen se och ënnerhält, an de Verléierer ass dee deen als éischten leeft. Rezent OpenVPN-Verëffentlechunge kënnen d'DNS-Astellungen un systemd-resolved iwwerginn, amplaz d'Datei nei ze schreiwen, dat ass dat kooperatiivt Verhalen dat Dir wëllt; méi al Skripten a vun Hand geschriwwen Hooke ruffen dacks en veraleten Hëllefsmëttel op oder iwwerschreiwen einfach d'Datei.

D'Situatioun vu WireGuard ass änlech an der Form: d'Interface-Konfiguratioun selwer verwalt net DNS, dat maachen d'Instrumenter ronderëm, iwwer en Resolver-Hëllef oder d'resolved-Integratioun. Wa sou zwéin Hëllefen installéiert sinn, probéieren allebéid beim Verbannen hir Weltbild duerchzesetzen.

Liest d'Up- an Down-Hooke vum Client amplaz ze roden. E puer Zeilen Shell an /etc/openvpn/up.sh oder engem gläichwäertege Verzeechnis erklären e Verhalen, dat soss zoufälleg ausgesäit, an et ass och d'Plaz wou Dir de Client ka matschaffe loossen amplaz ze konkurréieren.

Kontroll 4: reparéiert et beim Proprietär, net an der Datei

Wann Dir de Proprietär kennt, konfiguréiert DNS iwwer déi ënnerstëtzt Interface vun deem Proprietär. Fir systemd-resolved heescht dat Astellungen pro Verbindung a Routing-Domänen amplaz enger statescher Datei; fir NetworkManager d'DNS-Astellunge vum Verbindungsprofil an de gewielte Backend; fir eng Distributioun mat resolvconf-Integratioun d'Schreiwen iwwer deen Hëllef.

Maacht d'Datei net onverännerlech. D'Onverännerlechkeets-Attribut stoppt legitim DHCP-Erneierungen a VPN-Update mat deenen, géint déi Dir gekämpft hutt, an et léisst de System an engem Zoustand, wou de nächsten Paket-Update oder Reconnect e Fehler produzéiert, deen keen aus der Konfiguratioun erkläre kann. Et verstoppt den Eegentumskonflikt, wat genee dat ass wat Dir probéiert hutt ze léisen.

Wou zwou Komponenten wierklech mussen zesumme bestoen, gitt hinnen ënnerschiddlech Aufgaben. Loosst de Netzwierkmanager d'Konfiguratioun op Interface-Niveau besëtzen, loosst den VPN-Client DNS an Domänen pro Verbindung iwwer déi selwecht Integratioun bäidroen, an entfernt dat drëtt Skript dat d'Datei direkt schreift. D'systemd-resolved-Dokumentatioun beschreift d'Modi déi en ënnerstëtzt a wat jiddwereen dovun an /etc/resolv.conf weist. Wielt de Modus dee passt wéi vill Politik Dir musst behalen. Wann split DNS wichteg ass, behält d'Stub-Arrangement mat Domänen pro Verbindung et, während de Modus deen Upstream-Server an d'Datei kopéiert et roueg offlaacht.

Verifizéiert no engem Reconnect, net no der Ännerung

Eng Datei déi direkt no Ärer Ännerung richteg ausgesäit, beweist näischt, well den nächsten Event nach net geschitt ass. Léist d'Sequenz aus déi se fréier geraacht huet: maacht den Tunnel erof an erop, erneiert de DHCP-Lease oder wiesselt d'Interface, a liest dann déiselwecht Wäerter nach eng Kéier.

resolvectl query build.corp.example
resolvectl query example.com
resolvectl status | head -40

Bestätegt dann den Ënnerscheed dee wichteg ass: den internen Numm gëtt iwwer den internen Server opgeléist, während den ëffentlechen Numm nach funktionéiert. Eng Konfiguratioun déi alles op den internen Server schéckt gesäit gutt aus bis een probéiert iwwer den Tunnel an Internet ze kommen, an eng Konfiguratioun déi alles op den ëffentlechen schéckt leckt intern Nimm.

Notéiert de Proprietär, de Backend an de Symlink-Modus an den Deployment-Notizen. Dee eenzen Abschnitt mécht aus engem zukünftege Paket-Update en Iwwerprüfungspunkt amplaz vun engem Tëschefall, an en hält déi nächst Persoun dovun of dee selwechte Konflikt mat engem chattr-Befehl erëm z'entdecken.

Ähnlech Artikelen