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的時候,外面的設備就不會觀察到任何變化。