I'm having an issue with getting the actual ping process to receive the reply even though I can clearly see the response in the tcpdump output.
I'm running on:
- Mac OS X 10.11.4 El Capitan
- Bridge interface with tap interface as a member
- qemu is running a VM instance of IncludeOS
The bridge is created as follows:
sudo ifconfig bridge5 create
sudo ifconfig bridge5 10.0.0.5 netmask 255.255.255.0 up
The tap interface is a tuntap device and is linked to the bridge as follows:
sudo ifconfig bridge5 addm tap0
I launch my VM using qemu without issues and here is what I observe:
- Connecting to a TCP service running on the VM works without issue. I'm able to load a webpage.
- Performing an arping works great.
A normal
ping 10.0.0.42
gives meRequest timeout for icmp_seq
, but when I check out the tcpdump output I see the following:$ 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)!)
The one thing I notice with this output is that the checksum is bad. We have had this exact same solution working on Ubuntu for a long while, and when I checked there there was also an icmp checksum error on the replies.
Any ideas for what could be stopping the replies from going through to the ping application?