web-dev-qa-db-fra.com

Configuration du serveur pdnsd

J'ai installé pdnsd: il fonctionne correctement.

Mon problème est qu'il ignore le serveur opendns que j'ai fourni dans la section "server" de pdnsd.conf intitulée "resolvconf": au lieu de cela, il utilise le serveur fourni par le dhcp.

D'un autre côté, si je change le nom de la section serveur en autre chose, alors pdnsd utilise correctement le serveur opendns mais resolvconf a mis le dns fourni par dhcp dans resolv.conf, donc pdnsd est contourné.

Donc, ma question est: comment puis-je avoir resolvconf défini resolv.conf sur 127.0.0.1 ET pdnsd utiliser le serveur opendns lorsque la demande n'est pas mise en cache?

Une solution de contournement que j'ai trouvée consiste à définir, dans le gestionnaire de réseau, "DHCP (adresse uniquement)" pour la connexion, mais le problème est qu'il doit être défini pour chaque connexion différente: cela signifie que si vous utilisez un ordinateur portable, vous devez changez-le pour chaque wifi auquel vous vous connectez!

1
brad

Je pense avoir trouvé la solution: ajouter

supersede domain-name-servers 127.0.0.1;

à /etc/dhcp/dhclient.conf Fait le travail.

Alors peut-être que cela peut être utile pour quelqu'un d'autre si j'écris mon petit guide pour faire fonctionner pdnsd dans ubuntu avec un serveur de nom de domaine fixe (disons, opendns), quelle que soit la connexion utilisée.

  • Désactivez dnsmasq en modifiant /etc/NetworkManager/NetworkManager.conf et commentant #dns=dnsmasq
  • Forcer le gestionnaire de réseau à définir le DNS sur 127.0.0.1 pour chaque connexion en ajoutant

    supersede domain-name-servers 127.0.0.1;
    

    à /etc/dhcp/dhclient.conf

  • Installer pdnsd
  • Éditer /etc/default/pdnsd Et mettre START_DAEMON=yes
  • Configurez pdnsd pour utiliser vos DNS préférés. Par exemple, pour utiliser opendns votre /etc/pdnsd devrait ressembler à

    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";
    }
    
  • Redémarrez pdnsd et la connexion réseau:

    Sudo service pdnsd restart
    Sudo invoke-rc.d network-manager restart
    
2
brad