WAN Redundancy Without BGP
Quick note: I attempted this
config in early 2009. I managed
to get both tunnels up and the default route redistributed
through EIGRP. The network was stable, as long as only one
tunnel was participating in EIGRP. When the second tunnel
was brought up, EIGRP began complaining of route conflicts
and dropping the redistributed static route. I ended up dropping
the project when the remote router dropped offline. I had harassed
the datacenter techs enough, and shelved the project for another
time. I hope to attempt this again in the future!
The gold standard for internet redundancy is Border Gateway
Protocol (BGP).
An organization can register for its own block of IP addresses and autonomous
system
number (ASN). These addresses belong to you and not your ISP.
To connect your block
to the internet, a traditional WAN connection (DS1, DS3, etc.) is made to an ISP
and your
router is set up as a BGP peer with the provider router. Your router
advertises your ASN and
IP block to the provider, who passes it along to their BGP peers. When
this process is done with
multiple providers, you end up with a layer 3 redundant connection to the
internet. Unfortunately,
BGP requires constant tuning, skilled staff, and a provider willing to provide
BGP peering.
I live in an area with only a few internet providers, and
only one supports BGP peering.
So other options need to be explored for redundancy. As I was studying for
the CCNP ISCW
exam, I had an idea. It should be possible to extend BGP-quality
fault tolerance into my
home network using dual internet providers, a router colocated in a datacenter,
and dual GRE
tunnels. If this sounds crazy, please read on..

Step 1
Colocate a Cisco router in a datacenter. I am using a spare Cisco
2620. Reserve two or more IP
addresses for
the router: one for the
management interface, and one or more to use for NAT.
The datacenter must be running BGP
(nearly all do).
That means the IP
address they
assign to your
router is fault tolerant by the BGP standard. Good. Let's extend
that to the small office or home office.
Step 2
Set up a router in your home or office. You need two internet
providers. Simple residential
services like cable modem and DSL work fine. Each provider needs to be
connected to a
WAN interface on your router. Allow these interfaces to get a DHCP address
from the provider,
or enter your static IP that the provider assigned.
Step 3
Establish two GRE tunnels (one across each provider) between the two routers.
From this point on,
we deal with these two virtual connections and can disregard the underlying
topology.
Step 4
Enable EIGRP on the new tunnel interfaces and LAN interface. On the remote
router, we need to
redistribute static routes into EIGRP so that the home/office router can see a dynamic
default route.
Important: Remove the default route on your local router and
replace it with a /32 route
to the management IP of your remote router in the datacenter. The
redistributed default route will
appear as an External EIGRP route on the home/office router (Administrative
Distance = 170).
If the home/office router has a default static route (AD = 1), it will take
precedence and
traffic will never flow out through your tunnels. Once that is complete, we see an EIGRP
topology like this:

EIGRP is now managing our default route via the remote datacenter. It can
respond correctly
to the tunnel interfaces becoming unavailable (or simply not passing traffic).
At this point, you can
hook a computer into your LAN and hit the internet via the tunnels. One
more step to allow inbound traffic:
Step 5
Enable NAT on the remote router and set up a static NAT entry from the
remote router to an address on the LAN.
You can static NAT entire IP addresses from the datacenter IP space to your LAN.
You can also map individual
TCP and UDP ports like you typically would on a home LAN.
Load balancing:
EIGRP will add one redistributed default route to the home/office per tunnel.
By default, Cisco IOS
can accept up to 6 routes to the same destination and will use a round-robin
load balancing scheme
between them. It should be possible to force the router to prefer one
tunnel over the other by tweaking
the EIGRP metric on the tunnel interfaces. It should also be possible to
adjust what proportion of traffic
crosses each tunnel using the EIGRP variance command.