苗云龍 陸彥輝 左明陽 楊旭東
關(guān)鍵詞: 網(wǎng)閘研究; 網(wǎng)絡(luò)隔離; 協(xié)議開發(fā); 雙機(jī)熱備; 高可用方案; 狀態(tài)切換
中圖分類號(hào): TN915.08?34; TP309 ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? 文章編號(hào): 1004?373X(2019)03?0073?05
Abstract: Netgap acts as the bridge to connect the networks with different security levels, and the hot standby technology provides a reliable guarantee to solve the single point of failures (SPOFs) of netgap. According to virtual router redundancy protocol (VRRP) 1.0, the hot standby protocol of link symmetric netgap is improved, and a hot standby application protocol of link asymmetric netgap is developed, which can solve the problem that the link cross switchover of high availability scheme based on netgap is easily locked, and improve the convergence speed and switchover performance of the link. The proposed scheme has great practical value and guiding significance for the research and design of netgap high availability scheme.
Keywords: netgap research; network isolation; protocol development; hot standby; high availability scheme; status switching
安全隔離網(wǎng)閘簡(jiǎn)稱網(wǎng)閘(Netgap),是一種用物理隔離的方式將不同安全等級(jí)的網(wǎng)絡(luò)隔離開,并進(jìn)行數(shù)據(jù)安全交換的網(wǎng)絡(luò)設(shè)備[1]。網(wǎng)閘為數(shù)據(jù)在不同安全等級(jí)網(wǎng)傳輸提供了安全保障。隨著互聯(lián)網(wǎng)經(jīng)濟(jì)的快速發(fā)展,信息化是當(dāng)今世界發(fā)展的一大趨勢(shì)。在此環(huán)境下,信息的保密性、完整性和可用性對(duì)保持競(jìng)爭(zhēng)優(yōu)勢(shì)至關(guān)重要。網(wǎng)閘為不同等級(jí)網(wǎng)絡(luò)之間提供數(shù)據(jù)交換和鏈接的通道,其負(fù)載能力和可靠性是網(wǎng)閘應(yīng)用中衡量網(wǎng)閘系統(tǒng)質(zhì)量的兩個(gè)關(guān)鍵指標(biāo)。網(wǎng)閘設(shè)備發(fā)生單點(diǎn)故障(Single Points of Failures,SPOFs)將對(duì)整個(gè)網(wǎng)絡(luò)的可靠性、業(yè)務(wù)的連續(xù)性造成很大影響,甚至導(dǎo)致整個(gè)網(wǎng)絡(luò)癱瘓。并且從單點(diǎn)故障中完全恢復(fù)往往需要很長時(shí)間,這對(duì)信息化時(shí)代的很多業(yè)務(wù)來說都是不可忍受的。因此,研究如何提高網(wǎng)閘的負(fù)載能力和可靠性具有非常重要的意義。由于物理隔離網(wǎng)閘具有“單設(shè)備雙系統(tǒng)”的特性,目前雙機(jī)熱備系統(tǒng)中廣泛采用的基于VRRP(Virtual Router Redundancy Protocol)的“單系統(tǒng)”高可用(High Availability)方案并不能完全適用于網(wǎng)閘,開發(fā)適用于網(wǎng)閘設(shè)備的雙機(jī)熱備系統(tǒng)成為當(dāng)前網(wǎng)絡(luò)安全領(lǐng)域的迫切需求。文獻(xiàn)[2]利用熱備份路由器協(xié)議(Hot Standby Router Protocol,HSRP)和虛擬路由器冗余協(xié)議(Virtual Router Redundancy Protocol,VRRP)設(shè)計(jì)了基于網(wǎng)閘的熱備協(xié)議(GAP?VRRP),實(shí)現(xiàn)對(duì)網(wǎng)閘的熱備功能。但其所提方案只是在網(wǎng)閘內(nèi)網(wǎng)一端實(shí)現(xiàn)了熱備,網(wǎng)閘內(nèi)外端處理器間通過心跳相互監(jiān)測(cè),網(wǎng)閘外端機(jī)之間并未做任何處理,這樣的設(shè)計(jì)存在明顯不足:當(dāng)主備網(wǎng)閘內(nèi)網(wǎng)端之間心跳線出現(xiàn)故障時(shí),將會(huì)導(dǎo)致“雙主”現(xiàn)象,很容易導(dǎo)致系統(tǒng)崩潰。文獻(xiàn)[3]對(duì)文獻(xiàn)[2]所提方案進(jìn)行了改進(jìn),增加了主備網(wǎng)閘間外端機(jī)間的心跳監(jiān)測(cè),網(wǎng)閘內(nèi)外端機(jī)和主備網(wǎng)閘內(nèi)外端機(jī)間都通過心跳協(xié)議進(jìn)行檢測(cè),此設(shè)計(jì)同樣存在系統(tǒng)缺陷:由于改進(jìn)后的系統(tǒng)結(jié)構(gòu)完全對(duì)稱,容易在鏈路交叉切換時(shí)出現(xiàn)鎖死現(xiàn)象。文獻(xiàn)[4]以Linux系統(tǒng)為平臺(tái),以高可用性為目的設(shè)計(jì)了一種基于Linux的雙機(jī)熱備系統(tǒng)架構(gòu),并對(duì)外提供接口,提高了雙機(jī)熱備的可擴(kuò)展性。針對(duì)文獻(xiàn)[2?3]出現(xiàn)的問題,本文在基于VRRP 1.0協(xié)議[3]和原鏈路完全對(duì)稱網(wǎng)閘雙機(jī)熱備系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上設(shè)計(jì)并開發(fā)了一種鏈路非對(duì)稱結(jié)構(gòu)的網(wǎng)閘雙機(jī)熱備系統(tǒng)。通過同網(wǎng)端網(wǎng)閘間VRRP協(xié)議進(jìn)行心跳監(jiān)測(cè),而網(wǎng)閘內(nèi)外處理器間用TCP協(xié)議協(xié)商機(jī)制來代替VRRP協(xié)議心跳監(jiān)測(cè)機(jī)制以確保網(wǎng)閘的主備機(jī)切換,有效解決了在鏈路交叉切換時(shí)易鎖死的情況。除此之外,此系統(tǒng)設(shè)計(jì)還具有鏈路收斂速度快、多線程并行處理程序結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn)。同時(shí),在系統(tǒng)配置頁面添加了可自主設(shè)置的HAID(網(wǎng)閘組ID)和備機(jī)異常故障警告功能,提高了熱備組的安全性和可靠性。改進(jìn)后的網(wǎng)閘結(jié)構(gòu)及雙機(jī)熱備系統(tǒng)拓?fù)鋱D如圖1所示。
1.1 ?網(wǎng)閘雙機(jī)熱備的硬件介紹
網(wǎng)閘具有“單設(shè)備雙系統(tǒng)”的特性,系統(tǒng)采用“2+1”模塊結(jié)構(gòu)設(shè)計(jì),即雙主機(jī)系統(tǒng)+隔離硬件,確保工作安全可靠。采用兩套獨(dú)立的高性能處理系統(tǒng)分別作為內(nèi)端機(jī)和外端機(jī),內(nèi)端機(jī)處理內(nèi)網(wǎng)信息,外端機(jī)處理外網(wǎng)信息,內(nèi)端機(jī)和外端機(jī)之間采用DTP物理隔離通道控制系統(tǒng)阻斷網(wǎng)絡(luò)間的通路[5?6];利用私有控制邏輯和專用通信協(xié)議完全控制數(shù)據(jù)的實(shí)時(shí)交換;利用專用安全操作系統(tǒng)及嵌入式程序控制確保系統(tǒng)本身免受攻擊。從而有效地保障高安全等級(jí)網(wǎng)絡(luò)的安全正常運(yùn)行。
1.2 ?鏈路非對(duì)稱網(wǎng)閘雙機(jī)熱備系統(tǒng)主程序流程設(shè)計(jì)
目前提高系統(tǒng)可用性的主要方案是通過系統(tǒng)級(jí)冗余,即高可用集群(Cluster)來實(shí)現(xiàn)。雙機(jī)熱備是目前企業(yè)防止核心計(jì)算機(jī)系統(tǒng)因故障停機(jī)的最有效手段之一[7?9],其工作原理即是通常所說的主/備(Master/Backup)機(jī)方式,當(dāng)Master服務(wù)器出現(xiàn)故障時(shí),通過軟件故障檢測(cè)或人工方式將Backup服務(wù)器激活,從而保證應(yīng)用在短時(shí)間內(nèi)完全恢復(fù)正常。軟件故障檢測(cè)通過使用心跳檢測(cè)的方法進(jìn)行,即采用定時(shí)發(fā)送數(shù)據(jù)包。如果主機(jī)在規(guī)定的時(shí)間內(nèi)未做響應(yīng),就被認(rèn)為是發(fā)生故障,自動(dòng)切換至備機(jī),備機(jī)自動(dòng)切換為主機(jī)狀態(tài)[10]。鏈路非對(duì)稱雙機(jī)熱備系統(tǒng)主程序流程圖如圖2所示。
由圖2可知,雙機(jī)熱備系統(tǒng)進(jìn)程下共有4個(gè)獨(dú)立線程,分別為:VRRP發(fā)送線程、VRRP接收線程、Peer_to_Peer接收線程、設(shè)備狀態(tài)監(jiān)測(cè)線程。4個(gè)獨(dú)立線程分別完成相應(yīng)的工作。同時(shí),該雙機(jī)熱備系統(tǒng)還配備搶占模式和非搶占模式,搶占模式嚴(yán)格按優(yōu)先級(jí)級(jí)別,優(yōu)先級(jí)高的搶占為主機(jī);非搶占模式下,主機(jī)不再受優(yōu)先級(jí)別影響,只有在發(fā)生故障時(shí)才會(huì)轉(zhuǎn)為備機(jī)狀態(tài)。因此,本設(shè)計(jì)除了系統(tǒng)主程序進(jìn)行初始化判定主備狀態(tài)外,系統(tǒng)還對(duì)兩個(gè)運(yùn)行狀態(tài)流程進(jìn)行設(shè)計(jì),即主機(jī)狀態(tài)切換流程和備機(jī)狀態(tài)切換流程。
1.3 ?鏈路非對(duì)稱網(wǎng)閘雙機(jī)熱備系統(tǒng)主機(jī)狀態(tài)切換流程設(shè)計(jì)
雙機(jī)熱備系統(tǒng)主要通過虛擬IP技術(shù)[8]實(shí)現(xiàn)主/備狀態(tài)間切換,并通過VRRP協(xié)議實(shí)現(xiàn)熱備組的心跳監(jiān)測(cè)。虛擬IP是一個(gè)未分配給真實(shí)主機(jī)的IP,即對(duì)外提供數(shù)據(jù)庫服務(wù)器的主機(jī)除了有一個(gè)真實(shí)IP外還有一個(gè)虛擬IP,使用這兩個(gè)IP中的任意一個(gè)都可以連接到這臺(tái)主機(jī),當(dāng)服務(wù)器發(fā)生故障無法對(duì)外提供服務(wù)時(shí),動(dòng)態(tài)可將這個(gè)虛擬IP切換到備用主機(jī)[9]。當(dāng)網(wǎng)閘在主程序流程圖2中初始判定為主機(jī)狀態(tài)時(shí),主機(jī)狀態(tài)將會(huì)繼續(xù)監(jiān)測(cè)各子線程的變化,隨時(shí)準(zhǔn)備進(jìn)行主/備機(jī)的切換。鏈路非對(duì)稱雙機(jī)熱備系統(tǒng)主機(jī)狀態(tài)程序流程如圖3所示。
1.4 ?鏈路非對(duì)稱網(wǎng)閘雙機(jī)熱備系統(tǒng)備機(jī)狀態(tài)切換流程設(shè)計(jì)
綜上所述,當(dāng)網(wǎng)閘在主程序流程圖2中初始判定為備機(jī)狀態(tài)時(shí),備機(jī)狀態(tài)也將會(huì)繼續(xù)監(jiān)測(cè)各子線程的變化,隨時(shí)準(zhǔn)備主/備機(jī)的切換。備機(jī)狀態(tài)程序流程如圖4所示。
根據(jù)圖3和圖4鏈路非對(duì)稱結(jié)構(gòu)主/備機(jī)切換的特點(diǎn)可知,鏈路非對(duì)稱結(jié)構(gòu)網(wǎng)閘雙機(jī)熱備系統(tǒng)及數(shù)據(jù)處理方法主要通過同網(wǎng)端網(wǎng)閘間VRRP協(xié)議心跳包監(jiān)測(cè)和網(wǎng)閘內(nèi)外處理器間TCP協(xié)議雙重協(xié)商機(jī)制來確保網(wǎng)閘的主/備機(jī)切換,而不是現(xiàn)有完全對(duì)稱結(jié)構(gòu)技術(shù)中所采用的通過心跳線簡(jiǎn)單監(jiān)測(cè)網(wǎng)閘內(nèi)外端機(jī)的狀態(tài)和主備網(wǎng)閘間處理機(jī)狀態(tài)。從而克服了網(wǎng)閘“單設(shè)備雙系統(tǒng)”特性下,“單設(shè)備單系統(tǒng)”高可用(High Availability)方案無法適用這一難題,有效解決了完全對(duì)稱結(jié)構(gòu)交叉切換“鎖死”的情況,使網(wǎng)閘的切換性能得到了顯著的提升。
1.5 ?基于網(wǎng)閘的雙機(jī)熱備系統(tǒng)結(jié)構(gòu)演進(jìn)
基于網(wǎng)閘的雙機(jī)熱備系統(tǒng)結(jié)構(gòu)如圖5所示,其中圖5a)為文獻(xiàn)[3]所提系統(tǒng)結(jié)構(gòu),圖5b)為本文所提系統(tǒng)結(jié)構(gòu)。
為了解決文獻(xiàn)[2]提到的會(huì)導(dǎo)致“雙主”現(xiàn)象的問題,文獻(xiàn)[3]增加了主備網(wǎng)閘間外端機(jī)間的心跳監(jiān)測(cè),網(wǎng)閘內(nèi)外端機(jī)和主備網(wǎng)閘內(nèi)外端機(jī)間都通過心跳協(xié)議進(jìn)行檢測(cè),形成網(wǎng)閘熱備方案。由圖5a)可知,文獻(xiàn)[3]所提方案結(jié)構(gòu)完全對(duì)稱,在兩網(wǎng)閘內(nèi)外端機(jī)同時(shí)處理數(shù)據(jù)交叉切換時(shí),容易出現(xiàn)“鎖死”現(xiàn)象。因此,本文在圖5a)基礎(chǔ)上對(duì)方案進(jìn)行改進(jìn),提出一種基于鏈路非對(duì)稱結(jié)構(gòu)的網(wǎng)閘雙機(jī)熱備系統(tǒng),即將網(wǎng)閘內(nèi)端機(jī)和外端機(jī)之間的通信協(xié)議更改為基于TCP協(xié)議雙重協(xié)商機(jī)制來確保網(wǎng)閘的主/備機(jī)之間的切換。
如圖1所示,系統(tǒng)測(cè)試拓?fù)浣Y(jié)構(gòu)需要的硬件設(shè)備如下:網(wǎng)閘2臺(tái);交換機(jī)2臺(tái);PC機(jī)2臺(tái)(1臺(tái)作內(nèi)網(wǎng)服務(wù)器,1臺(tái)作外網(wǎng)服務(wù)器);網(wǎng)線6根。測(cè)試可以分為2類:
第一類:熱備程序的關(guān)閉、網(wǎng)線插拔等宕機(jī)測(cè)試,用來測(cè)試雙機(jī)熱備程序軟件診測(cè)和主備切換的正確性。
第二類:軟件輔助測(cè)試,用網(wǎng)閘文件共享同步功能來測(cè)試雙機(jī)在發(fā)生主/備切換時(shí)數(shù)據(jù)業(yè)務(wù)是否丟失。網(wǎng)閘的文件共享同步即內(nèi)外網(wǎng)服務(wù)器PC通過CIFS(Common Internet File System)協(xié)議與網(wǎng)閘進(jìn)行通信,使數(shù)據(jù)、文檔從內(nèi)網(wǎng)服務(wù)器PC通過安全隔離網(wǎng)閘共享同步到外網(wǎng)服務(wù)器上。
測(cè)試前仍需對(duì)雙機(jī)熱備參數(shù)進(jìn)行配置,雙機(jī)熱備系統(tǒng)配置界面如圖6所示。
如圖6中參數(shù)所示,該設(shè)計(jì)與之前網(wǎng)閘熱備系統(tǒng)相比還有其他優(yōu)越之處,如:可配置的組ID可以使網(wǎng)閘自動(dòng)識(shí)別是否是熱備組網(wǎng)閘發(fā)來心跳包,若匹配成功則接收,匹配失敗則丟棄,提高了網(wǎng)閘熱備的可靠性和安全性;搶占模式和非搶占模式兩種,可以根據(jù)設(shè)備配置情況安排主備機(jī)傾向;可供選擇的熱備接口可選用網(wǎng)閘任意可用網(wǎng)卡作為熱備口,有效地解決了熱備口出現(xiàn)故障的情況。在搭建好圖1的拓?fù)洵h(huán)境,并把設(shè)計(jì)的雙機(jī)熱備系統(tǒng)分別部署于用作主/備的網(wǎng)閘內(nèi)、外端處理機(jī)上,在確保所搭建環(huán)境正確、可靠的前提下,進(jìn)行網(wǎng)閘雙機(jī)熱備的高可用實(shí)驗(yàn)測(cè)試,實(shí)驗(yàn)測(cè)試項(xiàng)目和測(cè)試結(jié)果如表1所示。
由實(shí)驗(yàn)結(jié)果可以看出,本文設(shè)計(jì)的熱備系統(tǒng)在各種故障情況下均能正常切換,切換時(shí)間也與文獻(xiàn)[2,10]中的實(shí)驗(yàn)結(jié)果基本相符(2~4 s)。在該測(cè)試環(huán)境下模擬了各種網(wǎng)閘處理機(jī)故障導(dǎo)致交叉切換的場(chǎng)景,實(shí)驗(yàn)均得到了理想的切換結(jié)果。同時(shí),在出現(xiàn)鎖死情況方面,在共72次宕機(jī)測(cè)試過程中,基于原鏈路對(duì)稱系統(tǒng)的網(wǎng)閘雙機(jī)設(shè)備系統(tǒng)出現(xiàn)三次“鎖死”,鎖死后內(nèi)外網(wǎng)之間的數(shù)據(jù)無法進(jìn)行同步,而改進(jìn)后的基于鏈路非對(duì)稱系統(tǒng)的網(wǎng)閘雙機(jī)熱備系統(tǒng)均能正常運(yùn)行,并無“鎖死”現(xiàn)象出現(xiàn)。且該系統(tǒng)已經(jīng)在深圳利譜信息技術(shù)有限公司正常運(yùn)行一年多,由此表明改進(jìn)后的基于鏈路非對(duì)稱的網(wǎng)閘雙機(jī)熱備方案的合理性和正確性。
本文在基于原鏈路完全對(duì)稱網(wǎng)閘雙機(jī)熱備系統(tǒng)結(jié)構(gòu)的基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了一種鏈路非對(duì)稱結(jié)構(gòu)的網(wǎng)閘雙機(jī)熱備系統(tǒng)。測(cè)試結(jié)果表明,本文所設(shè)計(jì)的基于鏈路非對(duì)稱結(jié)構(gòu)的網(wǎng)閘雙機(jī)熱備系統(tǒng)相比原來完全對(duì)稱結(jié)構(gòu)方案,解決了鏈路交叉切換容易鎖死的問題,提高了熱備的切換性能,并且還具有鏈路收斂速度快,多線程并行處理程序結(jié)構(gòu)簡(jiǎn)單等優(yōu)點(diǎn)。改進(jìn)后的系統(tǒng)已在深圳利譜信息技術(shù)有限公司正常運(yùn)行一年,從理論和實(shí)際環(huán)境兩方面均證明了改進(jìn)后的鏈路非對(duì)稱結(jié)構(gòu)的網(wǎng)閘雙機(jī)熱備系統(tǒng)的合理性。同時(shí),還設(shè)計(jì)了可以自主設(shè)置的網(wǎng)閘熱備組ID(HAID)和可供選擇的熱備接口,提高了網(wǎng)閘熱備組的抗干擾能力和可靠性。
參考文獻(xiàn)
[1] 吳緹.基于物理隔離網(wǎng)閘的銀行文件安全傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué), 2013.
WU Ti. Design and implementation of bank document security transmission system based on physical isolation gatekeeper [D]. Chengdu: University of Electronic Science and Technology of China, 2013.
[2] 蔡智勇,黃輝.一種基于VRRP的網(wǎng)閘高可用性協(xié)議模型[J]. 計(jì)算機(jī)工程,2013(9):146?149.
CAI Zhiyong, HUANG Hui. A VRRP?based gatekeeper high availability protocol model [J]. Computer engineering, 2013(9): 146?149.
[3] 白燕.基于網(wǎng)閘的雙機(jī)熱備系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京理工大學(xué),2015.
BAI Yan. Design and implementation of dual?system hot standby system based on gatekeeper [D]. Beijing: Beijing Institute of Technology, 2015.
[4] 李勇.基于Linux系統(tǒng)的雙機(jī)熱備系統(tǒng)研究與設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2016(44):11?13.
LI Yong. Research and design of dual?system hot standby system based on Linux system [J]. Computer and digital engineering, 2016(44): 11?13.
[5] DAI Z J, LI X W. The application of net gap in electric mobile access system [J]. Applied mechanics & materials, 2012, 241: 627?631.
[6] YU S, ZHAN Y, CAI Q L, et al. A reflective netgap logic framework design [C]// 2008 Workshop on Power Electronics & Intelligent Transportation System. Guangzhou: IEEE, 2008: 565?568.
[7] 闞闖.一種新的基于Linux虛擬服務(wù)器集群的動(dòng)態(tài)負(fù)載均衡算法[D].青島:中國海洋大學(xué),2008.
KAN Chuang. A new dynamic load balancing algorithm based on Linux virtual server cluster [D]. Qingdao: Ocean University of China, 2008.
[8] 高明.基于Linux的負(fù)載平衡算法改進(jìn)探究[J].電子測(cè)試,2015(3):29?31.
GAO Ming. Research on improvement of load balancing algorithm based on Linux [J]. Electronic test, 2015(3): 29?31.
[9] 王淑靜.負(fù)載均衡算法研究及其在電子商務(wù)平臺(tái)上的應(yīng)用[D].鄭州:鄭州大學(xué),2013.
WANG Shujing. Research on load balancing algorithm and its application in e?commerce platform [D]. Zhengzhou: Zhengzhou University, 2013.
[10] 任振芳.基于Xen虛擬機(jī)的雙機(jī)熱備可用性研究[D].鄭州:鄭州大學(xué),2012.
REN Zhenfang. Research on dual?system hot standby avai?lability based on Xen virtual machine [D]. Zhengzhou: Zhengzhou University, 2012.
[11] 佚名.協(xié)議開源代碼網(wǎng)址[EB/OL].[2016?06?15].https://sourceforge.net/p/vrrpd/code/tree.
Anon. Protocol open source code URL [EB/OL]. [2016?06?15]. https://sourceforge.net/p/vrrpd/code/tree.
[12] KUO J H, TE S U, LIAO P T, et al. An evaluation of the virtual router redundancy protocol extension with load balancing [C]// The 11th Pacific Rim International Symposium on Dependable Computing. Hunan: IEEE, 2006: 133?139.
[13] HAO L, YAN L. Research on some key performances for high availability and real time cluster system platforms based on task allocating table [C]// The Fifth International Conference on Intelligent Computation Technology and Automation. Zhangjiajie: IEEE, 2012: 534?536.
[14] SINGH S, CHARY V M, RAHMAN P A. Dual redundant profibus network architecture in hot standby fault tolerant control systems [C]// 2014 International Conference on Advances in Engineering and Technology Research. Unnao: IEEE, 2014: 1?5.