Actually I ended up using policy based routing. As I needed to control the traffic based upon the "source" address, not the destination. I needed certain subnets on my network to be routed thru certain isps.
One question about the next-hop-statement that i used. It seems you can add more then one next-hop.
set ip next-hop 126.96.36.199
Does the 2nd next-hop only go into affect if the 1st one is unreachable?
Since I have bgp running, and if the first one is unreachable, will the packets be automatically sent to the other routers? or Do i need to specify the other routers as next-hop?
The 2nd next hop is used if the first next hop is unreachable (not in the routing table). The next hop would normally be learned through an IGP (connected, static, etc), rather than through BGP (?), but once this route was removed from the table, the second next hop would be used.
In other words, if you do a match, then set the next hop, and none of the next hops exist, will it revert to normal routing? Yes, it will. If there is a route in the routing table, and the set next-hop fails, the router will then use the route in the routing table.
access-list 101 permit ip host 188.8.131.52 any
route-map testnexthop permit 10
match ip address 101
set ip next-hop 184.108.40.206
ip address 220.127.116.11 255.255.255.0
ip policy route-map testnexthop
Target IP address: 18.104.22.168
Extended commands [n]: y
Source address or interface: 22.214.171.124
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 126.96.36.199, timeout is 2 seconds:
Success rate is 0 percent (0/5)
2w4d: IP: s=188.8.131.52 (Serial0/3), d=184.108.40.206, len 100, policy match
2w4d: IP: route map testnexthop, item 10, permit
2w4d: IP: s=220.127.116.11 (Serial0/3), d=18.104.22.168 (Serial0/0), len 100, policy rejected -- normal forwarding
So, the set next-hop fails, and 26D falls back to the routing table, where the actual destination is directly connected.