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 faireifup
Poussez les informations du serveur de noms versresolvconf
lors de la configuration d'une interface, ajoutez des lignesdns-
À la stropheiface
appropriée dans/etc/network/interfaces
. Pour ajouter des adresses de serveurs de noms, ajoutez une ligne commençant pardns-nameservers
.
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]
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.