systemd-resolved non esegue una query sul server DNS per il dominio locale


12

Dall'aggiornamento a 17.04 non riesco più a risolvere gli indirizzi nella mia rete locale (silvesternet.local). Ottengo la seguente risposta:

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

Nel journal ci sono solo rapporti di timeout per le transazioni relative a questa ricerca.

Ho usato Wireshark per annusare il traffico di rete e sembra che non cerchi nemmeno di cercare il nome. Non esiste alcun traffico DNS. Cercare un altro dominio esterno funziona bene.

Molti problemi riguardanti lo stesso argomento menzionano la modifica di nsswitch.conf, ma ciò non sembra risolvere nulla. Le mie impostazioni attuali sono:

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4

1
Hai corso sudo apt update && sudo apt full-upgrade? I bug nell'immagine di rilascio sono stati corretti ...
Zanna,

se si utilizza systemd-networkdper configurare le interfacce, potrebbe essere necessario aggiungere UseDomains=truenella [DHCP]sezione dei .networkfile: wiki.archlinux.org/index.php/systemd-networkd#.5BDHCP.5D
quixotic

Anzi, vicino al dominio. In realtà era un bug nel firmware di edgerouter che non impostava il dominio nella risposta dhcp.
Rob van der Most,

Risposte:


10

Credo che questo sia di progettazione.

Ubuntu 17.04 è passato a systemd-resolved per la risoluzione dei nomi e utilizza solo LLMNR (ricerca di nomi multicast) per la risoluzione di nomi con etichetta singola. Vedi questo link per i dettagli: https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

Per il ragionamento alla base di questa decisione, controlla la risposta di Poettering nella presente segnalazione di bug: https://github.com/systemd/systemd/issues/2514

UPD: questo problema può essere risolto utilizzando un dominio per la rete locale. Se l'interfaccia di rete è configurata (manualmente o tramite DHCP) per utilizzare un dominio di ricerca, il sistema risolto aggiungerà questo dominio ai nomi a etichetta singola e quindi li cercherà tramite DNS unicast.

Ovviamente il server DNS locale dovrebbe essere riconfigurato per riconoscere questi domini. Nel caso di dnsmasq che legge coppie host-to-IP locali da / etc / hosts, si può fare aggiungendo le seguenti istruzioni a dnsmasq.conf:

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2: O potresti semplicemente tornare a dnsmasq come descritto qui /ubuntu//a/911432/692094


E un'altra pagina di bug con alcune spiegazioni: github.com/systemd/systemd/issues/4821
ish-west,

Il nome di dominio era il problema qui. In realtà è stato anche causato da un bug nel firmware di edgerouter. L'opzione nome dominio dalla configurazione non è stata correttamente memorizzata nella configurazione dhcp. Quindi i client non hanno ottenuto un dominio da cercare.
Rob van der Most,

8

Ho avuto lo stesso problema su Ubuntu 18.04, che usa anche systemd-risolto per DNS. La sua configurazione predefinita non risolve i nomi host con etichetta singola o i nomi host di dominio .local tramite DNS, ma rispettivamente con LLMNR o mDNS.

Per rendere i nomi host locali a etichetta singola o i nomi host di dominio .local risolti da DNS, ho abilitato la terza delle "Quattro modalità di gestione /etc/resolv.conf" descritte nella pagina man per systemd-resolved.service :

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Una risposta simile è stata data qui . E ancora, per il ragionamento alla base del default, vedi la risposta di Poettering in questo rapporto sui bug .


2

Ciò che ha funzionato per me dopo l'upgrade a 18.04 è stato configurare il file /etc/systemd/resolved.conf modificando il parametro Domains nel dominio (locale o come nel mio caso mydomain.local). Ho anche modificato il parametro DNS, ma sembrava che non fosse pertinente, ma lo menziono nel caso in cui ciò non fosse vero. Per ulteriori informazioni, visitare https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html .

Inoltre ho cambiato la configurazione di avahi (/etc/avahi/avahi-daemon.conf) per cambiare il parametro del dominio all'interno della sezione del server da locale (predefinito) a qualcos'altro, come alcune persone hanno sottolineato in questo forum.

Con le modifiche menzionate posso raggiungere le macchine usando nomi senza punti, ad esempio eseguendo il ping al mio computer la macchina viene contattata correttamente. Tuttavia, se eseguo il ping a mycomputer.mydomain.local non funziona, l'FQDN non viene risolto come previsto.

Sperando che ciò aiuti in alcuni casi o porti a una soluzione più generale.


0

Ho affrontato questo problema a causa di una configurazione errata nsswitch.conf. Poiché la 12.04stringa seguente ha funzionato come previsto. I nomi host senza dominio si risolvono correttamente.

Ma la nuova 17.04versione (così come la versione 16.10) di Ubuntu con il vecchio modello per la configurazione del sistema nss non funziona come prima.

Versione errata di hosts, dalle vecchie versioni di Ubuntu: hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Versione funzionante di successo hosts, ad esempio dalla 17.04: hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

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.