eBPF, .NET 5 et le Mystère de l'IPv4 Déguisé en IPv6
2025-05-09
Cet article détaille un voyage de débogage impliquant eBPF, les sockets DualMode de .NET 5 et l'IPv4 déguisé en IPv6. L'auteur a utilisé un programme eBPF pour rediriger les requêtes DNS sur le port 53, mais a rencontré un comportement inattendu avec les applications .NET 5. Le SocketsHttpHandler de .NET 5 utilise des sockets DualMode, envoyant du trafic IPv4 via un socket IPv6 utilisant des adresses IPv4-mapped IPv6. Cela a trompé le programme eBPF pour bloquer le trafic IPv4 comme IPv6. La solution a consisté à vérifier `skb->protocol` au lieu de `skb->family` pour différencier entre l'IPv6 réel et les adresses IPv4-mapped IPv6.
Développement