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 xxx
per 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-resolved
servizio. 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.