Comment remplacer le serveur de noms fourni par DHCP?


12

Je pense que j'ai configuré une adresse IP statique dans /etc/network/interfaces:

# The primary network interface 
auto eth0 
iface eth0 inet static
    address 10.1.1.2
    netmask 255.255.255.0
    network 10.1.1.0
    broadcast 10.1.1.255
    gateway 10.1.1.1

Et je change le fichier /etc/resolv.confpour inclure les serveurs de noms souhaités.

Ensuite, je redémarre le réseautage sudo /etc/init.d/networking restart

Mais après quelques heures, resolv.conf revient toujours au serveur de noms DHCP.


Je dois également dire qu'il s'agit d'Ubuntu Server avec uniquement des interfaces l0et eth0.


Le resolvconfpackage est-il installé?
Gilles 'SO- arrête d'être méchant'

Essayez-vous d'utiliser dhclient sur une autre interface réseau (peut-être une interface wifi ou commutée), ou dhclient fonctionne-t-il incorrectement sur eth0 même s'il est censé être statique?
poolie

Il n'y a que eth0 et lo0, l'IP que j'ai définie manuellement est la même que l'IP DHCP que j'obtiendrai (le serveur DHCP servira toujours la même IP statique). Mais je ne veux pas utiliser le serveur de noms donné par le serveur DHCP, alors j'ai pensé que je définirais moi-même l'IP et il n'y aurait pas de DHCP, mais je ne comprends pas pourquoi le resolv.conf continue d'être mis à jour.
David Parks, le

Gilles - non, j'ai couru: dpkg -L resolvconf, et get: le paquet `resolvconf 'n'est pas installé.
David Parks

Réponses:


34

Si vous souhaitez remplacer ou ajouter aux serveurs de noms suggérés par le serveur DHCP, vous pouvez configurer cela dans /etc/dhcp/dhclient.conf, par exemple:

interface "eth0" {
    prepend domain-name-servers 10.0.0.2;
}

Vous pouvez également le faire à partir du contrôle "Modifier les connexions" dans l'indicateur de réseau dans Unity ou GNOME.


4
C'était la meilleure solution, j'ai posté une autre option, mais j'ai réalisé que la définition d'une adresse IP statique n'était pas une bonne idée dans un environnement AWS EC2. :)
David Parks

Que faire si vous souhaitez ajouter plusieurs serveurs de noms de domaine?
dangonfast

Le serveur de noms de domaine en cours 127.0.0.1semble ignorer le serveur de noms fourni par DHCP (cela ne se produit pas avant les autres serveurs de noms)
dangonfast

2
Remplacez prependpar supersedepour remplacer complètement la valeur DHCP.
Sqerstet

1

Une résolution qui résoudra votre problème consiste à configurer votre resolvconfpackage. Cela donnera la priorité à vos serveurs de noms préférés ainsi qu'à tout autre paramètre souhaité, les paramètres resolv.conf tels que les préférences de recherche et de domaine.

Modifiez le fichier: /etc/resolvconf/resolv.conf.d/head

Placez vos serveurs de noms souhaités et toutes les autres configurations que vous souhaitez privilégier en cas de changement de réseau. En cas de modification du réseau, la configuration y sera toujours prioritaire.

Un exemple du /etc/resolvconf/resolv.conf.d/headfichier:

# 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 8.8.8.8
search mydomain.com

Regardez la réponse à une question similaire:
remplacer le serveur de noms DNS

Remarque:
assurez-vous d'avoir un saut de ligne après la dernière entrée. La plupart des éditeurs fournissent automatiquement un saut de ligne lors de l'enregistrement du fichier.


-2

J'ai trouvé une référence à la suppression du client DHCP, je pense que c'était le principal coupable. Je l'ai fait et je n'ai pas encore vu le problème. Attendra jusqu'au matin pour confirmer, mais il semble que le client DHCP était toujours en cours d'exécution et a dû être arrêté et désinstallé.

apt-get remove isc-dhcp-client dhcp3-client dhcpcd

Je suis légèrement confus si la solution était la commande prepend ou si elle supprimait réellement le client DHCP.
Eugene van der Merwe

@EugenevanderMerwe C'est la commande prepend. L'affiche indiquait "C'était la meilleure solution, j'ai posté une autre option, mais j'ai réalisé que la définition d'une adresse IP statique n'était pas une bonne idée dans un environnement AWS EC2. :)"
Grammargeek

-3

En règle générale, vous devez toujours désinstaller tous les services réseau utilisant apt-get --purge remove <package-name>. De cette façon, tous les fichiers de configuration seront également supprimés.

Dans ce cas, la commande serait:

apt-get --purge remove isc-dhcp-client isc-dhcp-common

Cette commande supprimera complètement le isc-dhcp-client.


4
En quoi est-ce pertinent et pourquoi pensez-vous que c'est une bonne règle générale? Il ne veut pas arrêter d'utiliser DHCP?
poolie
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.