Comment DNSDist nous aide à contrer les attaques DDoS

Technique| dimanche 15 mars 2026

Comme beaucoup de fournisseurs de solutions sur internet, nous sommes régulièrement confrontés à des attaques sur nos serveurs DNS.

Le fait des les éparpiller sur nos différents POPs (points de présence) et d’utiliser également de l’anycast, nous aide à répartir la charge sur tous, mettant ainsi toute la puissance de ces serveurs en commun mais de temps en temps, cela ne suffit pas, et des petits malins arrivent à mettre à mal le service DNS

Une attaque sournoise

Les dernières attaques que nous voyons, sont des attaques avec des enregistrements DNS qui n’existent pas.

Exemple : derick.devclic.fr ou bien encore AnonYMous.devclic.fr de type CNAME

En saturant de requêtes, les serveurs DNS, on arrive à ce qu’ils ne répondent plus alors comment contrer cette attaque ?

DNSDist à la rescousse

Devant tous nos vrais serveurs DNS, il y a un Loadbalancer DNS qui se nomme DNSDist

Son objectif est de mettre en cache les requêtes les plus fréquentes pour avoir une latence la plus faible possible mais également éviter de faire travailler, inutilement, le(s) serveur(s) DNS qui se trouvent derrière lui.

DNSDist permet de créer et modifier les réponses des serveurs sans devoir changer la configuration ou bien de définir en dur des configurations d’enregistrements DNS.

Dans le cadre de cette attaque, nous avons utilisons la possibilité pour DNSDist de tuer la requête et de ne pas y répondre.

addAction(AndRule({SuffixMatchNodeRule("XXXXXX"), QTypeRule(DNSQType.CNAME)}), DropAction())

Concrètement ici, en définissant un ordre précis, vous arrivez judicieusement à répondre pour les requêtes valides et tout le reste, est tout simplement supprimé, ce qui évite à vos serveurs DNS, de traiter des requêtes qui sont potentiellement invalides. Dans notre cas, la principale galère que nous rencontrions est que le processeur des serveurs DNS montait en flèche, occasionnant des temps de réponse allongés sur les requêtes valides et légitimes