Como adicionar domínios de pesquisa adicionais ao resolv.conf criado por dhclient no CentOS


35

Quando minha máquina virtual CentOS é inicializada, ela usa DHCP para obter um endereço IP. Ele também substitui o resolv.conf pelas configurações de DNS fornecidas pelo servidor DHCP. O servidor DHCP não fornece nenhum domínio de pesquisa, então eu gostaria que o dhclient colocasse uma lista de domínios de pesquisa ao gravá-lo. Como posso configurar o dhclient para fazer isso?

Respostas:


32

Nenhum deles funcionou, mas o último foi o mais próximo. Para o Red Hat 6, use em DOMAINvez de SEARCHcomo no exemplo acima e o local do arquivo é diferente.

Eu modifiquei o arquivo /etc/sysconfig/network-scripts/ifcfg-eth0

e mudou

DOMAIN=domain.com

para

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

e tudo funcionou.


3
Você deve ser capaz de usar tanto DOMAINe SEARCH github.com/mcr/isc-dhcp/blob/master/common/resolv.c#L68
Radek Simko

Essa técnica de configuração de DOMAIN também funcionou para mim no CentOS 6.5, mesmo que meu resolve.conf seja gerado pelo NetworkManager e não pelo dhclient. O arquivo resolve.conf gerado combinou minhas entradas com as do servidor DHCP.
PolyTekPatrick

11

Além disso, você pode adicionar uma string ao /etc/dhcp3/dhclient.conf como este

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

Note que este método também funciona com o Debian Lenny e o Squeeze.


7

Eu consegui resolver isso no final. Eu adicionei uma linha como a seguinte para/etc/dhclient-eth0.conf

append domain-name "example.com";

4

Isso é principalmente uma observação para o RHEL7 reduzir a tentativa e erro. Resposta de Dean de usar DOMAIN="domain1.exmaple.com domain2.example.com"em /etc/sysconfig/network-scripts/ifcfg-device.confobras. Uma observação interessante é que o domínio do host que a conexão obtém do DHCP é sempre anexado ao caminho de pesquisa, mesmo que você o deixe de fora DOMAIN=ou o coloque posteriormente em uma lista de DOMAIN=. Parece que /sbin/dhclient-scripttem um monte de lógica relacionada a isso.

Nos meus testes, descobri que a sugestão de uso de Philip/etc/dhcp/dhclient-device.conf também funciona, embora exista algum comportamento estranho, provavelmente devido à mesma lógica em /sbin/dhclient-scriptque tenta mudar as coisas. Por exemplo, nem substitua nem anteceda o trabalho conforme o esperado, o domínio do host será o primeiro. Como observação lateral deste método, /var/lib/NetworkManager/dhclient-device.confé o arquivo NetworkManager gerado e é usado pelo cliente. Se você tem um arquivo /etc/dhcp/que é lido, você o verá colado na parte superior do arquivo e algumas opções extras adicionadas abaixo.


AWS Linux (RHEL), DOMAIN="your.domain"não funcionou para mim, redefinir após a reinicialização
radtek 17/01

2

A /etc/dhclient-eth0.confresposta acima não funcionou para mim. Eu não tenho um /etc/dhcp3diretório, então não achei que provavelmente funcionaria.

Depois de examinar o /sbin/dhclient-scriptarquivo (criado /etc/resolv.confno meu sistema Centos 5.6), adicionei a linha de pesquisa abaixo 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"

Então:

# 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

Para quem passa pela pilha de scripts bastante opaca do Fedora / Red Hat, a resposta, pelo menos na mais recente AMI da Amazon, é /etc/dhclient-eth0.conf (e não a pasta vazia de chamariz em / etc / dhcp /). O arquivo não está presente e precisará ser criado


2
Adicionar SEARCH ao ifcfg-eth0 / etc / sysconfig / network-scripts / ifcfg-eth0 também funciona na versão Amazon do Fedora. Nas versões mais antigas do Red Hat, aparentemente era DOMAIN. Eu recomendaria isso acima.
Dr David C Crooke

2

No CentOS 6, estou usando o seguinte arquivo para adicionar meu domínio de pesquisa DNS preferido:

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

Este arquivo é o primeiro verificado em /etc/sysconfig/network-scripts/ifup-eth:

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

Veja também: redhat - Configurando o DHCP no RHEL 6 - Falha no servidor


Uma observação a acrescentar - se você estiver especificando vários domínios de pesquisa para o dhclient usando (option|supersede|*) domain-search ..., siga as dhcp-options(5)especificações da página de manual para citar domínios individuais: option domain-search "example.com", "sales.example.com", "eng.example.com";Muitas distribuições mais antigas do dhclient permitiram o formato, "example.com sales.example.com eng.example.com";mas essa compatibilidade foi removida nos últimos anos devido a correções de bugs bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/777785
Patrick

1

No Fedora 19, adicione as próximas linhas 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";
}

Funciona bem com o NetworkManager. Detalhes ver:# man dhclient.conf


não funciona para aws linux (rhel)
radtek 17/01

0

Adicione ao servidor dchp conf (isc dhcpd):

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

Onde domain1.com, etc. são os sufixos de domínio que você deseja adicionar ao arquivo resolv.conf em cada cliente.


0

Como não vejo essa resposta e funcionou para mim (enquanto os outros não), aqui está: edite /etc/resolvconf/resolv.conf.d/baseda mesma maneira que você faria /etc/resolv.conf. Você precisará resolvconfinstalado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.