INTRO:
There's an IPIP
tunnel (call it megatun0
) to a machine connected to a private network. The megatun0
tunnel is bound with the address 192.168.15.1
. One of the network interface on the machine remote machine has address 10.10.10.10
.
PROBLEM:
ping -I megatun0 10.10.10.10
reports no ICMP
echo replies received. Running strace ping -I megatun0 10.10.10.10
didn't show up anything interesting except that
recvmsg(3, {msg_namelen=128}, 0) = -1 EAGAIN (Resource temporarily unavailable)
But when running tcpdump icmp -nn -v
I got the following output:
22:29:32.220191 IP (tos 0x0, ttl 64, id 34344, offset 0, flags [DF], proto ICMP (1), length 84)
192.168.15.1 > 10.10.10.10: ICMP echo request, id 25118, seq 6, length 64
22:29:32.388927 IP (tos 0x0, ttl 64, id 7361, offset 0, flags [none], proto ICMP (1), length 84)
10.10.10.10 > 192.168.15.1: ICMP echo reply, id 25118, seq 6, length 64
So in fact I got the echo replies from the host, but they were not reported by ping though.
Why might that happen?