eBPF, .NET 5 e o Mistério do IPv4 Disfarçado de IPv6

2025-05-09

Este artigo detalha uma jornada de depuração envolvendo eBPF, sockets DualMode do .NET 5 e IPv4 disfarçado de IPv6. O autor usou um programa eBPF para redirecionar solicitações DNS na porta 53, mas encontrou um comportamento inesperado com aplicativos .NET 5. O SocketsHttpHandler do .NET 5 usa sockets DualMode, enviando tráfego IPv4 por meio de um socket IPv6 usando endereços IPv4-mapped IPv6. Isso enganou o programa eBPF a bloquear o tráfego IPv4 como IPv6. A solução envolveu verificar `skb->protocol` em vez de `skb->family` para diferenciar entre IPv6 verdadeiro e endereços IPv4-mapped IPv6.

Leia mais
Desenvolvimento