Ubuntu: come configurare correttamente i server DNS in / etc / network / interfaces per resolvconf?


14

Tutti gli esempi che ho visto di configurazioni ( /etc/network/interfaces) hanno mostrato che si configura un'interfaccia e quindi sotto che ha dato le dns-*linee come:

auto eth0
iface eth0 inet static
        ...
        dns-nameservers 127.0.0.2
        dns-search example.com my.example.com

Ora sono consapevole che il protocollo DNS è indipendente dal meccanismo di trasporto. Pertanto, non dovrebbe essere di per sé sbagliato aggiungere un indirizzo IPv6 sulla dns-nameserverslinea.

Tuttavia, poiché sto anche configurando l'interfaccia per IPv6, ha senso aggiungere la dns-nameserverslinea lì:

iface eth0 inet6 static
        ...
        dns-nameservers ::2
        dns-search example.com my.example.com

... o l'ha fatto? Perché quando lo resolvconfcrea /etc/resolv.confsemplicemente ignora tutti i server DNS IPv6. Sembra anche ignorare dns-searche dns-domain. L'unica linea che sembra onorare è la dns-nameserverslinea della configurazione IPv4 per eth0.

Qual è il metodo corretto di configurazione dei server DNS?


Ulteriori prove circostanziali sul motivo per cui dovrebbe far parte di ciascuna rispettiva ifacestrofa. Citazione da man 8 resolvconf:

Il ifup(8) programma può essere utilizzato per configurare le interfacce di rete in base alle impostazioni in /etc/network/interfaces(5). Per fare in modo che ifuple informazioni del server dei nomi push vengano resolvconfconfigurate quando configura un'interfaccia, aggiungere dns-linee alla ifacestanza pertinente in /etc/network/interfaces. Per aggiungere gli indirizzi del nameserver aggiungere una riga che inizia con dns-nameservers.


Se il problema persiste, si prega di pubblicare l'intero file / etc / network / interfaces e l'output di / usr / share / resolvconf / dump-debug-info che è incluso nel pacchetto resolvconf in Ubuntu 15.04.
jdthood,

Risposte:


9

È corretto inserire le opzioni dns- * nella iface eth0 inet staticstanza o nella iface eth0 inet6 staticstanza. Le opzioni diventano attive quando diventa attiva la definizione dell'interfaccia logica a cui appartengono.

Ho appena provato questo sul mio computer Ubuntu 15.04 che normalmente configuro con DHCP. Ho disabilitato NetworkManager e modificato / etc / network / interfaces in modo che appaia così:

iface eth0 inet static
        address 192.168.178.22
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8
        dns-search foo

iface eth0 inet6 static
        address fe80::390:f5ff:fef7:96b9/64
        dns-nameservers ::2
        dns-search bar

L'ho fatto allora

$ sudo ifup eth0

I risultati:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:90:f5:f7:96:b9  
      inet addr:192.168.178.22  Bcast:192.168.178.255  Mask:255.255.255.0
      inet6 addr: fe80::390:f5ff:fef7:96b9/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2114609 errors:0 dropped:1 overruns:0 frame:0
      TX packets:1757693 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:2033346950 (2.0 GB)  TX bytes:1318685445 (1.3 GB)
      Interrupt:20 Memory:f7e00000-f7e20000 

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver ::2
nameserver 8.8.8.8
search bar foo

Nota che ora sono attivi gli indirizzi, i server DNS e le opzioni di ricerca DNS di entrambe le stanze.

[Aggiornato il 30 maggio 2015]


1

Sul mio RPi con Ubuntu 16.04.2 LTS, i miei risultati sono stati i seguenti:

Nota: ho disinstallato NetworkManager e ho appena lasciato resolvconf per fare le sue cose. (Questo è un server fisso, quindi le cose non cambiano molto in termini di rete.)

Se avessi le linee dns-search e dns-nameserver su una sola interfaccia (la principale, una cablata) ma non l'altra (wlan0) quindi al riavvio, circa il 95% delle volte il mio file /etc/resolv.conf sarebbe vuoto.

ad es. quando il mio file delle interfacce appariva così:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1 
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

POI dopo un riavvio il mio resolv.conf sarebbe simile a questo:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

Tuttavia, su uno o due riavvii ho notato che DID aveva quello che volevo, ad es

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

Soluzione Quando ho dato a ENTRAMBE le interfacce (cablata e wlan0) le linee dns-search e dns-nameserver, tutto ha funzionato bene ad ogni riavvio (finora comunque)

cioè il seguente file di interfacce funziona per me:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

e mi dà il seguente resolv.conf corretto dopo ogni riavvio (finora)

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

Presumo che questa configurazione duplicata sia normale, anche se in qualche modo ridondante.

Conclusione: se un'interfaccia (diversa da lo0) non ha informazioni su dns-search e dns-nameserver, resolvconf non inserisce nulla nel file resolv.conf. (È come se ifup eseguisse la seconda interfaccia wlan0 e ifup cancellasse resolv.conf o simili.)

Non sono sicuro che si tratti di un bug o meno, ma mi sento male per me.


-1

Modificare le interfacce di rete per aggiungere l'uso del tuo DNS personalizzato è un modo ... ma per modificare permanentemente il resolv.conf a livello di sistema con il tuo dnsnameserver personalizzato devi installare il pacchetto resolvconf (se non è già installato di default) e popolarne la base file di configurazione con i valori dei nameserver DNS personalizzati. Spero che questa breve guida ti aiuti per ulteriori configurazioni riguardanti le voci DNS resolv.conf http://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/


2
Benvenuti in Unix e Linux! Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui più parti essenziali di quella guida e fornire il collegamento come riferimento.
Anthon,

@MateiCezar: potresti per favore elaborare? Non sono sicuro che tu abbia letto la mia domanda fino alla fine. Il pacchetto resolvconf è installato. Vorrei /etc/network/interfacesconfigurare i miei server DNS rispettivamente per IPv4 e IPv6.
0xC0000022L

-1

Si desidera utilizzare i server DNS IPv6 su /etc/network/interfaces... basta inserire le voci dei nomi DNS IPv6 sull'interfaccia di rete specifica in questo modo:

dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888. 

Per l'aggiunta permanente di nomi DNS IPv6 a resolv.conf utilizzare lo stesso collegamento che ho aggiunto di seguito e modificare il file di base resolvconf popolando con i propri nomi DNS IPv6:

nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888 

Per configurare / etc / network / interfaces con IPv6 usare questa guida http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/ e sostituire IPv4 con IPv6 come segue: auto eth0

iface eth0 inet6 static
        address 2800:210:0:1::3
        netmask 64
        gateway 2800:210:0:1::1
        dns-nameservers 2001:4860:4860::8844 

Risolto il problema con la formattazione. Ancora una volta, la mia domanda afferma chiaramente che ciò non comporta l'aggiunta di quei server DNS per IPv6 /etc/resolv.conf. Se in qualche modo funziona per te, sarebbe utile conoscere la versione esatta del sistema.
0xC0000022L

fammi capire bene ... vuoi usare i resolver DNS IPv6 da / etc / network / interfaces e in qualche modo aggiungerli in quel file non funziona per te?
Matei Cezar,

Posso aggiungerli alla /etc/network/interfacesfine. Ciò che non accade è che vengono trasferiti /etc/resolv.confcome dovrebbero. E sto cercando di capire cosa sto facendo di sbagliato, sì.
0xC0000022L

Non l'hai ancora capito? Quelle voci DNS da / etc / network / interfaces vengono trasferite in /etc/resolv.conf o no? Usullay quelle voci namservers dalle interfacce non vengono mai trasferite o scritte su /etc/resolv.com, funzionano da sole da quella NIC e non sono implementate a livello di sistema. Solo il file DNS /etc/resolv.conf viene utilizzato dalle interfacce prive di voci dnsnameservers.
Matei Cezar,

Siamo spiacenti ... ma ancora non capisco cosa cerchi di ottenere con le voci DNS di questo server dei nomi.
Matei Cezar,

-1

Perché non implementare quei server dei nomi DNS IPv6 direttamente sul file di sistema /etc/resolv.conf modificando il file di base resolvconf come suggerito nella mia precedente risposta con il collegamento e continuando comunque a utilizzare il file delle interfacce di rete? È possibile aggiungere un set di nameserver IPv6 DNS in /etc/resolv.conf e se si desidera utilizzare altri nameserver IPv6 per una scheda di rete specifica, utilizzarli solo su / etc / network / interfaces.


quello che dici nella tua ultima frase è esattamente il motivo per cui non voglio usare la configurazione di base resolvconf ed è esattamente quello che sto provando. Inoltre è esattamente ciò che sta fallendo.
0xC0000022L

ok ho capito! Ma perché vuoi implementare le cose in questo modo? In entrambi i casi hai solo bisogno che quei nameserver DNS siano accessibili a livello di sistema, c'è qualche motivo per trasferirli dalla rete / interfacce a resolv.conf, quando puoi semplicemente scriverli in entrambi file e il gioco è fatto !?
bytelinux com

Non sono sicuro di quante macchine gestisci, ma per me è sufficiente provare a semplificarmi la vita. Dal momento che /etc/network/interfacesdovrebbe fare il lavoro, sto cercando di capire cosa sto facendo di sbagliato.
0xC0000022L
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.