一種基于ipsec隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng)。
【背景技術(shù)】
[0002]因特網(wǎng)協(xié)議安全性(InternetProtocol Security, IPSEC)是基于 Internet 工程任務(wù)組的一種開放標(biāo)準(zhǔn)的安全框架,通過數(shù)據(jù)包篩選及受信任通訊的實(shí)施來防御網(wǎng)絡(luò)攻擊。當(dāng)前,在通過IPSEC隧道轉(zhuǎn)發(fā)報(bào)文的過程中,通常采用IPSEC遂道雙鏈路進(jìn)行數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā),且對(duì)雙鏈路采用平均分配的方式進(jìn)行數(shù)據(jù)流量的分配。
[0003]如圖1所示,針對(duì)IPSEC隧道雙鏈路的場(chǎng)景,防火墻A通常將數(shù)據(jù)報(bào)文分別通過第一鏈路和第二鏈路平均分配流量發(fā)送至防火墻B,即每條鏈路轉(zhuǎn)發(fā)1/2的數(shù)據(jù)報(bào)文,這樣當(dāng)有鏈路阻塞時(shí),就會(huì)出現(xiàn)一個(gè)鏈路數(shù)據(jù)丟失的現(xiàn)象,即帶寬不夠,另一個(gè)鏈路又有帶寬剩余,致使未能高效利用網(wǎng)絡(luò)帶寬,無法避免網(wǎng)絡(luò)擁堵高峰期的網(wǎng)絡(luò)帶寬動(dòng)態(tài)變化而引起的報(bào)文異常丟失等問題,而且報(bào)文的轉(zhuǎn)發(fā)效果和性能較差。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的提供一種基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng),能夠更靈活地利用網(wǎng)絡(luò)帶寬和避免網(wǎng)絡(luò)擁堵高峰期的網(wǎng)絡(luò)帶寬動(dòng)態(tài)變化而引起的報(bào)文異常丟失等冋題。
[0005]根據(jù)本發(fā)明的一個(gè)方面,提供一種基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)方法,所述方法包括:步驟SI,建立兩條IPSEC隧道,形成對(duì)應(yīng)第一 IPSEC隧道的第一 IKE協(xié)議層和第一鏈路,以及對(duì)應(yīng)第二 IPSEC遂道的第二 IKE協(xié)議層和第二鏈路;步驟S2,同時(shí)向第一 IKE協(xié)議層和第二 IKE協(xié)議層發(fā)送DH)請(qǐng)求報(bào)文;步驟S3,根據(jù)第一 IKE協(xié)議層的DH)請(qǐng)求報(bào)文的回應(yīng)報(bào)文的接收情況和第二 IKE協(xié)議層Dro請(qǐng)求報(bào)文的回應(yīng)報(bào)文的接收情況,在第一鏈路和第二鏈路上轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文。
[0006]其中,在本發(fā)明中,所述步驟S3進(jìn)一步包括:步驟S31,當(dāng)?shù)谝?IKE協(xié)議層和第二IKE協(xié)議層接收到所述回應(yīng)報(bào)文時(shí),記錄第一 IKE協(xié)議層接收到回應(yīng)Dro請(qǐng)求報(bào)文的回應(yīng)報(bào)文的第一回應(yīng)時(shí)長m,同時(shí)記錄第二 IKE協(xié)議層接收到回應(yīng)Dro請(qǐng)求報(bào)文的回應(yīng)報(bào)文的第二回應(yīng)時(shí)長η ;步驟S32,在第一鏈路和第二鏈路上按照η和m的比例轉(zhuǎn)發(fā)報(bào)文。
[0007]其中,在本發(fā)明中,所述步驟S32進(jìn)一步包括:當(dāng)m-n大于q/2時(shí),第一鏈路和第二鏈路上轉(zhuǎn)發(fā)報(bào)文的流量比例為n: (m+x);當(dāng)n-m大于q/2時(shí),第一鏈路和第二鏈路上轉(zhuǎn)發(fā)報(bào)文的流量比例為(n+x):m ;q為預(yù)設(shè)的DH)回應(yīng)報(bào)文的等待時(shí)長,X為等待時(shí)長q的正比例影響因子。
[0008]其中,在本發(fā)明中,所述步驟S3進(jìn)一步包括:步驟S33,當(dāng)?shù)谝?IKE協(xié)議層未接收到所述回應(yīng)報(bào)文時(shí),將所對(duì)應(yīng)的第一鏈路設(shè)置為關(guān)閉狀態(tài),將所有待轉(zhuǎn)發(fā)的報(bào)文通過第二鏈路轉(zhuǎn)發(fā);步驟S34,當(dāng)?shù)诙?IKE協(xié)議層未接收到所述回應(yīng)報(bào)文時(shí),將所對(duì)應(yīng)的第二鏈路設(shè)置為關(guān)閉狀態(tài),將所有待轉(zhuǎn)發(fā)的報(bào)文通過第一鏈路轉(zhuǎn)發(fā);步驟S35,當(dāng)?shù)谝?IKE協(xié)議層和第二 IKE協(xié)議層均未接收到所述回應(yīng)報(bào)文時(shí),將所對(duì)應(yīng)的第一鏈路和第二鏈路設(shè)置為轉(zhuǎn)發(fā)關(guān)閉狀態(tài),并停止所有報(bào)文的轉(zhuǎn)發(fā)。
[0009]其中,在本發(fā)明中,所述步驟S3進(jìn)一步包括:步驟S36,當(dāng)?shù)谝?IKE協(xié)議層和/或第二 IKE協(xié)議層重新接收到所述回應(yīng)報(bào)文時(shí),將所對(duì)應(yīng)的第一鏈路和/或第二鏈路設(shè)置為轉(zhuǎn)發(fā)開啟狀態(tài)。
[0010]根據(jù)本發(fā)明的另一方面,提供一種基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)系統(tǒng),所述系統(tǒng)包括:鏈路建立單元,用于建立兩條IPSEC隧道,形成對(duì)應(yīng)第一 IPSEC隧道的第一 IKE協(xié)議層和第一鏈路,以及對(duì)應(yīng)第二 IPSEC遂道的第二 IKE協(xié)議層和第二鏈路;DH)報(bào)文發(fā)送和接收單元,與所述鏈路建立單元相連,用于同時(shí)向所述鏈路建立單元建立的第一 IKE協(xié)議層和第二 IKE協(xié)議層發(fā)送Dro請(qǐng)求報(bào)文,并接收所述請(qǐng)求報(bào)文的回應(yīng)報(bào)文;報(bào)文轉(zhuǎn)發(fā)單元,與所述Dro報(bào)文發(fā)送和接收單元相連,用于根據(jù)第一 IKE協(xié)議層的Dro請(qǐng)求報(bào)文的回應(yīng)報(bào)文的接收情況和第二 IKE協(xié)議層Dro請(qǐng)求報(bào)文的回應(yīng)報(bào)文的接收情況,在第一鏈路和第二鏈路上轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文。
[0011]其中,在本發(fā)明中,所述報(bào)文轉(zhuǎn)發(fā)單元包括:時(shí)長記錄子單元,用于當(dāng)?shù)谝?IKE協(xié)議層和第二 IKE協(xié)議層接收到所述回應(yīng)報(bào)文時(shí),記錄第一 IKE協(xié)議層接收到回應(yīng)Dro請(qǐng)求報(bào)文的回應(yīng)報(bào)文的第一回應(yīng)時(shí)長m,同時(shí)記錄第二 IKE協(xié)議層接收到回應(yīng)Dro請(qǐng)求報(bào)文的回應(yīng)報(bào)文的第二回應(yīng)時(shí)長η ;報(bào)文轉(zhuǎn)發(fā)子單元,用于在第一鏈路和第二鏈路上按照η和m的比例轉(zhuǎn)發(fā)報(bào)文。
[0012]其中,在本發(fā)明中,所述報(bào)文轉(zhuǎn)發(fā)子單元進(jìn)一步用于,當(dāng)m-n大于q/2時(shí),在第一鏈路和第二鏈路上轉(zhuǎn)發(fā)報(bào)文的流量比例為n: (m+x);當(dāng)n-m大于q/2時(shí),第一鏈路和第二鏈路上轉(zhuǎn)發(fā)報(bào)文的流量比例為(n+x):m ;q為預(yù)設(shè)的DPD回應(yīng)報(bào)文的等待時(shí)長,x為等待時(shí)長q的正比例影響因子。
[0013]其中,在本發(fā)明中,所述報(bào)文轉(zhuǎn)發(fā)單元包括:鏈路關(guān)閉和轉(zhuǎn)換子單元,所述鏈路關(guān)閉和轉(zhuǎn)換子單元用于,當(dāng)?shù)谝?IKE協(xié)議層未接收到所述回應(yīng)報(bào)文時(shí),將所對(duì)應(yīng)的第一鏈路設(shè)置為關(guān)閉狀態(tài),將所有待轉(zhuǎn)發(fā)的報(bào)文通過第二鏈路轉(zhuǎn)發(fā);當(dāng)?shù)诙?IKE協(xié)議層未接收到所述回應(yīng)報(bào)文時(shí),將所對(duì)應(yīng)的第二鏈路設(shè)置為關(guān)閉狀態(tài),將所有待轉(zhuǎn)發(fā)的報(bào)文通過第一鏈路轉(zhuǎn)發(fā);當(dāng)?shù)谝?IKE協(xié)議層和第二 IKE協(xié)議層均未接收到所述回應(yīng)報(bào)文時(shí),將所對(duì)應(yīng)的第一鏈路和第二鏈路設(shè)置為轉(zhuǎn)發(fā)關(guān)閉狀態(tài),并停止所有報(bào)文的轉(zhuǎn)發(fā)。
[0014]其中,在本發(fā)明中,所述報(bào)文轉(zhuǎn)發(fā)單元還包括:鏈路開啟子單元,所述鏈路開啟子單元用于當(dāng)?shù)谝?IKE協(xié)議層和/或第二 IKE協(xié)議層重新接收到所述回應(yīng)報(bào)文時(shí),將所對(duì)應(yīng)的第一鏈路和/或第二鏈路設(shè)置為轉(zhuǎn)發(fā)開啟狀態(tài)。
[0015]根據(jù)本發(fā)明的一種基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)方法及系統(tǒng),通過兩鏈路中DPD報(bào)文回應(yīng)延時(shí)的比值來確定兩鏈路轉(zhuǎn)發(fā)報(bào)文的數(shù)量比值,能夠更靈活地利用網(wǎng)絡(luò)帶寬和避免網(wǎng)絡(luò)擁堵高峰期的網(wǎng)絡(luò)帶寬動(dòng)態(tài)變化而引起的報(bào)文異常丟失等問題,提高了報(bào)文的轉(zhuǎn)發(fā)效果和性能。
【附圖說明】
[0016]圖1顯示了現(xiàn)有技術(shù)的基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)的原理圖;
[0017]圖2顯示了本發(fā)明的基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)的原理圖;
[0018]圖3顯示了本發(fā)明優(yōu)選實(shí)施例的基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)方法的流程圖;
[0019]圖4顯示了圖3中步驟S3的流程圖;
[0020]圖5顯示了本發(fā)明優(yōu)選實(shí)施例的基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)系統(tǒng)的結(jié)構(gòu)示意圖;
[0021]圖6顯示了圖5中報(bào)文轉(zhuǎn)發(fā)單元的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0022]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明了,下面結(jié)合【具體實(shí)施方式】并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
[0023]圖2顯示了本發(fā)明的基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)的原理圖。
[0024]如圖2所示,與現(xiàn)有技術(shù)不同的是,本發(fā)明的每條鏈路按照可調(diào)的比例轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文,以充分發(fā)揮每條鏈路的報(bào)文轉(zhuǎn)發(fā)效率。具體來說,本發(fā)明在防火墻A上和防火墻B上分別建立兩條IPSEC隧道,每條隧道分別生成一條對(duì)應(yīng)的鏈路,形成第一鏈路和第二鏈路,并使用獨(dú)立的Dro報(bào)文對(duì)第一鏈路和第二鏈路進(jìn)行狀態(tài)監(jiān)測(cè)。這樣可通過兩鏈路中Dro報(bào)文回應(yīng)延時(shí)的比值來確定兩鏈路轉(zhuǎn)發(fā)報(bào)文的數(shù)量比值,而不是一成不變地將報(bào)文平均到每一鏈路上轉(zhuǎn)發(fā),進(jìn)而能夠更靈活地利用網(wǎng)絡(luò)帶寬和避免網(wǎng)絡(luò)擁堵高峰期的網(wǎng)絡(luò)帶寬動(dòng)態(tài)變化而引起的報(bào)文異常丟失等問題,提高了報(bào)文的轉(zhuǎn)發(fā)效果和性能。
[0025]圖3顯示了本發(fā)明優(yōu)選實(shí)施例的基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)方法的流程圖。
[0026]如圖3所示,本發(fā)明優(yōu)選實(shí)施例的基于IPSEC隧道雙鏈路的報(bào)文轉(zhuǎn)發(fā)方法包括:
[0027]步驟SI,建立兩條IPSEC隧道,形成對(duì)應(yīng)第一 IPSEC隧道的第一 IKE協(xié)議層和第一鏈路,以及對(duì)應(yīng)第二 IPSEC遂道的第二 IKE協(xié)議層和第二鏈路。
[0028]每建立一