O Linux NetworkManager não está escrevendo o resolv.conf ou executando o dhclient

0

Eu estou em uma distribuição linux baseada no Ubuntu (linaro) rodando o xfce. Meu networkmanager se conecta a pontos de acesso sem fio, mas não consegue fazer duas coisas:

  • adquira dinamicamente um servidor de nomes e escreva um /etc/resolv.conf dinâmico. Na verdade, seria ótimo se eu pudesse fazer isso para algumas redes específicas e usar um padrão /etc/resolv.conf em outras redes.
  • Meu navegador não redireciona para as páginas de login. Claramente, isso tem algo a ver com o problema do servidor de nomes.

Eu verifiquei meu /etc/dhcp/dhclient.conf e ele tem a linha %código% Então, se eu correr %código% reescreve o arquivo request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.name-servers, dhcp6.sntp-servers; sem nenhum problema. Então, se eu "conectar manualmente" usando o wpa-suplicante e o dhclient, isso funciona perfeitamente. Então eu estou supondo que é um problema com o gerente de rede. O gerente de rede não usa o dhclient? Como faço para corrigir isso?

    
por user128063 07.08.2014 / 16:52

2 respostas

1

No meu sistema (ubuntu 14.04), o /etc/resolv.conf é criado pelo pacote "resolvconf" (é instalado?) e é apenas um link simbólico para o arquivo ../run/resolvconf/resolv.conf .

O endereço IP em /etc/resolv.conf é um IP interno fictício. Para obter o endereço real do servidor de nomes, você pode usar "nm-tool" ou "nmcli device list iface eth0".

Qual método você escolheu em Network-mananger sob os endereços IPv4, "Automatic (DHCP)" ou "Automatic (DHCP) only". Eu acho que você tem que usar o primeiro.

Qual é a versão do seu sistema linaro e em qual versão do ubuntu é baseada?

    
por 07.08.2014 / 17:24
0

Acontece que as versões mais novas do NetworkManager usam um programa chamado dnsmasq como um resolvedor de DNS. Então, mesmo se você excluir o %código% arquivo do seu sistema, o NetworkManager funcionará corretamente. De fato, o dnsmasq tem uma opção explícita para NÃO ler /etc/resolv.conf . Isto é o que meu NetworkManager geralmente executa com: %código% Ele também tem um %código% Arquivo. Isso é configurado usando arquivos no %código% Veja a documentação do dnsmasq para aprender mais sobre sua configuração. Parece ser uma ferramenta bastante poderosa.

O dnsmasq pode ser desativado removendo a linha %código% no %código% Arquivo. Então - apesar de eu não ter testado - deve ser padrão o dhclient, baseado no que eu li na documentação do NetworkManager.

Outro problema possível foi que o /etc/NetworkManager/NetworkManager.conf tinha uma linha que dizia %código% Eu mudei isso para true, e o NetworkManager começou a funcionar novamente corretamente. As versões mais recentes do NetworkManager (em precisas e posteriores) também tendem a pausar por 60 segundos ou mais no começo com um %código% mensagem durante a inicialização. Isso geralmente é causado por um erro de sintaxe no arquivo resolv.conf . Eu consertei isso tendo apenas as seguintes linhas no arquivo dnsmasq --no-resolv

    
por 08.08.2014 / 14:28