Capturez et analysez le trafic réseau brut à l'aide de tcpdump (Linux) ou de Wireshark (Windows) afin de diagnostiquer les pertes de paquets, la latence et les problèmes de connectivité.
Processus de capture de paquets
La figure suivante illustre le processus de capture de paquets.
Remarques concernant le processus ci-dessus :
|
No. |
Étape |
Description |
|
1 |
Identifier les symptômes du problème |
Utilisez des outils tels que ping et traceroute pour déterminer si les problèmes suivants sont présents :
|
|
2 |
Choisir un outil de capture de paquets |
Sélectionnez un outil de capture de paquets en fonction de votre système d'exploitation :
|
|
3 |
Installer et configurer l'outil de capture de paquets |
Configurez les conditions de filtrage avant la capture pour améliorer l'efficacité. |
|
4 |
Capturer les paquets réseau |
Précisez les éléments suivants avant la capture :
|
|
5 |
Analyser les données capturées |
Analysez les données capturées :
|
|
6 |
Résoudre le problème et vérifier les résultats |
Si les données capturées sont insuffisantes, utilisez d'autres outils pour un dépannage plus approfondi :
|
Utiliser l'outil tcpdump sur les instances Linux
La plupart des distributions Linux ont tcpdump préinstallé. Si ce n'est pas le cas, installez-le avec un gestionnaire de paquets tel qu'APT ou YUM. Consultez Utiliser des outils de gestion de paquets pour gérer les logiciels.
Description
Commande tcpdump :
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
[ -c count ] [ --count ] [ -C file_size ]
[ -E spi@ipaddr algo:secret,... ]
[ -F file ] [ -G rotate_seconds ] [ -i interface ]
[ --immediate-mode ] [ -j tstamp_type ] [ -m module ]
[ -M secret ] [ --number ] [ --print ] [ -Q in|out|inout ]
[ -r file ] [ -s snaplen ] [ -T type ] [ --version ]
[ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ]
[ -z postrotate-command ] [ -Z user ]
[ --time-stamp-precision=tstamp_precision ]
[ --micro ] [ --nano ]
[ expression ]
Paramètres fréquemment utilisés :
|
Paramètre |
Description |
|
-s |
Taille de capture. Une valeur de 0 utilise la taille de capture définie par le système. |
|
-w |
Enregistre les paquets capturés dans un fichier au lieu de les afficher dans la console. |
|
-i |
Interface réseau sur laquelle écouter. |
|
-vvv |
Affiche les données d'interaction détaillées. |
|
expression |
Expression de filtrage. Prend en charge les primitives suivantes :
|
Consultez la page de manuel tcpdump pour connaître tous les paramètres et leur utilisation.
Exemples
Les exemples suivants présentent des commandes tcpdump courantes et leurs sorties.
-
Capturer les paquets pour une interface et un port spécifiques
Capturez les paquets sur l'interface eth0 pour le port 22 et affichez-les dans la console :
tcpdump -s 0 -i eth0 port 22Pendant la capture, les données des paquets s'affichent en temps réel. Appuyez sur
Ctrl+Cpour arrêter. Un résumé s'affiche après l'arrêt de la capture.tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 20:24:59.414951 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442372:442536, ack 53, win 141, length 164 20:24:59.415002 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442536:442700, ack 53, win 141, length 164 20:24:59.415052 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442700:442864, ack 53, win 141, length 164 20:24:59.415103 IP 172.xx.xx.226.ssh > 42.xx.xx.107.43414: Flags [P.], seq 442864:443028, ack 53, win 141, length 164 -
Capturer les paquets avec une sortie verbeuse
Capturez les paquets sur l'interface eth1 pour le port 22 avec une sortie verbeuse :
tcpdump -s 0 -i eth1 -vvv port 22Pendant la capture, les données des paquets s'affichent en temps réel. Appuyez sur
Ctrl+Cpour arrêter. Un résumé s'affiche après l'arrêt de la capture.tcpdump: listening on eth1, link-type EN10MB (Ethernet), snapshot length 262144 bytes 15:45:54.817920 IP (tos 0x10, ttl 64, id 61958, offset 0, flags [DF], proto TCP (6), length 172) iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x80cd (incorrect -> 0x2ee9), seq 890113592:890113724, ack 2345612678, win 592, length 132 15:45:54.894215 IP (tos 0x14, ttl 116, id 16850, offset 0, flags [DF], proto TCP (6), length 40) 123.139.88.74.2057 > iZr1ulp9t4u4a8Z.ssh: Flags [.], cksum 0x1e6a (correct), seq 1, ack 132, win 1021, length 0 15:45:54.913403 IP (tos 0x10, ttl 64, id 61959, offset 0, flags [DF], proto TCP (6), length 172) iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x80cd (incorrect -> 0x1105), seq 132:264, ack 1, win 592, length 132 15:45:54.988025 IP (tos 0x10, ttl 64, id 61960, offset 0, flags [DF], proto TCP (6), length 236) iZr1ulp9t4u4a8Z.ssh > 123.xxx.xxx.74.2057: Flags [P.], cksum 0x810d (incorrect -> 0x98d1), seq 264:460, ack 1, win 592, length 196 -
Capturer les paquets d'un protocole spécifique pour une adresse IP donnée
Capturez les paquets ICMP sur l'interface eth0 pour une adresse IP de destination spécifique :
tcpdump -s 0 -i eth0 -vvv dst 123.xxx.xxx.74 and icmpPendant la capture, les données des paquets s'affichent en temps réel. Appuyez sur
Ctrl+Cpour arrêter. Un résumé s'affiche après l'arrêt de la capture.tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes 15:43:29.116058 IP (tos 0x14, ttl 64, id 26185, offset 0, flags [none], proto ICMP (1), length 60) iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 65, length 40 15:43:30.129600 IP (tos 0x14, ttl 64, id 27043, offset 0, flags [none], proto ICMP (1), length 60) iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 66, length 40 15:43:31.141576 IP (tos 0x14, ttl 64, id 27201, offset 0, flags [none], proto ICMP (1), length 60) iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 67, length 40 15:43:32.153912 IP (tos 0x14, ttl 64, id 27802, offset 0, flags [none], proto ICMP (1), length 60) iZr1ulp9t4u4a8Z > 123.xxx.xxx.74: ICMP echo reply, id 2048, seq 68, length 40 -
Capturer les paquets et les enregistrer dans un fichier
Capturez les paquets sur toutes les interfaces et enregistrez-les dans un fichier :
tcpdump -i any -s 0 -w test.capExemple de sortie indiquant que la capture est en cours :
tcpdump: data link type LINUX_SLL2 tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytesAppuyez sur
Ctrl+Cpour arrêter. Un résumé s'affiche après l'arrêt de la capture.^C97 packets captured 127 packets received by filter 0 packets dropped by kernel -
Afficher un fichier de capture
Affichez le contenu d'un fichier de capture tcpdump :
tcpdump -r test.cap
Utiliser l'outil Wireshark sur les instances Windows
Wireshark fournit une interface graphique pour capturer et analyser les paquets réseau sur les instances Windows.
Procédure
-
Installez et démarrez Wireshark.
Téléchargez le package d'installation depuis le site officiel de Wireshark et installez-le.
Choisissez Capture> Options.
Sur la page Wireshark Capture Options, sélectionnez une interface réseau en fonction du nom de l'interface ou de l'adresse IP, puis cliquez sur Start.
Une fois qu'un nombre suffisant de paquets a été capturé, choisissez Capture > Stop.
Choisissez File > Save pour enregistrer les paquets capturés.
(Facultatif) Pour afficher un fichier de capture de paquets, choisissez File > Open et sélectionnez le fichier.
Consultez le site officiel de Wireshark pour obtenir des guides d'utilisation et des méthodes d'analyse des données.