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.