It seems that ip rules are not matchinig. Here's what I have: I start with default rules: 0: from all lookup local 32766: from all lookup main 32767: from all lookup default Then I create a rule with this to catch stuff coming in on eth2 to use the "mytable2" routing table: ip ru add from 192.x.x.0/24 dev eth2 table mytable2 pref 200 ip route flush cache which yeilds: 0: from all lookup local 200: from all iif eth2 lookup mytable2 32766: from all lookup main 32767: from all lookup default mytable2 is (not that it really matters): 216.x.x.56/29 dev eth3 proto kernel scope link src 216.x.x.61 192.x.x.0/24 dev eth2 proto kernel scope link src 192.x.x.24 24.x.x.0/24 dev eth0 proto kernel scope link src 24.x.x.60 default via 216.x.x.57 dev eth3 I ping something through here from 192.x.x.6 but it doesn't use "mytable2" it just uses the main routing table. Help, does anybody have any ideas? thanks, Scott