本申請(qǐng)要求于2015年1月21日提交的、發(fā)明名稱為“互聯(lián)網(wǎng)協(xié)議安全隧道的負(fù)載均衡”、申請(qǐng)?zhí)枮?4/601,995的美國(guó)非臨時(shí)專利申請(qǐng)的權(quán)益,其在此通過引用并入本文。
本公開涉及網(wǎng)絡(luò)流量的負(fù)載均衡,并且具體地涉及互聯(lián)網(wǎng)協(xié)議安全(ipsec)流量的負(fù)載均衡。
背景技術(shù):
在企業(yè)、公司和數(shù)據(jù)中心網(wǎng)絡(luò)環(huán)境中,服務(wù)器或處理裝置可跨多個(gè)服務(wù)器或處理裝置來復(fù)制處理功能,以提供更強(qiáng)的處理能力。雖然跨多個(gè)服務(wù)器或處理裝置可以復(fù)制相同的功能,但每個(gè)裝置所關(guān)聯(lián)的都是自己的地址。因此,對(duì)該功能的請(qǐng)求必須發(fā)往多個(gè)服務(wù)器或處理裝置中特定的一個(gè)。
隨著處理要求的增加,可在多個(gè)服務(wù)器或處理裝置的前端放置負(fù)載均衡器,以在服務(wù)器之間分發(fā)業(yè)務(wù)。負(fù)載均衡器從連接中的客戶端接收數(shù)據(jù),選擇一個(gè)合適的服務(wù)器,然后將數(shù)據(jù)轉(zhuǎn)發(fā)到被選定的服務(wù)器。
服務(wù)器所提供的功能可包括互聯(lián)網(wǎng)協(xié)議安全(ipsec)服務(wù)??稍谄鹗加?jì)算裝置與多個(gè)服務(wù)器中的一個(gè)之間建立ipsec隧道,以作為目的地端點(diǎn)或轉(zhuǎn)接點(diǎn)。但是,所述同一個(gè)服務(wù)器必須處理與單個(gè)ipsec隧道所關(guān)聯(lián)的所有業(yè)務(wù)以維持ipsec隧道。因此,ipsec隧道對(duì)實(shí)現(xiàn)網(wǎng)絡(luò)業(yè)務(wù)的負(fù)載均衡提出了挑戰(zhàn)。
所以,需要改進(jìn)的網(wǎng)絡(luò)中ipsec業(yè)務(wù)的負(fù)載均衡。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)本公開的一個(gè)方面,提供了一種負(fù)載均衡的方法,包括:在負(fù)載均衡器處接收來自互聯(lián)網(wǎng)協(xié)議安全(ipsec)發(fā)起方的ipsec包,所述接收到的包包括所述ipsec發(fā)起方的ip地址和安全參數(shù)標(biāo)識(shí)符(spi);當(dāng)所述負(fù)載均衡器未識(shí)別到所述接收到的包的所述ipsec發(fā)起方的ip地址以及spi時(shí),將所述接收到的包轉(zhuǎn)發(fā)到多個(gè)ipsec端點(diǎn)中的每一個(gè);從所述多個(gè)ipsec端點(diǎn)中的一個(gè)接收響應(yīng)于所述被轉(zhuǎn)發(fā)的包的響應(yīng)消息;以及基于接收到的所述響應(yīng)消息,確定所述接收到的包的ip地址以及spi所關(guān)聯(lián)的ipsec端點(diǎn)。
根據(jù)本公開的另一個(gè)方面,提供了一種負(fù)載均衡器裝置,包括耦合到網(wǎng)絡(luò)的網(wǎng)絡(luò)接口,所述網(wǎng)絡(luò)接口用于自互聯(lián)網(wǎng)協(xié)議安全(ipsec)發(fā)起方接收ipsec包,所述接收到的包包括所述ipsec發(fā)起方的ip地址和安全參數(shù)標(biāo)識(shí)符(spi);耦合到所述網(wǎng)絡(luò)接口的處理器,其用于執(zhí)行配置所述負(fù)載均衡器裝置的指令,以當(dāng)所述負(fù)載均衡器未識(shí)別到所述接收到的包的所述ipsec發(fā)起方的ip地址以及spi時(shí),將所述接收到的包轉(zhuǎn)發(fā)到連接到所述網(wǎng)絡(luò)接口的多個(gè)ipsec端點(diǎn)中的每一個(gè);從所述多個(gè)ipsec端點(diǎn)中的一個(gè)接收響應(yīng)于所述被轉(zhuǎn)發(fā)的包的響應(yīng)消息;以及基于接收到的所述響應(yīng)消息,更新所述接收到的包的ip地址以及spi所關(guān)聯(lián)的ipsec端點(diǎn)。
根據(jù)本公開的又一個(gè)方面,提供了一種虛擬專用網(wǎng)(vpn)端點(diǎn)裝置,包括:耦合到網(wǎng)絡(luò)的網(wǎng)絡(luò)接口,所述網(wǎng)絡(luò)接口用于自互聯(lián)網(wǎng)協(xié)議安全(ipsec)負(fù)載均衡器接收ipse包,所述接收到的包包括所述ipsec發(fā)起方的ip地址和安全參數(shù)標(biāo)識(shí)符(spi);以及耦合到所述網(wǎng)絡(luò)接口的處理器,其用于執(zhí)行配置所述端點(diǎn)裝置的指令以:確定所述接收到的ipsec包的spi是否與所述端點(diǎn)裝置所終結(jié)的ipsec隧道關(guān)聯(lián);以及向所述ipsec負(fù)載均衡器發(fā)送信息消息,其指示所述接收到的ipsec包未被所述端點(diǎn)裝置終結(jié)。
根據(jù)本公開的再一個(gè)方面,提供了一種在負(fù)載均衡中使用的方法,包括:在互聯(lián)網(wǎng)協(xié)議安全(ipsec)端點(diǎn)裝置處接收來自ipsec負(fù)載均衡器的ipsec包,所述接收到的包包括所述ipsec發(fā)起方的ip地址和安全參數(shù)標(biāo)識(shí)符(spi);確定所述接收到的ipsec包的spi是否與所述端點(diǎn)裝置所終結(jié)的ipsec隧道關(guān)聯(lián);以及向所述ipsec負(fù)載均衡器發(fā)送信息消息,其指示所述接收到的ipsec包未被所述端點(diǎn)裝置終結(jié)。
根據(jù)本公開的還一個(gè)方面,提供了一種非暫時(shí)性計(jì)算機(jī)可讀介質(zhì),其具有供處理器執(zhí)行的指令,當(dāng)所述指令被執(zhí)行時(shí),配置計(jì)算裝置以:在負(fù)載均衡器處接收來自ipsec發(fā)起方的ipsec包,所述接收到的包包括所述ipsec發(fā)起方的ip地址和安全參數(shù)標(biāo)識(shí)符(spi);當(dāng)所述負(fù)載均衡器未識(shí)別到所述接收到的包的所述ipsec發(fā)起方的ip地址以及spi時(shí),將所述接收到的包轉(zhuǎn)發(fā)到多個(gè)ipsec端點(diǎn)中的每一個(gè);從所述多個(gè)ipsec端點(diǎn)中的一個(gè)接收響應(yīng)于所述被轉(zhuǎn)發(fā)的包的響應(yīng)消息;以及基于接收到的所述響應(yīng)消息,更新所述接收到的包的ip地址以及spi所關(guān)聯(lián)的ipsec端點(diǎn)。
根據(jù)本公開的還一個(gè)方面,提供了一種非暫時(shí)性計(jì)算機(jī)可讀介質(zhì),其具有供處理器執(zhí)行的指令,當(dāng)所述指令被執(zhí)行時(shí),配置計(jì)算裝置以:在互聯(lián)網(wǎng)協(xié)議安全(ipsec)端點(diǎn)裝置處接收來自ipsec負(fù)載均衡器的ipsec包,所述接收到的包包括所述ipsec發(fā)起方的ip地址和安全參數(shù)標(biāo)識(shí)符(spi);確定所述接收到的ipsec包的spi是否與所述端點(diǎn)裝置所終結(jié)的ipsec隧道關(guān)聯(lián);以及向所述ipsec負(fù)載均衡器發(fā)送通知消息,指示所述接收到的ipsec包未被所述端點(diǎn)裝置終結(jié)。
附圖說明
此處參照有關(guān)附圖,對(duì)實(shí)施例進(jìn)行描述,其中:
圖1描繪了一個(gè)可以在其中使用ipsec隧道負(fù)載均衡的環(huán)境;
圖2描繪了自同一個(gè)接入裝置所發(fā)起的ipsec業(yè)務(wù)的負(fù)載均衡;
圖3描繪了用于為ipsec隧道進(jìn)行負(fù)載均衡的系統(tǒng)的組件;
圖4、5和6描繪了ipsec隧道負(fù)載均衡的程序流程;
圖7描繪了負(fù)載均衡器的組件;
圖8描繪了用于ipsec業(yè)務(wù)負(fù)載均衡的一種方法;
圖9描繪了用于ipsec業(yè)務(wù)負(fù)載均衡的另一種方法;和
圖10描繪了用于ipsec業(yè)務(wù)負(fù)載均衡的再一種方法。
具體實(shí)施方式
數(shù)據(jù)流量的負(fù)載均衡可提供更高效的資源使用。正如以下還要描述的,可以提供一種負(fù)載均衡器,即便ipsec隧道的業(yè)務(wù)是接收來自同一個(gè)源ip地址,所述負(fù)載均衡器也能夠?qū)⒏鱾€(gè)隧道的ipsec業(yè)務(wù)導(dǎo)向至不同的隧道端點(diǎn)。
提供了一種負(fù)載均衡器,其可將接收來自單個(gè)ipsec(互聯(lián)網(wǎng)協(xié)議安全)隧道發(fā)起方的虛擬專用網(wǎng)(vpn)ipsec業(yè)務(wù)引導(dǎo)到網(wǎng)絡(luò)中vpn網(wǎng)關(guān)所提供的多個(gè)端點(diǎn)中的一個(gè)。該負(fù)載均衡器提供vpn業(yè)務(wù)的分發(fā),使得發(fā)起端的vpn業(yè)務(wù)可以在多個(gè)端點(diǎn)之間進(jìn)行分發(fā)。但在vpn業(yè)務(wù)的分發(fā)中,一旦會(huì)話已經(jīng)初始化,則負(fù)載均衡器就未必能夠確定后續(xù)業(yè)務(wù)應(yīng)當(dāng)引導(dǎo)向哪個(gè)端點(diǎn)。負(fù)載均衡器使用ip(互聯(lián)網(wǎng)協(xié)議)地址和spi(安全參數(shù)標(biāo)識(shí)符)來識(shí)別負(fù)責(zé)處理vpn特定包的端點(diǎn)。故而對(duì)于已知源ip地址和未知spi值。當(dāng)在負(fù)載均衡器處接收到消息時(shí),負(fù)載均衡器也就無法識(shí)別該包所關(guān)聯(lián)的端點(diǎn)是哪個(gè)。負(fù)載均衡器將這個(gè)接收到的包轉(zhuǎn)發(fā)到所有端點(diǎn),如果端點(diǎn)接收到的包的spi所對(duì)應(yīng)的隧道并不在該端點(diǎn)終結(jié),則該端點(diǎn)響應(yīng)一條消息,指示該spi為未知。根據(jù)這些響應(yīng),負(fù)載均衡器即可確定該spi的合適的端點(diǎn)。負(fù)載均衡器可以利用表來跟蹤各響應(yīng),從而找出合適的端點(diǎn)。
圖1描繪了一個(gè)可以在其中使用ipsec隧道負(fù)載均衡的環(huán)境。所述環(huán)境100包括若干個(gè)計(jì)算裝置,其可通信地耦合到網(wǎng)絡(luò)102。網(wǎng)絡(luò)102在相連的計(jì)算裝置之間提供通信。所述裝置可包括位于不同地點(diǎn)的若干計(jì)算裝置。所述裝置可以在一個(gè)或多個(gè)網(wǎng)絡(luò)的外部或構(gòu)成其中一部分。舉例而言,所述計(jì)算裝置可包括位于企業(yè)總部或總園區(qū)104的計(jì)算裝置、位于家中(homelocation)106的計(jì)算裝置和位于企業(yè)分支部門108的計(jì)算裝置。顯然,這些示意性示例并非唯一可能性。存在大量不同的使用案例,雖然具體用途不同,但共用類似架構(gòu)。
這些計(jì)算裝置可以例如位于企業(yè)總部104并包含若干虛擬專用網(wǎng)(vpn)網(wǎng)關(guān)110a、110b、110c(合稱vpn網(wǎng)關(guān)110),向相連裝置提供功能。正如進(jìn)一步描述的,所述vpn網(wǎng)關(guān)110提供vpn終結(jié)點(diǎn)或vpn端點(diǎn),該vpn終結(jié)點(diǎn)或vpn端點(diǎn)在計(jì)算裝置之間提供安全通信隧道,例如在企業(yè)總部104的計(jì)算裝置與位于遠(yuǎn)程的例如家中106和分支部門108的計(jì)算裝置之間提供。每個(gè)vpn網(wǎng)關(guān)110提供大體類似的vpn功能,同樣地,計(jì)算裝置可以用相同的方式連接任意一個(gè)vpn網(wǎng)關(guān)110。處理功能或服務(wù)可以跨多個(gè)vpn網(wǎng)關(guān)110進(jìn)行復(fù)制,以提供冗余,并擴(kuò)展處理能力。為均衡各vpn網(wǎng)關(guān)110之間的處理負(fù)載,并允許各裝置透明地連接到不同的vpn網(wǎng)關(guān)110,可提供負(fù)載均衡功能112,其接收對(duì)vpn網(wǎng)關(guān)110的請(qǐng)求和數(shù)據(jù),并將所述請(qǐng)求引導(dǎo)到其中某一個(gè)vpn網(wǎng)關(guān)110。
家中106的計(jì)算裝置可包含接入裝置或網(wǎng)關(guān)114,其為相連的計(jì)算裝置116a、116b(合稱計(jì)算裝置116)提供到網(wǎng)絡(luò)102的接入。如圖所示,接入裝置114可以是路由器。計(jì)算裝置116可以無線或通過有線連接來連接到接入裝置114。計(jì)算裝置116通過接入裝置114接入到網(wǎng)絡(luò)102。如圖所示,接入裝置114可以關(guān)聯(lián)到公共ip地址(圖示為5.x.x.12)以及內(nèi)網(wǎng)的專用網(wǎng)絡(luò)地址(圖示為例如192.x.x.1)。計(jì)算裝置116關(guān)聯(lián)到內(nèi)網(wǎng)的ip地址,即分別為192.x.x.101和192.x.x.102。當(dāng)通過互聯(lián)網(wǎng)訪問裝置或服務(wù)時(shí),接入裝置114會(huì)修改來自裝置116的業(yè)務(wù),使其看似是來自該接入裝置114的公共ip地址。
類似地,位于分支部門108的計(jì)算裝置可以包含接入裝置或網(wǎng)關(guān)118,提供與家中106的接入裝置114類似的功能。圖示為臺(tái)式計(jì)算機(jī)120a、120b、120c(合稱計(jì)算裝置120)的若干計(jì)算裝置連接到接入裝置118。應(yīng)理解的是,,接入裝置118可提供附加功能,或可具有附加容量,以提供相比家中106的,在辦公環(huán)境中所要求的服務(wù)質(zhì)量。不過,接入裝置118為連接到內(nèi)網(wǎng)的計(jì)算裝置120提供互聯(lián)網(wǎng)接入,在這點(diǎn)上,接入裝置118的功能又類似于家中的接入裝置114。如圖所示,接入裝置118包含至少一個(gè)公共ip地址(圖示為12.x.x.55)以及內(nèi)網(wǎng)上的至少一個(gè)ip地址(圖示為10.x.x.1)。連接到接入裝置118的每個(gè)計(jì)算裝置120都與各自一個(gè)內(nèi)網(wǎng)ip地址關(guān)聯(lián),分別圖示為10.x.x.12、10.x.x.13和10.x.x.14。接入裝置118為計(jì)算裝置120提供互聯(lián)網(wǎng)接入。當(dāng)通過互聯(lián)網(wǎng)訪問計(jì)算裝置或服務(wù)時(shí),接入裝置118可將來自計(jì)算裝置120的業(yè)務(wù)封裝進(jìn)隧道,使其看似是來自接入裝置118的公共ip地址。
接入裝置114、118可以是啟用了ipsec的裝置,能夠建立與vpn網(wǎng)關(guān)(例如vpn網(wǎng)關(guān)110中的一個(gè))的安全隧道。將理解,ipsec隧道可用于對(duì)隧道端點(diǎn)之間所傳輸?shù)臄?shù)據(jù)進(jìn)行驗(yàn)證和/或加密。一旦對(duì)特定一個(gè)vpn網(wǎng)關(guān)的隧道已建立,該隧道連接所關(guān)聯(lián)的所有業(yè)務(wù)都必須發(fā)往這同一個(gè)vpn網(wǎng)關(guān)。相應(yīng)地,負(fù)載均衡功能112必須將該所有關(guān)聯(lián)業(yè)務(wù)都發(fā)送到該vpn的該同一個(gè)vpn網(wǎng)關(guān)110。負(fù)載均衡功能112可使用發(fā)起業(yè)務(wù)的ip地址來識(shí)別特定隧道的關(guān)聯(lián)業(yè)務(wù)。然而對(duì)負(fù)載均衡功能112而言,來自特定接入裝置114、118的所有業(yè)務(wù)均看似來自同一個(gè)ip地址,同樣地,被發(fā)送到同一個(gè)vpn網(wǎng)關(guān)110。換言之,即便來自裝置116a的業(yè)務(wù)可由vpn網(wǎng)關(guān)110a處理,且來自裝置116b的業(yè)務(wù)可由vpn網(wǎng)關(guān)110b處理,但對(duì)負(fù)載均衡功能來說它們的發(fā)起端ip地址看起來均相同,并且同樣地如果負(fù)載均衡器只使用源ip地址來識(shí)別各個(gè)隧道的業(yè)務(wù),則兩個(gè)業(yè)務(wù)流都會(huì)被負(fù)載均衡功能112導(dǎo)向同一個(gè)vpn網(wǎng)關(guān)。
正如進(jìn)一步描述的,在確定接收到的業(yè)務(wù)應(yīng)在何處處理時(shí),除發(fā)起端的源ip地址之外,負(fù)載均衡功能112還可利用附加信息。負(fù)載均衡功能112可用于同時(shí)使用ip地址和其他信息,例如安全參數(shù)標(biāo)識(shí)符(spi),來將業(yè)務(wù)導(dǎo)向各自的vpn網(wǎng)關(guān)。利用附加信息允許負(fù)載均衡功能112將來自不同計(jì)算裝置的業(yè)務(wù)導(dǎo)向不同的vpn網(wǎng)關(guān),即便這些業(yè)務(wù)是接收自同一個(gè)接入裝置。
圖2描繪了對(duì)從同一個(gè)接入裝置所發(fā)起的ipsec業(yè)務(wù)進(jìn)行負(fù)載均衡。如圖所示,接入裝置114是ipsec發(fā)起方,其與vpn網(wǎng)關(guān)110建立ipsec隧道。然而,接入裝置114試圖與負(fù)載均衡功能112建立ipsec隧道。即,隧道初始化請(qǐng)求和后續(xù)業(yè)務(wù)應(yīng)被導(dǎo)向至負(fù)載均衡功能112,由其將這些業(yè)務(wù)導(dǎo)向合適的vpn網(wǎng)關(guān)110,例如通過修改所接收到的業(yè)務(wù)的包頭信息。負(fù)載均衡功能112選擇vpn網(wǎng)關(guān)110中合適的一個(gè),以將業(yè)務(wù)導(dǎo)向該網(wǎng)關(guān)。如圖所示,通信裝置116a可以與接入裝置114進(jìn)行通信。接入裝置114與計(jì)算裝置116a之間的通信202可能不是安全的。接入裝置114可以與vpn網(wǎng)關(guān)110a建立一個(gè)安全隧道204。雖然通信要通過負(fù)載均衡功能112,但在接入裝置114與被選的vpn網(wǎng)關(guān)110a之間建立了ipsec隧道。如圖所示,即便業(yè)務(wù)發(fā)自同一個(gè)接入裝置114,但負(fù)載均衡功能112仍能夠?qū)I(yè)務(wù)正確地導(dǎo)向不同vpn網(wǎng)關(guān)。相應(yīng)地,負(fù)載均衡功能112也就能夠?yàn)椴煌淼赖臉I(yè)務(wù)使用不同的vpn網(wǎng)關(guān)。例如,來自計(jì)算裝置116b的通信206就可以穿過接入裝置與負(fù)載均衡功能112所選定的vpn網(wǎng)關(guān)110b之間的ipsec隧道208。
為了使描述清楚起見,以上所描述的網(wǎng)絡(luò)環(huán)境旨在提供一個(gè)示意性示例。雖然以上描述了特定的計(jì)算裝置和連接,但應(yīng)當(dāng)理解的是,大量其他實(shí)際實(shí)施方式也是可能的。相應(yīng)地,以下描述所指的是ipsec發(fā)起方,其為能夠發(fā)起多個(gè)ipsec隧道的任意計(jì)算裝置。所述ipsec發(fā)起方可包括接入點(diǎn)、網(wǎng)關(guān)、路由器、計(jì)算機(jī)、服務(wù)器或其他有ipsec能力的計(jì)算裝置。雖然所述ipsec發(fā)起方被描述為代表不同的計(jì)算裝置來建立不同的ipsec隧道,但也構(gòu)思了單個(gè)計(jì)算裝置可發(fā)起多個(gè)獨(dú)立的ipsec隧道。類似地,以下描述所指的是ipsec端點(diǎn),其可為能夠終結(jié)ipsec隧道的任意計(jì)算裝置,并可包含在接入點(diǎn)、網(wǎng)關(guān)、路由器、計(jì)算機(jī)、服務(wù)器或其他計(jì)算裝置中。
圖3描述了用于為ipsec隧道進(jìn)行負(fù)載均衡的系統(tǒng)的組件。如圖所示,所述系統(tǒng)包括負(fù)載均衡器302,若干個(gè)ipsec發(fā)起方304a、304b、304c、304n(合稱發(fā)起方304),以及稱為ipsec端點(diǎn)306a、306b、306c、306n(合稱端點(diǎn)306)的若干個(gè)vpn網(wǎng)關(guān)。負(fù)載均衡器302從發(fā)起方304接收隧道初始化請(qǐng)求,并且針對(duì)每個(gè)初始化請(qǐng)求,負(fù)載均衡器302確定將該vpn的隧道導(dǎo)向哪個(gè)端點(diǎn)306。負(fù)載均衡器302所用的選擇標(biāo)準(zhǔn)可以不同。例如,負(fù)載均衡器可以按輪詢方式選擇端點(diǎn),或者基于一個(gè)或多個(gè)端點(diǎn)306的處理負(fù)載。不論負(fù)載均衡器如何選擇端點(diǎn)306端點(diǎn),與建立的隧道所關(guān)聯(lián)的全部后續(xù)業(yè)務(wù)都必須由負(fù)載均衡器發(fā)往同一個(gè)端點(diǎn)。
如圖3所示,發(fā)起方304可能關(guān)聯(lián)有各個(gè)ip地址,其用于發(fā)起方304與負(fù)載均衡器302之間的通信。每個(gè)發(fā)起方304也可與一個(gè)或多個(gè)通信端點(diǎn)308(在圖3中描繪為圓圈)通信。每個(gè)發(fā)起方304可以與負(fù)載均衡器所選定的一個(gè)端點(diǎn)306建立起ipsec隧道,以保護(hù)來自一個(gè)通信裝置308的業(yè)務(wù)。在隧道的建立和利用中,發(fā)起方將隧道業(yè)務(wù)(包括初始化請(qǐng)求)導(dǎo)向負(fù)載均衡器。針對(duì)該端點(diǎn),負(fù)載均衡器選擇一個(gè)合適的vpn網(wǎng)關(guān),并向其轉(zhuǎn)發(fā)業(yè)務(wù)。
負(fù)載均衡器302允許多個(gè)ipsec隧道發(fā)起方304發(fā)起ipsec隧道指向單一ip地址,該ip地址被用于代表多ipsec隧道端點(diǎn)306。為確保對(duì)應(yīng)同一個(gè)隧道的所有包都到達(dá)合適的端點(diǎn)306,負(fù)載均衡器302維持一個(gè)映射表312,該表提供信息,用于識(shí)別對(duì)接收到的包進(jìn)行處理的端點(diǎn)。當(dāng)有ipsec包到達(dá)時(shí),使用所述映射來確定正確的端點(diǎn)來處理該包,且負(fù)載均衡器302將該包轉(zhuǎn)發(fā)到該確定的端點(diǎn)。如果接收到的ipsec包與建立新的ipsec隧道關(guān)聯(lián),即該包并不與已有的隧道關(guān)聯(lián),則負(fù)載均衡器302可以基于任意適當(dāng)?shù)呢?fù)載均衡準(zhǔn)則來選擇端點(diǎn)以向其轉(zhuǎn)發(fā)該包。
所述負(fù)載均衡器302所用的映射表312將所接收包的源ip、所述包的安全參數(shù)標(biāo)識(shí)符(spi)、以及應(yīng)當(dāng)用于處理具有該源ip及spi的包的端點(diǎn)關(guān)聯(lián)起來。正如將理解的,關(guān)聯(lián)到同一個(gè)隧道的包應(yīng)具有相同的ip地址,其應(yīng)對(duì)應(yīng)著發(fā)起方的ip地址。還有,關(guān)聯(lián)到同一個(gè)隧道的包可具有不同的spi值。當(dāng)?shù)竭_(dá)的包有已知源ip地址和未知spi值時(shí),負(fù)載均衡器302就無法識(shí)別該包所關(guān)聯(lián)的端點(diǎn)是哪個(gè)。相應(yīng)地,負(fù)載均衡器302中包含了識(shí)別該spi與哪個(gè)端點(diǎn)關(guān)聯(lián)的處理。在用于做出負(fù)載均衡決策的初始的ike階段1消息之后,當(dāng)有包到達(dá)負(fù)載均衡器302時(shí),若其spi為未知,即該spi不在映射表312中,則負(fù)載均衡器302將所接收到的包轉(zhuǎn)發(fā)到所有端點(diǎn)306。如果端點(diǎn)306接收到的包的spi所對(duì)應(yīng)的隧道并不在該點(diǎn)終結(jié),則端點(diǎn)306響應(yīng)一條消息,指示該spi為未知。如果端點(diǎn)306識(shí)別出該包的spi,則正常處理該包,并通過負(fù)載均衡器302將響應(yīng)消息發(fā)回到發(fā)起方。負(fù)載均衡器302監(jiān)視從網(wǎng)關(guān)接收到的消息,并使用該響應(yīng)來更新映射表312。
圖3中的映射表312描繪了由同一個(gè)發(fā)起方(即發(fā)起方304a)所發(fā)起、但分別在兩個(gè)不同的端點(diǎn)306b、306a終結(jié)的ipsec隧道314、316。如圖所示,第一ipsec隧道314與三個(gè)不同的spi關(guān)聯(lián),即s1、s2、s3。相應(yīng)地,凡是在負(fù)載均衡器302處,從源ip地址“ip1”接收到的、具有的spi為s1、s2或s3的包,都將被轉(zhuǎn)發(fā)到端點(diǎn)306b進(jìn)行處理。但是,從同一個(gè)源ip地址(即“ip1”)接收到的其他的包則可導(dǎo)向其他端點(diǎn)。例如,從源ip地址“ip1”發(fā)起的第二隧道可能關(guān)聯(lián)到兩個(gè)spi,即s10和s11。凡是從源ip地址“ip1”到達(dá)負(fù)載均衡器的、具有的spi為s10或s11的包,都將被轉(zhuǎn)發(fā)到端點(diǎn)306a做進(jìn)一步的處理。
ipsec隧道內(nèi)的業(yè)務(wù)可以是加密的;不過,spi并未加密,故而負(fù)載均衡器302可以查看。spi被發(fā)起方和端點(diǎn)用于唯一標(biāo)識(shí)一個(gè)安全關(guān)聯(lián)(sa)或子sa。雖然spi可能并未加密,但來自端點(diǎn)的響應(yīng),例如指示某個(gè)spi未被識(shí)別的響應(yīng),可在加密的sa中發(fā)送。為允許負(fù)載均衡器302利用該響應(yīng),端點(diǎn)可以附加地或另選地在sa之外發(fā)送該響應(yīng)。相應(yīng)地,來自端點(diǎn)指示某spi未被識(shí)別的消息可以由負(fù)載均衡器302接收,并用于更新其映射表312。
在ipsec隧道的建立中,涉及各種消息的交換。執(zhí)行初始密鑰交換(ike)過程,以在隧道端點(diǎn)之間建立初始安全關(guān)聯(lián)(sa)。sa定義了安全信息,例如在建立隧道式初始使用的加密算法、共用密鑰等。一旦建立起sa,即可建立一個(gè)或多個(gè)子sa來進(jìn)行隧道端點(diǎn)之間的通信。每個(gè)子sa用于一個(gè)方向的通信,因此,如果要求或希望進(jìn)行雙向通信,則將建立至少兩個(gè)子sa。對(duì)于雙向業(yè)務(wù),子sa一般在同一個(gè)ike交換中成對(duì)建立。建立好的隧道中的包可以(但不需要)是加密的。包可以是認(rèn)證報(bào)頭(ah)包,其保護(hù)包的內(nèi)容,防止在傳輸中被更改,但ah包并不會(huì)單獨(dú)加密。封裝安全有效載荷(esp)包可用于包的加密,并可能用于包的驗(yàn)證。
如上所述,負(fù)載均衡器302接收包,并確定多個(gè)ipsec端點(diǎn)306中的一個(gè)以轉(zhuǎn)發(fā)該包。如果接收到的包并未關(guān)聯(lián)到已有ipsec隧道,例如該包關(guān)聯(lián)到建立ipsec隧道的請(qǐng)求,則負(fù)載均衡器302可以根據(jù)選擇標(biāo)準(zhǔn),在多個(gè)ipsec端點(diǎn)306中選擇一個(gè)。如果接收到的包關(guān)聯(lián)到了已有ipsec隧道,例如該包中包含有spi,則負(fù)載均衡器302嘗試確定包(并且尤其是該包的源ip地址和spi)與負(fù)責(zé)關(guān)聯(lián)的隧道的ipsec端點(diǎn)306之間的映射。負(fù)載均衡器302可利用映射表,其將包的源ip地址和spi值關(guān)聯(lián)到負(fù)責(zé)處理該包的ipsec端點(diǎn)。如果能找到匹配,則將該包轉(zhuǎn)發(fā)到提供該ipsec端點(diǎn)306的關(guān)聯(lián)vpn。
當(dāng)負(fù)責(zé)該spi所關(guān)聯(lián)的隧道的端點(diǎn)處接收到ike包時(shí),該包將按正常處理。端點(diǎn)可傳輸建立子sa的ike消息或其他有關(guān)消息,具體取決于消息類型。對(duì)于從端點(diǎn)發(fā)送的子sa消息,負(fù)載均衡器302可以基于包報(bào)頭信息來加以識(shí)別,所述包報(bào)頭信息可以是未加密的。相應(yīng)地,負(fù)載均衡器302可以接收該消息,識(shí)別子sa,并將新的spi關(guān)聯(lián)到發(fā)送該消息的端點(diǎn)。相應(yīng)地,當(dāng)接收到另一個(gè)具有相匹配的ip和spi的包時(shí),該包可被轉(zhuǎn)發(fā)到該端點(diǎn)。
如果負(fù)載均衡器302處接收到的ike包并不與映射表中的源ip和spi對(duì)相匹配,但又并非用于執(zhí)行負(fù)載均衡決策的第一ike階段1消息,則負(fù)載均衡器302將無法確定正確的ipsec端點(diǎn)來轉(zhuǎn)發(fā)該包以進(jìn)行處理。相應(yīng)地,負(fù)載均衡器302會(huì)將該包轉(zhuǎn)發(fā)到所有ipsec端點(diǎn)306,并監(jiān)視來自端點(diǎn)306的響應(yīng),以確定合適的端點(diǎn)以轉(zhuǎn)發(fā)后續(xù)包。負(fù)載均衡器302所監(jiān)視的響應(yīng)中,可以包含任意已建立的sa之外的端點(diǎn)所發(fā)送的信息消息,該消息指示被轉(zhuǎn)發(fā)包的spi未被該端點(diǎn)識(shí)別。該信息消息允許負(fù)載均衡器302確定后續(xù)包所不應(yīng)被轉(zhuǎn)發(fā)至的端點(diǎn)。如果包所對(duì)應(yīng)的隧道所關(guān)聯(lián)的端點(diǎn)對(duì)該包進(jìn)行了處理,則可以在ah/esp包中發(fā)送響應(yīng);由于可能的加密,故而對(duì)負(fù)載均衡器302而言,此ah/esp包也許不能訪問。相應(yīng)地,負(fù)載均衡器302也就無法明確地識(shí)別負(fù)責(zé)處理該包的端點(diǎn),于是可轉(zhuǎn)而依靠排除法來確定用于處理該包的端點(diǎn)。如果負(fù)載均衡器302接到信息消息,指示該spi未被識(shí)別,則將對(duì)應(yīng)的端點(diǎn)從可能的端點(diǎn)列表中排除,所述可能的端點(diǎn)可以處理與相匹配的源ip和spi關(guān)聯(lián)的包。
圖4、5和6描繪了ipsec隧道負(fù)載均衡的程序流程。圖4、5和6中所描繪的程序流程旨在傳達(dá)ipsec隧道負(fù)載均衡的總體流程,故而關(guān)于被傳輸?shù)奶囟ㄏ⒌囊恍┘?xì)節(jié)并未詳細(xì)涵蓋。不過,較好地記載和理解了ipsec協(xié)議以及在ipsec中所用的其他協(xié)議,如ike、ah和esp。
發(fā)起方304通過發(fā)送初始ipsec消息,或更具體地,ike消息402到負(fù)載均衡器302,以嘗試與ipsec端點(diǎn)建立ipsec隧道。該初始消息中包含spi,其可用于標(biāo)識(shí)作為結(jié)果的sa。負(fù)載均衡器302接收到要求建立ipsec隧道的初始請(qǐng)求消息,并選擇404可能的ipsec端點(diǎn)中的一個(gè)來建立該隧道。一旦選定端點(diǎn)(在圖4中示為端點(diǎn)306a),負(fù)載均衡器記錄下源ip地址(在圖4中示為與發(fā)起方304a關(guān)聯(lián)的“ip1”)、所收消息的spi(即“s1”)和選定的端點(diǎn)之間的關(guān)聯(lián)關(guān)系。源ip、spi和端點(diǎn)之間的關(guān)聯(lián)關(guān)系可以存儲(chǔ)406在映射表312中。進(jìn)一步地,一旦端點(diǎn)被網(wǎng)關(guān)選定來處理該隧道請(qǐng)求,則該消息被轉(zhuǎn)發(fā)408到被選定的端點(diǎn)306a,不過其可以先修改目的地地址。端點(diǎn)306a接收并處理該消息,并且以ike階段1響應(yīng)消息410響應(yīng),該消息由負(fù)載均衡器302接收,并轉(zhuǎn)發(fā)到發(fā)起方412。
雖然以上描述為交換單個(gè)請(qǐng)求和響應(yīng),但ike階段1交換可以涉及多個(gè)消息的交換以協(xié)商安全信息,如所使用的協(xié)議和密鑰。一旦ike階段1交換完成,即在發(fā)起方304a和被選的端點(diǎn)306a之間建立414初始sa。在ike階段1之后,發(fā)起方可通過ike階段2消息交換建立附加的子sa。ike階段2消息在已建立的sa中發(fā)送,但會(huì)包含新的spi,用于標(biāo)識(shí)新的子sa。如圖所示,發(fā)起方可發(fā)送ike階段2消息416,其中包含新的spis2。當(dāng)負(fù)載均衡器302接收到階段2消息,負(fù)載均衡器就會(huì)將該消息的源ip和spi與映射表312中的進(jìn)行比對(duì)。但是,由于spis2在映射表中并未關(guān)聯(lián)到該源ip,故而對(duì)負(fù)載均衡器302而言spi是未識(shí)別的418,故而負(fù)載均衡器302也就無法確定將接收到的消息發(fā)送到哪個(gè)網(wǎng)關(guān)。當(dāng)接收到的消息具有未識(shí)別的ip:spi對(duì)時(shí),即該ip和spi不在映射312中時(shí),負(fù)載均衡器302將該ip:spi與所有端點(diǎn)420關(guān)聯(lián)記錄在映射表中,然后將該包轉(zhuǎn)發(fā)到與負(fù)載均衡器422、424關(guān)聯(lián)的所有ipsec端點(diǎn)。每個(gè)端點(diǎn)306a、306n接收到被轉(zhuǎn)發(fā)的消息。對(duì)于端點(diǎn)306a,由于該端點(diǎn)正是負(fù)責(zé)處理該包的端點(diǎn),故而能夠正確處理該包,并以子sa響應(yīng)426進(jìn)行響應(yīng)。負(fù)載均衡器302從與該隧道關(guān)聯(lián)的端點(diǎn)接收到子sa響應(yīng)。負(fù)載均衡器能夠基于該消息的報(bào)頭信息來識(shí)別來自端點(diǎn)的子sa響應(yīng)426。相應(yīng)地,當(dāng)從端點(diǎn)306中的一個(gè)接到子sa消息時(shí),負(fù)載均衡器能適當(dāng)更新428映射表,以將用該子sa消息響應(yīng)的端點(diǎn)306a與映射表312中的ip:spi關(guān)聯(lián)起來。在負(fù)載均衡器處從該端點(diǎn)接收到的子sa響應(yīng)被轉(zhuǎn)發(fā)430到發(fā)起方304a。發(fā)起方304a處接收到該子sa響應(yīng)430,且建立432子sa,其不論是否是已驗(yàn)證的和/或已加密的,都可用于進(jìn)行安全數(shù)據(jù)傳輸434。而對(duì)于雙向業(yè)務(wù),同一次消息交換中可能建立兩個(gè)子sa。
與該隧道的處理無關(guān)聯(lián)的端點(diǎn)(被示出為端點(diǎn)306n),可用一個(gè)指示來響應(yīng)轉(zhuǎn)發(fā)來的消息,所述指示為指示該接收到的spi為無效436,即該spi沒有關(guān)聯(lián)到該端點(diǎn)所處理的隧道。當(dāng)響應(yīng)ike消息時(shí),端點(diǎn)可以在sa內(nèi)響應(yīng);不過,正如以下還要描述的,當(dāng)響應(yīng)ah或esp消息時(shí),端點(diǎn)會(huì)在sa之外發(fā)送通知消息,該通知消息指示spi無效。當(dāng)負(fù)載均衡器302接收到spi無效的通知消息時(shí),即可更新映射表,將該端點(diǎn)從用于轉(zhuǎn)發(fā)相對(duì)應(yīng)的ip:spi的消息的端點(diǎn)列表中移除。如圖4所示,映射表已經(jīng)基于子sa響應(yīng)更新,故而也就無需再行更新。
圖5描繪了針對(duì)ah/esp消息的程序流程。發(fā)起方304a可在sa中發(fā)送ah和/或esp包。ah/esp消息502中包含了各自的spi。雖然包可以被加密,但包的spi部分并不被加密,故而負(fù)載均衡器也就可以訪問包中的spi。如圖5所示,ah/esp消息502中包含了spi:“s3”。當(dāng)在負(fù)載均衡器接收時(shí),將消息的源ip和所含的spi與映射表312進(jìn)行比對(duì),確定向哪個(gè)端點(diǎn)發(fā)送該消息。當(dāng)該ip:spi對(duì)在映射表中未找到時(shí),即不能被負(fù)載均衡器302識(shí)別時(shí),則更新506映射,將所有端點(diǎn)都關(guān)聯(lián)到該ip:spi。當(dāng)ip:spi未被負(fù)載均衡器識(shí)別時(shí),則該消息被轉(zhuǎn)發(fā)到所有端點(diǎn)508、510。在圖5中,負(fù)責(zé)消息502所關(guān)聯(lián)的隧道的是端點(diǎn)306a。端點(diǎn)306a接收到轉(zhuǎn)發(fā)來的消息510并處理該消息,并響應(yīng)以ah/esp響應(yīng)512。該ah/esp響應(yīng)消息在負(fù)載均衡器302處接收,并被轉(zhuǎn)發(fā)到發(fā)起方514。負(fù)載均衡器302并不能確定該ah/esp消息的內(nèi)容,故而也就無法用該響應(yīng)來更新映射表。進(jìn)一步地,負(fù)載均衡器302無法利用該消息中的spi值來確定由哪個(gè)端點(diǎn)處理該包,由于spi值是本地值,即發(fā)起端有一個(gè)spi值、端點(diǎn)有一個(gè)值,而在ah/esp消息中僅出現(xiàn)一個(gè)值,因此不可能將一個(gè)方向的spi關(guān)聯(lián)到反方向的spi。當(dāng)端點(diǎn)306n處接收到該ah/esp消息508時(shí),spi不被識(shí)別,故而端點(diǎn)也就發(fā)送信息消息,指示該spi無效516。端點(diǎn)306n在sa之外傳輸該信息消息。當(dāng)在負(fù)載均衡器302接收到518該消息516時(shí),就用之以更新映射表520,從而將發(fā)送該信息消息的端點(diǎn)306n從與關(guān)聯(lián)著ip:spi的映射表中移除。當(dāng)從源ip接收到后續(xù)包時(shí),其中后續(xù)包包括可以在映射表中找到的spi,則負(fù)載均衡器302將該包轉(zhuǎn)發(fā)到映射表中所標(biāo)識(shí)的端點(diǎn)(或端點(diǎn))。如此,即便建立了從同一個(gè)ip地址到不同端點(diǎn)的多個(gè)隧道,與特定隧道關(guān)聯(lián)的包也會(huì)被轉(zhuǎn)發(fā)到正確的端點(diǎn)。
圖6描繪了負(fù)載均衡器處從同一個(gè)發(fā)起方接收到新的隧道請(qǐng)求的流程。此流程類似于以上關(guān)于圖4描述的流程。發(fā)起方304a可嘗試建立新的ipsec隧道,并將ike階段1請(qǐng)求,具有對(duì)應(yīng)的新spi,即“s10”,發(fā)送到602負(fù)載均衡器302。負(fù)載均衡器302接收到建立新隧道的請(qǐng)求消息,該消息尚未關(guān)聯(lián)到ipsec終結(jié)點(diǎn),于是在ipsec端點(diǎn)中選擇一個(gè)(圖示為端點(diǎn)306n)來建立隧道。一旦負(fù)載均衡器302為vpn選定端點(diǎn)306n,該請(qǐng)求消息的源ip和spi就在映射表中關(guān)聯(lián)606到所選端點(diǎn)。負(fù)載均衡器302將ike階段1響應(yīng)轉(zhuǎn)發(fā)到被選端點(diǎn)608,后者相應(yīng)地向負(fù)載均衡器302做出響應(yīng)610。負(fù)載均衡器302將響應(yīng)消息轉(zhuǎn)發(fā)612到發(fā)起方來建立614初始sa。
如上所述,通過追蹤消息的ip和spi以及消息所用的端點(diǎn),可以對(duì)接收從同一個(gè)源ip地址的ipsec隧道進(jìn)行負(fù)載均衡。隨著用于負(fù)載均衡決策的原始ike階段1消息之后的關(guān)聯(lián)到未識(shí)別的ip和spi對(duì)的消息被接收到,則該消息被轉(zhuǎn)發(fā)到所有端點(diǎn),而作為響應(yīng)接收到的消息則用于更新映射表,其規(guī)定用于該ip:spi對(duì)的后續(xù)消息的端點(diǎn)。來自端點(diǎn)的、指示被轉(zhuǎn)發(fā)消息的spi不被識(shí)別或無效的響應(yīng)消息可以在sa之外傳輸,以作為對(duì)ah和/或esp消息的響應(yīng)。接收到的此消息可提供明確指示,表示該端點(diǎn)就是處理該ip:spi對(duì)的正確端點(diǎn)。例如,從端點(diǎn)接到子sa響應(yīng)即明確標(biāo)識(shí)該端點(diǎn)就是處理該ip:spi對(duì)的正確端點(diǎn)。不過,其他消息未必可以明確標(biāo)識(shí)處理該消息的端點(diǎn)。相反,通知性的響應(yīng)消息可指示:該端點(diǎn)不是處理該ip:spi對(duì)消息的正確端點(diǎn)。這種通知消息可供負(fù)載均衡器302用在排除法過程中,將已經(jīng)表示轉(zhuǎn)發(fā)來的spi無效的端點(diǎn)移除。
圖7描繪了一個(gè)負(fù)載均衡器的組件以及一個(gè)合作的端點(diǎn)例如vpn網(wǎng)關(guān)的組件。負(fù)載均衡器302中可包含處理單元702,用于執(zhí)行指令。所述處理單元702可由一個(gè)或多個(gè)物理中央處理單元(cpu)提供,每個(gè)具有一個(gè)或多個(gè)處理核心。所述負(fù)載均衡器302可包含存儲(chǔ)單元704,用于存儲(chǔ)數(shù)據(jù)和指令,供所述處理單元702執(zhí)行。所述存儲(chǔ)單元可包含易失性和非易失性存儲(chǔ)組件。所述存儲(chǔ)單元704可包含例如與所述處理單元相關(guān)聯(lián)的寄存器和存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器(ram)、閃存和固態(tài)驅(qū)動(dòng)器(ssd)以及硬盤驅(qū)動(dòng)器(hdd)。所述負(fù)載均衡器302也可包含一個(gè)或多個(gè)輸入/輸出(i/o)組件706。所述i/o組件可包括i/o總線和/或連接到所述處理單元的組件。連接的i/o裝置可包含例如用于通過網(wǎng)絡(luò)進(jìn)行通信的網(wǎng)絡(luò)接口、監(jiān)視器、揚(yáng)聲器、鍵盤、鼠標(biāo)、麥克風(fēng)等。所述存儲(chǔ)單元704包含數(shù)據(jù)和指令,用以提供能夠?qū)碜酝粋€(gè)發(fā)起方的多個(gè)ipsec隧道進(jìn)行負(fù)載均衡的負(fù)載均衡器。
當(dāng)被所述處理單元702執(zhí)行時(shí),所述負(fù)載均衡功能708配置服務(wù)器來接收發(fā)自發(fā)起方裝置的ipsec包(710)。所述負(fù)載均衡器處所接收到的每個(gè)ipsec包都包含特定的spi,并且是接收來自與源ip地址關(guān)聯(lián)的發(fā)起方。所述負(fù)載均衡器維護(hù)一個(gè)源ip:spi與ipsec端點(diǎn)之間的映射表,所述ipsec端點(diǎn)與處理具有相匹配的ip:spi對(duì)的包關(guān)聯(lián)。在用于執(zhí)行負(fù)載均衡決策的原始ike階段1消息之后,若所述負(fù)載均衡器接收到具有在所述映射表中找不到的未識(shí)別ip:spi對(duì)時(shí),則所述被接收到的包被轉(zhuǎn)發(fā)到與所述負(fù)載均衡器關(guān)聯(lián)的所有ipsec端點(diǎn)(712)。一旦所述ipsec包被轉(zhuǎn)發(fā)到所有端點(diǎn),將可從這些端點(diǎn)接收到一個(gè)或多個(gè)響應(yīng)消息(714)。這些接收到的消息可以指示發(fā)送該消息的端點(diǎn)并不處理與該spi關(guān)聯(lián)的隧道,或者可以為指示與該端點(diǎn)已建立的子sa的響應(yīng)消息?;谒鲆粋€(gè)或多個(gè)接收到的消息,所述負(fù)載均衡器確定ipsec終結(jié)點(diǎn)或端點(diǎn)(716),其將處理在所述負(fù)載均衡器處接收到的與所述被轉(zhuǎn)發(fā)包具有相同源ip:spi的包。所述負(fù)載均衡器相應(yīng)地更新映射表,這樣當(dāng)具有該ip:spi對(duì)的新包被接收到時(shí),就會(huì)被發(fā)送到對(duì)應(yīng)的終結(jié)點(diǎn),而不用要求將其首先轉(zhuǎn)發(fā)到所有端點(diǎn)。
所述端點(diǎn)裝置306可以是與所述負(fù)載均衡器302關(guān)聯(lián)的多個(gè)端點(diǎn)裝置中的一個(gè),并可包括用于執(zhí)行指令的處理單元718。所述處理單元718可由一個(gè)或多個(gè)物理中央處理單元(cpu)提供,每個(gè)具有一個(gè)或多個(gè)處理核心。所述端點(diǎn)裝置306可包含存儲(chǔ)單元720,用于存儲(chǔ)數(shù)據(jù)和指令,供所述處理單元718執(zhí)行。所述存儲(chǔ)單元720可包含易失性和非易失性存儲(chǔ)組件。所述存儲(chǔ)單元720可包含例如與所述處理單元相關(guān)聯(lián)的寄存器和存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器(ram)、閃存和固態(tài)驅(qū)動(dòng)器(ssd)以及硬盤驅(qū)動(dòng)器(hdd)。所述端點(diǎn)裝置306也可包含一個(gè)或多個(gè)輸入/輸出(i/o)組件722。所述i/o組件可包括i/o總線和/或連接到所述處理單元的組件。連接的i/o裝置可包含例如用于通過網(wǎng)絡(luò)進(jìn)行通信的網(wǎng)絡(luò)接口、監(jiān)視器、揚(yáng)聲器、鍵盤、鼠標(biāo)、麥克風(fēng)等。所述存儲(chǔ)單元720包含數(shù)據(jù)和指令,以提供用于對(duì)ipsec隧道進(jìn)行負(fù)載均衡的端點(diǎn)裝置。
通過執(zhí)行所述指令而提供的端點(diǎn)功能724包括接收包(726)。所述包從所述負(fù)載均衡器接收,并包含spi值,可用于確定該包是否與端點(diǎn)裝置306所終結(jié)的ipsec隧道關(guān)聯(lián)(728)。如果該包與端點(diǎn)裝置306所終結(jié)的ipsec隧道關(guān)聯(lián)(728處的“是”),則所述端點(diǎn)裝置正常處理該ipsec包(730)。如果該包并不與端點(diǎn)裝置306所終結(jié)的ipsec隧道關(guān)聯(lián)(728處的“否”),則端點(diǎn)裝置306將信息消息發(fā)回給所述負(fù)載均衡器302,指示所述接收到的ipsec包并非與端點(diǎn)裝置所終結(jié)的隧道關(guān)聯(lián)(732)。所述信息消息可以在已建立的sa之外發(fā)送,以允許所述負(fù)載均衡器接收該信息,并將該端點(diǎn)裝置從具有同一個(gè)spi的包將被轉(zhuǎn)發(fā)到的端點(diǎn)的列表中移除。
圖8描述了用于ipsec業(yè)務(wù)負(fù)載均衡的一種方法。所述方法800描繪了與ike階段1包關(guān)聯(lián)的處理。所述方法800從發(fā)起方接收具有第一spi的ike階段1包(802)。該方法確定所接收包的spi是否已識(shí)別(804),如果該spi確已識(shí)別(804處的“是”),即另一個(gè)具有相同spi的包被接收,并被發(fā)送到特定終結(jié)點(diǎn),關(guān)聯(lián)的端點(diǎn)被確定(806)。一旦關(guān)聯(lián)端點(diǎn)被確定,則所述接收到的包被轉(zhuǎn)發(fā)到確定的端點(diǎn)(808)并做相應(yīng)處理。如果該spi未被識(shí)別(804處的“否”),例如如果接收到的包是第一ike階段1包,且尚未分配處理該隧道的ipsec端點(diǎn),則確定處理該包的端點(diǎn)以及關(guān)聯(lián)的隧道(810)。所述負(fù)載均衡器可以用各種方式來確定端點(diǎn),例如按輪詢方式,或者基于各個(gè)端點(diǎn)當(dāng)前的處理負(fù)載。一旦端點(diǎn)被確定,則將其與來自初始消息的源ip和spi關(guān)聯(lián)記錄(812),例如記錄在映射表或類似結(jié)構(gòu)中。接收到的ike階段1包被轉(zhuǎn)發(fā)到被確定的端點(diǎn)(814),并在所述發(fā)起方與被確定的端點(diǎn)之間建立安全關(guān)聯(lián)(sa)(816)。一旦端點(diǎn)被選定,并且關(guān)聯(lián)被記錄,則后續(xù)接收到的具有相同ip:spi對(duì)的包將被轉(zhuǎn)發(fā)到同一個(gè)端點(diǎn)進(jìn)行處理。
圖9描述了用于ipsec業(yè)務(wù)負(fù)載均衡的又一種方法。所述方法900描繪了與ike階段2包關(guān)聯(lián)的處理。ike階段2包可從同一個(gè)發(fā)起方接收但可以具有不同的spi(902)。一旦接到包,就判斷其ip:spi對(duì)是否已經(jīng)與所述確定的端點(diǎn)被關(guān)聯(lián)記錄(904)。在圖9中,假定接收到的ike階段2包與在以上圖8中描述的之前接收到的ike階段1包關(guān)聯(lián),并且同樣地應(yīng)由同一個(gè)終結(jié)點(diǎn)處理;但是,第二spi并未與該端點(diǎn)關(guān)聯(lián),故而所述負(fù)載均衡器并不知道其所接收的消息應(yīng)向何處轉(zhuǎn)發(fā)。如果接收到的包的spi能夠被識(shí)別(904處的“是”),則確定與該ip:spi關(guān)聯(lián)的端點(diǎn)(906),并將該包轉(zhuǎn)發(fā)到該端點(diǎn)(908)。但是,如果該ip:spi未被識(shí)別(904處的“否”),則該ip:spi與所有ipsec端點(diǎn)被關(guān)聯(lián)記錄(910),并將該包轉(zhuǎn)發(fā)到所有端點(diǎn)(912)。接收到來自各端點(diǎn)的響應(yīng)(914),且每個(gè)接收到的響應(yīng)(916)都被處理,直至所有響應(yīng)都被處理完畢(926)。對(duì)于每個(gè)接收到的響應(yīng),確定該響應(yīng)是子sa消息還是通知消息(918)。如果該消息是指示該spi無效的通知消息(918處的“通知”),則發(fā)送該通知消息的端點(diǎn)從與該ip:spi的關(guān)聯(lián)中被移除(920),以使后續(xù)收到的具有相同ip:spi的包不會(huì)被轉(zhuǎn)發(fā)到該端點(diǎn)。如果該消息是子sa消息(918處的“子sa”),則子sa響應(yīng)被轉(zhuǎn)發(fā)到所述發(fā)起方(922),并且發(fā)送該子sa消息的端點(diǎn)與該ip:spi被關(guān)聯(lián)記錄,以使該端點(diǎn)成為唯一關(guān)聯(lián)到該ip:spi的端點(diǎn)(924)。一旦沒有更多接收到的響應(yīng)(926)需要處理,則確定是否有至少一個(gè)端點(diǎn)與該ip:spi被關(guān)聯(lián)記錄(928)。如果沒有端點(diǎn)仍被與該ip:spi關(guān)聯(lián)登記(928處的“否”),則任何一個(gè)端點(diǎn)都不能識(shí)別該spi,且最后接收到的通知消息被轉(zhuǎn)發(fā)到該發(fā)起方(930)作為錯(cuò)誤消息。轉(zhuǎn)發(fā)最后一條通知消息之后,或者如果還有端點(diǎn)仍與該ip:spi被關(guān)聯(lián)記錄(928處的“是”),則處理完畢(932)。
圖10描述了用于ipsec業(yè)務(wù)負(fù)載均衡的又一種方法。所述方法1000描繪了與ah和/或esp包關(guān)聯(lián)的處理。從發(fā)起方接收到具有spi的ah/esp包(1002)。判斷接收到的包的spi是否被識(shí)別(1004)。當(dāng)該ip:spi對(duì)關(guān)聯(lián)到具體端點(diǎn)時(shí),則spi被識(shí)別。該關(guān)聯(lián)可以各種方式記錄,包括例如使用映射表或類似結(jié)構(gòu)。如果該spi被識(shí)別(1004處的“是”),則確定與該ip:spi關(guān)聯(lián)的端點(diǎn)(1006),并將該包轉(zhuǎn)發(fā)到該被確定的端點(diǎn)1008),并且該ah/esp包處理完畢(1018)。但是,如果該spi未被識(shí)別(1004處的“否”),則所有端點(diǎn)都與該ip:spi關(guān)聯(lián)登記(1010),并將接收到的該包轉(zhuǎn)發(fā)到每個(gè)端點(diǎn)(1012)。任何接收到該ah/esp包但不具有由spi指示的sa的端點(diǎn),在sa之外發(fā)送的信息消息以響應(yīng)該包,指示該spi無效。負(fù)責(zé)該spi所指示的sa的端點(diǎn),將用ah/esp響應(yīng)來進(jìn)行響應(yīng),由于隧道加密,所述負(fù)載均衡器將不能對(duì)此進(jìn)行識(shí)別,該ah/esp響應(yīng)消息將被轉(zhuǎn)發(fā)到合適的發(fā)起方。相應(yīng)地,為了確定具有ip:spi的包應(yīng)轉(zhuǎn)發(fā)到哪個(gè)端點(diǎn),此方法使用排除法,當(dāng)接到指示該spi無效的信息消息時(shí),將關(guān)聯(lián)從記錄的關(guān)聯(lián)中移除。當(dāng)從端點(diǎn)接收到指示無效spi的信息消息時(shí)(1014),對(duì)應(yīng)的端點(diǎn)從與該ip:spi的關(guān)聯(lián)中被移除(1016),并且該ah/esp包處理完畢(1018)。
以上已描述了對(duì)ipsec業(yè)務(wù)進(jìn)行負(fù)載均衡的各個(gè)方面。如所描述,即便從單個(gè)發(fā)起方建立了的多個(gè)ipsec隧道,各隧道也可跨多個(gè)分離的ipsec端點(diǎn)進(jìn)行均衡。雖然上文結(jié)合各種具體細(xì)節(jié)描述了負(fù)載均衡,但應(yīng)當(dāng)理解的是,可以改變具體細(xì)節(jié),而仍可提供ipsec業(yè)務(wù)的負(fù)載均衡。舉例而言,上文描述了將ipsec端點(diǎn)、源ip與spi之間的關(guān)聯(lián)存儲(chǔ)在映射表中,但其他存儲(chǔ)結(jié)構(gòu)也可用于記錄該關(guān)聯(lián)。還有,關(guān)于各方法所描述的具體步驟順序可以改變。例如,雖然描述的是先記錄關(guān)聯(lián)、然后將包轉(zhuǎn)發(fā)到端點(diǎn),但也可以先轉(zhuǎn)發(fā)包、然后記錄關(guān)聯(lián),或者并行完成。雖然各個(gè)組件,如ipsec發(fā)起方、負(fù)載均衡器和ipsec端點(diǎn)被描述為分離的物理組件,但也構(gòu)思了在同一個(gè)物理計(jì)算硬件上提供所述組件中的一個(gè)或多個(gè)。舉例而言,多個(gè)發(fā)起方可以在單個(gè)計(jì)算裝置上提供。還有,例如負(fù)載均衡器可以提供在同一個(gè)物理計(jì)算裝置上,作為一個(gè)或多個(gè)ipsec端點(diǎn)。
雖然已經(jīng)描述了某些組件和步驟,但也構(gòu)思了將分別描述的組件以及步驟合并起來成為更少的組件或步驟,或者這些步驟可以順序執(zhí)行、非順序執(zhí)行或并發(fā)執(zhí)行。類似地,單個(gè)的組件或步驟也可以由多個(gè)組件或步驟來提供。考慮到當(dāng)前教示的本領(lǐng)域普通技術(shù)人員應(yīng)可理解,除了本文作為示意性示例而描述的具體實(shí)施方式之外,所述ipsec負(fù)載均衡功能可以由軟件、固件和/或硬件的各種組合來進(jìn)行提供。