resolv.conf n'est pas défini au redémarrage lorsque la mise en réseau est configurée pour une adresse IP statique

17

Je rencontre ce qui semble être un problème de résolution de noms dans l'édition Ubuntu 12.04 Server lors de la configuration de mon ordinateur pour utiliser une adresse IP statique.

Dans / etc / network / interfaces:

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1

En cours d'exécution $ sudo apt-get upgrade, le résultat est "Échec de la récupération ...":

. . . W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/universe/i18n/Translation-en_US Something wicked happened resolving 'us.archive.ubuntu.com:http' (-5 - No address associated with hostname)
[...]

Lorsque je change mes / etc / network / interfaces en:

auto eth0
iface eth0 inet dhcp

Tout fonctionne bien.

La recherche dans /etc/resolv.conf fournit quelques conseils supplémentaires.

Dans les cas où j'obtenais le problème de résolution, resolv.conf était vide; aucun serveur de noms n'a été spécifié. Ensuite, je suis passé à DHCP de la mise en réseau statique et redémarré; /etc/resolv.conf a été changé en: 'nameserver 192.168.1.1'.

Le retour de DHCP à statique et le redémarrage ne supprime pas l'entrée du serveur de noms. Mais lorsque j'ai redémarré le système avec un ensemble statique, resolv.conf était vide. Lorsque je redémarre le système avec DHCP set, resolv.conf a le serveur de noms 192.168.1.1. Donc, il semble que le problème est que le fichier resol.conf ne soit pas correctement écrit? Quel package / code est responsable de l'écriture dans resolv.conf? Existe-t-il un package particulier que je peux examiner les problèmes ouverts?

MISE À JOUR: istream a publié un bon article discutant des modifications apportées à resolver.conf en 12.04. http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

kenneth koontz
la source
2
Si tout fonctionne bien lorsque vous utilisez DHCP, alors quel "problème" est-ce que vous voulez que les suggestions "corrigent". À quoi ressemble LAN? Quel type de routeur utilisez-vous? (Qu'y a-t-il en 192.168.1.1?) Quels serveurs DNS spécifiez-vous lorsque vous utilisez une adresse IP statique?
Irrationnel John
1
Titre mis à jour pour refléter plus précisément les symptômes et ajouter plus de résultats
kenneth koontz
+1 pour éditer la question et le titre afin de les améliorer même si vous avez déjà eu votre réponse!
Irrationnel John
1
Ajout de la référence d'istream aux modifications du DNS dans Ubuntu 12.04.
kenneth koontz

Réponses:

16

Conformément à la page de manuel resolvconf (exemple fourni dans la page de manuel), ajoutez ce qui suit à vos / etc / network / interfaces sous votre configuration statique:

dns-nameservers [IP address(es) of your DNS]     
dns-search      [your dns-search strings (optional)]
ukjola
la source
Parfait. Cela marche!
kenneth koontz
Ce qui est étrange cependant, c'est en 11.10 Je n'ai pas eu à spécifier de serveurs DNS.
kenneth koontz
C'est vrai. En 12.04, Ubuntu a commencé à utiliser resolvconf pour gérer resolv.conf. C'est resolvconf qui lit l' dns-nameserversoption dans / e / n / i.
jdthood
1

Êtes-vous sûr d'avoir fourni 192.168.1.1la valeur du DNS lors de la configuration de l'IP statique?

Je ne sais pas comment faire cela à partir de la ligne de commande, mais l'utilisation de l' System Settings -> Networkinterface graphique devrait également fonctionner, non? Tout ce que je pense, c'est que vous voulez quelque chose comme la capture d'écran ci-dessous? Ou est-ce que je ne comprends pas ce que vous essayez de faire?

Configuration réseau avec IP statique, route par défaut, serveur DNS

Remarque: Ignorez les valeurs dans la fenêtre de gauche. Ce ne sont que mes valeurs de DHCP. Je n'ai pas pris la peine de sauvegarder la configuration statique car j'essayais juste d'illustrer ce que je pensais.

Soit dit en passant, j'ai utilisé 192.168.1.1parce que c'est ce que vous utilisiez. Mais vous pouvez également utiliser les adresses IP pour tous les serveurs DNS valides. Par exemple, 8.8.8.8et / ou 208.67.222.222devrait également fonctionner.

irrationnel John
la source
Merci pour la solution. Cependant, je n'utilise pas de bureau.
kenneth koontz
@kennethkoontz Je ne comprends pas. Utilisez-vous un serveur Ubuntu? Si vous n'utilisez pas l'installation de bureau classique de 12.04, veuillez modifier votre question et y ajouter ces informations.
John irrationnel
2
Désolé pour la confusion. J'aurais dû dire: "Je n'utilise pas l'édition de bureau. J'utilise l'édition de serveur." Je mettrai à jour le post de question pour lever toute ambiguïté.
kenneth koontz
0

Si vous ne voulez pas (ou ne pouvez pas) utiliser l'applet Network Manager pour configurer vos paramètres réseau, je trouve la bonne façon de configurer une configuration IP "statique" , car lorsque vous n'avez pas de serveur DHCP disponible, est d'avoir un bail statique sur le dhclient.conf. Là, vous devez spécifier le serveur de noms qui sera écrit dans le resolv.conffichier lorsque dhclient retombera en statique.

Cependant, si vous ne voulez pas vous salir les mains, je recommande toujours d'utiliser l'interface graphique pour spécifier une adresse de serveur DNS dans les paramètres IP de votre connexion, comme dans /ubuntu//a/127537/33305 .

Simon
la source
0

L'OP utilise le serveur ed. NetworkManager ne s'applique pas ... mais qui sait peut-être qu'il sera ajouté juste pour ajouter de la complexité au serveur.

D'ailleurs, pourquoi dans le monde resolvconf a-t-il été ajouté au serveur ed ... POURQUOI !! ??!?

Quoi qu'il en soit, pour répondre à votre question, ajoutez:

/ etc / network / interfaces

quelque chose comme ça:

auto eth0 inet static
     dns-nameservers ns1.mydnsservers.com ns2.mydnsservers.com

L'option importante est "dns-nameservers".

jbowen7
la source