Como substituir o servidor de nomes fornecido pelo DHCP?

12

Eu acho que configurei um endereço IP estático em /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

E mudo o arquivo /etc/resolv.confpara incluir os servidores de nomes desejados.

Então eu reinicio a rede sudo /etc/init.d/networking restart

Mas, após algumas horas, o resolv.conf sempre volta ao servidor de nomes DHCP.


Devo também dizer que este é o Ubuntu Server com apenas l0e eth0interfaces.

David Parks
fonte
O resolvconfpacote está instalado?
Gilles 'SO- stop be evil'
Você está tentando usar o dhclient em outra interface de rede (talvez uma interface Wi-Fi ou discada) ou o dhclient está executando incorretamente no eth0, mesmo que supostamente seja estático?
poolie
Existem apenas eth0 e lo0, o IP que eu defino manualmente é o mesmo que o IP do DHCP que receberei (o servidor DHCP sempre servirá o mesmo IP estático). Como não quero usar o servidor de nomes fornecido pelo servidor DHCP, pensei em definir o IP pessoalmente e não haveria DHCP, mas não entendo por que o resolv.conf continua sendo atualizado.
David Parks
Gilles - não, eu executei: dpkg -L resolvconf e o get: Package `resolvconf 'não está instalado.
David Parks

Respostas:

34

Se você deseja substituir ou anexar aos servidores de nomes sugeridos pelo servidor DHCP, é possível configurá-lo em /etc/dhcp/dhclient.conf, por exemplo:

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

Você também pode fazer isso no controle "Editar conexões" no indicador de rede no Unity ou GNOME.

poolie
fonte
4
Esta foi a melhor solução, publiquei outra opção, mas percebi que definir um IP estático não era uma boa ideia em um ambiente do AWS EC2. :)
David Parks
E se você quiser anexar vários servidores de nomes de domínio?
dangonfast
Prepending servidor de nomes de domínio 127.0.0.1parece descartar o nome do servidor fornecido pelo DHCP (isto não acontece prepending outros servidores de nomes)
dangonfast
2
Substitua prependpor supersedepara substituir completamente o valor DHCP.
Sqerstet
1

Uma resolução que resolverá seu problema é configurar seu resolvconfpacote. Isso dará precedência aos seus servidores de nomes preferidos, bem como a quaisquer outras configurações desejadas do resolv.conf, como preferências de pesquisa e domínio.

Edite o arquivo: /etc/resolvconf/resolv.conf.d/head

Coloque os servidores de nomes desejados e quaisquer outras configurações que você deseja ter preferência quando houver uma alteração na rede. Quando ocorrem alterações na rede, a configuração sempre terá precedência.

Um exemplo do /etc/resolvconf/resolv.conf.d/headarquivo:

# 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

Veja a resposta para uma pergunta semelhante:
substituir servidor de nomes DNS

Nota:
Certifique-se de ter um avanço de linha após a última entrada. A maioria dos editores fornecerá um avanço de linha automaticamente ao salvar o arquivo.

LD James
fonte
-2

Encontrei uma referência para remover o cliente dhcp, acho que esse foi o principal culpado. Eu fiz isso e ainda não vi o problema. Esperará até a manhã para confirmar, mas parece que o cliente dhcp ainda estava em execução e precisou ser interrompido e desinstalado.

apt-get remove isc-dhcp-client dhcp3-client dhcpcd
David Parks
fonte
Estou um pouco confuso se a solução foi o comando prepend ou se estava realmente removendo o cliente DHCP.
Eugene van der Merwe 27/03
@EugenevanderMerwe É o comando prepend. O pôster dizia "Esta foi a melhor solução, eu publiquei outra opção, mas percebi que definir um IP estático não era uma boa idéia em um ambiente AWS EC2. :)" "
Grammargeek
-3

Como regra geral, você deve sempre desinstalar todos os serviços de rede usando apt-get --purge remove <package-name>. Dessa forma, todos os arquivos de configuração também serão removidos.

Nesse caso, o comando seria:

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

Este comando removerá completamente o isc-dhcp-client.

Miikael Ljung
fonte
4
Como isso é relevante e por que você acha que é uma boa regra geral? Ele não quer parar de usar o DHCP?
poolieby