Étape 1 : le constat
Depuis que j’ai mis en place AdGuard Home, je constate beaucoup de requêtes DNS venant de Jeedom. J’avais déjà constaté cela la dernière fois, mais la solution précédente ne peut plus marcher. En effet, maintenant AdGuard Home gère tous mes DNS à la place d’OpenWRT.
De plus, je constate une différence dans les TTL de mes DNS locaux et distants :
$ dig +nocmd +noall +answer +ttlid a google.fr
google.fr. 300 IN A 142.251.220.19
$ dig +nocmd +noall +answer +ttlid a tv.starfleet
tv.starfleet. 0 IN A 192.168.1.69
Étape 2 : optimisation d’AdGuard Home
La raison de cette différence entre les DNS locaux et distants est que les DNS locaux sont marqués comme « réécrit« . Ils ont alors la même TTL que les DNS « bloqués« . De ce que je comprends, AdGuard Home a une notion de DNS « filtrés » qui correspondent aux DNS « réécrits » (locaux) et « bloqués » (anti-pub). Pour corriger ça, il suffit d’éditer, à la main, la configuration suivante dans le fichier /etc/adguardhome.yaml
:
dns:
...
blocked_response_ttl: 300
...
Malheureusement, pour le moment, cette configuration n’est pas disponible via l’IHM et affecte indistinctement les DNS locaux et bloqués.
Désormais, j’ai une TTL de 300 secondes (5 minutes) pour mes DNS locaux comme mes DNS distants (et mes DNS bloqués).
$ dig +nocmd +noall +answer +ttlid a tv.starfleet
tv.starfleet. 300 IN A 192.168.1.69
Mais malgré ça, Jeedom continu d’exploser le nombre de requêtes DNS… La faute à un manque de cache local au sein de Debian. C’est donc à ce point que nous allons remédier dans la troisième partie.
Étape 3 installations et configuration du plugin dnsmasq sous Debian 11 (Jeedom)
Tout d’abord, installer dnsmasq
en version basique (sans le service) :
# apt install dnsmasq-base
Ensuite créer un fichier /etc/NetworkManager/dnsmasq.d/cache.conf
avec les informations de cache :
# Taille du cache.
cache-size=1000
# Domaine local.
local=/starfleet/
# Définition de la TTL locale.
local-ttl=300
Pour finir, on va indiquer à Network Manager, via le fichier /etc/NetworkManager/NetworkManager.conf
, d’utiliser dnsmasq
pour la résolution des DNS :
...
[main]
...
dns=dnsmasq
...
Et on relance Network Manager :
# systemctl restart NetworkManager.service
Et à présent, j’ai un nombre de requêtes qui est plus satisfaisant :
Laisser un commentaire