2 votes

réponse icmp ping non reçue par le processus ping, vue par tcpdump/wireshark

J'ai du mal à faire en sorte que le processus ping reçoive la réponse, même si je peux clairement voir la réponse dans la sortie de tcpdump.

Je suis en train de courir :

  • Mac OS X 10.11.4 El Capitan
  • Interface de pont avec interface de connexion en tant que membre
  • qemu exécute une instance VM de IncludeOS

Le pont est créé comme suit :

sudo ifconfig bridge5 create
sudo ifconfig bridge5 10.0.0.5 netmask 255.255.255.0 up

L'interface du robinet est un tuntap et est relié au pont comme suit :

sudo ifconfig bridge5 addm tap0

Je lance ma VM en utilisant qemu sans problème et voici ce que j'observe :

  1. La connexion à un service TCP exécuté sur la VM fonctionne sans problème. Je suis capable de charger une page web.
  2. Effectuer un arping fonctionne très bien.
  3. Un normal ping 10.0.0.42 me donne Request timeout for icmp_seq mais lorsque je vérifie la sortie de tcpdump, je vois ce qui suit :

    $ tcpdump -i bridge5 -vvv
    tcpdump: listening on bridge5, link-type EN10MB (Ethernet), capture size 262144 bytes
    15:11:40.014240 IP (tos 0x0, ttl 64, id 47005, offset 0, flags [none], proto ICMP (1), length 84, bad cksum 0 (->aedd)!)
        10.0.0.5 > 10.0.0.42: ICMP echo request, id 24337, seq 8, length 64
    15:11:40.014808 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto ICMP (1), length 118)
        10.0.0.42 > 10.0.0.5: ICMP echo reply, id 24337, seq 8, length 98 (wrong icmp cksum af73 (->3b17)!)

La seule chose que je remarque avec cette sortie est que la somme de contrôle est mauvaise. Nous avons eu exactement la même solution fonctionnant sur Ubuntu pendant un long moment, et quand j'ai vérifié, il y avait également une erreur de checksum icmp sur les réponses.

Avez-vous une idée de ce qui pourrait empêcher les réponses de parvenir à l'application ping ?

4voto

yagmoth555 Points 15629

Wireshark voit le paquet avant le firewall en réception. cela signifie qu'un firewall ou un produit similaire filtre votre réception. ( 参照 )

le mauvais checksum signifie généralement que déchargement des checksum tcp est activé sur le nœud.

Déchargement de la somme de contrôle TCP (beaucoup d'erreurs de somme de contrôle)

Il y a des causes pour lesquelles vous pouvez voir beaucoup d'erreurs de somme de contrôle.

Si vous effectuez une capture sur une NIC Ethernet récente, vous pouvez voir de nombreux éléments de ce type "erreurs de somme de contrôle". Ceci est dû au déchargement de la somme de contrôle TCP qui est souvent souvent implémenté sur ces NIC et donc, pour les paquets transmis par les l'ordinateur. [ ] envoyé par le matériel NIC, longtemps après que votre outil de capture n'ait ait intercepté le paquet depuis la pile réseau.

car cela peut prêter à confusion et empêcher Wireshark de se réassembler. segments TCP, il est préférable de désactiver la vérification des sommes de dans ces cas.

Pour désactiver la vérification du TCP che et décochez la case de vérification de la somme de contrôle.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X