This article will cover setting up redundant ISPs for outbound connectivity on an ASA 5510 (although the same should work on the 5520s and up as well). It’s important to note that this covers
outbound connectivity only. The ASA does not have built in functionality to NAT multiple public IPs to a single internal IP – for that you’d need a router (how-to article soon!). For an ASA to provide inbound redundancy to your servers you’d need to utilize two separate IPs for each server – one to be NAT’d to each public IP block.
The information you’ll need to complete this task:
Primary ISP Subnet / Gateway
Secondary ISP Subnet / Gateway
A Public host to ping (i.e. 18.104.22.168)
The Public host to ping is a device (read: cluster of devices) that we will use to check if our primary ISP is up or down. For that reason, I advise against using an IP of a single server. I usually go with one of the well-known public DNS servers – 22.214.171.124, 126.96.36.199, or 188.8.131.52.
For this article, we’ll use the following information:
I’ll assume that you’ve already been successful in getting your ASA up and running, and that your config looks something like this (NOTE: I’m using the 8.2 firmware):
!hostname firewall!interface Ethernet0/0 description Primary ISP nameif outside security-level 0 ip address 184.108.40.206 255.255.255.0!interface Ethernet0/1 description Backup ISP nameif backup security-level 0 ip address 220.127.116.11 255.255.255.0!interface Ethernet0/2 description Private LAN nameif inside security-level 100 ip address 10.10.10.1 255.255.255.0 !interface Ethernet0/3 shutdown no nameif no security-level no ip address!interface Management0/0 nameif management security-level 100 ip address 192.168.1.1 255.255.255.0 management-only!global (backup) 1 interfaceglobal (outside) 1 interfacenat (inside) 1 0.0.0.0 0.0.0.0route outside 0.0.0.0 0.0.0.0 18.104.22.168 1route backup 0.0.0.0 0.0.0.0 22.214.171.124 10
As it stands, you will fail over to your secondary ISP only if interface Eth0/0 physically goes down – that is, the cable to your upstream router, public switch, or whatever device you firewall is connected to is unplugged or cut. Realistically, the number of times that an outage is due to something besides a loss of physical link is far greater than an outage caused by a physical outage. For that reason, Cisco lets us do route tracking, which is where our “public IP to ping” comes into play. Basically, we tell the ASA that we want to ping IP address 126.96.36.199 over a specific route, and if that host stops responding, then assume the route is down, and install a backup route into the route table.
To get started, get into configuration mode
And that should do it. Keep in mind that for the best test case after completing this setup you should turn off / unplug something that leave the physical interface up. So if you’re firewall connects to a public switch, and then the switch connects to your ISP’s device, unplug the cable between the switch and the ISP.
Another thing to bear in mind is, the failover is great for outbound traffic, but a 'happy' side effect' of doing this is, if the client has a web server/email server BOTH interfaces can be used to access these internal resources ALL THE TIME (from the outside of those interfaces) regardless of which interface is currents at the lowest routing metric :) providing the port forwarding/static NATs are correct.
Also, any site to site VPNS from remote sited need their VPN configs updating with the new IP to enable the VPN's to fail over.
Cisco ASA/PIX 8.x: Redundant or Backup ISP Links with VPNs