In ynterne namme lost noch hieltyd op nei de VPN-tsjinner in dei nei’t de tunnel sletten is, en it resolver-bestân komt hieltyd werom mei dy yngong. Dêr’t de resolvconf fan Debian de steat besit, wurdt dat bestân gearstald út records fan leveransiers, en ien dêrfan is it oerskot. It wiskjen fan de record kostet in minút; bewizen dat it feilich is om te wiskjen is it echte wurk. Dizze poarten rinne yn folchoarder, en in mislearre poarte einiget de proseduere ynstee fan dy nei de folgjende stap te stjoeren.

Befêstigje dat resolvconf de steat besit

Identifisearje earst de eigner, want deselde symptoom ûnder systemd-resolved freget oare opdrachten en in oare reparaasje. It pakket resolvconf hâldt in database ûnder /run/resolvconf en wiist /etc/resolv.conf nei it bestân dat it út dy database bout. Twa lêzingen besljochtsje de fraach: it doel fan de symboalyske keppeling, en oft it pakket ynstallearre en aktyf is. In doel ûnder /run/systemd/resolve betsjut it oare ûntwerp, dêr’t neat hjirûnder jildt.

dpkg -l resolvconf | tail -1
ls -l /etc/resolv.conf
systemctl is-active resolvconf.service

As de keppeling earne oars hinne wiist of it pakket ûntbrekt, stopje hjir. In kompatibiliteitswiksel dy’t de namme liend hat, en troch in oare resolver-behearder levere wurdt, besit dizze database net.

De database hâldt ynfier, net it antwurd

De database hâldt ynfier en it bestân is in útfier, dus it opsommen fan ynfier is de iennige manier om te sjen hokker programma de yngong ynstallearre hat dy’tsto fuort hawwe wolst. De records binne koart, en har kaaien binne de handgrepen dy’tsto letter nedich hast. Lês se foardatst beslút hokker ferâldere is, want in namme dy’t op in VPN-interface liket kin by in oare klant hearre. Hâld privee-adressen en ynterne sykdominen bûten dielde diagnostyk; meastentiids identifisearret de kaai allinnich de record.

sudo resolvconf --list
sudo resolvconf -i

It earste kommando printsje de levere records sûnder se te ferwurkjen, en it twadde listet de interfaces op dy’t op ’t stuit DNS-konfiguraasje leverje. Kaaien wurde gewoanwei boud út in interfacenamme plus it leverjende programma. De resolvconf-hantlieding beskriuwt de database dy’t dy kaaien adressearje.

Kopiearje de kaai út de útfier ynstee fan dy opnij te bouwen. In yngong hjit net tun0 allinnich om’t in âld skript dy namme brûkte.

Bewiis dat de record gjin eigner hat

In record is feilich om te wiskjen as gjin libbene ferbining him ynstallearre hat. Korrelearje de kaai mei de ferbining dy’t him makke hat, en befêstigje dan dat dy ferbining fuort is. Dy korrelaasje is de hiele poarte, en it is de stap dy’t it meast oerslein wurdt op ’e wei nei it wiskopdracht. As it bewiis dûbelsinnich is, behannelje de record as libben en stopje.

Prosesnammen binne swak bewiis. OpenConnect ropt vpnc-script oan, dus in kontrôle op in proses vpnc seit neat oer hokker record aktueel is. In nije ferbining kin ek in interfacenamme werbrûke dy’t in âlde efterlitten hat, wat de kaai âlder liket as er is. Ferlykje it tsjinneradres yn de record mei de adressen fan tunnels dy’t noch oerein steane, en stopje as se oerienkomme.

In normale ôfbrekking fia de eignende behearder is it earste middel. It lûkt werom wat dy ferbining ynstallearre en lit oare leveransiers ûnoantaast.

Kontrolearje it wiskjen en it oerskriuwen

Nei’t de record befêstige ferâldere is, wiskje him op ’e krekte kaai en lês dan it resultaat ynstee fan it oan te nimmen. It kommando feroaret de resolver-steat foar elke applikaasje op de host, dus rin it yn in finster datsto behearskest. Set de kaai tusken oanhellingstekens, want hy befettet tekens dy’t de shell oars útwreidzje soe. De plakhâlder yn it blok stiet foar de kaai dy’tsto út ’e list kopiearre hast, net foar in letterlike tekenrige.

sudo resolvconf -d "RECORD_KEY_FROM_THE_LIST"
sudo resolvconf --list
resolvectl query host.corp.example || getent hosts host.corp.example

Wiskjen rint de bywurkingskripts as bywurking ynskeakele is; mei bywurking útskeakele stelt it de bywurking út, dus in fuortsmiten record en in oerskreaun bestân binne aparte barrens. Lês de list opnij en befêstigje dat de kaai fuort is foardatsto it bestân besjochst. Freegje dan in namme op dy’t noch troch de oerbleaune leveransiers oplosse moat, en in iepenbiere namme, en ferlykje beide mei watsto foar de feroaring seachst. As in privee namme hielendal ophâldt mei oplossen, droech dy record him noch.

resolvconf -u rint allinnich dy bywurkingskripts. It identifisearret of wisket nea in ferâldere record, en it opnij bouwen út ferâldere ynfier reprodusearret itselde net winske bestân.

In deade ôfbrek-hook lit de record efter

In ienmalige opromming herstelt de steat fan hjoed, en de folgjende ûnderbrutsen ôfsluting set de record werom. Rin it ôfbrekpads nei: de ôfbrek-hook fan de klant, de helper dy’t dy hook oanropt, en wat der bart as ien fan beide deamakke wurdt. In ûnderbrutsen ôfsluting is de gewoane oarsprong, om’t de hook hielendal net rûn. Log de útgongstatus fan de hook ien kear en do wist oft er stil mislearret.

Hâld ynstelling en opromming ûnder ien eigner. In twadde skript dat interfacenammen riedt, sil úteinlik de record fan in oare ferbining wiskje, wat slimmer is as de ferâldere yngong dêr’tsto mei begûn. De eigner moat ek beslute wannear’t in record ferâldere is, want hy wit hokker ferbining him ynstallearre hat.

Test dan de libbenssyklus: ferbine, ôfbrekke, list de records wer op. Dat de yngong fansels ferdwynt is it iennige bewiis dat de reparaasje hâldt.

Relatearre artikelen