A detailed workaround for the problem that Cisco IOS cannot do policy based routing on 'match ip next-hop'. This would be relatively trivial if it could, and RTR002 would be not required at all. I am no longer aware of any ISP using the below technique, however it was used by at least one in the late 1990's when domestic traffic was extremely badly priced due to monopolistic practices of the incumbent telco in Australia. The problem, in full: ISP A has links to Domestic Upstream B and International Upstream C. The link to B is congested outbound due to content but has excessive inbound. The link to C has surplus inbound and outbound, but higher latency. The outbound to C is far less congested as most outbound content is domestic-bound but most inbound content is international-sourced. A wants to re-route latency insensitive traffic such as SMTP which would normally go directly to B to go via C instead, to provide a clean outbound path to B for latency-sensitive traffic. ================================================================================ RTR001 Purpose: ATM connection to provider including internal WAN trunks and upstream domestic connectivity on the same ATM. Re-routing role: int f0/0.1 sends all latency-insensitive traffic received on any other interface to rtr002 for potential re-routing. traffic received back on int f0/0.1 is assumed local and not subject to re-routing. int f0/0 desc Backbone LAN ip addr 192.168.0.1 255.255.255.0 ip policy route-map domestic-remap ! int f0/0.1 desc Send/receive latency-insensitive traffic from/to rtr002/3 for rerouting ip addr 10.0.0.1 255.255.255.248 encap dot1q 10 ! int a1/0.1 desc Interstate WAN PVC ip addr 192.168.1.1 255.255.255.252 ip policy route-map domestic-remap ! int a1/0.2 desc PVC to domestic upstream with outbound congestion ip addr 192.168.2.1 255.255.255.252 ! route-map domestic-remap permit 10 match ip address 123 set ip next-hop 10.0.0.2 ! route-map domestic-remap permit 20 ! route-map no-domestic permit 10 match community 10 ! route-map no-domestic deny 20 ! route-map tag-domestic permit 10 set community 65535:1000 ! ip bgp community new-format ! ip community-list 10 deny 65535:1000 ip community-list 10 permit internet ! access-list 123 permit ip any any eq 25 access-list 123 permit ip any eq 25 any ! router bgp 65535 neighbour 10.0.0.2 remote-as 65535 neighbour 10.0.0.2 route-reflector-client neighbour 10.0.0.2 send-community neighbour 10.0.0.2 route-map no-domestic out neighbour 192.168.0.3 remote-as 65535 neighbour 192.168.0.3 route-reflector-client neighbour 192.168.0.3 send-community neighbour 192.168.1.2 remote-as 65535 neighbour 192.168.1.2 route-reflector-client neighbour 192.168.1.2 send-community neighbour 192.168.2.2 remote-as 65534 neighbour 192.168.2.2 route-map tag-domestic in RTR002 Purpose: To re-route latency-insensitive traffic via second upstream with more outgoing bandwidth but higher latency. Exists only on VLAN 10 (by switch config). Re-routing role: int f0/0 receives latency insensitive traffic. traffic destined for internal or peer addresses is returned to rtr001, traffic which is destined to something not in the routing table is sent to rtr003 to be sent out the latency insensitive link. int f0/0 desc Send/receive latency-insensitive traffic from/to rtr001/3 for rerouting ip addr 10.0.0.2 255.255.255.248 ! ip route 0.0.0.0 0.0.0.0 10.0.0.3 ! router bgp 65535 neighbour 10.0.0.1 remote-as 65535 neighbour 10.0.0.1 route-reflector-client neighbour 10.0.0.1 send-community neighbour 10.0.0.1 route-map munge-nexthop in ! route-map munge-nexthop permit 10 set ip next-hop 10.0.0.1 RTR003 Purpose: DS3 link to international upstream provider. Re-routing role: int f1/0.1 receives latency insentive domestic or international traffic. this traffic is sent directly out the international upstream. int f0/0 desc Backbone LAN ip addr 192.168.0.3 255.255.255.0 ! int f0/0.1 desc Receive latency insensitive traffic from rtr001 via rtr002 for rerouting ip addr 10.0.0.3 255.255.255.248 encap dot1q 10 ip policy route-map domestic-remap ! int s1/0 desc DS3 to international upstream ip addr 192.168.3.1 255.255.255.252 ! ip route 0.0.0.0 0.0.0.0 192.168.3.2 ! route-map domestic-remap permit 10 set ip next-hop 192.168.3.2 ! router bgp 65535 neighbour 192.168.0.1 remote-as 65535 neighbour 192.168.0.1 route-reflector-client neighbour 192.168.0.1 send-community neighbour 192.168.3.2 remote-as 65533