Here you are:
host# tcpdump -i eth1 -n host 10.0.0.12
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
17:37:19.184178 IP 134.214.51.158 > 10.0.0.12: ICMP echo request, id 53255, seq 1, length 64
17:37:20.184319 IP 134.214.51.158 > 10.0.0.12: ICMP echo request, id 53255, seq 2, length 64
17:37:21.184164 IP 134.214.51.158 > 10.0.0.12: ICMP echo request, id 53255, seq 3, length 64
3 packets captured
6 packets received by filter
0 packets dropped by kernel
Note that the source address is clearly wrong (should have been 10.0.0.108)
host# tcpdump -i venet0 -n host 10.0.0.12
tcpdump: WARNING: arptype 65535 not supported by libpcap - falling back to cooked socket
tcpdump: WARNING: venet0: no IPv4 address assigned
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on venet0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
17:38:23.179430 IP 134.214.51.158 > 10.0.0.12: ICMP echo request, id 53255, seq 65, length 64
17:38:24.179289 IP 134.214.51.158 > 10.0.0.12: ICMP echo request, id 53255, seq 66, length 64
17:38:25.179117 IP 134.214.51.158 > 10.0.0.12: ICMP echo request, id 53255, seq 67, length 64
17:38:26.179034 IP 134.214.51.158 > 10.0.0.12: ICMP echo request, id 53255, seq 68, length 64
4 packets captured
8 packets received by filter
0 packets dropped by kernel
Same comment.
And finally:
vps# ping 10.0.0.12 -I 10.0.0.108
PING 10.0.0.12 (10.0.0.12) from 10.0.0.108 : 56(84) bytes of data.
64 bytes from 10.0.0.12: icmp_seq=1 ttl=63 time=0.102 ms
64 bytes from 10.0.0.12: icmp_seq=2 ttl=63 time=0.099 ms
So it's working when specifying the source address. Is there any way to make this working without arguments ? (maybe using source routing ?)
Thanks for your help