DNSSEC validation qui pète dans Kubernetes

Posté par barbier-xavier le 19/08/2025
RÉSOLU

barbier-xavier

Membre depuis le 08/02/2025

Salut la team ! J'ai un truc chelou sur notre cluster K8s. On a des pods qui essaient de résoudre des noms de domaine externes et des fois ça foire avec un "SERVFAIL". Après inspection des logs de CoreDNS, je vois "validation failed" lié à DNSSEC. Notre CoreDNS est configuré pour faire du DNSSEC validant. Le problème c'est que ça marche par intermittence, pas tout le temps. Y'a une config particulière à vérifier dans K8s ou CoreDNS pour le DNSSEC ?

# Exemple de config CoreDNS (simplifiée)
.:53 {
    errors
    health
    ready
    kubernetes cluster.local in-addr.arpa ip6.arpa {
        pods insecure
        fallthrough in-addr.arpa ip6.arpa
    }
    prometheus :9153
    forward . 8.8.8.8 8.8.4.4 {
        force_tcp
        tls_servername .
        health_check 10s
    }
    cache 30
    reload
    dnssec . {
        root /etc/coredns/root.key
    }
    log
}

Commentaires

audrey03

Membre depuis le 10/10/2019

yo t'as vérifié que ton CoreDNS a bien accès aux clés de validation DNSSEC ? genre le fichier root.key il est bien monté et lisible par le user coredns ? des fois les perms foirent ou le mount n'est pas stable sur tous les noeuds

nruiz

Membre depuis le 26/08/2023

c'est ptete pas un souci de perms direct mais plus de chaîne de confiance. si tes forwarders (8.8.8.8) ne supportent pas bien DNSSEC ou s'il y a un intermédiaire qui strip l'EDNS0, ça peut causer des SERVFAIL intermittents. essaie de forwarder vers un résolveur qui fait explicitement du DNSSEC, genre 1.1.1.1 ou 9.9.9.9

barbier-xavier

Membre depuis le 08/02/2025

ok pour les perms je vais double-check mais je suis quasi sûr que c'est bon. pour les forwarders c'est une bonne idée je vais tester avec 1.1.1.1. ça me semble plus logique que ça vienne d'un intermédiaire foireux. on a des firewalls qui sont ptete un peu agressifs sur le trafic dns

audrey03

Membre depuis le 10/10/2019

ouais les firewalls ouais ça m'étonnerait pas. aussi regarde les métriques de CoreDNS si t'en as. les erreurs DNSSEC peuvent être trackées. et est-ce que tu vois des timeouts au niveau du forward ? ça pourrait indiquer un souci de fragmentation UDP pour les réponses DNSSEC plus grosses

cklein

Membre depuis le 07/09/2024

et n'oublie pas le MTU. si tes réponses DNSSEC sont trop grandes et qu'elles sont fragmentées en UDP sur le chemin, certains firewalls ou intermédiaires peuvent les drop. force_tcp dans ton forwarder c'est bien mais est-ce que tout le chemin supporte TCP pour le DNS ? teste avec un dig +tcp sur une des cibles qui foire

barbier-xavier

Membre depuis le 08/02/2025

ha bien vu pour le MTU et le TCP. j'avais pas pensé aux réponses DNSSEC plus grosses. je vais tester le dig +tcp et vérifier nos équipements réseau pour le support TCP DNS. pour les métriques CoreDNS je les scrape déjà mais j'ai pas encore mis d'alertes spécifiques sur les erreurs DNSSEC je vais voir ça

nruiz

Membre depuis le 26/08/2023

si le dig +tcp passe nickel et que ça merde toujours en UDP, alors c'est presque sûr un truc de fragmentation ou un intermédiaire qui gère mal les paquets UDP trop gros. ou un firewall qui bloque le port 53 TCP pour les requêtes sortantes

barbier-xavier

Membre depuis le 08/02/2025

Ok les gars c'était bien le firewall qui était trop zélé. Il faisait du "DNS doctoring" et pétait les paquets DNSSEC avec des extensions EDNS0. En le désactivant ou en ajoutant une règle spécifique, le problème a disparu. Merci pour les pistes !

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire