ping on wrong interface despite route
I have a fedora core 4 box with 2 NIC's. eth0 is on 172.31.254.x and eth1 is on 172.31.253.x. A third network 172.31.250.x is reachable via eth0.
Whenever I trying to ping 172.31.250.2 from my box, it is going out eth1 - when it should be using eth0. Here is my routing table:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.31.250.0 * 255.255.255.0 U 0 0 0 eth0
172.31.254.0 * 255.255.255.0 U 0 0 0 eth0
172.31.253.0 * 255.255.255.0 U 0 0 0 eth1
169.254.0.0 * 255.255.0.0 U 0 0 0 eth0
default 172.31.253.1 0.0.0.0 UG 0 0 0 eth1
Here is the dmesg confirming the pings are going out the wrong interface.
IN= OUT=eth1 SRC=172.31.253.4 DST=172.31.250.2 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=4 DF PROTO=ICMP TYPE=8 CODE=0 ID=42317 SEQ=4
Why is ping not using the right interface? (why using eth1 not eth0)