Using Optimized Edge Routing (OER) to Combine Multiple ISP Links

Here is a basic configuration I did for Optimized Edge Routing using static routes.  OER is supported on 12.3T, and is a huge technology that seems to fill volumes at cisco.com, but I wanted to boil it down to basics, I was researching more on this for a pre-sales effort and wanted to share.  This configuration has been tested in an actual environment, so what you see below is a working config.  What it does is actively learn routes, by watching where people are going.  My config aggregates these to the /26, and installs 1000 prefixes max.  So if it saw someone hit 200.200.200.1 and then someone hit 200.200.200.5, it would just install 200.200.200.0/26.  100 prefixes is just for safety, basically with router memory and cpu you can go as high as 2500.  You can do a lot with this, you can have it “learn” routes like mine does below, or you can have it work off the bgp table……..*a lot* of tie-in’s to BGP, but my config below is sans BGP.

It’s a basic config with Three ISP’s, the Master Controller and Border Router are one in the same in this config, although you can have a dedicated Master Controller and 10 or so Border Routers if you like.  You have to have at least 2 external interfaces for a valid config, but these don’t have to reside on the same border router, they can be separate border routers.  The below is using DSL connections brought directly into the router via PPPoA, so there are dialer interfaces as well.

The keywords below make it uses delay and throughput as metrics in the best path calculation.  Also the “max-range-utilization percent 10” tell it to keep both links within 10 percent of each other from a utilization perspective.  OER is actually inserting routes into your router, in this case /26’s, to trump your default.  My below config will insert up to 1000 /26’s.  Its possible your NAT flow gets built over ISP #1, and then OER inserts a /26 that hijacks your flow and sends it out ISP #2.  This is why the “oer” keyword is on the NAT “ip nat inside source” line, it tells the router that any existing flows continue to use its original exit path.

There is PAT going on to allow servers to still work, those are policy routed over the Dialer1 interface as thats where their static IP’s came from.  Also notice the loopback1 interface which is for local policy routing so I can manage this router remotely.  You must account for local policy routing if you wish to do anything remote with a router set up like this (telnet, snmp, etc).

Some of the best info on this technology is:

Command Reference (you can look up the commands/parameters I chose for the below config)
http://www.cisco.com/en/US/docs/ios/oer/command/reference/oer_book.html

Configuration Guide
http://www.cisco.com/en/US/docs/ios/oer/configuration/guide/oer-vpn_gre_exit_ps6441_TSD_Products_Configuration_Guide_Chapter.html

Other things you can do is base your route decision not off just prefix, but flow (src, dst, src port, dst port, protocol), and you can also use “active” mode and tie it into IP SLA so you can have voice traffic automatically utilizing the lowest jitter path, or lowest latency path.  And you can do all this with or without BGP and other routing protocols, it really can “learn” and do a lot of this dynamically.

This entry was posted in CCIE Routing and Switching, Cisco and tagged . Bookmark the permalink.

Leave a Reply