Firstly ensure both ASA's are identical i.e. same IOS version, hardware and license otherwise the below will fail.
For this tutorial we will use a single interface (m0/0 for management), 2 (aggregated) interfaces for the failover link (and stateful replication) and finally 4 interfaces for our data.
ASA1> conf t
hostname ASA1
interface m0/0
management-only
nameif management
security-level 0
ip add 10.0.18.98 255.255.255.0 standby 10.0.18.99
no shutdown
route management 10.0.18.0 255.255.255.0 10.0.18.1
Setup Users / SSH / AAA with:
enable password securepassword
crypto key generate rsa general-keys modulus 2048
username yourusername password yousecurepassword privilege 15
username yourusername attributes
service-type admin
aaa authentication ssh console LOCAL
aaa authentication http console LOCAL
ssh verson 2
Enable ICMP for inside networks:
icmp permit any inside
Enable management access with:
http server enable
http 10.0.18.0 255.255.255.0 management
ssh 10.0.18.0 255.255.255.0 management
Configure our data interfaces and their assosiated etherchannels:
ASA1) int po1
port-channel
vlan 1000
no shut
int gi0/0
channel-group 1 mode active
no shut
int gi0/1
channel-group 1 mode active
no shut
int gi0/2
channel-group 1 mode active
no shut
We'll be serving three client VLANs - so we'll setup the trunking:
int po1.100
description InsideNetwork
vlan 100
ip address 172.16.32.2 255.255.255.248 standby 172.16.32.3
nameif inside
security-level 100
no shut
int po1.101
description OutsidePrimary
vlan 101
ip address 123.123.123.123 255.255.255.240 standby 123.123.123.124
nameif outside
security-level 0
no shut
int po1.102
description OutsideBackup
vlan 102
ip address 192.168.10.1 255.255.255.0 standby 192.168.10.2
nameif dmz
security-level 0
no shut
and on our switch stack:
int po1
switchport mode trunk
switchport trunk native vlan 1000
switchport trunk allowed vlan 100,101,102
no shutdown
int range gi1/0/1-3
channel-protocol lacp
channel-group 1 mode active
spanning-tree portfast trunk # to help speed up convergence
spanning-tree bpduguard enable
int po2
switchport mode trunk
switchport trunk native vlan 1000
switchport trunk allowed vlan 100,101,102
no shutdown
int range gi2/0/1-3
channel-protocol lacp
channel-group 1 mode active
Note: The channel group mode has to be active as the ASA does not support non-dynamic etherchannel, PAgP etc.
We'll now configure the failover link - for this we'll add redundancy via an etherchannel again:
ASA1> int po2
no shut
int gi0/4
channel-group 2 mode active
no shut
int gi0/5
channel-group 2 mode active
no shut
and then on the switch:
int po3
description failover link
switchport mode access
switchport access vlan 300
description ASA-Master-Failover
no shutdown
int po4
description failover link
switchport mode access
switchport access vlan 300
description ASA-Master-Backup
no shutdown
int range gi1/0/23,gi2/0/23
channel-group 3 mode active
channel-protocol lacp
no shutdown
int range gi1/0/24,gi2/0/24
channel-group 4 mode active
channel-protocol lacp
no shutdown
And now set the failover interface (po2 in our case):
failover lan interface FAIL-OVER po2
failover interface ip FAIL-OVER 192.168.254.1 255.255.255.240 standby 192.168.254.2
failover key strongpassword
failover lan unit primary
We'll also want to ensure that our subinterfaces (outside, inside and the DMZ) are monitored for link failures:
monitor-interface outside
monitor-interface inside
monitor-interface DMZ
enable finally enable the failover feature with:
failover
failover link FAIL-OVER
and save:
wri mem
Now on the slave ASA:
Define our failover interface:
int po2
no shut
int gi0/4
channel-group 2 mode active
no shut
int gi0/5
channel-group 2 mode active
no shut
failover lan interface FAIL-OVER po2
failover interface ip FAIL-OVER 192.168.254.1 255.255.255.240 standby 192.168.254.2
failover key strongpassword
failover lan unit secondary
failover
And then to confirm (on either unit):
show failover
If you need to execute commands on the slave you can issue:
failover exec standby show int ip br
or alternatively the current master:
failover exec active show int ip br
For this tutorial we will use a single interface (m0/0 for management), 2 (aggregated) interfaces for the failover link (and stateful replication) and finally 4 interfaces for our data.
ASA1> conf t
hostname ASA1
interface m0/0
management-only
nameif management
security-level 0
ip add 10.0.18.98 255.255.255.0 standby 10.0.18.99
no shutdown
route management 10.0.18.0 255.255.255.0 10.0.18.1
Setup Users / SSH / AAA with:
enable password securepassword
crypto key generate rsa general-keys modulus 2048
username yourusername password yousecurepassword privilege 15
username yourusername attributes
service-type admin
aaa authentication ssh console LOCAL
aaa authentication http console LOCAL
ssh verson 2
Enable ICMP for inside networks:
icmp permit any inside
Enable management access with:
http server enable
http 10.0.18.0 255.255.255.0 management
ssh 10.0.18.0 255.255.255.0 management
Configure our data interfaces and their assosiated etherchannels:
ASA1) int po1
port-channel
vlan 1000
no shut
int gi0/0
channel-group 1 mode active
no shut
int gi0/1
channel-group 1 mode active
no shut
int gi0/2
channel-group 1 mode active
no shut
We'll be serving three client VLANs - so we'll setup the trunking:
int po1.100
description InsideNetwork
vlan 100
ip address 172.16.32.2 255.255.255.248 standby 172.16.32.3
nameif inside
security-level 100
no shut
int po1.101
description OutsidePrimary
vlan 101
ip address 123.123.123.123 255.255.255.240 standby 123.123.123.124
nameif outside
security-level 0
no shut
int po1.102
description OutsideBackup
vlan 102
ip address 192.168.10.1 255.255.255.0 standby 192.168.10.2
nameif dmz
security-level 0
no shut
and on our switch stack:
int po1
switchport mode trunk
switchport trunk native vlan 1000
switchport trunk allowed vlan 100,101,102
no shutdown
int range gi1/0/1-3
channel-protocol lacp
channel-group 1 mode active
spanning-tree portfast trunk # to help speed up convergence
spanning-tree bpduguard enable
int po2
switchport mode trunk
switchport trunk native vlan 1000
switchport trunk allowed vlan 100,101,102
no shutdown
int range gi2/0/1-3
channel-protocol lacp
channel-group 1 mode active
Note: The channel group mode has to be active as the ASA does not support non-dynamic etherchannel, PAgP etc.
We'll now configure the failover link - for this we'll add redundancy via an etherchannel again:
ASA1> int po2
no shut
int gi0/4
channel-group 2 mode active
no shut
int gi0/5
channel-group 2 mode active
no shut
and then on the switch:
int po3
description failover link
switchport mode access
switchport access vlan 300
description ASA-Master-Failover
no shutdown
int po4
description failover link
switchport mode access
switchport access vlan 300
description ASA-Master-Backup
no shutdown
int range gi1/0/23,gi2/0/23
channel-group 3 mode active
channel-protocol lacp
no shutdown
int range gi1/0/24,gi2/0/24
channel-group 4 mode active
channel-protocol lacp
no shutdown
And now set the failover interface (po2 in our case):
failover lan interface FAIL-OVER po2
failover interface ip FAIL-OVER 192.168.254.1 255.255.255.240 standby 192.168.254.2
failover key strongpassword
failover lan unit primary
We'll also want to ensure that our subinterfaces (outside, inside and the DMZ) are monitored for link failures:
monitor-interface outside
monitor-interface inside
monitor-interface DMZ
enable finally enable the failover feature with:
failover
failover link FAIL-OVER
and save:
wri mem
Now on the slave ASA:
Define our failover interface:
int po2
no shut
int gi0/4
channel-group 2 mode active
no shut
int gi0/5
channel-group 2 mode active
no shut
failover lan interface FAIL-OVER po2
failover interface ip FAIL-OVER 192.168.254.1 255.255.255.240 standby 192.168.254.2
failover key strongpassword
failover lan unit secondary
failover
And then to confirm (on either unit):
show failover
If you need to execute commands on the slave you can issue:
failover exec standby show int ip br
or alternatively the current master:
failover exec active show int ip br