At work, I had an interesting problem where boxes would just seem to stop responding to ping packets for awhile on one interface, until you ping the other interface on the box. It turned out to be a problem with the way that Linux sends ARP requests when you’ve got routing set up across two interfaces. I decided to use Linux’s advanced routing features to fix this problem for our case. Basically, I just end up forcing traffic onto the interface for the IP address that the box was reached on – if you hit the box on it’s front-facing IP, the traffic will go back out the front side; if you hit the rear-facing IP, the traffic will go out the rear interface. Figuring this info could be useful for other people, I’ve written a quick article about how to set it up:
This is also useful if you have two separate ISP’s with different address ranges, and want to make sure the traffic goes back out the proper interface. Hope you find it useful!