趙開(kāi)新,孫新領(lǐng)
(河南機(jī)電高等專(zhuān)科學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)系,河南新鄉(xiāng)453000)
目前,用戶對(duì)網(wǎng)絡(luò)可靠性要求越來(lái)越高,特別是在一些重點(diǎn)業(yè)務(wù)入口或接入點(diǎn)上需要保證網(wǎng)絡(luò)不間斷運(yùn)行,確保企業(yè)Internet接入點(diǎn)、銀行數(shù)據(jù)庫(kù)、服務(wù)器等設(shè)備之間的不間斷網(wǎng)絡(luò)通訊。防火墻作為安全設(shè)備,一般會(huì)部署在需要保護(hù)的網(wǎng)絡(luò)和不受保護(hù)的網(wǎng)絡(luò)之間,即位于業(yè)務(wù)接口點(diǎn)上,在這種業(yè)務(wù)點(diǎn)上,如果僅使用一臺(tái)防火墻,無(wú)論其可靠性多高,系統(tǒng)都可能會(huì)承受由于單點(diǎn)故障而引起的網(wǎng)絡(luò)中斷風(fēng)險(xiǎn)。為了防止單臺(tái)防火墻出現(xiàn)意外故障而導(dǎo)致整個(gè)網(wǎng)絡(luò)業(yè)務(wù)中斷,可以通過(guò)雙機(jī)熱備技術(shù),來(lái)提供設(shè)備冗余備份機(jī)制,從而提高整個(gè)網(wǎng)絡(luò)系統(tǒng)的穩(wěn)定性和可靠性。
從廣義上講,雙機(jī)熱備就是對(duì)于重要的服務(wù),使用兩臺(tái)服務(wù)器,互相備份,共同執(zhí)行同一服務(wù)。當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障時(shí),可以由另一臺(tái)服務(wù)器承擔(dān)服務(wù)任務(wù),從而在不需要人工干預(yù)的情況下,自動(dòng)保證系統(tǒng)能持續(xù)提供服務(wù)[1]。
雙機(jī)熱備在組網(wǎng)中的應(yīng)用是在一些重點(diǎn)網(wǎng)絡(luò)業(yè)務(wù)入口或接入點(diǎn)部署多臺(tái)設(shè)備形成備份,當(dāng)主設(shè)備出現(xiàn)故障,通過(guò)VRRP(Virtual Router Redundancy Protocol)或者動(dòng)態(tài)路由等機(jī)制進(jìn)行切換,實(shí)現(xiàn)一臺(tái)設(shè)備故障后流量自動(dòng)切換到另一臺(tái)正常工作的設(shè)備。
網(wǎng)絡(luò)中傳統(tǒng)的備份方案是在關(guān)鍵接入點(diǎn)部署路由器或者交換機(jī)等轉(zhuǎn)發(fā)設(shè)備,由于經(jīng)過(guò)設(shè)備的每個(gè)報(bào)文都是查找轉(zhuǎn)發(fā)表進(jìn)行轉(zhuǎn)發(fā),鏈路切換后,后續(xù)報(bào)文的轉(zhuǎn)發(fā)不受影響[2]。圖1所示為兩臺(tái)路由器組成的備份組:
圖1 傳統(tǒng)雙機(jī)熱備虛擬路由器示意圖
路由器RA、RB組成了一個(gè)備份組,相當(dāng)于一臺(tái)虛擬路由器,虛擬 IP地址為211.69.1.1/24,備份組內(nèi) RA 充當(dāng)主設(shè)備,IP 地址為 211.69.1.2/24,RB 充當(dāng)備份設(shè)備,IP地址為211.69.1.3/24。內(nèi)網(wǎng)中的所有主機(jī)僅僅知道該虛擬 IP地址211.69.1.1/24,而并不知道具體的主用或備用設(shè)備的IP地址,因此各主機(jī)都將網(wǎng)關(guān)配置為去往該虛擬IP地址。于是,內(nèi)網(wǎng)中的各主機(jī)就通過(guò)該備份組與外部網(wǎng)絡(luò)進(jìn)行通訊。
正常情況下內(nèi)網(wǎng)的所有主機(jī)與外網(wǎng)通訊時(shí),僅通過(guò)路由器RA轉(zhuǎn)發(fā),當(dāng)路由器RA出現(xiàn)故障時(shí),會(huì)通過(guò)一定的機(jī)制,把內(nèi)網(wǎng)到外網(wǎng)的流量切換到路由器RB,只要路由器RB有正確的路由表,內(nèi)外網(wǎng)的通訊就不會(huì)中斷。
如果關(guān)鍵接入點(diǎn)部署的是狀態(tài)防火墻,由于狀態(tài)防火墻是基于連接狀態(tài)的,當(dāng)用戶發(fā)起會(huì)話時(shí),狀態(tài)防火墻只會(huì)對(duì)會(huì)話的首包進(jìn)行檢查,如果首包允許通過(guò)則會(huì)建立一個(gè)會(huì)話表項(xiàng),表項(xiàng)里包括源IP、源端口、目的IP、目的端口等信息,只有匹配該會(huì)話表項(xiàng)的后續(xù)報(bào)文或者返回報(bào)文才能通過(guò)防火墻。如果鏈路切換后,后續(xù)報(bào)文找不到正確的表項(xiàng),會(huì)導(dǎo)致當(dāng)前業(yè)務(wù)中斷。
因此,對(duì)于狀態(tài)防火墻,在鏈路切換前,必須對(duì)會(huì)話信息進(jìn)行主備同步。這樣,在主設(shè)備故障后能將流量切換到其他備份設(shè)備,由備份設(shè)備繼續(xù)處理業(yè)務(wù),從而保證了當(dāng)前會(huì)話不被中斷。圖2所示為兩臺(tái)防火墻組成的備份組。FirewallA和FirewallB之間直接相連的一根線,負(fù)責(zé)兩個(gè)防火墻之間會(huì)話的同步。
圖2 防火墻雙機(jī)熱備示意圖
2.3.1 主模式
主模式下的兩臺(tái)防火墻,一臺(tái)作為主設(shè)備,另一臺(tái)作為備份設(shè)備。主設(shè)備處理所有業(yè)務(wù),并將產(chǎn)生的會(huì)話信息傳送到備份設(shè)備進(jìn)行備份,正常情況下備份設(shè)備不處理業(yè)務(wù),只用作備份。只有當(dāng)主設(shè)備故障,備份設(shè)備接替主設(shè)備處理業(yè)務(wù),從而保證新發(fā)起的會(huì)話能正常建立,當(dāng)前正在進(jìn)行的會(huì)話也不會(huì)中斷。
2.3.2 負(fù)載分擔(dān)模式
負(fù)載分擔(dān)模式下,兩臺(tái)設(shè)備均為主設(shè)備,都處理業(yè)務(wù),同時(shí)又作為另一臺(tái)設(shè)備的備份設(shè)備,備份對(duì)端的數(shù)據(jù)流。當(dāng)一臺(tái)設(shè)備故障后,另一臺(tái)設(shè)備負(fù)責(zé)全部業(yè)務(wù)。從而保證新發(fā)起的會(huì)話能正常建立,當(dāng)前正在進(jìn)行的會(huì)話也不會(huì)中斷[3]。
2.4.1 數(shù)據(jù)同步
防火墻設(shè)備需要維護(hù)每條會(huì)話的狀態(tài)等相關(guān)信息,當(dāng)主設(shè)備故障、流量切換到備份設(shè)備時(shí),仍要求備份設(shè)備上有正確的會(huì)話信息才能繼續(xù)處理會(huì)話報(bào)文,否則會(huì)話報(bào)文會(huì)被丟棄從而導(dǎo)致會(huì)話中斷。因此,主設(shè)備上會(huì)話建立或表項(xiàng)變化時(shí)需要將相關(guān)信息同步保存到備份設(shè)備,以保證主設(shè)備和備份設(shè)備會(huì)話表完全一致,數(shù)據(jù)同步的方法有兩種。
1)批量備份
在兩臺(tái)設(shè)備上啟用雙機(jī)備份后,每個(gè)防火墻每隔一段時(shí)間,把自己已經(jīng)存在的大量會(huì)話表項(xiàng),一次性同步到另一臺(tái)設(shè)備,這個(gè)過(guò)程稱(chēng)為批量備份。
2)實(shí)時(shí)備份
在兩臺(tái)設(shè)備上啟用雙機(jī)備份后,每個(gè)防火墻在運(yùn)行的過(guò)程中把產(chǎn)生的新表項(xiàng)或表項(xiàng)變化后的結(jié)果立即備份到另一臺(tái)設(shè)備,這個(gè)過(guò)程稱(chēng)為實(shí)時(shí)備份。
2.4.2 流量切換
雙機(jī)熱備要實(shí)現(xiàn)主設(shè)備出現(xiàn)故障時(shí),自動(dòng)切換到備份設(shè)備。流量切換的方法有兩種,一種是通過(guò)VRRP實(shí)現(xiàn)流量切換,另一種是通過(guò)動(dòng)態(tài)路由實(shí)現(xiàn)流量切換。
1)通過(guò)VRRP實(shí)現(xiàn)流量切換
通過(guò)VRRP將局域網(wǎng)中的一組設(shè)備配置成一個(gè)備份組,這組設(shè)備在功能上就相當(dāng)于一臺(tái)虛擬設(shè)備,局域網(wǎng)內(nèi)的主機(jī)只知道這個(gè)虛擬設(shè)備的IP地址,通過(guò)這個(gè)虛擬設(shè)備與其他網(wǎng)絡(luò)進(jìn)行通訊。備份組中只有一臺(tái)設(shè)備處于活動(dòng)狀態(tài),能夠轉(zhuǎn)發(fā)報(bào)文,成為主設(shè)備,其余設(shè)備處于備份狀態(tài),并隨時(shí)按照優(yōu)先級(jí)高低做好接替任務(wù)準(zhǔn)備,成為備份設(shè)備。當(dāng)發(fā)現(xiàn)主設(shè)備故障時(shí),優(yōu)先級(jí)高的備用設(shè)備會(huì)當(dāng)選為新的主設(shè)備來(lái)接替原來(lái)的主設(shè)備工作。整個(gè)過(guò)程對(duì)用戶來(lái)說(shuō)是透明的,并且自動(dòng)實(shí)現(xiàn)了流量切換,這就是雙機(jī)熱備的主模式。如果將一組設(shè)備配置成兩個(gè)備份組,并且設(shè)備在不同備份組中的優(yōu)先級(jí)不同,可以實(shí)現(xiàn)雙機(jī)熱備的負(fù)載分擔(dān)模式。
2)通過(guò)動(dòng)態(tài)路由實(shí)現(xiàn)流量切換
如果從內(nèi)網(wǎng)到外網(wǎng)有兩條不同的路徑,動(dòng)態(tài)路由協(xié)議會(huì)使用算法選取最優(yōu)的一條路徑作為內(nèi)外網(wǎng)之間的路由。當(dāng)這條路徑故障后,路由協(xié)議會(huì)從剩余的可用路徑中選擇最優(yōu)的一條作為新的路由,從而動(dòng)態(tài)地保證內(nèi)外網(wǎng)之間的連通。
如圖3所示,從內(nèi)網(wǎng)到外網(wǎng)有兩條路徑,分別是RB-FirewallA- RA和RB-FirewallB- RA,可以通過(guò)配置路由器RA、RB和防火墻FirewallA、FirewallB全為動(dòng)態(tài)路由協(xié)議OSPF,并使RA和RB的E1/0端口的cost值小于RA和RB的E1/1端口的cost值,這樣在FirewallA正常工作情況下,所有從內(nèi)網(wǎng)到外網(wǎng)的數(shù)據(jù)都經(jīng)過(guò)FirewallA,F(xiàn)irewallB并不轉(zhuǎn)發(fā)數(shù)據(jù),只起到備份的作用,當(dāng)FirewallA故障后,重新計(jì)算路由,找到新的最優(yōu)路由RB-FirewallB-RA,這樣,所有從內(nèi)網(wǎng)到外網(wǎng)的數(shù)據(jù)經(jīng) FirewallB轉(zhuǎn)發(fā),F(xiàn)irewallA和FirewallB之間的直連線路起到同步會(huì)話表項(xiàng)的作用,這樣FirewallA和FirewallB就工作在雙機(jī)熱備的主模式。由于OSPF協(xié)議支持等值路由,也可以通過(guò)配置RA和RB的E1/0和E1/1端口的cost值相同來(lái)實(shí)現(xiàn)雙機(jī)熱備的負(fù)載分擔(dān)模式。
圖3 通過(guò)OSPF協(xié)議實(shí)現(xiàn)流量切換示意圖
如圖4所示,內(nèi)網(wǎng)可以通過(guò)FirewallA或FirewallB兩條路徑到外網(wǎng),F(xiàn)irewallA和FirewallB將內(nèi)網(wǎng)劃分為兩個(gè)區(qū)域Trust和DMZ,外網(wǎng)為Untrust區(qū)域。FirewallA和FirewallB分別通過(guò)端口E1/0連接Trust區(qū)域,通過(guò)端口E1/1連接DMZ區(qū)域,防火墻FirewallA和FirewallB工作在負(fù)載分擔(dān)模式。兩防火墻和Trust區(qū)域相連的接口組成一個(gè)備份組1,擁有虛擬IP地址211.69.1.1/24,Trust區(qū)域各主機(jī)都將網(wǎng)關(guān)配置為去往虛擬 IP 地址 211.69.1.1/24,在備份組 1 中,F(xiàn)irewallA防火墻作為主設(shè)備,F(xiàn)irewallB防火墻作為備份設(shè)備;兩防火墻和DMZ區(qū)域相連的接口組成另一備份組2,擁有虛擬 IP 地址 211.69.2.1/24,DMZ 區(qū)域各主機(jī)都將網(wǎng)關(guān)配置為去往虛擬IP地址211.69.2.1/24,在備份組2中,F(xiàn)irewallB防火墻作為主設(shè)備,F(xiàn)irewallA防火墻作為備份設(shè)備。FirewallA和FirewallB之間的直連線路進(jìn)行同步兩防火墻之間的會(huì)話表項(xiàng)。
圖4 防火墻雙機(jī)熱備典型案例示意圖
SecPathA防火墻關(guān)鍵配置如下。
啟動(dòng)HRP雙機(jī)熱備份功能。
[SecPathA?hrp enable]
啟動(dòng)HRP實(shí)時(shí)備份機(jī)制。
[SecPathA]hrp auto-sync
創(chuàng)建VRRP備份組,并配置各備份組的虛擬IP地址。
[SecPathA-Ethernet1/0]vrrp vrid 1 virtual-ip 211.69.1.1
[SecPathA -Ethernet1/1]vrrp vrid 2 virtual-ip 211.69.2.1
創(chuàng)建VRRP管理組1,配置VRRP管理組優(yōu)先級(jí)為105,并啟動(dòng)VRRP管理組搶占功能,將備份組1添加到VRRP管理組1中,并指定數(shù)據(jù)通道為Ethernet1/0。
[SecPathA]vrrp group 1
[SecPathA -vrrpgroup-1]vrrp-group priority 105
[SecPathA-vrrpgroup-1]vrrp-group preempt
[SecPathA -vrrpgroup-1]add interface Ethernet 1/0 vrrp vrid 1 data
創(chuàng)建VRRP管理組2,采用 VRRP管理組缺省優(yōu)先級(jí),并啟動(dòng) VRRP管理組搶占功能,將備份組2添加到VRRP管理組2中,并指定數(shù)據(jù)通道為Ethernet1/1。
[SecPathA]vrrp group 2
[SecPathA-vrrpgroup-2]vrrp-group preempt
[SecPathA -vrrpgroup-2]add interface Ethernet 1/1 vrrp vrid 2 data
SecPathB和SecPathA的配置絕大多數(shù)相同,只需修改SecPathB上管理組1優(yōu)先級(jí)為缺省值,管理組2的優(yōu)先級(jí)為105。
隨著對(duì)網(wǎng)絡(luò)的可靠性和安全要求越來(lái)越高,在目前組網(wǎng)中,雙機(jī)熱備技術(shù)在防火墻中的應(yīng)用越來(lái)越廣泛。通過(guò)主備防火墻之間的批量備份和實(shí)時(shí)備份,可以快速實(shí)現(xiàn)數(shù)據(jù)同步,通過(guò)VRRP或動(dòng)態(tài)路由可以實(shí)現(xiàn)主設(shè)備故障后,流量快速自動(dòng)切換到備份設(shè)備,從而實(shí)現(xiàn)了網(wǎng)絡(luò)的可靠性和安全性。因此,在以后組網(wǎng)中防火墻的雙機(jī)熱備技術(shù)將會(huì)有很好的應(yīng)用前景。
[1] 劉曉杰,黃永佳,等.基于linux的雙機(jī)熱備系統(tǒng)的實(shí)現(xiàn)技術(shù)[J].計(jì)算機(jī)應(yīng)用研究,2007,24(4):254 -257.
[2] 杭州華三通信技術(shù)有限公司.H3C網(wǎng)絡(luò)學(xué)院教材(一、二學(xué)期)[M].杭州:華三通信技術(shù)有限公司,2007.
[3] 杭州華三通信技術(shù)有限公司.H3C網(wǎng)絡(luò)安全技術(shù)[M].杭州:華三通信技術(shù)有限公司,2010.