ISP Failover using BGP

We host applications such as Exchange email for some of our clients.  100% up-time is very crucial for most of these clients.  We have two datacenters with a VPN between them.  My Server guys are working on a WMWare High Availability solution between the datacenters.  As far as routing is concerned I am little confused.  I'm thinking I will need a BGP solution for this to work from what I'm reading.  Let's say in located in datacenter 1, if the internet fails or the exchange servers fails, our plan is for it to failover ot datacenter 2.  So right now in DNS has an IP in Datacenter 1 IP Block.  Data Center 2 has a totally different IP Block, so how will mail be routed to Datacenter 2.  Each location has a Cisco 2851 as the WAN Router along with a Cisco ASA5520 behind it for firewall and VPN.  If anyone can shed some light on this I would greatly appreciate it.  
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ken BooneNetwork ConsultantCommented:
So there are two ways that this is typically done.  

#1 is that you have a fat pipe between the two data centers that share the same IP address space and you use vmotion to switch your VMs across.  You can advertise the same network out both ISPs or typically you would advertise only out 1 ISP unless there is a failure, then you would start advertising your ip block out datacenter2 and kick in vmotion.

#2 You have duplicate servers with different IPs at each datacenter.  You would advertise both ip blocks out both providers.  You would use the global load balancers to act as the authoritative name servers and you could do either 1) send all dns requests to your services to the first block unless it fails, or 2) let the load balancers balance traffic between the two data centers.  The issue here is that you have to make sure your applications and back end databases can handle requests coming from two locations.  Sometimes this will cause things to get out of sync if the apps and databases don't support it.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
denver218Author Commented:
Thanks.  So let's look at option #1.  Each Data Center has a different Internet Service Provider and different IP Block.

DataCenter#1 - (IP Block)
DataCenter#2 - (IP Block)

When you say fat pipe, do you mean I would have to have a separate internet connection between the datacenter's?
Option #2 is an option I have seen in most deployments, but is just a sloppy way of implementing data center fail-over in my opinion.

Check out "BGP Conditional Advertisement"

Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

denver218Author Commented:
Ok, so let's say Data Center 1 is using XO Communications for their ISP and Data Center 2 is using AT&T for their ISP.  If I want to use BGP, I know both ISP's will have to work together.  What the best way to get the ball rolling?  I know I will have to purchase an AS number.  Will I have to purchase an additional IP Block?  
Ken BooneNetwork ConsultantCommented:
When I say a fat pipe - I just mean a big pipe between the two locations that basically act as a trunk between the internal and DMZ networks.  It would be a layer 2 connection trunking the vlans between locations.  

Well most likely you will not get your own IP block at this point.  With option #2 you actually don't have to use BGP if you don't want to.  That is because the routing to the two different IP blocks is up all the time.  You are actually controlling where the traffic goes based on the DNS response.  So the public address space you have from both providers is advertised over the Internet all the time.  You configure the global load balancers to answer with specific IP address you want based on where you want the traffic to flow.  Like I said you might have everything go to data center #1 unless you need it to failover.  The global load balancers can talk to each other so they know there is a failure and can automatically start answering DNS queries with the ip address from the other location.

You only need an AS # if you will run BGP.  Since you will not be advertising the same public IP block out two different providers it is not necessary to run BGP unless you want to easily be able to stop the advertisement at any one location.

denver218Author Commented:
Ok I have a 20Mbps Internet Connection at Datacenter1 and a 20Mbps Internet connection at Datacenter2.  I have a VPN between the datacentes.  Could this VPN serve at the pipe between the datacenters or will I have to get another circuit for this?  
Ken BooneNetwork ConsultantCommented:
Well if you are using 2 different IP subnets the VPN service is fine.    If you were going to use the same IP addresses at both locations a VPN would not work.
denver218Author Commented:
Each location already has its own Public IP Block.

DataCenter 1 -
DataCetner 2 -

Ken BooneNetwork ConsultantCommented:
VPN will be fine for a backend connection between the data centers like you have it.
denver218Author Commented:
Lastly, how do NATs work when failover occurs?  Let's say I have the following NAT for my email server on my ASA in Datacenter 1:  
static (inside,outside) netmask
So in DNS is ""

So what Happens when Datacenter 1 fails?  My Mail server is NAT'ed to an IP in datacenter 1, but now has to work in datacenter 2.  

Sorry for all the questions I'm just starting to learn BGP.  I'm in the process of reading a book trying to learn more.  Thanks for all your guidance this far.

Ken BooneNetwork ConsultantCommented:
Well you would have an ASA in each datacenter.  The ASAs would NOT be in a failover pair.  So at datacenter 1 you have mapped to the mail server in datacenter 1.  At datacenter 2 you would have mapped to the mail server in datacenter 2.

In the event that datacenter 1 went downy the global load balancers acting as the authoritative name server would then start responding to dns queries by answering with the address.
denver218Author Commented:
What type of Global Load Balancers to you recommend?  Just curious so I can research and learn more about them.  Thanks.
Ken BooneNetwork ConsultantCommented:
You can talk to your cisco rep to get more info, but you can start here:
denver218Author Commented:
Thanks for your input.  I appreciate you help.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.