Consider the following topology:
I am sending ICMP (ping) packets from host B
to 10.0.1.1
. They reach the target and the target answers with a reply
. The connectivity works fine.
When running, on host A
tcpdump -i eth1 icmp
: I do not see any packetstcpdump -i eth2 icmp
: I see the packets
Is there a way to check if a packet intended to interface eth1
did reach that interface?
I vaguely remember reading one day that the kernel was handing the reply at eth2
level (which is the first interface the packet reaches) so that could explain why monitoring eth1
does not yield any results.
As for why I would need to check such specific case: I have cases where a packet arrives on an interface of a host (the first one on its way) but does not seem to reach the intended interface (the actual application is not brought up). Such a test would ensure that the firewalling/forwarding is OK and that the problem is elsewhere (in the configuration of the app, a bug in the app, etc)