Configurando o servidor pdnsd

1

Eu instalei o pdnsd: ele está funcionando corretamente.

Meu problema é que ele ignora o servidor opendns que eu forneci na seção "server" do pdnsd.conf chamado "resolvconf": em vez disso, ele usa o servidor que é fornecido pelo dhcp.

Por outro lado, se eu mudar o nome da seção do servidor para outra coisa, então o pdnsd usa corretamente o servidor opendns, mas o resolvconf coloca o dns fornecido pelo dhcp no resolv.conf, então o pdnsd é ignorado.

Então, minha pergunta é: como posso ter o resolvconf definido como resolv.conf para 127.0.0.1 E pdnsd usa o servidor opendns quando a requisição não está em cache?

Uma solução encontrada é configurar, no gerenciador de rede, "DHCP (somente endereço)" para a conexão, mas o problema é que ela deve ser configurada para cada conexão diferente: isso significa que se você usar um laptop você tem que mudá-lo para cada wi-fi para o qual você se conecta!

    
por brad 29.04.2014 / 21:10

1 resposta

2

Acho que encontrei a solução: adicionando

supersede domain-name-servers 127.0.0.1;

para /etc/dhcp/dhclient.conf faz o trabalho.

Então talvez possa ser útil para outra pessoa se eu escrever meu pequeno tutorial para fazer o pdnsd funcionar no Ubuntu com servidor de nome de domínio fixo (digamos, opendns), independentemente da conexão usada.

  • Desative o dnsmasq editando /etc/NetworkManager/NetworkManager.conf e comentando #dns=dnsmasq
  • Forçar o gerenciador de rede a definir o DNS como 127.0.0.1 para cada conexão, adicionando

    supersede domain-name-servers 127.0.0.1;
    

    para /etc/dhcp/dhclient.conf

  • Instalar o pdnsd
  • Edite o /etc/default/pdnsd e defina START_DAEMON=yes
  • Configure o pdnsd para usar seus dns favoritos. Por exemplo, para usar o seu /etc/pdnsd deve parecer como

    global {
     perm_cache=16536;
     cache_dir="/var/cache/pdnsd";
     max_ttl=604800;
     run_as="pdnsd";
     paranoid=on;
     status_ctl=on;
     neg_rrs_pol=on;
     par_queries=1;
    }
    server {
     label="opendns";
     ip="208.67.222.222","208.67.220.220";
     timeout=30;
     interval=30;
     uptest=ping;
     ping_timeout=50;
     purge_cache=off;
     proxy_only=on;
    }
     source {
     ttl=86400;
     owner="localhost.";
     file="/etc/hosts";
    }
    
  • Reinicie o pdnsd e a conexão de rede:

    sudo service pdnsd restart
    sudo invoke-rc.d network-manager restart
    
por brad 30.04.2014 / 23:00