1,搞清关于“主”“备”的几个概念:
Failover Link
Failover Link用于设备间相互沟通彼此的工作状态,Failover link上传递的信息包括:
o 设备的当前状态 (active和standby)
o 电源状态 (基于专用failover电缆的才有)
o Hello信息包 (也通过所有其它端口发送)
o Active设备向Standby设备传递配置(称为配置同步)
Failover link可以使用两种介质(构成不同的failover形式)
o 基于专用电缆 ("cable-based failover")―两设备间距离不超过6英尺(约1.83米)时,建议使用这种方式。因为设备可以通过此电缆感知对方的电源状态,而且能分辨出是设备断电还是根本没插电源线。Failover电缆是一种改进的RS-232串行电缆(115 Kbps),一端标有"Primary" 用以连接 primary设备,另一端标有 "Secondary" 用以连接secondary 设备。
o 基于以太网 ("LAN-based failover")―可以使用设备上任意未占用的以太口,当两设备间距离超过6英尺(约1.83米)时,请用这种方式。注意,此方式一定要通过交换机(推荐使用单独的交换机)进行连接,而不能通过交叉线直接连接两机的以太口。
基于以太网的Failover Link的缺点主要有:
• 当电源故障时,需要更长的时间才能failover
• standby设备的配置需要单独设置(在cable-based failover中,standby设备可以不用enable任何端口或不用设置IP地址的时候就跟active设备通讯,并从active设备接受整个的配置信息。)
• 两设备间用于Failover Link的交换机会成为另一个硬件的故障点
• 占用以太网端口
基于以太网的Failover Link的优点:
• 设备之间可以相距6英尺以上
• 配置同步的速度快
(在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地址,除非发生以下状况;
o Secondary设备成为active,但无法通过failover link获得Primary设备的MAC地址。
o 在配置中把两台设备的MAC地址写死了(使用指令:failover mac address)。
2,常规Failover和全状态Failover
常规Failover(Regular Failover):发生Failover事件时,所有当前活动的连接都会丢弃,用户需要重新刷新连接;
全状态Failover(Stateful Failover):在双机正常工作时,Active设备不断地把连接的状态信息发送给standby设备。当failover事件发生时,由于在新的Active设备上已经有了这些连接状态信息,所以用户不用重新连接就能继续通讯。设备传递的状态信息包括:
• NAT表
• TCP连接状态
• H.323, SIP, MGCP UDP等连接
State Link
在全状态Failover中,必需使用一个以太连接(Ethernet link)来传递状态信息,PIX可以用下列以太口来设置 state link:
• Fast Ethernet (100BASE-T) full duplex
• 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 outside 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的时候,外面的设备就不会观察到任何变化。