I have a Fedora 12 box with DSL modem, I tried this:
ip route delete default
ip route add default route dev ppp0 scope link metric 10
ip route add default via 192.168.0.1 dev eth0 proto static metric 11
ppp0 is my PPTP device and 192.168.0.1 my default gw,
I'm not sure metrics is the right way, but works for me.
Presuming you're doing 6in4 through this? If so, perhaps this is an alternative to policy routing.
what makes this work is the lower metric + the scope clause on the default through the PPTP. I'm not positive, but I'm thinking maybe the scope clause causes routing to ignore the default route unless the ppp0 interface is involved, which would be the case when the source IP is the ppp0 IPv4, then that default is considered and selected because of the lower metric?
That'd have basically the same affect as policy routing if it works the way I describe above, only using the default through ppp0 if the source IPv4 lives on the ppp0 interface. But I'm guessing here since I'm not fully understanding how the "scope" thing works in this context.