O resolv.conf não é definido na reinicialização quando a rede está configurada para IP estático

17

Estou enfrentando o que parece ser um problema de resolução de nome no Ubuntu 12.04 Server edition ao configurar meu computador para usar o IP estático.

Em / etc / network / interfaces:

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1

Em execução $ sudo apt-get upgrade, resulta em 'Falha ao buscar ...':

. . . W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/universe/i18n/Translation-en_US Something wicked happened resolving 'us.archive.ubuntu.com:http' (-5 - No address associated with hostname)
[...]

Quando altero minhas / etc / network / interfaces para:

auto eth0
iface eth0 inet dhcp

Tudo funciona bem.

Examinar o /etc/resolv.conf fornece mais algumas dicas.

Nos casos em que eu estava recebendo o problema de solução, o resolv.conf estava vazio; nenhum servidor de nomes foi especificado. Então mudei para DHCP de estática e reiniciei a rede; O arquivo /etc/resolv.conf foi alterado para: 'nameserver 192.168.1.1'.

Voltar do DHCP para estático e reiniciar não remove a entrada do servidor de nomes. Mas quando reiniciei o sistema com o conjunto estático, o resolv.conf estava vazio. Quando reinicio o sistema com o DHCP configurado, o resolv.conf possui o servidor de nomes 192.168.1.1. Portanto, parece que o problema é que o resolve.conf não está sendo gravado corretamente? Qual pacote / código é responsável por escrever no resolv.conf? Existe um pacote específico em que posso examinar os problemas em aberto?

ATUALIZAÇÃO: o istream postou um bom artigo discutindo alterações no resolve.conf na versão 12.04. http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

Kenneth Koontz
fonte
2
Se tudo funcionar bem quando você usa DHCP, qual é o "problema" que você deseja que as sugestões sejam "corrigidas". Como é a sua LAN? Que tipo de roteador você está usando? (O que há em 192.168.1.1?) Quais servidores DNS você especifica quando usa um IP estático?
irracional John
1
Título atualizado para refletir com mais precisão sintoma e adicionando mais descobertas
Kenneth koontz
+1 para editar a pergunta e o título para melhorá-los, mesmo que você já tenha sua resposta!
irracional John
1
Adicionada a referência do istream às mudanças no DNS no ubuntu 12.04.
Kenneth koontz

Respostas:

16

De acordo com a página do manual resolvconf (exemplo fornecido na página do manual), adicione o seguinte ao seu / etc / network / interfaces na sua configuração estática:

dns-nameservers [IP address(es) of your DNS]     
dns-search      [your dns-search strings (optional)]
ukjola
fonte
Perfeito. Isso funciona!
Kenneth koontz
O que é estranho, porém, é que na versão 11.10 eu não precisei especificar dns-nameservers.
Kenneth koontz
Está certo. No 12.04, o Ubuntu começou a usar o resolvconf para lidar com o resolv.conf. É resolvconf que lê a dns-nameserversopção em / e / n / i.
Jdthood 03/07
1

Você tem certeza de que forneceu 192.168.1.1o valor para o DNS ao configurar o IP estático?

Não sei como fazer isso na linha de comando, mas o uso da System Settings -> NetworkGUI deve funcionar também, não? Tudo o que estou pensando é que você quer algo como a captura de tela abaixo? Ou não estou entendendo o que você está tentando fazer?

Configuração de rede com IP estático, rota padrão, servidor DNS

Nota: Ignore os valores na janela esquerda. Esses são apenas meus valores do DHCP. Não me preocupei em salvar a configuração estática, pois estava apenas tentando ilustrar o que estava pensando.

A propósito, eu usei 192.168.1.1porque é isso que você estava usando. Mas você também pode usar os IPs para qualquer servidor DNS válido. Por exemplo, 8.8.8.8e / ou 208.67.222.222também deve funcionar.

John irracional
fonte
Obrigado pela solução. No entanto, não estou usando uma área de trabalho.
Kenneth koontz
@kennethkoontz Eu não entendo. Você está usando o servidor Ubuntu? Se você não estiver usando a instalação típica da área de trabalho da versão 12.04, edite sua pergunta e adicione essas informações.
irracional John
2
Desculpe pela confusão. Eu deveria ter dito: "Não estou usando a edição para desktop. Estou usando a edição para servidor". Vou atualizar a postagem da pergunta para remover a ambiguidade.
Kenneth koontz
0

Se você não deseja (ou não pode) usar o miniaplicativo do Network Manager para definir suas configurações de rede, acho a maneira correta de definir uma configuração IP "estática" , para quando você não tiver um servidor DHCP disponível, é ter uma concessão estática no dhclient.conf. Lá, você deve especificar o servidor de nomes que será gravado no resolv.confarquivo quando o dhclient voltar ao estático.

No entanto, se você não quiser sujar as mãos, ainda recomendo usar a GUI para especificar um endereço de servidor DNS nas configurações de IP da sua conexão, como em /ubuntu//a/127537/33305 .

Simón
fonte
0

O OP está usando o servidor ed. O NetworkManager não se aplica .. embora quem sabe talvez seja adicionado apenas para adicionar complexidade ao servidor.

Por esse motivo, por que no mundo o resolvconf foi adicionado ao servidor ed ... POR QUE !! ??!?

De qualquer forma, para responder à sua pergunta, adicione:

/ etc / network / interfaces

algo assim:

auto eth0 inet static
     dns-nameservers ns1.mydnsservers.com ns2.mydnsservers.com

A opção importante é "DNS-nameservers".

jbowen7
fonte