1、准备知识:搞清关于“主”“备”的几个概念
     Failover Link
     Failover Link用于设备间相互沟通彼此的工作状态,Failover link上传递的信息包括:
     1 设备的当前状态 (active和standby)
     2 电源状态 (基于专用failover电缆的才有)
     3 Hello信息包 (也通过所有其它端口发送)
     4 Active设备向Standby设备传递配置(称为配置同步)
     
     Failover link可以使用两种介质(构成不同的failover形式)
     1 基于专用电缆 ("cable-based failover")—两设备间距离不超过6英尺(约1.83米)时,建议使用这种方式。因为设备可以通过此电缆感知对方的电源状态,而且能分辨出是设备断电还是根本没插电源线。Failover电缆是一种改进的RS-232串行电缆(115 Kbps),一端标有"Primary" 用以连接 primary设备,另一端标有 "Secondary" 用以连接secondary 设备。
     
     2 基于以太网 ("LAN-based failover")—可以使用设备上任意未占用的以太口,当两设备间距离超过6英尺(约1.83米)时,请用这种方式。注意,此方式一定要通过交换机(推荐使用单独的交换机)进行连接,而不能通过交叉线直接连接两机的以太口。
     
     基于以太网的Failover Link的缺点主要有:
     1 当电源故障时,需要更长的时间才能failover
     2 standby设备的配置需要单独设置(在cable-based failover中,standby设备可以不用enable任何端口或不用设置IP地址的时候就跟active设备通讯,并从active设备接受整个的配置信息。)
     3 两设备间用于Failover Link的交换机会成为另一个硬件的故障点
     4 占用以太网端口
     
     基于以太网的Failover Link的优点:
     1 设备之间可以相距6英尺以上
     2 配置同步的速度快
     
     (在LAN-based failover中,如果Failover Link断开,会自动使用其它端口查看对方状态。)
     
     
     Primary 、Secondary及Active 、Standby
     前者是物理概念,后者是逻辑概念。
     当前负责转发网络流量的设备就是Active设备,另一台是Standby设备。
     在cable-based failover中,其电缆的Primary端连接的就是Primary设备;Secondary端连接的PIX就称为Sencondary设备;在LAN-based failover中,Primary和Sencondary设备是在配置文件中设定的。
     当两台设备同时启动,而且都处于健康状态时,Primary设备就是Active设备;当Primary设备产生故障时,发生failover事件,Seconary设备就成为Active设备。
     Active设备总是使用Active IP地址和Primary设备的MAC地址,除非发生以下状况;
     1 Secondary设备成为active,但无法通过failover link获得Primary设备的MAC地址。
     2 在配置中把两台设备的MAC地址写死了(使用指令:failover mac address)。
     
     2、常规Failover和全状态Failover
     常规Failover(Regular Failover):发生Failover事件时,所有当前活动的连接都会丢弃,用户需要重新刷新连接;
     全状态Failover(Stateful Failover):在双机正常工作时,Active设备不断地把连接的状态信息发送给standby设备。当failover事件发生时,由于在新的Active设备上已经有了这些连接状态信息,所以用户不用重新连接就能继续通讯。设备传递的状态信息包括:
     1 NAT表
     2 TCP连接状态
     3 H.323, SIP, MGCP UDP等连接
     State Link
     在全状态Failover中,必需使用一个以太连接(Ethernet link)来传递状态信息,PIX可以用下列以太口来设置 state link:
     1 Fast Ethernet (100BASE-T) full duplex
     2 Gigabit Ethernet (GE) (1000BASE-T) full duplex
     在配有GE端口的PIX 535上, 必须选择GE端口配置state link。
     两设备的state link端口虽然可以使用交换机相连,但为避免额外的故障点,还是推荐使用交叉线直接将端口相连。在LAN-based failover中,我们可以将state link与Failover Link设置为使用同一连接(推荐尽可能使用两个链路),但此时不能用交叉线直连。
     
     3、关于配置同步
     # 当standby设备完成初始化启动时,会从active设备同步配置;
     # 配置同步只改变running-config,而不会把配置存到Flash memory中;
     # 在Active设备上输入的指令会立刻被同步到Standby设备上
     ;
     # 在active设备上输入write memory命令时,standby设备也会将配置写入Flash memory;
     # 在Standby设备上输入的指令不会被同步到Active设备;
     # 如果两设备的startup-config不同,在设备启动后,Secondary设备会根据Primary设备的running-config同步自己的running-config;
     # 在active设备上输入write standby命令时,standby设备会从active设备同步配置;
     
     4、配置示例
     例1 Cable-Based Failover Configuration
     interface ethernet0 100full
     interface ethernet1 100full
     interface ethernet2 shutdown
     interface ethernet3 100full
     nameif ethernet0 outside security0
     nameif ethernet1 inside security100
     nameif ethernet3 state security20
     enable password farscape encrypted
     password crichton encrypted
     telnet 192.168.2.45 255.255.255.255
     hostname pixfirewall
     ip address outside 209.165.201.1 255.255.255.224
     ip address inside 192.168.2.1 255.255.255.0
     ip address state 192.168.253.1 255.255.255.252
     failover ip address outside 209.165.201.2
     failover ip address inside 192.168.2.2
     failover ip address state 192.168.253.2
     failover link state(注意:此处定义的是上文所述的“State Link”)
     failover
     global (outside) 1 209.165.201.3 netmask 255.255.255.224
     nat (inside) 1 0.0.0.0 0.0.0.0 0 0
     static (inside,outside) 209.165.201.5 192.168.2.5 netmask 255.255.255.255 0 0
     access-list acl_out permit tcp any 209.165.201.5 eq 80
     access-group acl_out in interface outside
     route outside 0 0 209.165.201.4 1
     
     例2 LAN-Based Failover Configuration
     Primary设备:
     interface ethernet0 100full
     interface ethernet1 100full
     interface ethernet2 100full
     interface ethernet3 100full
     nameif ethernet0 outside security0
     nameif ethernet1 inside security100
     nameif ethernet2 failover security10
     nameif ethernet3 state security20
     enable password farscape encrypted
     password crichton encrypted
     telnet 192.168.2.45 255.255.255.255
     hostname pixfirewall
     ip address outside 209.165.201.1 255.255.255.224
     ip address inside 192.168.2.1 255.255.255.0
     ip address failover 192.168.254.1 255.255.255.0
     ip address state 192.168.253.1 255.255.255.252
     failover ip address outside 209.165.201.2
     failover ip address inside 192.168.2.2
     failover ip address failover 192.168.254.2
     failover ip address state 192.168.253.2
     failover link state
     failover lan unit primary
     failover lan interface failover
     failover lan key 12345678
     failover lan enable
     failover
     global (outside) 1 209.165.201.3 netmask 255.255.255.224
     nat (inside) 1 0.0.0.0 0.0.0.0 0 0
     static (inside,outside) 209.165.201.5 192.168.2.5 netmask 255.255.255.255 0 0
     access-list acl_out permit tcp any host 209.165.201.5 eq 80
     access-group acl_out in interface outside
     route ou
     tside 0 0 209.165.201.4 1
     
     Secondary 设备:
     interface ethernet2 100full
     nameif ethernet2 failover security10
     ip address failover 192.168.254.1 255.255.255.0
     failover ip address failover 192.168.254.2
     failover lan unit secondary
     failover lan interface failover
     failover lan key 12345678
     failover lan enable
     failover
     
     PIX会根据自己的状态选用IP,如果是Active设备,就用ip address定义的地址;如果是standby就用failover ip address定义的IP地址。
     还有一种做法,就是failover的IP地址设置为0.0.0.0,如:
     failover ip address outside 0.0.0.0
     failover ip address inside 0.0.0.0
     failover ip address state 0.0.0.0
     这样,standby设备就被隐藏了。
     
     还有,就是接口的MAC地址也会切换,Primary的MAC总是跟着active的IP走,这样在failover的时候,外面的设备就不会观察到任何变化。