web-dev-qa-db-fra.com

Ubuntu: Comment configurer correctement les serveurs DNS dans / etc / network / interfaces pour resolvconf?

Tous les exemples que j'ai vus de configurations (/etc/network/interfaces) Ont montré que vous configurez une interface puis en dessous qui a donné les lignes dns-* Telles que:

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

Maintenant, je suis conscient que le protocole DNS est indépendant du mécanisme de transport. Par conséquent, il ne devrait pas être faux en soi d'ajouter une adresse IPv6 sur la ligne dns-nameservers.

Cependant, comme je configure également l'interface pour IPv6 de toute façon, il était logique d'y ajouter la ligne dns-nameservers:

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

... ou l'a fait? Parce que lorsque resolvconf crée /etc/resolv.conf, Il ignore simplement tous les serveurs DNS IPv6. Il semble également ignorer dns-search Et dns-domain. La seule ligne qu'il semble honorer est la ligne dns-nameservers De la configuration IPv4 pour eth0.

Quelle est la bonne méthode de configuration des serveurs DNS?


Preuve circonstancielle supplémentaire expliquant pourquoi elle devrait faire partie de chaque strophe iface respective. Citation de man 8 resolvconf :

Le programme ifup(8) peut être utilisé pour configurer les interfaces réseau selon les paramètres de /etc/network/interfaces(5). Pour faire ifup Poussez les informations du serveur de noms vers resolvconf lors de la configuration d'une interface, ajoutez des lignes dns- À la strophe iface appropriée dans /etc/network/interfaces. Pour ajouter des adresses de serveurs de noms, ajoutez une ligne commençant par dns-nameservers.

14
0xC0000022L

Il est correct de placer les options dns- * dans le iface eth0 inet static strophe ou iface eth0 inet6 static strophe. Les options deviennent actives lorsque la définition d'interface logique à laquelle elles appartiennent devient active.

Je viens de le tester sur ma propre machine Ubuntu 15.04 que je configure normalement avec DHCP. J'ai désactivé NetworkManager et édité/etc/network/interfaces pour qu'il ressemble à ceci:

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

J'ai fait

$ Sudo ifup eth0

Les resultats:

$ 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

Notez que les adresses, les serveurs DNS et les options de recherche DNS des deux strophes sont maintenant actives.

[Mis à jour le 30 mai 2015]

9
jdthood

Sur mon RPi exécutant Ubuntu 16.04.2 LTS, mes conclusions étaient les suivantes:

Remarque: j'ai désinstallé NetworkManager et je viens de quitter resolvconf pour faire son travail. (Il s'agit d'un serveur fixe, donc les choses ne changent pas beaucoup sur le réseau.)

SI je n'avais les lignes dns-search et dns-nameserver que sur UNE seule interface (la principale, câblée) mais pas l'autre (wlan0) puis au redémarrage , environ 95% du temps, mon fichier /etc/resolv.conf est vide.

par exemple. Lorsque mon fichier d'interfaces ressemblait à ceci:

# 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

PUIS après un redémarrage, mon resolv.conf ressemblerait à ceci:

# 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

Cependant, lors d'un ou deux redémarrages, j'ai remarqué qu'il DID avait ce que je voulais, par exemple.

# 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

Solution Quand j'ai donné aux DEUX interfaces (filaires et wlan0) les lignes dns-search et dns-nameserver, tout a bien fonctionné à chaque redémarrage (jusqu'à présent de toute façon)

c'est-à-dire que le fichier d'interface suivant fonctionne pour moi:

# 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

et me donne le resolv.conf correct suivant après chaque redémarrage (jusqu'à présent)

# 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

Je suppose que cette configuration en double est normale, quoique quelque peu redondante.

Conclusion: si une interface (autre que lo0) manque d'informations dns-search et dns-nameserver, alors resolvconf ne place rien dans votre fichier resolv.conf. (C'est comme si ifup a fait l'interface wlan0 en second et ifup a effacé resolv.conf ou similaire.)

Je ne suis pas sûr que ce soit un bug ou non, je me sens mal.

1
Will