Hello I am doing some experiments with multipath on linux. I am experiencing some differences in how a linux box handles a packet that it has to forward and a packet that it has to send itself. Consider this scenario: I have 5 nodes with the following routes: 0<->1 1->2 1->3 2->4 3->4 4->1 I set up node <1> with these commands, in order to do multipath: $ ip route add default \ > nexthop via 1.1.1.3 dev eth0 weight 10 \ > nexthop via 1.1.1.2 dev eth2 weight 7 I.e. node <2> is 1.1.1.2; node 3 is 1.1.1.3; and so on... Then I open a TCP connection between 0 and 4. Packets should do one of these 2 paths: 1) GO = 0->1->2->4 RETURN = 4->1->0 2) GO = 0->1->3->4 RETURN = 4->1->0 Since in node <1> kernel caches the route to <4>, normally I should see that all the packets go through only one of the paths described above. But I execute, at intervals of 1 second, the following command "ip route flush cache" in node <1>. The result is that I see that the packets go through sometime path 1) and sometime path 2) as described above. Up to now, no problem. But I see a different behaviour when I open a connection between 1 and 4. Now the paths should be these 2: 1) GO = 1->2->4 RETURN = 4->1 2) GO = 1->3->4 RETURN = 4->1 Instead, I see that all the packets go through only one of the paths described above. It is chosen initially and then never changes. Could you shed some light on this? Why, although I clear the cache each second, the other path is never used? Is there another table that the kernel looks into for packets that are originated by this node? TIA Luca -- To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html