Id-DNS dejjem jerġa' lura għall-istat preċedenti, ir-rikonnessjoni tal-VPN tħassar il-korrezzjoni tiegħek, u fl-aħħar xi ħadd fit-tim jissuġġerixxi li l-fajl jiġi msakkra. Dik is-sekwenza hija sintomu, mhux soluzzjoni: żewġ komponenti t-tnejn jaħsbu li huma sidien /etc/resolv.conf, u jirbaħ min jikteb l-aħħar. L-issakkrar tal-fajl ma jsolvix il-kunflitt tas-sjieda, sempliċement jaħbih filwaqt li jkisser il-komponent li fil-fatt ridt. Agħmel l-erba' verifiki hawn taħt bl-ordni, u sewwi l-arranġament fil-livell li jippossjedih, mhux fil-fajl.

Verifika 1: huwa symlink, u għal fejn

Ibda mill-fajl innifsu, għax it-triq li qed tedital tista' ma tkunx il-fajl xejn. Symlink fid-direttorju runtime ta' resolver iġib ruħu b'mod kompletament differenti minn fajl ordinarju li script tal-klijent jikteb mill-ġdid:

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

Link għal triq stub ta' systemd-resolved ifisser li l-kontenut tal-fajl jiġi ġġenerat, u l-editjar manwali se jiġi sostitwit fl-avveniment li jmiss. Fajl ordinarju b'linji nameserver normalment jinkiteb mill-klijent jew mill-hook tad-DHCP li jaħdem meta jikkonnettja. It-tnejn huma leġittimi; dak li jgħodd huwa li tkun taf liema għandek qabel ma tibdel xejn.

Verifika 2: liema daemon qed jaħdem

Sib x'inhu attiv verament, mhux x'inhu installat. Jistgħu jkunu preżenti diversi resolvers fuq distribuzzjoni moderna, u dak li jżomm il-port 53 fuq l-interface loopback huwa dak li jwieġeb:

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

L-output tal-istat isemmi s-servers DNS għal kull link u d-dominji tar-routing, li hija l-mappa li għandek bżonn għas-split DNS. Jekk l-ismijiet interni jridu jmorru għal server intern u kollox ieħor għal wieħed pubbliku, dik il-politika tgħix fid-dominji għal kull link, u t-taffiha f'lista statika ta' nameserver fil-fajl titlef dak id-distinzjoni bil-kwiet.

Il-konfigurazzjoni ta' NetworkManager stess tiddeċiedi liema minn dawn il-backends juża. Is-setting dns= tiegħu fil-fajl tal-konfigurazzjoni prinċipali jagħżel bejn ir-resolver intern tiegħu, dnsmasq, systemd-resolved u none, u d-distribuzzjoni forsi għażlet għalik. Aqra dak is-setting qabel ma tiddeċiedi x'ifisser “tiswija tad-DNS” fuq dan il-host.

Verifika 3: x'jista' jikteb il-klijent VPN

Hawnhekk normalment tgħix il-kunflitt. Klijent VPN li jikteb mill-ġdid il-fajl tar-resolver direttament se jiġġieled ma' kwalunkwe servizz li wkoll iżommu, u min jitlef huwa min imur l-ewwel. Il-verżjonijiet reċenti ta' OpenVPN jistgħu jgħaddu s-settings tad-DNS lil systemd-resolved minflok ma jiktbu mill-ġdid il-fajl, li hija l-imġiba kollaborattiva li trid; scripts anzjani u hooks miktuba bl-idejn spiss isejħu helper antik jew sempliċement jiktbu fuq il-fajl.

Is-sitwazzjoni ta' WireGuard hija simili fil-forma: il-konfigurazzjoni tal-interface stess ma tmexxix id-DNS, jagħmlu dan l-għodod madwarha, permezz ta' helper tar-resolver jew l-integrazzjoni resolved. Jekk huma installati żewġ helpers bħal dawn, it-tnejn se jippruvaw japplikaw il-viżjoni tagħhom tad-dinja meta jikkonnettjaw.

Aqra l-hooks up u down tal-klijent minflok ma taħseb. Ftit linji ta' shell f'/etc/openvpn/up.sh jew f'direttorju ekwivalenti jispjegaw imġiba li mod ieħor tidher każwali, u hemmhekk tista' tagħmel il-klijent jikkollabora minflok jikkompeti.

Verifika 4: sewwi fis-sid, mhux fil-fajl

Ladarba tkun taf is-sid, ikkonfigura d-DNS permezz tal-interface appoġġjat minn dak is-sid. Għal systemd-resolved dan ifisser settings għal kull link u dominji tar-routing minflok fajl statiku; għal NetworkManager ifisser is-settings tad-DNS tal-profil tal-konnessjoni u l-backend magħżul; għal distribuzzjoni li tuża integrazzjoni resolvconf ifisser kitba permezz ta' dak il-helper.

Twaħħax il-fajl immutabbli. L-attribut tal-immutabbiltà jwaqqaf tiġdid DHCP leġittimu u aġġornamenti tal-VPN flimkien ma' dawk li kont qed tiġġieled kontrihom, u jħalli s-sistema fi stat fejn l-aġġornament tal-pakkett jew ir-rikonnessjoni li jmiss tipproduċi falliment li ħadd ma jista' jispjega mill-konfigurazzjoni. Jaħbi l-kunflitt tas-sjieda, li huwa eżattament dak li kont qed tipprova ssolvi.

Fejn żewġ komponenti verament iridu jikkoeżistu, agħtihom xogħlijiet differenti. Ħalli lill-maniġer tan-netwerk jippossjedi l-konfigurazzjoni fil-livell tal-interface, ħalli lill-klijent VPN jikkontribwixxi DNS u dominji għal kull link permezz tal-istess integrazzjoni, u neħħi t-tielet script li jikteb il-fajl direttament. Id-dokumentazzjoni ta' systemd-resolved tispjega l-modi li jappoġġja u x'juri kull wieħed minnhom f'/etc/resolv.conf. Agħżel il-mod li jaqbel ma' kemm politika trid iżżomm. Jekk is-split DNS huwa importanti, l-arranġament stub bid-dominji għal kull link jippreservah, filwaqt li l-mod li jikkopja s-servers upstream fil-fajl itaffih bil-kwiet.

Ivverifika wara rikonnessjoni, mhux wara l-editjar

Fajl li jidher korrett eżatt wara l-bidla tiegħek ma jipprova xejn, għax l-avveniment li jmiss għadu ma seħħx. Ipprepara s-sekwenza li kienet tkissru: niżżel u erġa' għolli t-tunnel, ġedded il-lease DHCP jew ibdel l-interface, imbagħad aqra l-istess valuri mill-ġdid.

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

Imbagħad ikkonferma d-distinzjoni li timporta: l-isem intern jiġi riżolt permezz tas-server intern filwaqt li l-isem pubbliku għadu jaħdem. Konfigurazzjoni li tibgħat kollox lis-server intern tidher tajba sakemm xi ħadd jipprova jasal għall-internet mit-tunnel, u konfigurazzjoni li tibgħat kollox lil dak pubbliku tnixxi ismijiet interni.

Irreġistra s-sid, il-backend u l-mod tas-symlink fin-noti tad-deployment. Dak il-paragrafu wieħed ibiddel aġġornament tal-pakkett fil-futur minn inċident għal punt ta' reviżjoni, u jwaqqaf lill-persuna li jmiss milli terġa' tiskopri l-istess kunflitt b'kmand chattr.

Artikli relatati