Menu

Aucun menu défini dans le customizer.

Actus AutomatiséesActus TechDNSESP32hardware-diy/arduino-electroniquehardware-diy/domotique-smart-homeSciencestutoriels-guides/tutoriels-avances

Un demi-million de domaines anti-pub stockés dans 50 Ko de RAM

Actualités Automatisées

Un demi-million de domaines anti-pub stockés dans 50 Ko de RAM

🕒 Publié le : 20/07/2026 à 06:31
 |  ✍️ Auteur : Korben ✨
 |  📚 Source : Les news de Korben

Pi-hole sur un Raspberry Pi, c’est cool, mais ça vous coûte quand même

quelques dizaines d’euros

(lien affilié) et ça squatte une prise en permanence. C’est pourquoi M-Abozaid a fait tenir la même chose dans

une clé ESP32-C3 à pas cher

(lien affilié). Son firmware bloque ainsi 537 000 domaines de pub en utilisant à peine 50 Ko de RAM, et est capable de répondre à une requête bloquée en 10 millisecondes.

Maintenant que j’ai toute votre attention, je vais vous expliquer comment ça marche. En fait, un Pi-hole classique charge toute sa liste de blocage en RAM, sauf que l’ESP32 lui, comme il n’a que quelques centaines de Ko de mémoire vive et pas de PSRAM, il est donc techniquement impossible d’y caser un demi-million de domaines comme ça simplement. Du coup notre cher développeur a dû ruser en hashant chacun des domaines bloqués à max 5 octets chacun (40 bits max).

Tous ces hashes sont ensuite triés une fois pour toutes, puis gravés directement dans la flash de la puce (4 Mo suffisent). Puis quand une requête DNS arrive, le firmware hashe le domaine demandé et fait une recherche par dichotomie dans la flash. Environ 18 lectures suffisent pour trancher parmi les 537 000 entrées, d’où les fameux 10 ms. Et la RAM ne sert jamais à stocker la liste, mais juste à faire tourner le bazar réseau.

Et là où c’est vraiment malin, c’est que 40 bits de hash restent quasi sans collision. Il n’en a eu aucune jusqu’à 141 000 domaines, et une seule à 537 000 donc autant dire rien du tout !

Après il y a peu de chances que ça remplace Pihole, en tout cas pour le moment, parce qu’il n’y a pas de serveur DHCP. Et activer les mises à jour OTA du firmware demande d’avoir deux partitions, du coup la capacité de l’ESP 32 tombe à 250 000 domaines.

Après le dashboard est plutôt sympa, ça tourne en mDNS sur l’adresse c3adblock.local, avec des compteurs de blocage par client, le bannissement d’un appareil et la possibilité d’ajouter vos propres noms de domaines à bloquer.

Voilà moi je vois vraiment ça comme un espèce de résolveur de secours plutôt qu’un vrai remplaçant pour Pi-hole. Vous le placez derrière votre serveur DNS principal et le jour où celui-ci est en panne, la petite clé prendra le relais pour pas cher. En plus comme on le voit dans la vidéo, ça peut s’alimenter sur le port USB de n’importe quel routeur, donc c’est pratique.

C’est totalement open source sous licence MIT et c’est livré avec un script python qui permet de construire la table des hashes à partir des listes StevenBlack et Hagezi. Pour plus tard, le développeur prévoit un Bloomfilter en mémoire RAM pour zapper la lecture flash sur les 99 % des requêtes qui ne matchent aucun domaine et puis le serveur DHCP dont je vous parlais.

Si les DNS auto-hébergés vous parlent, je vous ai déjà présenté

Technitium qui remplace carrément Pi-hole, Unbound et BIND

. Et pour les bidouilles ESP32 à quelques euros, y’en a plein, genre

celle qui remplace le Touch ID d’Apple

.

Bref, un demi-million de domaines de pub bloqués par une puce plus petite qu’une clé USB c’est bien joué !! Le

repo est sur GitHub

si ça vous tente.

Source

Avatar de Krigs

À propos de l'auteur

https://github.com/Krigsexe

Voir tous les articles de Krigs

Leave a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Profil Gravatar