Le ricerche DNS risolte dal sistema Ubuntu 17.04 falliscono casualmente


38

Ho eseguito l'aggiornamento a Ubuntu 17.04 e sembra che ora sia stato introdotto un nuovo meccanismo di risoluzione DNS in Ubuntu 16.10.

Ricevo errori di ricerca DNS il 50% delle volte. Ogni altra chiamata a nslookup non riesce, con metà delle chiamate risolte bene e metà dando questo:

watch -n 1 nslookup google.com

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL

Da quello che ho capito, quell'indirizzo IP del server DNS è ora usato per rappresentare il sistema risolto, che fa una sorta di meta ricerca per evitare query DNS più lente (o qualcosa del genere ...). Sto vedendo lo stesso identico comportamento su due macchine che ho aggiornato a 17.04 la scorsa settimana.

Hai idea di quale sia il problema qui e il modo corretto di risolverlo?

Le cose funzionavano bene prima dell'aggiornamento (dalle 16.04 o 16.10, non ricordo quale, scusa). Ho pensato che il 17.04 fosse una versione LTS ma ora vedo che ho saltato la pistola e non sarà considerata stabile fino ad aprile. Quindi ... eccomi qui.

Inoltre, i browser non sembrano presentare problemi, ma nslookup, ping, git, ecc.


2
Suggerimento per il futuro: le versioni di Ubuntu sono l'anno in cui uscirà .il mese in cui verrà rilasciato. (Quindi nel tuo caso sarà in 04/ 17)
timotree

Sembra che il crowdfunding nelle distribuzioni risolto dal sistema stia causando problemi anche ad altre persone .
moodboom

Risposte:


46

Ubuntu 17.04 non è in grado di risolvere i server DNS con supporto DNSSEC dal 18-04-2017. Disabilita DNSSEC con questo demone:

sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf

Facoltativamente, riconfigurare resolvconf se hai sbagliato (dire di sì a "preparare /etc/resolve.conf per gli aggiornamenti dinamici?"):

sudo dpkg-reconfigure resolvconf

Riavvia systemd-risolto:

sudo systemctl restart systemd-resolved

Il tuo DNS dovrebbe iniziare a funzionare. Puoi verificare provando systemd-resolve www.google.come vedendo una risposta.


Grazie per la risposta, puoi spiegare cosa fa?
bertieb,

Ubuntu 17.04 non può (fino a qui) risolvere il server DNS con supporto DNSSEC. Disattivo DNSSEC con questo demone.
Sajad Bahmani,

Grazie, puoi modificare quella spiegazione nella tua risposta? :)
bertieb,

Questa soluzione non ha funzionato per me: dopo averlo impostato, comunque ogni volta che eseguo una ricerca la prima volta, ricevo un errore SERVFAIL, dopo un paio di tentativi ha esito positivo e quindi il risultato viene memorizzato nella cache.
Guss,

1
@SamuelL. per quanto riguarda tee, è solo un modo elegante per stampare qualcosa e inviarlo a un file allo stesso tempo. In genere puoi reindirizzare l'output su un file con> [il carattere maggiore di], ma non vedrai l'output. Tee lo lascia andare in entrambi i posti. Resolvconf "configures resol".
moodboom,

12

Sono passato avanti e indietro tra la gestione /etc/resolv.conf risolta da systemd e quella manuale e non ho ancora trovato stabile il meccanismo di risoluzione DNS di systemd.

Apparentemente c'è almeno un bug di libnss in Ubuntu 16.10 e apparentemente ancora in 17.04. Ci sono molte persone con problemi DNS da quando Ubuntu 16.10 è stato attivato come systemd, ecco un'analisi e qui c'è un'altra soluzione. Nessuno di loro ha funzionato per me fino a quando non ho sovrascritto manualmente /etc/resolv.conf con i server DNS di Google.

nameserver 8.8.8.8   << or another if you don't trust google
nameserver 8.8.4.4

Questa è una soluzione perfettamente valida , se non hai bisogno di una configurazione DNS dinamica. Assicurati solo di interrompere e disabilitare systemd-risolved:

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop

Il passaggio a resolveconf non ha aiutato il mio problema, come posso tornare a utilizzare systemd-resolved? (Grazie)
Edward Moffett,

1
Prova:systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
moodboom il

1
Amico, hai appena salvato un sistema !! BRAVO
rivoluzionario

Ha funzionato benissimo nel 18.04
André M. Faria il

4

Ubuntu 17.04 e altre distro stanno abbracciando systemd, che include systemd risolto, che sottopone gli utenti a una risoluzione DNS piuttosto pesante.

  • Come indicato nella risposta SjB, il supporto DNSSEC può causare problemi.
  • systemd risolto esegue il ping di tutti i resolver DNS in modo che possa utilizzare il più veloce. Ciò può causare problemi con VPN ecc. In ambienti più complessi.
  • I certificati del server DNS sono verificati, ho avuto errori se l'orologio è inclinato.

Non penso che sia necessariamente un MALE cambiamento, è solo MOLTO cambiamento. Cercherò di aggiornare ed espandere questa risposta mentre imparo di più.



1

aggiungi semplicemente il server dei nomi /etc/systemd/resolved.conf DNS = 194.109.xxx.xxx (sul tuo router, nameserver esterno)

systemctl restart systemd-risolved

non è necessario cambiare rand da 3 a 2, non è necessario cambiare l'impostazione di dnssec su off


Purtroppo questo da solo non risolve il problema "ogni altra richiesta fallisce" per me.
moodboom,

Concordo con @moodboom, anche questo non mi risolve.
André M. Faria,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.