Come posso aggiungere ulteriori domini di ricerca al resolv.conf creato da dhclient in CentOS


35

Quando la mia macchina virtuale CentOS si avvia, utilizza DHCP per ottenere un indirizzo IP. Sovrascrive inoltre resolv.conf con le impostazioni DNS fornite dal server DHCP. Il server DHCP non fornisce alcun dominio di ricerca, quindi vorrei che dhclient inserisse un elenco di domini di ricerca quando lo scrive. Come posso configurare dhclient per fare questo?

Risposte:


32

Nessuno di questi ha funzionato, ma l'ultimo è stato il più vicino. Per Red Hat 6, utilizzare DOMAINinvece di SEARCHcome nell'esempio sopra e la posizione del file è diversa.

Ho modificato il file /etc/sysconfig/network-scripts/ifcfg-eth0

e cambiato

DOMAIN=domain.com

a

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

e tutto ha funzionato.


3
Dovresti essere in grado di utilizzare entrambi DOMAINe SEARCH github.com/mcr/isc-dhcp/blob/master/common/resolv.c#L68
Radek Simko

Questa tecnica di impostazione di DOMAIN ha funzionato anche per me su CentOS 6.5, anche se il mio resol.conf è generato da NetworkManager piuttosto che da dhclient. Il file generate.conf generato ha combinato le mie voci con quelle del server DHCP.
PolyTekPatrick il

11

Inoltre puoi aggiungere una stringa a /etc/dhcp3/dhclient.conf in questo modo

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

Nota che questo metodo funziona anche con Debian Lenny e Squeeze.


7

Sono riuscito a risolverlo alla fine. Ho aggiunto una riga come la seguente a/etc/dhclient-eth0.conf

append domain-name "example.com";

4

Questa è principalmente una nota per RHEL7 per ridurre tentativi ed errori. La risposta di Dean sull'uso DOMAIN="domain1.exmaple.com domain2.example.com"nelle /etc/sysconfig/network-scripts/ifcfg-device.confopere. Una nota interessante è il dominio dell'host che la connessione ottiene da DHCP è sempre anteposto al percorso di ricerca, anche se lo si lascia fuori DOMAIN=o lo si inserisce in un elenco in un secondo momento DOMAIN=. Sembra che /sbin/dhclient-scriptabbia un sacco di logica correlata a questo.

Nei miei test, ho scoperto che anche il suggerimento di Philip di usare /etc/dhcp/dhclient-device.conffunziona, sebbene ci sia qualche strano comportamento in ciò, molto probabilmente a causa della stessa logica in /sbin/dhclient-scriptcui cerca di spostare le cose. Ad esempio, né il supercede né il prepend funzionano come previsto, il dominio dell'host sarà il primo. Come nota a margine su questo metodo, /var/lib/NetworkManager/dhclient-device.confè il file NetworkManager generato e viene utilizzato dal client. Se hai un file /etc/dhcp/che viene letto, lo vedrai incollato nella parte superiore del file e alcune opzioni extra aggiunte di seguito.


AWS Linux (RHEL), DOMAIN="your.domain"non ha funzionato per me, ripristinato dopo il riavvio
radtek il

2

La /etc/dhclient-eth0.confrisposta sopra non ha funzionato per me. Non ho una /etc/dhcp3directory, quindi non pensavo che probabilmente avrebbe funzionato.

Dopo aver esaminato il /sbin/dhclient-scriptfile (che crea /etc/resolv.confsul mio sistema Centos 5.6), ho aggiunto la riga CERCA qui sotto a/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"

Poi:

# 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

2

Per chiunque stia esaminando la pila piuttosto opaca di script di Fedora / Red Hat, la risposta, almeno sull'ultima AMI di Amazon, è /etc/dhclient-eth0.conf (e non la cartella vuota dell'esca su / etc / dhcp /). Il file non è presente e dovrà essere creato


2
L'aggiunta di SEARCH a ifcfg-eth0 / etc / sysconfig / network-scripts / ifcfg-eth0 funziona anche sulla versione Amazon di Fedora. Nelle versioni precedenti di Red Hat apparentemente era DOMINIO. Lo consiglierei sopra quanto sopra.
Dr David C Crooke,

2

Su CentOS 6, sto usando il seguente file per aggiungere il mio dominio di ricerca DNS preferito:

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

Questo è il primo file verificato in /etc/sysconfig/network-scripts/ifup-eth:

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

Vedi anche: redhat - Configurazione DHCP su RHEL 6 - Errore del server


Una nota da aggiungere: se stai specificando più domini di ricerca su dhclient utilizzando (option|supersede|*) domain-search ..., assicurati di seguire le dhcp-options(5)specifiche della pagina man per la quotazione di singoli domini: option domain-search "example.com", "sales.example.com", "eng.example.com";molte vecchie distribuzioni di dhclient consentivano il formato "example.com sales.example.com eng.example.com";ma questa compatibilità è stata rimossa negli ultimi anni a causa di correzioni di bug bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/777785
Patrick

1

In Fedora 19 aggiungi le prossime righe a /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";
}

Funziona bene con NetworkManager. I dettagli vedono:# man dhclient.conf


non funziona con aws linux (rhel)
radtek il

0

Aggiungi al server dchp conf (isc dhcpd):

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

Dove domain1.com, ecc. Sono i suffissi di dominio che si desidera aggiungere al file resolv.conf su ciascun client.


0

Dal momento che non vedo questa risposta e ha funzionato per me (mentre gli altri non l'hanno fatto), eccola qui: modifica /etc/resolvconf/resolv.conf.d/basecome faresti tu /etc/resolv.conf. Dovrai resolvconfinstallarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.