I have 3 linux boxes in a triangle. All subnets are /24.
A has two interfaces: 1.1.1.1, 2.2.2.1
B has two interfaces: 1.1.1.2, 3.3.3.2
C has two interfaces: 3.3.3.1, 2.2.2.2
No routing protocol is running so I am adding a static route on each node.
When pinging A(1.1.1.1)-->C(3.3.3.1), all goes well when A has a static route to 3.3.3.0 via B and C has a static route to 1.1.1.0 via B. So symmetric routing works fine.
Problem happens when I set the return path on C via 2.2.2.1. The ICMP request reaches interface 3.3.3.1 (I see it in tcpdump) but C simply does nothing and no ICMP reply gets sent over any interface.
Any ideas about what is happening?
Your distribution may have enabled the "reverse path filter", which prevents asymmetric routing. On each machine, do
and check that it is disabled for all interfaces.