unbound en résolveur cache DNS local

Motivation

Beaucoup (trop) de domaines ont un TTL absurdement faible (entre 0 et 5 minutes), ce qui provoque - au bout de ce TTL - à nouveaux des requêtes DNS sortantes. Autrement dit: Beaucoup de requêtes DNS sortantes pour rien, qui ajoutent un délai de traitement inutile (surtout quand les DNS de votre FAI sont lents ou que votre connexion n'est pas très rapide).

Ubound est un résolveur DNS. On peut s'en servir comme résolveur pour un réseau local, mais dans cette page on ne va l'aborder que dans le cadre d'un résolveur utilisé uniquement par la machine sur laquelle il est installé. L'objectif est d'améliorer les temps de réponse des requêtes DNS des applications en utilisant le cache d'unbound.

Cette page contient donc les instructions pour installer un unbound local en forçant le TTL à 24 heures. Par la suite, il est possible que j'ajoute les instructions pour faire du DOH/DOT sortant. Il est également possible d'utiliser une liste de blocage avec unbound, mais je ne l'aborderai sans doute pas dans cette page car un simple script cron qui à met à jour /etc/hosts est déjà disponible et il fait bien son boulot sans avoir à toucher à unbound.

J'ai conscience que forcer un TTL à 24 heures ne fait pas partie des "bonnes pratiques", mais au point où on en est, on fait déjà bien pire comme avec uBlock-origin sur le web.

Les instructions ci-dessous ont été testées sur un Ubuntu 20.04.

Le service unbound consomme 15 Mo de RAM, c'est donc léger.

Cette page n'aborde pas le chiffrement des requêtes DNS sortantes (DOH/DOT), mais j'ajouterai sans doute cela ultérieurement.

Installation et configuration

Explications des options

Explications des options

  • do-ip6: yes : Faire résolveur IPv4 et IPv6.
  • interface: : se mettre en écoute que sur ces interfaces (donc pas sur les IP externes)
  • access-control: : par mesure de sécurité, dit aussi à unbound de ne répondre qu'aux requêtes qui viennent de la machine elle-même.
  • cache-min-ttl: 86400 : Voilà la vilaine ligne qui force le TTL à 24 heures (=86400 secondes)
  • forward-zone: : Tous les paramètres de cette section servent à indiquer quel serveur DNS externe unbound doit utiliser. J'ai mis ici les serveurs DNS de FDN et Mullvad car je leur fais confiance et ce sont des serveurs DNS non censurés. 1).
  • control-enable: yes permet l'utilisation de l'outils en ligne de commande unbound-control pour obtenir des statistiques.


Cela va dépendre de votre utilisation d'internet, mais en ce qui me concerne après quelques heures d'utilisation j'ai 80% requêtes DNS faites par les applications qui tombent dans le cache d'unbound.

Alternatives et liens

1)
contrairement aux DNS des fournisseurs d'accès français qui sont censurés: Orange, Free, SFR, Bouygues…