16.10 impossibile risolvere il DNS


34

Dopo aver aggiornato la mia installazione 16.04 a 16.10, ho problemi con DNS.

Innanzitutto ho avuto problemi un paio di volte quando sono collegato al WiFi, mentre ha funzionato su Ethernet. Ora sembra funzionare anche su WiFi. Non sono sicuro del perché e se sia in qualche modo correlato al problema che devo affrontare ora:

Quando ci si connette a un host VPN con Cisco Anyconnect VPN , aggiunge una riga in "/etc/resolv.conf" . Capisco che Ubuntu ora sta usando systemd-resolver e la pagina man dice che ci sono tre diverse modalità per gestire /etc/resolv.conf. Il mio /etc/resolv.conf non è un collegamento simbolico e non elenca 127.0.0.53 come un server DNS, quindi per quanto ho capito systemd risolto dovrebbe "leggerlo per i dati di configurazione DNS". Tuttavia, non sembra interessarsene.

scavare

La cosa strana (per me) è che dig host.customer.tld, restituisce una bella risposta con una SEZIONE RISPOSTA che mostra l'ip dell'host richiesto e si riferisce al server DNS aggiunto a /etc/resolv.conf dal client vpn come SERVER. Quando la connessione VPN è disabilitata non ricevo risposta. Vale a dire scavare legge /etc/resolv.conf .

ping

Il browser, dall'altro lato, non arriva a /etc/resolv.conf e non è in grado di risolvere il nome host. Neanche ping / curl, comunque.

nmcli

Ho trovato un post correlato e ho provato a correre

nmcli device show <interfacename> | grep IP4.DNS

ma non elenca nessun DNS per il dispositivo cscotun0. (Non lo è nemmeno nel 16.04.) Inoltre, nmcli elenca il mio server dhcp (il mio router) come host IP4.DNS per le mie connessioni eth / wlan. L'uso dig @192.168.0.1 xxxper qualsiasi dominio pubblico funziona bene.

configurazione

Ci sono alcuni altri server DNS elencati nel mio /run/systemd/resolve/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844

Questi non sono serviti dal mio server DHCP. il file /etc/systemd/resolved.conf contiene solo righe commentate, ad eccezione dell'intestazione di sezione:

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

Lo dice la pagina man di resolved.conf

DNS = Un elenco separato da spazi di indirizzi IPv4 e IPv6 da utilizzare come server DNS di sistema. ... Per motivi di compatibilità, se questa impostazione non viene specificata, vengono utilizzati i server DNS elencati in /etc/resolv.conf, se quel file esiste e tutti i server sono configurati in esso. L'impostazione predefinita è l'elenco vuoto.

FallbackDNS = Un elenco separato da spazi di indirizzi IPv4 e IPv6 da utilizzare come server DNS di fallback. Qualsiasi server DNS per collegamento ottenuto da systemd-networkd.service (8) ha la precedenza su questa impostazione, così come tutti i server impostati tramite DNS = above o /etc/resolv.conf. Questa impostazione viene quindi utilizzata solo se non sono note altre informazioni sul server DNS. Se questa opzione non viene fornita, viene invece utilizzato un elenco compilato di server DNS.

Sembra che il fallback finisca in /run/systemd/resolve/resolv.conf nel mio caso.

EDIT: Non ero sicuro di quale fosse il problema, e ad essere sincero, non so ancora esattamente come funzioni, ma almeno si è scoperto che la soluzione nel mio caso era disabilitare il systemd-resolvedservizio. Ho pensato che fosse richiesto il servizio, che fosse il componente che forniva il servizio DNS a tutte le applicazioni locali, ma apparentemente c'è qualcos'altro lì dentro che fa quel lavoro.


Hai un problema con il DNS se non stai usando la VPN?
Mark Stosberg,

Hai provato questa soluzione per problemi AnyConnect su 16.04 che potrebbero essere applicabili?
Mark Stosberg,

