eBPF network trace incomplete packets missing

glombard 13/11/2025
RÉSOLU
glombard
Auteur
Avatar de glombard
glombard
Auteur

salut. on utilise eBPF pour tracer le traffic reseau de certaines apps. mais on a l'impression que certains paquets sont manquants dans nos traces. genre le traffic tcp setup est la mais pas toujours les data packets qui suivent. kernel 5.15

13/11/2025 à 08:16

14 commentaires

hthibault
Membre
Avatar de hthibault
hthibault
Membre

c'est un probleme classique avec les probes sur le kernel. t'es sur quel hook point exactement

14/11/2025 à 06:44

si c'est des paquets data faut ptete augmenter les buffers pour tes map eBPF. t'as des map full errors dans les logs kernel

15/11/2025 à 04:46
glombard
Auteur
Avatar de glombard
glombard
Auteur

on est sur tracepoints/syscalls/sys_enter_sendto et sys_exit_sendto pour l'envoi et tracepoints/syscalls/sys_enter_recvfrom pour la reception. pas de map full dans les logs

15/11/2025 à 23:16
tmartins
Membre Actif
Avatar de tmartins
tmartins
Membre Actif

hmm syscalls c'est haut niveau. si le paquet est droppé plus bas dans la stack reseau kernel tu le verras pas. t'as essayé des kprobes sur des points plus bas niveau comme __netif_receive_skb ou tpacket_rcv

16/11/2025 à 18:54
hthibault
Membre
Avatar de hthibault
hthibault
Membre

oui kprobes plus bas c'est souvent mieux pour la visibilité reseau. mais attention à l'overhead. t'as verifié les ressources cpu de ton eBPF program. il tourne trop longtemps

17/11/2025 à 16:43
glombard
Auteur
Avatar de glombard
glombard
Auteur

le program est censé etre light. on filtre pas mal. mais c'est vrai qu'on est pas sur des hooks ultra bas. on a des soucis de fragmentation tcp aussi sur cette infra

18/11/2025 à 15:20

fragmentation peut etre un souci. eBPF voit les skb. si un skb est fragmenté il faudra reassembler en userspace ce qui est galere. ou il est ptete droppé avant d'atteindre ton hook

19/11/2025 à 11:08
hthibault
Membre
Avatar de hthibault
hthibault
Membre

verifie ton dmesg pour voir si t'as des bpf: R0 errors ou program too large etc. un bug dans le verifier eBPF pourrait aussi faire droppper des events

20/11/2025 à 06:44

et tes cgroup v2. certaines distrib ou container runtimes peuvent mettre des limites sur les resources eBPF. t'es sur des conteneurs

21/11/2025 à 02:11
glombard
Auteur
Avatar de glombard
glombard
Auteur

c'est sur des vms classiques pas de cgroup limits bizarres. on a essayé de remonter le net.core.tstamp_allow_data mais ça change rien. on a zero erreurs dans dmesg lié à bpf

21/11/2025 à 20:37
tmartins
Membre Actif
Avatar de tmartins
tmartins
Membre Actif

ok si c'est pas les maps ou le verifier et que les syscalls sont trop haut c'est ptete un hook point manquant. les datagrammes udp sont affectés aussi ou c'est que tcp

22/11/2025 à 15:57
hthibault
Membre
Avatar de hthibault
hthibault
Membre

souvent ce genre de souci c'est un kprobe mal placé. essaie de hook ip_rcv ou ip_finish_output pour le traffic ip brut avant ou apres traitement. ça te donnera une vision plus large

23/11/2025 à 12:46
jeannine52
Membre
Avatar de jeannine52
jeannine52
Membre

pense aussi à l'offload sur la carte reseau. si t'as du tso/gso/lro activé ça peut masquer des details au kernel et donc à eBPF si le hook est pas au bon endroit apres le des-offload

24/11/2025 à 11:37
glombard
Auteur
Avatar de glombard
glombard
Auteur

bingo le tso/gso c'était activé. on a desactive ça pour les interfaces qui nous interessent et on voit les paquets maintenant. l'overhead est gerable. merci pour l'aide

25/11/2025 à 11:02

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