Por que tive que remover o resolvconf para que o dnsmasq funcionasse novamente?

8

Ontem atualizei para o Precise e o dnsmasq parou de funcionar. Ou seja, as consultas DNS ao host local onde o dnsmasq está escutando (127.0.0.1) foram recusadas.

A remoção de resolvconf ( apt-get remove resolvconf) e a reinicialização resolveram o problema (encontrou essa sugestão em algum lugar do Google). /etc/resolv.confparecia bem com e sem o resolvconf no lugar. Nenhuma diferença.

  1. Por que eu usaria o resolvconf? Existem benefícios? O artigo da Wikipedia sobre o resolvconf é péssimo.
  2. Por que o resolvconf interferiu no dnsmasq? Isso é um problema conhecido?
lightxx
fonte
bla @ blubb: ~ $ [-f /usr/share/doc/resolvconf/README.gz] && echo "Found" || eco "Não encontrado" Não encontrado hum. espertinho.
lightxx

Respostas:

10

A resposta simples para (1) é: resolvconf se configura como o intermediário entre programas que fornecem essas informações (como ifup e ifdown, clientes DHCP, daemon PPP e servidores de nomes locais) e programas que usam essas informações (como DNS) caches e bibliotecas de resolvedores). A partir do Ubuntu 12.04, o resolvconf faz parte da instalação padrão nas variantes de servidor e de desktop. Nunca é necessário remover o resolvconf e as pessoas que o removem geralmente não o entendem, geralmente porque não leram o resolvconf (8) e /usr/share/doc/resolvconf/README.gz.

A resposta para a segunda pergunta é que o resolvconf provavelmente não interferiu no dnsmasq. Meu palpite é que você estava com o bug # 959037.

Explicação: No Ubuntu 12.04, há duas maneiras pelas quais o dnsmasq é executado. Existe a versão autônoma tradicional do dnsmasq, que escuta em todos os endereços. E existe o novo processo dnsmasq controlado pelo NetworkManager, que escuta apenas em 127.0.0.1. O último entra em conflito com o primeiro, a menos que o primeiro seja reconfigurado. Esse problema foi resolvido no Ubuntu 12.10 fazendo com que o processo dnsmasq controlado por NM escute 127.0.1.1 em vez de 127.0.0.1 e forçando o processo dnsmasq independente a escutar apenas nos endereços atribuídos às interfaces.

jdthood
fonte
Eu li o manapage e ainda não consigo encontrar uma maneira confiável de adicionar meus próprios servidores de nomes resolv.conf.
Michael Mior
Com o resolvconf instalado, você pode acrescentar um endereço de servidor de nomes colocando nameserver x.x.x.x/etc/resolvconf/resolv.conf.d/head. No entanto, esteja ciente de que isso geralmente não é necessário ou recomendado. Geralmente, existe uma maneira mais correta de adicionar linhas de "servidor de nomes" ao resolv.conf. Geralmente, o utilitário que configura uma interface de rede adiciona ou remove os endereços do servidor de nomes disponíveis através dessa interface executando resolvconf -aou resolvconf -d, respectivamente. A priorização de endereços de servidores de nomes adicionados dessa maneira é governada por /etc/resolvconf/interface-order.
Jdthood
Na verdade, colocar uma linha de servidor de nomes a headadicionou APÓS o servidor de nomes padrão.
Michael Mior
Eu não testei, mas parece que echo x.x.x.x | resolvconf -a lofaria o truque para adicionar um servidor de nomes que eu gostaria de ser o primeiro para todas as interfaces.
Michael Mior
O Resolvconf sempre coloca o conteúdo de headna cabeça (topo, começo) de resolv.conf.
Jdthood
2

Acabei de removê-lo na minha instalação. Eu estava usando o pppd manualmente para discar minha conexão de modem 3G e o resolvconf interferiu nas minhas configurações de DNS adicionando automaticamente o DNS do meu provedor quando eu queria usar o DNS personalizado. O pppd tem opções para controlar isso, mas o resolvconf os derrotou com suas próprias configurações. Eu também gostaria de saber a resposta para esta pergunta? Parece que este é algum tipo de pacote de tornar mais fácil, mas ao invés de complicar as coisas?

ps Encontrei este relatório de bug: https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/922578

Marko
fonte
Obrigado pela sua contribuição. eu teria votado positivamente, mas estou com falta do representante.
lightxx
@lightxx: Voto a favor para você;)
Tomasz Zieliński
Em vez de remover o resolvconf, você poderia ter configurado o resolvconf para ignorar as informações do servidor de nomes provenientes do pppd.
Jdthood #
O conteúdo normal do resolv.conf é bastante simples. Sempre que a máquina é um servidor ou mesmo uma estação de trabalho que não é laptop, parece obviamente mais fácil rastrear o único resolv.conf em vez da meia dúzia de arquivos diferentes potencialmente utilizados pelo resolvconf.
Ericx
@ jdthood - eu não vejo como fazer isso na página de manual resolvconf.conf, eu estaria interessado em detalhes da implementação.
quer
1

A resposta simples para (1) é: resolvconf se configura como o intermediário entre programas que fornecem essas informações (como ifup e ifdown, clientes DHCP, daemon PPP e servidores de nomes locais) e programas que usam essas informações (como DNS) caches e bibliotecas de resolvedores).

Isso é da descrição do pacote. Nos desktops, ele trabalha em conjunto com o NetworkManager para lidar com a criação e o cancelamento de conexões sem problemas.

Portanto, o resolvconf, junto com o dnsmasq, são usados ​​na versão 12.04 para tornar as informações de DNS mais confiáveis ​​na versão para desktop. Portanto, em algumas situações, as coisas melhoram, mas toda a situação carece da documentação no lugar certo, esp. no mundo dos servidores.

Apesar de várias pesquisas no Google, não consegui determinar o que é recomendado em uma instalação de servidor.

No que diz respeito a (2), você está tendo o problema oposto de mim. O Dnsmasq funciona bem com o resolvconf na minha máquina e atualiza o arquivo /etc/resolv.conf para conter 127.0.0.1, mas tem outros problemas porque o dnsmasq não obtém os servidores de nome do ISP do dhclient no eth0 (este é um gateway) nem obter os servidores de nome que eu inseri manualmente na sub-rotina eth0 em / etc / network / interfaces.

Por que você usa o dnsmasq? Você também está executando um gateway com 2 placas de rede? Ou é apenas uma área de trabalho simples? Nesse caso, o resolvconf coordena com o gerenciador de rede

Adão
fonte
obrigado pela sua resposta. eu teria votado, infelizmente você precisa de 15 reputação para votar. lol
lightxx
1
as páginas de manual são ótimas quando você sabe o que precisa saber. Se não, eles podem ser intrigantes para dizer o mínimo. Instruções, exemplos e perguntas frequentes são o que você precisa quando não possui experiência em uma área.
Adam
upvoted @lightxx em seu nome :)
FKL