最近经常有网友询问关于网络设备主备配置问题,为此我开始整理自己工作中用的这些配置,
与大家共享.陆续推出中
由于资料是自己在网上搜索的,拼凑的,难免会引用一些朋友的资料,请见谅.(N久前存下来的,已经忘了出处了).
 
1、准备知识:搞清关于“主”“备”的几个概念

Failover Link< /SPAN>

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的时候,外面的设备就不会观察到任何变化。
 
网络设备主备配置系列1:PIX525做双A_第1张图片
 
好了,我们开始谈PIX双机配置了.
两台PIX525如何做双A呢?即互为主备!
想实现负载均衡,主备切换.(互为主备)
Can a PIX with a failover license be part of an active-active failover?

A. PIX failover units can be used in an active/active failover pair once they have a new failover active/active license upgrade installed (active/active requires one UR model and one "FO active/active" model). Refer to Feature Licenses and Specifications for more information on licensing

首先要求两台PIX硬件版本升至7.0以上,关键还有一条命令,如果不执行是无法完成的,我就吃过这个亏..mode multiple设备为模式!

然后接下来.就可以进行配置了!!
配置中参考了思科的资料与网友的配置.整理如下:
 
ostname A
failover lan enable //启用基于lan 的failover
failover lan int lanfo e2 //定义failover lan接口
failover lan unit primary //定义主备
failover int ip lanfo 192.168.1.1 255.255.255.0 standby 192.168.1.2 //failover接口地址
failover group 1 //定义组
preemt //抢占
primary //此PIX为组1的主,另一台为组1的备
failover group 2
preemt
secondary //此PIX为组2的备,另一台为组2的主
failover
int e2
no sh //打开failover lan接口
int e0.1 //子接口
vlan 10 //打此子接口划入vlan 10
int e0.3
vlan 30
int e0.5
vlan 50
int e0
no sh //打开物理接口,注: 一定要在系统环境下打开,其他环境没作用,只打开物理接口,子接口也起来
int e1.2
vlan 20
int e1.4
vlan 40
int e1.6
vlan 60
int e1
no sh
admin-context admin //创建一个admin环境
context admin
allocate-int e0.5 //定义admin环境的接口
allocate-interface e1.6
config-url flash:/admin.cfg //指定admin的配置文件保存在哪
join-failover-group 1 //把这个环境划到failover组1
context custA
allocate-interface e0.1
allocate-interface e1.2
config-url flash:/admin.cfg
join-failover-group 1
context custB
allocate-interface e0.3
allocate-interface e1.4
config-url flash:/admin.cfg
join-failover-group 2 //同上,定义两个客户,指定接口,指定failover组,等等
changeto context admin //切换到admin 环境
int e0.5
nameif outside //命名
security-level 0 //优先级
ip add 192.168.2.1 255.255.255.0 standby 192.168.2.2 //定义接口地址及备份地址
int e1.6
nameif inside
security-level 100
ip add 192.168.10.1 255.255.255.0 standby 192.168.10.2
access-list 100 permit ip any any
access-group 100 in int outside //放通
changeto context custA //切换到custA环境 同上
int e0.1
nameif outside
security-level 0
ip add 172.16.0.1 255.255.255.0 standby 172.16.0.2
int e1.2
nameif inside
security-level 100
ip add 10.0.0.1 255.255.255.0 standby 10.0.0.2
access-list 100 permit ip any any
access-group 100 in int outside
changeto context custB
int e0.3
nameif outside
security-level 0
ip add 172.16.1.1 255.255.255.0 standby 172.16.1.2
int e1.2
nameif inside
security-level 100
ip add 10.1.1.1 255.255.255.0 standby 10.1.1.2 因为是备份,其他配置会被子同步过来