Comment puis-je ajouter des domaines de recherche supplémentaires au fichier resolv.conf créé par dhclient dans CentOS

35

Lorsque ma machine virtuelle CentOS démarre, elle utilise DHCP pour obtenir une adresse IP. Il remplace également resolv.conf par les paramètres DNS fournis par le serveur DHCP. Le serveur DHCP ne fournit aucun domaine de recherche, donc je voudrais demander à dhclient de mettre une liste de domaines de recherche lors de son écriture. Comment puis-je configurer dhclient pour ce faire?

Martin Hilton
la source

Réponses:

32

Aucun de ceux-ci ne fonctionnait, mais le dernier était le plus proche. Pour Red Hat 6, utilisez DOMAINau lieu de SEARCHcomme dans l'exemple ci-dessus et l'emplacement du fichier est différent.

J'ai modifié le fichier /etc/sysconfig/network-scripts/ifcfg-eth0

et changé

DOMAIN=domain.com

à

DOMAIN="domain.com sub.domain.com"

et tout a fonctionné.

Dean Hiller
la source
3
Vous devriez pouvoir utiliser les deux DOMAINet SEARCH github.com/mcr/isc-dhcp/blob/master/common/resolv.c#L68
Radek Simko
Cette technique de définition de DOMAIN a également fonctionné pour moi sur CentOS 6.5, même si mon resolution.conf est généré par NetworkManager plutôt que dhclient. Le fichier resol.conf généré a combiné mes entrées avec celles du serveur DHCP.
PolyTekPatrick
11

Vous pouvez également ajouter une chaîne à /etc/dhcp3/dhclient.conf comme ceci

prepend domain-search "domain1.com", "domain2.com";

Notez que cette méthode fonctionne également avec Debian Lenny et Squeeze.

Vyacheslav Gusev
la source
7

J'ai finalement réussi à résoudre ce problème. J'ai ajouté une ligne comme celle-ci à/etc/dhclient-eth0.conf

append domain-name "example.com";
Martin Hilton
la source
4

C'est principalement une note pour RHEL7 pour réduire les essais et les erreurs. Réponse de Dean de l'utilisation DOMAIN="domain1.exmaple.com domain2.example.com"dans les /etc/sysconfig/network-scripts/ifcfg-device.confœuvres. Une remarque intéressante est que le domaine de l'hôte que la connexion obtient à partir de DHCP est toujours ajouté au chemin de recherche, même si vous le laissez DOMAIN=ou le placez plus tard dans une liste pour DOMAIN=. Il semble /sbin/dhclient-scriptavoir un tas de logique lié à cela.

Lors de mes tests, j'ai trouvé que la suggestion de Philip d'utiliser /etc/dhcp/dhclient-device.conffonctionne également, bien qu'il y ait un comportement étrange avec cela, probablement en raison de cette même logique /sbin/dhclient-scriptqui essaie de déplacer les choses. Par exemple, ni ne remplacent ni ne préfixent le travail comme prévu, le domaine de l'hôte sera le premier. En guise de remarque sur cette méthode, /var/lib/NetworkManager/dhclient-device.confle fichier NetworkManager généré est utilisé par le client. Si vous avez un fichier /etc/dhcp/qui est lu, vous le verrez collé en haut du fichier et quelques options supplémentaires ajoutées ci-dessous.

Matt Pie
la source
AWS Linux (RHEL), DOMAIN="your.domain"n'a pas fonctionné pour moi, réinitialisé après le redémarrage
radtek
2

La /etc/dhclient-eth0.confréponse ci-dessus n'a pas fonctionné pour moi. Je n'ai pas de /etc/dhcp3répertoire, donc je ne pensais pas que cela allait fonctionner non plus.

Après avoir examiné le /sbin/dhclient-scriptfichier (qui se crée /etc/resolv.confsur mon système Centos 5.6), j'ai ajouté la ligne SEARCH ci-dessous pour/etc/sysconfig/networking/devices/ifcfg-eth0:

DEVICE=eth0 
BOOTPROTO=dhcp
HWADDR=08:00:24:61:17:AC 
ONBOOT=yes
TYPE=Ethernet
SEARCH="example.com sub1.example.com sub2.example.com"

Ensuite:

# ifdown eth0
# ifup eth0
#  cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search example.com sub1.example.com sub2.example.com
nameserver 10.1.0.11
BabarOnWheels
la source
2

Pour quiconque passe par la pile de scripts plutôt opaque de Fedora / Red Hat, la réponse, au moins sur la dernière AMI d'Amazon, c'est /etc/dhclient-eth0.conf (et non le dossier vide du leurre à / etc / dhcp /). Le fichier n'est pas présent et devra être créé

Dr David C Crooke
la source
2
L'ajout de RECHERCHE à ifcfg-eth0 / etc / sysconfig / network-scripts / ifcfg-eth0 fonctionne également sur la version Amazon de Fedora. Dans les anciennes versions de Red Hat, il s'agissait apparemment de DOMAIN. Je recommanderais ceci par dessus.
Dr David C Crooke,
2

Sur CentOS 6, j'utilise le fichier suivant pour ajouter mon domaine de recherche DNS préféré:

# cat /etc/dhcp/dhclient-eth0.conf 
interface "eth0" {
    supersede domain-search "dns1.example.com";
}
# getenforce 
Enforcing
# ls -lZ /etc/dhcp/dhclient-eth0.conf 
-rw-r--r--. root root system_u:object_r:bin_t:s0   /etc/dhcp/dhclient-eth0.conf
#

Ce fichier est le premier vérifié /etc/sysconfig/network-scripts/ifup-eth:

if [ -s /etc/dhcp/dhclient-${DEVICE}.conf ]; then
   DHCLIENTCONF="-cf /etc/dhcp/dhclient-${DEVICE}.conf";

Voir aussi: redhat - Configuration de DHCP sur RHEL 6 - Erreur serveur

Philip Durbin
la source
Une remarque à ajouter - si vous spécifiez plusieurs domaines de recherche pour dhclient en utilisant (option|supersede|*) domain-search ..., assurez-vous de suivre les dhcp-options(5)spécifications de la page de manuel pour citer des domaines individuels: de option domain-search "example.com", "sales.example.com", "eng.example.com";nombreuses distributions plus anciennes de dhclient autorisaient le format "example.com sales.example.com eng.example.com";mais cette compatibilité a été supprimée au cours des dernières années en raison de corrections de bugs bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/777785
Patrick
1

Dans Fedora 19, ajoutez les lignes suivantes à /etc/dhcp/dhclient.conf

# /etc/dhcp/dhclient.conf

interface "p2p1"
{
    supersede domain-name-servers 8.8.8.8, 8.8.4.4;
    append domain-name " mydomain.net example.com";
}

Fonctionne bien avec NetworkManager. Détails voir:# man dhclient.conf

Ruslan K
la source
ne fonctionne pas pour aws linux (rhel)
radtek
0

Ajoutez à la conf du serveur dchp (isc dhcpd):

option domain-name "domain1.com domain2.net domain3.org";

Où domaine1.com, etc. sont les suffixes de domaine que vous souhaitez ajouter au fichier resolv.conf sur chaque client.

LinuxUser
la source
0

Puisque je ne vois pas cette réponse et que cela a fonctionné pour moi (tandis que les autres ne l'ont pas vu), la voici: éditez de /etc/resolvconf/resolv.conf.d/basela même manière que vous le feriez /etc/resolv.conf. Vous aurez besoin resolvconfinstallé.

appas
la source