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
tcpdump -i eth1 icmp: I do not see any packets
tcpdump -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)