icmp ping resposta não recebida pelo processo de ping, visto pelo tcpdump / wireshark

2

Estou tendo um problema em obter o processo de ping real para receber a resposta, embora eu possa ver claramente a resposta na saída do tcpdump.

Estou correndo:

  • Mac OS X 10.11.4 El Capitan
  • Interface de ponte com interface de toque como membro
  • O qemu está executando uma instância de VM de IncludeOS

A ponte é criada da seguinte forma:

sudo ifconfig bridge5 create
sudo ifconfig bridge5 10.0.0.5 netmask 255.255.255.0 up

A interface de toque é um dispositivo tuntap e está vinculada à ponte da seguinte forma:

sudo ifconfig bridge5 addm tap0

Eu inicio minha VM usando o qemu sem problemas e aqui está o que eu observo:

  1. Conectar-se a um serviço TCP em execução na VM funciona sem problemas. Consigo carregar uma página da Web.
  2. Realizar uma armação funciona muito bem.
  3. Um% normalping 10.0.0.42 me dá Request timeout for icmp_seq , mas quando eu finalizo a saída tcpdump eu vejo o seguinte:

    $ 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)!)
    

A única coisa que noto com essa saída é que a soma de verificação é ruim. Nós tivemos essa mesma solução trabalhando no Ubuntu por um longo tempo, e quando eu chequei lá também havia um erro de soma de verificação do icmp nas respostas.

Alguma idéia do que poderia estar impedindo as respostas de passarem para o aplicativo ping?

    
por McBirdy 28.06.2016 / 15:18

1 resposta

4

wireshark vê o pacote antes do firewall na recepção. Isso significa que um firewall ou um produto similar filtra sua recepção. ( referência )

a soma de verificação incorreta normalmente significa que o descarregamento de soma de verificação tcp está ativado no nic.

TCP checksum offloading (lots of checksum errors)

There are causes where you might see lots of checksum errors.

If you capture on a recent Ethernet NIC, you may see many such "checksum errors". This is due to TCP Checksum offloading often being implemented on those NICs and thus, for packets being transmitted by the machine. The checksum will not be calculated until the packet is sent out by the NIC hardware, long long after your capture tool intercepted the packet from the network stack.

As this may be confusing and will prevent Wireshark from reassemble TCP segments it's a good idea to switch checksum verification off in these cases.

To disable checking of the TCP checksum validity, go to the TCP preferences and untick the box for checksum verification

    
por 28.06.2016 / 15:25