web-dev-qa-db-fra.com

Comment capturer les "paquets abandonnés" dans tcpdump

J'ai un problème avec mes performances de réseautage. J'utilise Ubuntu 16.04 sur VMware Cloud Server avec NIC E1000. Mais je vois des paquets abandonnés dans des sections de la commande ifconfig:

root@ubuntu:~# ifconfig ens192
ens192    Link encap:Ethernet  HWaddr 00:50:56:03:25:14  
          inet addr:192.16.1.100  Bcast:192.16.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:574749 errors:0 dropped:83 overruns:0 frame:0
          TX packets:76478 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:44109471 (44.1 MB)  TX bytes:19484534 (19.4 MB)

Bien que ce soit juste quelques paquets tombés, mais mon serveur exécute un jeu en temps réel en ligne, vous savez donc que cela a une incidence sur mes clients qui se connectent.

J'ai fait dans certaines recherches et explorer des informations sur Google, après cela, j'ai essayé de modifier le fichier de configuration pour la bague tampon, la taille de Windows max, etc. Mais ça tombe toujours mes paquets.

Donc, maintenant, je veux capturer des paquets qui ont chuté pour analyser quel type de paquets est exactement.

J'ai aussi essayé cette capture à mon avis dans Wireshark:

Sudo tcpdump -i ens192 -n -w /var/www/html/logs.pcap -C 1 -Z root

Mais je ne pense pas que je puisse voir quels paquets sont abandonnés! Je pense que les paquets tombés sont ignorés avant d'aller au filtre de TCPDump.

Pouvez-vous me suggérer quelle méthode capturer des "paquets abandonnés" ci-dessus (déposé: 8)?

Merci d'avance!

6
Joey

Le problème peut être avec TCPDump lui-même: s'il ne répondit pas assez rapidement, les vieux paquets seront écrasés par de nouveaux, ce qui signifie qu'ils sont abandonnés.

Si vous capturez tous les octets de chaque paquet, il est très facile de dépasser le tampon de capture de paquets du noyau. Les symptômes de ce dépassement sont que votre programme de trace de paquets signalera qu'il a chuté de paquets.

Dans le cas de TCPDump, il imprime un résumé du nombre de paquets capturés, filtrés et supprimés lorsque vous arrêtez la capture. Par exemple:

$ Sudo tcpdump -i en0 -w trace.pcap
tcpdump: listening on en0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C
94 packets captured
177 packets received by filter
0 packets dropped by kernel

Si le compte dropped Nombre est non nul, vous devez augmenter la taille du tampon de capture de paquets en passant le -B option to tcpdump. Essayez-le également sans fichier de capture, pour voir si cela améliore le rapport de capture.

4
harrymc