Wie kann ich der von dhclient in CentOS erstellten resolv.conf zusätzliche Suchdomänen hinzufügen?

35

Wenn meine virtuelle CentOS-Maschine gestartet wird, verwendet sie DHCP, um eine IP-Adresse abzurufen. Außerdem wird die Datei resolv.conf mit den vom DHCP-Server bereitgestellten DNS-Einstellungen überschrieben. Der DHCP-Server stellt keine Suchdomänen bereit. Ich möchte, dass dhclient beim Schreiben eine Liste mit Suchdomänen erstellt. Wie kann ich dhclient dafür konfigurieren?

Martin Hilton
quelle

Antworten:

32

Keiner von denen hat funktioniert, aber der letzte war der nächste. Verwenden Sie für Red Hat 6 DOMAINanstelle des SEARCHobigen Beispiels, und der Speicherort der Datei ist unterschiedlich.

Ich habe die Datei geändert /etc/sysconfig/network-scripts/ifcfg-eth0

und verändert

DOMAIN=domain.com

zu

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

und es hat alles geklappt.

Dean Hiller
quelle
3
Sie sollten in der Lage sein, beide DOMAINund SEARCH github.com/mcr/isc-dhcp/blob/master/common/resolv.c#L68
Radek Simko
Diese Technik zum Festlegen von DOMAIN funktionierte auch unter CentOS 6.5, obwohl meine resolve.conf nicht vom dhclient, sondern vom NetworkManager generiert wird. In der generierten resolve.conf-Datei wurden meine Einträge mit denen vom DHCP-Server kombiniert.
PolyTekPatrick
11

Sie können auch so einen String zu /etc/dhcp3/dhclient.conf hinzufügen

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

Beachten Sie, dass diese Methode auch mit Debian Lenny und Squeeze funktioniert.

Vyacheslav Gusev
quelle
7

Am Ende habe ich es geschafft. Ich habe eine Zeile wie die folgende hinzugefügt/etc/dhclient-eth0.conf

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

Dies ist hauptsächlich ein Hinweis für RHEL7, um die Anzahl der Versuche und Fehler zu verringern. Dekans Antwort auf die Verwendung DOMAIN="domain1.exmaple.com domain2.example.com"in /etc/sysconfig/network-scripts/ifcfg-device.confWerken. Ein interessanter Hinweis ist, dass die Domäne des Hosts, die die Verbindung von DHCP erhält, immer dem Suchpfad vorangestellt wird, auch wenn Sie sie weglassen DOMAIN=oder später in eine Liste für aufnehmen DOMAIN=. Es sieht so aus, als hätte /sbin/dhclient-scriptes eine Menge Logik damit zu tun.

Bei meinen Tests stellte ich fest, dass Philipps Vorschlag , /etc/dhcp/dhclient-device.confauch zu verwenden, funktioniert, obwohl es dabei ein seltsames Verhalten gibt, das höchstwahrscheinlich auf dieselbe Logik zurückzuführen ist /sbin/dhclient-script, die versucht, Dinge zu bewegen. Beispielsweise wird die Domain des Hosts an erster Stelle stehen, wenn die Arbeit nicht wie erwartet abgelöst oder vorangestellt wird. Eine Randnotiz zu dieser Methode /var/lib/NetworkManager/dhclient-device.confist die generierte NetworkManager-Datei, die vom Client verwendet wird. Wenn Sie eine Datei haben /etc/dhcp/, die eingelesen wird, wird sie oben in die Datei eingefügt und unten werden einige zusätzliche Optionen hinzugefügt.

Matt Pie
quelle
AWS Linux (RHEL), DOMAIN="your.domain"hat bei mir nicht funktioniert, nach Neustart zurückgesetzt
radtek
2

Die /etc/dhclient-eth0.confAntwort oben hat bei mir nicht funktioniert. Ich habe kein /etc/dhcp3Verzeichnis, also dachte ich auch nicht, dass das funktionieren würde.

Nachdem ich die /sbin/dhclient-scriptDatei untersucht hatte (die /etc/resolv.confauf meinem Centos 5.6-System erstellt wurde), fügte ich die Zeile SEARCH hinzu/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"

Dann:

# 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
quelle
2

Für alle, die Fedora / Red Hats ziemlich undurchsichtigen Stapel von Skripten durchgehen, lautet die Antwort, zumindest auf Amazons neuestem AMI, /etc/dhclient-eth0.conf (und nicht der leere Ordner von / etc / dhcp /). Die Datei ist nicht vorhanden und muss erstellt werden

Dr. David C. Crooke
quelle
2
Das Hinzufügen von SEARCH zu ifcfg-eth0 / etc / sysconfig / network-scripts / ifcfg-eth0 funktioniert auch auf der Amazon-Version von Fedora. In älteren Versionen von Red Hat war es anscheinend DOMAIN. Ich würde dies über die oben empfehlen.
Dr David C Crooke
2

Unter CentOS 6 verwende ich die folgende Datei, um meine bevorzugte DNS-Suchdomäne hinzuzufügen:

# 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
#

Diese Datei ist die erste, die eingecheckt wird /etc/sysconfig/network-scripts/ifup-eth:

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

Siehe auch: redhat - Konfiguration von DHCP auf RHEL 6 - Serverfehler

Philip Durbin
quelle
Ein Hinweis zum Hinzufügen: Wenn Sie mehrere Suchdomänen für dhclient angeben (option|supersede|*) domain-search ..., müssen Sie die dhcp-options(5)Manpage-Spezifikation zum Zitieren einzelner Domänen befolgen : option domain-search "example.com", "sales.example.com", "eng.example.com";Viele ältere Distributionen von dhclient haben das Format zugelassen, "example.com sales.example.com eng.example.com";aber diese Kompatibilität wurde in den letzten Jahren entfernt aufgrund von Fehlerkorrekturen bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/777785
Patrick
1

In Fedora 19 fügen Sie die nächsten Zeilen hinzu /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";
}

Funktioniert einwandfrei mit NetworkManager. Details siehe:# man dhclient.conf

Ruslan K
quelle
funktioniert nicht für aws linux (rhel)
radtek
0

Zum DHCP-Server hinzufügen conf (isc dhcpd):

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

Wobei domain1.com usw. die Domänensuffixe sind, die auf jedem Client zur Datei resolv.conf hinzugefügt werden sollen.

LinuxUser
quelle
0

Da ich diese Antwort nicht sehe und sie für mich funktioniert hat (während die anderen dies nicht getan haben), lautet sie hier: Bearbeiten /etc/resolvconf/resolv.conf.d/baseSie sie so, wie Sie es tun würden /etc/resolv.conf. Sie müssen resolvconfinstalliert sein.

appas
quelle