Rimuovere un server DNS da systemd risolto?
Mi sono connesso a una openconnectcosa simile a una VPN e ha aggiunto un server DNS (e un dominio DNS) al mio systemd-resolvede non funzionano, quindi l'utilizzo di Internet è rallentato, perché ogni nuova richiesta deve attendere il timeout per il server DNS rotto, prima di andare al server DNS funzionante, originariamente configurato ( presumo ).
Come posso rimuovere quel server DNS da systemd-resolved?
$ systemd-resolve --status
Global
DNS Servers: 10.127.201.221
10.63.101.221
172.25.2.253
DNS Domain: blah1.example
example.com
DNSSEC NTA: 10.in-addr.arpa
...
Ubuntu Linux 18.04. system v237
Risposte
Systemd < v239
Il comando che stai cercando dovrebbe essere:
systemd-resolve --interface=tun0 --revert
Dove tun0sarebbe l'interfaccia per rimuovere le impostazioni DNS da:
--revert
Revert the per-interface DNS configuration. This option must be combined with
--interface= to indicate the network interface the DNS configuration shall be reverted
on. If the DNS configuration is reverted all per-interface DNS setting are reset to
their defaults, undoing all effects of --set-dns=, --set-domain=, --set-llmnr=,
--set-mdns=, --set-dnssec=, --set-nta=. Note that when a network interface disappears
all configuration is lost automatically, an explicit reverting is not necessary in
that case.
Sembra che questi strumenti siano cambiati in systemd v239 (che in realtà era sulla mia macchina di prova Bionic).
Systemd >= v239
Il comando precedente dovrebbe essere ancora disponibile nella versione più recente di systemd, in caso contrario provare resolvectlil comando revert di . Avrai bisogno del nome dell'interfaccia del collegamento che desideri reimpostare. Ex:
sudo resolvectl revert tun0
Dal resolvectlmanuale:
ripristinare LINK
Ripristina la configurazione DNS per interfaccia. Se la configurazione DNS viene ripristinata, tutte le impostazioni DNS per interfaccia vengono ripristinate ai valori predefiniti, annullando tutti gli effetti di dns, domain, llmnr, mdns, dnssec, dnsovertls, nta. Si noti che quando un'interfaccia di rete scompare tutta la configurazione viene persa automaticamente, in tal caso non è necessario un ripristino esplicito.
Poiché systemd-resolved associa i server DNS alle interfacce di rete, questo dovrebbe eliminare i server DNS di cui ha appreso da quell'interfaccia.
Note risolte da Systemd
Questo comportamento di systemd-resolvedè menzionato anche in quella voce manuale, estratto pertinente:
Altri nomi con più etichette vengono instradati a tutte le interfacce locali che dispongono di un server DNS configurato, oltre al server DNS configurato a livello globale, se presente.
Credo che tu voglia dire a systemd-resolved di dimenticare i server DNS per la tua interfaccia tunnel, resolvectl revertsembra il modo per farlo.