3
Volevo solo notare che sto riscontrando esattamente gli stessi problemi con Anyconnect il 16.10. La connessione più volte al servizio VPN sembra risolverlo temporaneamente, ma ad un certo punto il DNS non funziona più.
jmartinez,

2
Ho problemi di risoluzione DNS simili che non erano presenti con 16.04. Il mio suggerimento è di iniziare rimuovendo (backup) /etc/resolv.conf; disinstallare il pacchetto resolvconf; riavviare; e usa dig, systemd-resolver con e senza VPN per vedere cosa funziona o no.
philcolbourn,

1
Confronta questa segnalazione di bug: bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317
jdthood

Risposte:


15

Ho riscontrato problemi simili, ad esempio con l'aggiunta di un dongle USB USB aggiuntivo. Per prima cosa ho disabilitato dnsmasq nel gestore delle reti come descritto sopra e ho interrotto dnsmasq (servizio dnsmasq stop)

Ho notato che durante la risoluzione si è interrotto durante la connessione VPN, la tabella di routing sembra leggermente diversa (output del comando route). Il nome del gateway è DD-WRT nel caso in cui non funzioni e semplicemente "gateway" quando funziona. L'output di questo non è cambiato:

nmcli device show wlp1s0 | grep IP4.DNS

Continuava a mostrare il mio IP router. Una soluzione alternativa per farlo funzionare per un po 'è riavviare systemd-resolvd:

sudo service systemd-resolved restart

Poiché dnsmasq non è compreso nell'equazione, è la causa del problema o systemd-resolvd o qualsiasi cosa cambi la tabella di routing.

Quindi questa è l'unica differenza che vedo:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    601    0        0 

che funziona. E questo quando NON funziona:

ubuntu@ubuntu-Lenovo-Yoga-2-11:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    601    0        0 wlp1s0

E la stessa differenza di nome sulla linea VPN:

vpn-dns.name gateway         255.255.255.255 UGH   0      0        0 wlp1s0

Chi sa cosa può influenzare la tabella di routing? Sarebbe bello se riuscissimo a identificarlo in modo da poter presentare una segnalazione di bug. Mi sto davvero ammalando e stanco di perseguire tutti questi bug, ma vorrei risolverli in modo che i futuri utenti e noi saremo felici :).

[aggiornamento] Sembra che l'arresto di systemd-risolto possa risolvere questo problema e non influire negativamente su altre cose. Puoi provarlo e fargli sapere se si rompe roba. Ho visto quando eseguiva systemd-resolvd in debug quando si è rotto:

Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *

Disabilitare:

sudo systemctl disable systemd-resolved.service

Ho aggiornato il rapporto Ubuntu con suggerimenti. [/ update] Aggiungi: Nota: la segnalazione di bug: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317 ha una patch per 17.04 per alcuni problemi. Controlla la segnalazione dei bug e, se possibile, verifica la patch. Grazie!

[aggiornare]

Si prega di controllare la segnalazione di bug sopra menzionata, il problema sembra risolto per 17.10 e con un semplice comando è possibile disabilitare anche la perdita DNS.

[/aggiornare]


Grazie per il rapporto completo! Vedo diversi cambiamenti nella tabella di routing di te: la mia VPN sembra aggiungere molti percorsi, sospetto dinamicamente mentre vengono utilizzati. Tuttavia, disabilitare il sistema risolto ha funzionato molto bene anche per il mio problema!
aweibell,

Penso che alla fine il nome nella tabella di routing non abbia avuto importanza, è stato in qualche modo risolto dal sistema che rovinava il DNS. Ho anche dovuto disabilitare il servizio dnsmasq per impedirne l'avvio ma ora funziona tutto. Speriamo che qualcuno risolva il corretto set di dipendenze tra i pacchetti necessari per far funzionare tutto correttamente. È un bug così fastidioso da affrontare.
Vincent Gerris,

vale la pena notare che ho lottato per un giorno intero con questo problema, riavviare il servizio risolto da systemd non ha fatto nulla per me, ma disabilitarlo completamente e senza problemi più!
fd8s0,

