Tous les projets

Déboguer une collision de marks Netfilter : Netbird, OVH OKS et kube-proxy

Un incident critique de connectivité ramené à des bits de mark qui se chevauchent, corrigé par un DaemonSet et remonté à l'éditeur.

Entreprise
ID6TM
Période
2026
Stack
  • Netbird
  • WireGuard
  • nftables
  • iptables
  • kube-proxy
  • Kubernetes

Contexte

J’ai refondu l’architecture réseau et sécurité autour d’une connectivité zero-trust avec Netbird (WireGuard) : accès entre clusters et machines, ACL d’entrée et de sortie, et routage.

Problème

Un incident critique de connectivité. Après la mise à jour de Netbird (v0.30+), l’accès aux NodePorts ne fonctionnait plus sur nos clusters OKS, et les symptômes ne désignaient aucun composant en particulier.

Diagnostic

Une analyse bas niveau avec iptables/nftables et nft monitor trace a montré que Netbird, OVH OKS et kube-proxy utilisaient des bits de mark Netfilter qui se chevauchaient. La collision cassait l’étape MASQUERADE, et avec elle le trafic.

Correctif

  • Un contournement validé sur un cluster réel, puis industrialisé sous forme de DaemonSet qui corrige les règles sur chaque nœud.
  • Une issue documentée ouverte chez Netbird, pour que la cause racine soit corrigée à la source.

Pourquoi j’y tiens

C’est le genre de problème où personne n’est propriétaire du bug : trois composants corrects qui interagissent mal. La réponse a été une méthode (tracer le paquet, trouver la règle, le prouver), pas une intuition.