I got following routing setup:
Target Gateway Mask
0.0.0.0 192.168.1.1 0.0.0.0
192.168.2.0 192.168.1.2 255.255.255.0
192.168.1.0 0.0.0.0 255.255.255.0
Router 192.168.1.1 connects to internet. Router 192.168.1.2 connects to another LAN. Routing works and I can reach both internet and hosts at 192.168.2.* as expected.
Then
router 192.168.1.2 has changed its IP address to 192.168.1.10. Routing tables has not been changed, they are just like above.
ARP tables has both 192.168.1.2 (old) and 192.168.1.10 (new) if that could have any effect?
That behavior was confusing so I did try same routing configuration with another machine (that's not been part of network before) and as I expected it did not work. Only 192.168.1.10 found from ARP tables as resolved record, which is also expected behavior.
So, my question is: Why does routing to 192.168.2.* hosts still work? There's no valid route to that network anymore.
OS which still connects through "legacy" route is linux 3.18.7 if that matters.