Giusto per ribadire, ho avuto problemi di rete per diversi giorni da quando ho effettuato l'aggiornamento a 17.04 dalle 16.10. Ho provato la maggior parte delle risposte qui, la maggior parte funziona da un po 'e poi il problema ricomincia ciò che alla fine ha funzionato disabilitando systemd-risolto usando sudo systemctl disable systemd-resolved.service e impostando il dns a 8.8.8.8 in /etc/resolv.conf
Japheth Ongeri - inkalimeva

Questa semplice riga ha risolto per me: sudo service riavvio risolto dal sistema, grazie!
Sergio Abreu,

36

Il comportamento DNS durante la connessione OpenVPN è migliorato immediatamente quando ho seguito un suggerimento su ubuntuforums:

  1. Apri /etc/NetworkManager/NetworkManager.confin un editor con diritti di root.
  2. Elimina (o commenta con un hash #) la riga che leggedns=dnsmasq
  3. Riavviare NetworkManager tramite sudo service NetworkManager restart

Grazie. Ho provato questo ora, ma non ha funzionato. In realtà, il DNS funziona bene, tranne quando avvio il client VPN Cisco, che sostituisce il collegamento simbolico /etc/resolve.conf con un file di testo semplice.
aweibell,

1
Questa correzione ha funzionato per me, avevo problemi DNS con OpenVPN. Dopo questa modifica, il mio /etc/resolve.conf è cambiato. È molto strano dal momento che non ho nemmeno installato dnsmasq.
postfuturista il

Questo potrebbe funzionare per problemi con NM e openvpn, ma almeno rallenta le connessioni. Come è indovinato qui .
BairDev,

3

Ho affrontato lo stesso problema. In qualche modo devo aver installato DNSmasq con qualche applicazione. La semplice rimozione di dnsmasq ha risolto il problema per me.

sudo apt-get remove dnsmasq 

Da allora, non più disconnessioni o alcuni siti non sono più in grado di caricare (ho avuto un problema con il caricamento di Gmail, ovvero all'improvviso non è stato possibile connettersi a Gmail, anche se altri siti hanno funzionato).


Quando si tenta di rimuovere il pacchetto dnsmasq-base , aptitude mi dice che è richiesto dal gestore della rete e da Ubuntu-fan , e la sua rimozione comporterà la rimozione di molti pacchetti aggiuntivi ..
aweibell

Quale distribuzione e versione? Sono su Ubuntu 16.10 e non ho avuto problemi a rimuoverlo. Altrimenti non l'avrei pubblicato :)
Nitai l'

Sono anche su Ubuntu 16.10! Strano. apt remove dnsmasq-base...The following packages will be REMOVED: account-plugin-ubuntuone checkbox-converged checkbox-gui dnsmasq-base indicator-network network-manager network-manager-gnome network-manager-openconnect network-manager-openconnect-gnome network-manager-openvpn network-manager-openvpn-gnome network-manager-pptp network-manager-pptp-gnome network-manager-vpnc pay-service plainbox-provider-checkbox plainbox-provider-resource-generic ubuntu-desktop ubuntu-fan ubuntu-push-client ....
Aweibell,

Lo stesso qui con il 16.10. Vuole rimuovere anche tutti quegli altri pacchetti.
Dave Kincaid,

L'altro giorno ho avuto di nuovo una disconnessione. In qualche modo un'app deve aver reinstallato nuovamente dnsmasq. In ogni caso, questa volta l'ho semplicemente disabilitato con systemd. Finora non funziona più e non ho nemmeno disconnessioni.
Nitai,

1

Modifica /etc/nsswitch.confe cambia

hosts:          files mdns4_minimal [NOTFOUND=return] dns

a

hosts:          files dns mdns4_minimal [NOTFOUND=return]

Modificare:

Ho avuto gli stessi problemi per un bel po 'di tempo. Sono stato in grado di risolvere i nomi di dominio da VPN ma non sono stato in grado di eseguire il ping o arricciarli o utilizzarli in altre applicazioni. Il cambiamento descritto sopra lo ha risolto per me.

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.