42.3. Surveillance des chutes de paquets sur le réseau avec SystemTap
La pile réseau de Linux peut rejeter des paquets pour diverses raisons. Certains noyaux Linux incluent un point de traçage, kernel.trace("kfree_skb")`
, qui permet de savoir où les paquets sont rejetés.
Le script dropwatch.stp
SystemTap utilise kernel.trace("kfree_skb")
pour tracer les rejets de paquets ; le script résume les emplacements qui rejettent des paquets à chaque intervalle de 5 secondes.
Conditions préalables
- Vous avez installé SystemTap comme décrit dans la section Installation de SystemTap.
Procédure
Exécutez le script
dropwatch.stp
:stap --example dropwatch.stp
# stap --example dropwatch.stp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow L'exécution du script
dropwatch.stp
pendant 15 secondes produit un résultat similaire à celui qui suit :Copy to Clipboard Copied! Toggle word wrap Toggle overflow NotePour rendre l'emplacement des chutes de paquets plus significatif, consultez le fichier
/boot/System.map-$(uname -r)
. Ce fichier répertorie les adresses de départ de chaque fonction, ce qui vous permet de faire correspondre les adresses de la sortie du scriptdropwatch.stp
à un nom de fonction spécifique. Dans l'extrait suivant du fichier/boot/System.map-$(uname -r)
, l'adresse0xffffffff8024cd0f
correspond à la fonctionunix_stream_recvmsg
et l'adresse0xffffffff8044b472
correspond à la fonctionarp_rcv
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow