亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種保持安全套接層會(huì)話持續(xù)性的方法及設(shè)備的制作方法

文檔序號(hào):7695383閱讀:195來(lái)源:國(guó)知局
專利名稱:一種保持安全套接層會(huì)話持續(xù)性的方法及設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信技術(shù)領(lǐng)域,具體涉及一種保持安全套接層會(huì)話持續(xù)性
的方法及^:備。
背景技術(shù)
安全套接層(SSL, Security Socket Layer)協(xié)議在傳輸控制協(xié)議(TCP) 層之上建立了一條力。密連接,可以保證通訊雙方傳輸數(shù)據(jù)的私密性。SSL協(xié)議 的通訊過(guò)程分為兩個(gè)階段
一、 握手階段SSL的客戶端與服務(wù)器端通過(guò)SSL握手協(xié)議協(xié)商密鑰等 會(huì)話參數(shù),建立SSL連接;
二、 數(shù)據(jù)傳輸階段SSL客戶端與服務(wù)器端使用協(xié)商出來(lái)的密鑰對(duì)通訊數(shù) 據(jù)進(jìn)行加密,并傳送給對(duì)方;對(duì)方接收后會(huì)使用協(xié)商處出來(lái)的密鑰解密,得到 通訊數(shù)據(jù)。
由于建立SSL連接的握手過(guò)程涉及較多的復(fù)雜計(jì)算,所以SSL協(xié)議提供 了一種會(huì)話恢復(fù)機(jī)制,以快速恢復(fù)會(huì)話。通常情況下,使用會(huì)話恢復(fù)的次數(shù)要 遠(yuǎn)遠(yuǎn)多于新建連接的次數(shù)。會(huì)話恢復(fù)機(jī)制的流程如下
(1)在進(jìn)行第一次通訊時(shí),客戶端與服務(wù)器端執(zhí)行完整的握手過(guò)程,協(xié) 商出會(huì)話密鑰,具體包含以下特殊的處理步驟
客戶端首先發(fā)送一個(gè)新建SSL連接請(qǐng)求報(bào)文(ClientHello報(bào)文),該報(bào)文 中的會(huì)話標(biāo)識(shí)(session—id)字段為0,表示自己沒(méi)有緩存的會(huì)話參數(shù),請(qǐng)求建 立新的會(huì)話連接;
SSL服務(wù)器會(huì)為新建立的SSL連接分配一個(gè)會(huì)話ID,并針對(duì)ClientHello 報(bào)文返回一個(gè)響應(yīng)報(bào)文(ServerHello )。該報(bào)文中有一個(gè)session—id字段,用于 記錄服務(wù)器端為本次會(huì)話所分配的會(huì)話標(biāo)識(shí)(ID)。根據(jù)SSL協(xié)議規(guī)定,會(huì)話 ID是一個(gè)32字節(jié)的隨機(jī)數(shù),其構(gòu)造完全由實(shí)現(xiàn)者自行定義。
6在客戶端與服務(wù)器端交互完ClientHello和ServerHello后,雙方就可以進(jìn) 一步協(xié)商會(huì)話參數(shù),建立SSL會(huì)話連接,這一過(guò)程較復(fù)雜、耗時(shí)較多,在此 介紹從略。
(2) 在完成一次數(shù)據(jù)傳送任務(wù)后,可以由客戶端或者服務(wù)器端發(fā)起斷開(kāi) SSL連接的操作,但通訊雙方仍可以在本地保留剛才使用過(guò)的會(huì)話參數(shù)。
(3) 當(dāng)再次發(fā)起與服務(wù)器端的連接請(qǐng)求時(shí),客戶端可以繼續(xù)使用仍在本 地保存的會(huì)話,在ClientHello報(bào)文中使用該會(huì)話的會(huì)話ID來(lái)填充session—id 字段,發(fā)起SSL連接恢復(fù)請(qǐng)求。服務(wù)器端接收到該SSL連接恢復(fù)請(qǐng)求后,在 本地的會(huì)話緩存中查找與該session—id相對(duì)應(yīng)的會(huì)話記錄如果找到了 ,服務(wù) 器根據(jù)本地保存的該session—id的會(huì)話參數(shù)進(jìn)行會(huì)話恢復(fù),通訊雙方通過(guò)一個(gè) 簡(jiǎn)單的驗(yàn)證過(guò)程,就可以恢復(fù)會(huì)話的使用了,從而避免了再次建立SSL連接 所消耗的大量時(shí)間;如果會(huì)話ID無(wú)效,表明在服務(wù)器已不存在指定的會(huì)話記 錄了,服務(wù)器就會(huì)分配一個(gè)新的會(huì)話ID,并將該會(huì)話ID放入ServerHello報(bào) 文中返回,之后,通訊雙方執(zhí)行新的完整的會(huì)話協(xié)商過(guò)程以建立SSL連接。
負(fù)載均衡(LB, Load Balance)是通過(guò)LB設(shè)備根據(jù)后臺(tái)服務(wù)器的負(fù)載情 況,將客戶端發(fā)來(lái)的請(qǐng)求均衡地分發(fā)給服務(wù)器進(jìn)行處理,從而使得整個(gè)系統(tǒng)的 計(jì)算資源得到充分的利用。SLB (Site Load Balance)是指本地設(shè)備的負(fù)載均 衡,即LB設(shè)備和服務(wù)器處在同一個(gè)局域網(wǎng)中。SLB有網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT, Network Address Translation)才莫式和直4妄^各由(DR, Direct-Routing)才莫式兩 種工作模式。
如圖l所示,NAT模式中,SLB設(shè)備對(duì)外提供一個(gè)可訪問(wèn)的IP地址IPO。 后臺(tái)服務(wù)器有各自的IP地址IP1 IP3。 SLB設(shè)備對(duì)IP |艮文的處理過(guò)程如下 (1 ) SLB設(shè)備接收來(lái)自客戶端的目的地址為IPO的IP報(bào)文。
(2) SLB設(shè)備根據(jù)負(fù)載均衡算法,確定哪臺(tái)服務(wù)器適合處理此報(bào)文,比 如是服務(wù)器1。
(3) SLB設(shè)備將來(lái)自客戶端的IP報(bào)文的目的地址改寫為IPl,并通過(guò)路 由轉(zhuǎn)發(fā)出去。
(4 )服務(wù)器1接收到目的IP為IP1的報(bào)文,對(duì)其進(jìn)行處理,生成響應(yīng)報(bào) 文,該響應(yīng)l艮文的目的IP為客戶端的IP地址,而源IP為本才幾的IP1 。(5)在服務(wù)器1上設(shè)置路由的默認(rèn)網(wǎng)關(guān)為SLB設(shè)備。這樣,服務(wù)器1根 據(jù)路由將響應(yīng)報(bào)文轉(zhuǎn)發(fā)給SLB設(shè)備。
(6 ) SLB設(shè)備對(duì)IP報(bào)文的源IP地址進(jìn)行轉(zhuǎn)換,改寫為IP0。
(7 ) SLB設(shè)備將經(jīng)過(guò)源地址轉(zhuǎn)換過(guò)的IP報(bào)文轉(zhuǎn)發(fā)給客戶端。 在上述負(fù)載均衡的實(shí)現(xiàn)過(guò)程中,SLB設(shè)備對(duì)客戶端和服務(wù)器之間的報(bào)文在 進(jìn)行地址轉(zhuǎn)換處理之后再轉(zhuǎn)發(fā),因此稱為NAT;漠式。
SLB的另一種工作模式為直接路由(DR, Direct-Routing)模式,如圖2 所示。SLB設(shè)備和后臺(tái)服務(wù)器一起構(gòu)成了一個(gè)虛擬服務(wù),對(duì)外提供可訪問(wèn)的 IP地址IP0。其中,SLB設(shè)備上配置真實(shí)的IP地址IP0,以及與IPO相對(duì)應(yīng)的 MAC地址MACO;服務(wù)器1 ~服務(wù)器3上只配置虛擬的IP服務(wù)地址IP0,即 服務(wù)器1 ~服務(wù)器3可以接收目的地址為IPO的IP報(bào)文,但并不響應(yīng)外界對(duì) IPO發(fā)出的地址解析協(xié)議(ARP, Address Resolution Protocol)請(qǐng)求。各服務(wù)器 有自己的MAC地址MAC1 ~ MAC3。如圖2所示,服務(wù)器和SLB設(shè)備都連接 在同一臺(tái)交換設(shè)備上。該交換設(shè)備是一臺(tái)三層交換設(shè)備,既可以進(jìn)行二層交換, 又可以進(jìn)行三層的路由轉(zhuǎn)發(fā)。DR模式下的負(fù)載均衡處理過(guò)程如下
(1)客戶端發(fā)送目的地址為IPO的IP報(bào)文。
(2 )交換設(shè)備收到上述IP報(bào)文后,會(huì)發(fā)出ARP請(qǐng)求,尋找IPO對(duì)應(yīng)的 MAC地址。
(3)此時(shí)在服務(wù)器網(wǎng)段內(nèi),各服務(wù)器不響應(yīng)上述ARP請(qǐng)求,只有SLB 設(shè)備會(huì)返回自己的應(yīng)答,報(bào)告IPO對(duì)應(yīng)的MAC地址為MAC0。交換設(shè)備學(xué)習(xí) 到此ARP表項(xiàng)IPO <—> MACO后,在后續(xù)的l艮文轉(zhuǎn)發(fā)過(guò)程中就可以不再重 復(fù)發(fā)送ARP請(qǐng)求了。
(4 )交換設(shè)備給IP報(bào)文加上目的MAC地址MACO后,就將報(bào)文轉(zhuǎn)發(fā)給 SLB設(shè)備。
(5 )SLB設(shè)備根據(jù)服務(wù)器的負(fù)載狀況,決定由哪臺(tái)服務(wù)器處理此IP報(bào)文, 比如是服務(wù)器1。
(6) SLB設(shè)備將IP報(bào)文的目的MAC地址改寫為服務(wù)器1的MAC地址 MAC1,然后SLB設(shè)備將報(bào)文發(fā)送給交換設(shè)備,交換設(shè)備根據(jù)目的MAC地址 將報(bào)文轉(zhuǎn)發(fā)給服務(wù)器1。(7) 服務(wù)器1接收目的IP為IPO的報(bào)文,對(duì)其進(jìn)行處理。處理完后生成 響應(yīng)報(bào)文,響應(yīng)l艮文的目的IP為客戶端的IP,源IP為虛擬服務(wù)地址IP0。
(8) 在服務(wù)器上,配置默認(rèn)網(wǎng)關(guān)為交換設(shè)備。這樣,服務(wù)器l返回的響 應(yīng)報(bào)文就發(fā)送給了交換設(shè)備,由交換設(shè)備根據(jù)路由直接轉(zhuǎn)發(fā)給了客戶端。
上述流程中,服務(wù)器1返回的響應(yīng)報(bào)文沒(méi)有經(jīng)過(guò)SLB設(shè)備,而是通過(guò)交 換設(shè)備直接路由到客戶端,因此,被稱為DR模式。 以下說(shuō)明TCP報(bào)文和SSL報(bào)文的負(fù)載均衡的特點(diǎn)
在通常的客戶端/服務(wù)器(C/S)應(yīng)用中,客戶端通過(guò)TCP連接發(fā)送請(qǐng)求, 而服務(wù)器通過(guò)同一條TCP連接來(lái)返回響應(yīng)。當(dāng)客戶端和服務(wù)器端完成一次通 訊任務(wù)后,才會(huì)斷開(kāi)TCP連接。在對(duì)TCP報(bào)文進(jìn)行均衡處理時(shí),通常要求保 持TCP連接的持續(xù)性,即將一條TCP連接分配到同一服務(wù)器上處理在TCP 連接活動(dòng)期間,要求SLB設(shè)備能將來(lái)自同一個(gè)客戶端同一條TCP連接上的所 有報(bào)文都發(fā)送給同一臺(tái)服務(wù)器進(jìn)行處理,這樣才能保證服務(wù)器處理業(yè)務(wù)的正確 性。由于一條TCP連接可以被五元組(目的IP,目的端口號(hào),源IP,源端口 號(hào),協(xié)議號(hào))唯一標(biāo)識(shí)。在TCP報(bào)文在經(jīng)由IP層轉(zhuǎn)發(fā)被分片時(shí),還可以根據(jù) IP報(bào)頭中的報(bào)文ID來(lái)判斷IP報(bào)文屬于哪條TCP連接,從而可以根據(jù)TCP連 接與服務(wù)器之間的對(duì)應(yīng)關(guān)系,將同一 TCP連接上的報(bào)文發(fā)送給同 一臺(tái)服務(wù)器。
SSL才艮文承載于TCP報(bào)文之中,TCP報(bào)文又承載于IP報(bào)文之中。SSL協(xié) 議以一個(gè)TCP服務(wù)的形式對(duì)外提供,使用固定的TCP服務(wù)端口。用戶也可以 自行配置SSL服務(wù)所使用的端口號(hào)。通過(guò)在SLB設(shè)備上配置說(shuō)明SSL服務(wù)使 用的TCP端口號(hào),從而SLB設(shè)備根據(jù)TCP報(bào)文的目的端口號(hào)就可以識(shí)別出一 個(gè)TCP/IP才艮文是否為SSL報(bào)文。在對(duì)SSL報(bào)文進(jìn)行負(fù)載均衡處理時(shí),SLB設(shè) 備需要分析SSL報(bào)文,了解會(huì)話過(guò)程,之后才能做出如何分發(fā)報(bào)文的判斷。 SSL記錄頭是明文的,接收者可以直接對(duì)其進(jìn)行分析。SSL握手協(xié)議報(bào)文一 般是明文的,因?yàn)橹吧形磪f(xié)商出通訊密鑰。在數(shù)據(jù)傳輸階段,記錄層的負(fù)載 一般是加密的,無(wú)法直接進(jìn)行分析。
在對(duì)SSL報(bào)文進(jìn)行負(fù)載均衡處理時(shí),同樣需要保持SSL報(bào)文的持續(xù)性。 對(duì)SSL會(huì)話來(lái)說(shuō),保持會(huì)話的持續(xù)性要求SLB設(shè)備將屬于同一 SSL會(huì)話的報(bào) 文轉(zhuǎn)發(fā)到同一臺(tái)服務(wù)器上。屬于同一 SSL會(huì)話的通訊過(guò)程包括新建立連接的通訊、以及通過(guò)SSL會(huì)話恢復(fù)而建立連接的通訊,這兩個(gè)通訊過(guò)程使用同一 組會(huì)話密鑰參數(shù)。在服務(wù)器群組中, 一個(gè)會(huì)話的參數(shù)只保存在其中的一臺(tái)服務(wù)
器上,所以要求SLB設(shè)備不但能將新建SSL連接持續(xù)性地分發(fā)給同 一臺(tái)服務(wù) 器,還要能將會(huì)話恢復(fù)建立的SSL連接分發(fā)給保存有原來(lái)會(huì)話參數(shù)的服務(wù)器。 否則,就會(huì)造成會(huì)話恢復(fù)失敗而重新建立連接,這將大大降低系統(tǒng)建立SSL 連接的效率。
現(xiàn)有技術(shù)中,可以采用TCP代理的方法實(shí)現(xiàn)SSL報(bào)文的負(fù)載均衡
SLB設(shè)備和服務(wù)器群組按照NAT模式組網(wǎng),SLB設(shè)備作為TCP代理。首 先客戶端通過(guò)TCP的三次握手與SLB設(shè)備建立起TCP連接1。隨后,SLB設(shè) 備接收SSL握手報(bào)文并進(jìn)行分析,對(duì)新建連接進(jìn)行負(fù)載均衡處理,確定由哪 臺(tái)服務(wù)器負(fù)責(zé)處理。隨后,SLB設(shè)備通過(guò)TCP三次握手與所確定的后臺(tái)服務(wù) 器建立起新的TCP連接2,在本地保存TCP連接1和TCP連接2之間的映射 關(guān)系,轉(zhuǎn)發(fā)這兩個(gè)TCP連接之間的報(bào)文,實(shí)現(xiàn)客戶端與服務(wù)器之間的通訊。 但是,TCP代理方式效率不高,存在以下問(wèn)題
(1 ) SLB設(shè)備成為通訊的瓶頸,負(fù)責(zé)轉(zhuǎn)發(fā)所有的通訊報(bào)文。 (2)要通過(guò)TCP連接收發(fā)應(yīng)用層的報(bào)文,需要SLB設(shè)備在接收?qǐng)?bào)文時(shí) 完成對(duì)TCP分片報(bào)文的重組;在通過(guò)IP層發(fā)送時(shí),又要對(duì)TCP報(bào)文進(jìn)行分片。
為了提高傳輸效率,SLB設(shè)備最好能對(duì)接收到的TCP報(bào)文直接轉(zhuǎn)發(fā)出去。 但是TCP連接1跟TCP連接2是不同的,兩者TCP報(bào)頭中的序列號(hào)是不一樣 的,現(xiàn)有技術(shù)又提出一種"TCP粘連"技術(shù),通過(guò)SLB設(shè)備對(duì)收到的TCP報(bào) 文轉(zhuǎn)換其中的序列號(hào),以提高轉(zhuǎn)發(fā)效率,如圖3所示,可以采用以下步驟
步驟1 ~ 3,客戶端通過(guò)TCP的三次握手與SLB設(shè)備建立起TCP連接1, 客戶端的初始序列號(hào)為X, SLB設(shè)備的初始序列號(hào)為Y;
步驟4 ~ 8, SLB設(shè)備接收ClientHello報(bào)文(新建SSL連接請(qǐng)求)后,選 擇服務(wù)器l,并通過(guò)三次握手與服務(wù)器1建立起TCP連接2。為了提高處理效 率,SLB設(shè)備向服務(wù)器1發(fā)送的TCP連接建立(SYN)使用的初始序列號(hào)與 客戶端發(fā)來(lái)的SYN報(bào)文中的一樣(X),服務(wù)器返回的初始序列號(hào)為Z。
這樣以后SLB設(shè)備只需要保存TCP連接1與連接2之間初始序列號(hào)的差 值Z-Y,在以后的收發(fā)的報(bào)文中對(duì)于來(lái)自TCP連接1的報(bào)文,將客戶端的確認(rèn)號(hào)(ACK)加上這個(gè)差值再直接轉(zhuǎn)發(fā)到TCP連接2;對(duì)于來(lái)自TCP連接 2的報(bào)文,將服務(wù)器1的序列號(hào)(SN)減去這個(gè)差值再直接轉(zhuǎn)發(fā)到TCP連接 1即可。
為了保持SSL報(bào)文的持續(xù)性,現(xiàn)有技術(shù)釆用以下方法對(duì)報(bào)文進(jìn)行分析轉(zhuǎn)
發(fā)
(1 )當(dāng)收到的ClientHello報(bào)文中的會(huì)話ID為0時(shí),SLB設(shè)備判斷出這 是一個(gè)新建SSL連接請(qǐng)求,于是根據(jù)負(fù)載均衡算法將此新建連接請(qǐng)求分配給 任何一臺(tái)合適的服務(wù)器,如服務(wù)器1去處理。
(2 ) SLB設(shè)備接收并分析服務(wù)器1返回的ServerHello報(bào)文,從中提取會(huì) 話ID,在本地保存一條映射表項(xiàng)SSL會(huì)話ID <—>服務(wù)器1
(3) 隨后SLB設(shè)備使用保持TCP連接持續(xù)性的方法(具體的可以通過(guò) 保存TCP連接與服務(wù)器之間的對(duì)應(yīng)關(guān)系,根據(jù)該對(duì)應(yīng)關(guān)系確定對(duì)應(yīng)的服務(wù) 器),,以及前述的序列號(hào)轉(zhuǎn)換方法,將客戶端的報(bào)文持續(xù)發(fā)送到服務(wù)器1。
(4) 在客戶端與服務(wù)器1完成一次會(huì)話后,SSL連接和TCP連接就斷開(kāi) 了 , TCP連接與服務(wù)器之間的對(duì)應(yīng)關(guān)系也相應(yīng)地被刪除。
(5) 當(dāng)客戶端要再次與服務(wù)器端建立SSL連接時(shí),會(huì)重新發(fā)送一個(gè) ClientHello報(bào)文,其中的會(huì)話ID為原來(lái)的會(huì)話ID,表示請(qǐng)求恢復(fù)SSL連接。
(6 ) SLB設(shè)備截獲上述ClientHello報(bào)文,獲得要恢復(fù)使用的會(huì)話ID,查 詢本地保存的SSL會(huì)話ID映射表如果找到了,就將該報(bào)文轉(zhuǎn)發(fā)給原來(lái)的服 務(wù)器進(jìn)行處理;否則重新分配一個(gè)服務(wù)器進(jìn)行處理。
從以上所述可以看出,現(xiàn)有技術(shù)方案在實(shí)現(xiàn)保持SSL會(huì)話的持續(xù)性時(shí), 需要維護(hù)會(huì)話ID和服務(wù)器之間的對(duì)應(yīng)關(guān)系,這存在以下缺點(diǎn)
1 )SLB設(shè)備需要分析ServerHello報(bào)文,從中獲取會(huì)話ID,而對(duì)ServerHello 報(bào)文的分析需要占用SLB設(shè)備的處理器資源,增加SLB設(shè)備的工作負(fù)擔(dān);
2)由于后臺(tái)服務(wù)器有多個(gè),每個(gè)服務(wù)器在工作期間通常會(huì)分配多個(gè)會(huì)話 ID,因此,會(huì)話ID的數(shù)量通常都遠(yuǎn)遠(yuǎn)大于服務(wù)器的數(shù)量。SLB設(shè)備需要在內(nèi) 存中保存每個(gè)會(huì)話ID和服務(wù)器之間的對(duì)應(yīng)關(guān)系,顯然,保存該對(duì)應(yīng)關(guān)系會(huì)占 用較多的內(nèi)存資源;并且,在每新建一個(gè)SSL會(huì)話時(shí),都要向該對(duì)應(yīng)關(guān)系中 增加新的內(nèi)容,因此,維護(hù)該對(duì)應(yīng)關(guān)系也將增加SLB設(shè)備的工作負(fù)擔(dān)。同時(shí),為了避免內(nèi)存耗盡,SLB設(shè)備不得不對(duì)該對(duì)應(yīng)關(guān)系進(jìn)行老化,對(duì)其中長(zhǎng)時(shí)間未 訪問(wèn)的會(huì)話ID進(jìn)行刪除,老化工作必然又會(huì)增加LB設(shè)備的工作負(fù)擔(dān)。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種保持SSL會(huì)話持續(xù)性的方法及設(shè) 備,減少對(duì)SLB設(shè)備內(nèi)存資源的占用,減輕SLB設(shè)備的工作負(fù)擔(dān)。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供方案如下
一種保持安全套接層SSL會(huì)話持續(xù)性的方法,包括
A,本地負(fù)載均衡SLB設(shè)備接收第一客戶端發(fā)送的攜帶有第一會(huì)話標(biāo)識(shí)的 SSL連接恢復(fù)請(qǐng)求,所述第一會(huì)話標(biāo)識(shí)中包含有第一服務(wù)器的設(shè)備標(biāo)識(shí);
B, SLB設(shè)備從所述SSL連接恢復(fù)請(qǐng)求中獲取第一服務(wù)器的設(shè)備標(biāo)識(shí),并 根據(jù)預(yù)存的服務(wù)器的設(shè)備標(biāo)識(shí)和服務(wù)器地址之間的第一對(duì)應(yīng)關(guān)系,確定第一服 務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器的地址,并將所述SSL連接恢復(fù)請(qǐng)求發(fā)送 至第一服務(wù)器;
C,第一服務(wù)器根據(jù)所述SSL連接恢復(fù)請(qǐng)求,恢復(fù)本服務(wù)器與第一客戶端 之間的SSL連接。
較佳的,上述方法中,所述第一對(duì)應(yīng)關(guān)系是根據(jù)各服務(wù)器預(yù)先配置的設(shè)備 標(biāo)識(shí)和地址,在SLB設(shè)備上手工配置并保存的;或者是SLB設(shè)備根據(jù)接收到 的各服務(wù)器的地址以及本SLB設(shè)備為各服務(wù)器所分配的設(shè)備標(biāo)識(shí),自動(dòng)建立 并保存的。
較佳的,上述方法中,所述步驟A之前還包括
SLB設(shè)備接收第一客戶端發(fā)送的新建SSL連接請(qǐng)求,根據(jù)預(yù)定的負(fù)載均 衡算法從服務(wù)器群組中選擇出第一服務(wù)器,并將所述新建SSL連接請(qǐng)求發(fā)送 至第一服務(wù)器;
第一服務(wù)器根據(jù)所述新建SSL連接請(qǐng)求,建立本服務(wù)器與第一客戶端之 間的第一 SSL連接,為第一 SSL連接分配包含有自身設(shè)備標(biāo)識(shí)的第一會(huì)話標(biāo) 識(shí),并向第"客戶端返回?cái)y帶有所述第一會(huì)話標(biāo)識(shí)的第一響應(yīng)報(bào)文。
較佳的,上述方法中,SLB設(shè)備和服務(wù)器群組中的各服務(wù)器都連接到同一 個(gè)交換設(shè)備,SLB設(shè)備和服務(wù)器群組中的各服務(wù)器之間都建立有控制通道;所述新建SSL連接請(qǐng)求是通過(guò)第 一客戶端與SLB設(shè)備之間的第一 TCP連 接發(fā)送的;在選擇出第一服務(wù)器之后,SLB設(shè)備進(jìn)一步通過(guò)所述控制通道將第 一 TCP連接的狀態(tài)信息和所述新建SSL連接請(qǐng)求發(fā)送給第一服務(wù)器;
第一服務(wù)器進(jìn)一步接收并維護(hù)第一TCP連接的狀態(tài)信息,并根據(jù)第一TCP 連接的狀態(tài)信息,設(shè)置所述第一響應(yīng)報(bào)文中的對(duì)應(yīng)信息,并將所述第一響應(yīng)報(bào) 文通過(guò)所述交換設(shè)備發(fā)送至第 一客戶端。
較佳的,上述方法中,在選擇出第一服務(wù)器之后,SLB設(shè)備進(jìn)一步保存第 一 TCP連接與第一服務(wù)器之間的第二對(duì)應(yīng)關(guān)系,并根據(jù)第二對(duì)應(yīng)關(guān)系,將后 續(xù)來(lái)自所述第一 TCP連接的所有報(bào)文都轉(zhuǎn)發(fā)至第一服務(wù)器。
6.如權(quán)利要求5所述的方法,其特征在于,
所述SSL連接恢復(fù)請(qǐng)求是通過(guò)第一客戶端與SLB設(shè)備之間的第二 TCP連 接發(fā)送的;在確定第一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器的地址之后,SLB 設(shè)備進(jìn)一步通過(guò)所述控制通道將第二 TCP連接的狀態(tài)信息和所述SSL連接恢 復(fù)請(qǐng)求發(fā)送至第一服務(wù)器;
第一服務(wù)器進(jìn)一步接收并維護(hù)第二 TCP連接的狀態(tài)信息,生成所述SSL 連接恢復(fù)請(qǐng)求的第二響應(yīng)報(bào)文,并根據(jù)第二 TCP連接的狀態(tài)信息,設(shè)置第二 響應(yīng)報(bào)文中的對(duì)應(yīng)信息,并將所述第二響應(yīng)報(bào)文通過(guò)所述交換設(shè)備發(fā)送至第一 客戶端。
較佳的,上述方法中,在確定第一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器的 地址之后,SLB設(shè)備進(jìn)一步保存第二 TCP連接與第一服務(wù)器之間的第三對(duì)應(yīng) 關(guān)系,并根據(jù)第三對(duì)應(yīng)關(guān)系,將后續(xù)來(lái)自所述第二 TCP連接的所有報(bào)文都轉(zhuǎn) 發(fā)至第一服務(wù)器。
本發(fā)明還提供了一種本地負(fù)載均衡SLB設(shè)備,包括
接收單元,用于接收第一客戶端發(fā)送的攜帶有第一會(huì)話標(biāo)識(shí)的SSL連接 恢復(fù)請(qǐng)求,所述第一會(huì)話標(biāo)識(shí)中包含有第一服務(wù)器的設(shè)備標(biāo)識(shí);
服務(wù)器選擇單元,用于從所述SSL連接恢復(fù)請(qǐng)求中獲取第一服務(wù)器的設(shè) 備標(biāo)識(shí),并根據(jù)預(yù)存的服務(wù)器的設(shè)備標(biāo)識(shí)和服務(wù)器地址之間的第一對(duì)應(yīng)關(guān)系, 確定第 一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第 一服務(wù)器的地址;
轉(zhuǎn)發(fā)單元,用于根據(jù)所述服務(wù)器選擇單元確定的第一服務(wù)器的地址,將所述SSL連接恢復(fù)請(qǐng)求發(fā)送至第一服務(wù)器。
較佳的,上述的SLB設(shè)備還包括
第 一對(duì)應(yīng)關(guān)系保存單元,用于接收并保存外部輸入的所述第 一對(duì)應(yīng)關(guān)系; 或者用于根據(jù)本SLB設(shè)備接收到的各服務(wù)器的地址以及本SLB設(shè)備為各服務(wù) 器所分配的設(shè)備標(biāo)識(shí),建立并保存所述第一對(duì)應(yīng)關(guān)系。
較佳的,上述的SLB設(shè)備中,
所述接收單元,還用于接收第一客戶端發(fā)送的新建SSL連接請(qǐng)求;
所述服務(wù)器選擇單元,還用于在接收到所述新建SSL連接請(qǐng)求后,根據(jù) 預(yù)定的負(fù)載均衡算法從服務(wù)器群組中選擇出第一服務(wù)器;
所述轉(zhuǎn)發(fā)單元,還用于將所述新建SSL連接請(qǐng)求發(fā)送至所述服務(wù)器選擇 單元選擇出的第一服務(wù)器。
較佳的,上述的SLB設(shè)備中,
所述接收單元,進(jìn)一步用于建立與第一客戶端之間的第一 TCP連接,通 過(guò)第一 TCP連接接收所述新建SSL連接請(qǐng)求;
所述轉(zhuǎn)發(fā)單元,進(jìn)一步用于通過(guò)本SLB設(shè)備和第一服務(wù)器之間的控制通 道,將所述新建SSL連接請(qǐng)求和第一 TCP連接的狀態(tài)信息發(fā)送給第一服務(wù)器; 以及在所述服務(wù)器選擇單元選擇出第一服務(wù)器之后,進(jìn)一步保存第一 TCP連 接與第一服務(wù)器之間的第二對(duì)應(yīng)關(guān)系,并根據(jù)第二對(duì)應(yīng)關(guān)系,將后續(xù)來(lái)自所述 第一 TCP連接的所有報(bào)文都轉(zhuǎn)發(fā)至第一服務(wù)器。
較佳的,上述的SLB設(shè)備中,
所述接收單元,進(jìn)一步用于建立與第一客戶端之間的第二 TCP連接,通 過(guò)第二 TCP連接接收所述SSL連接恢復(fù)請(qǐng)求;
所述轉(zhuǎn)發(fā)單元,進(jìn)一步用于通過(guò)本SLB設(shè)備和第一服務(wù)器之間的控制通 道,將所述SSL連接恢復(fù)請(qǐng)求和第二 TCP連接的狀態(tài)信息發(fā)送給第一服務(wù)器; 以及在所述服務(wù)器選擇單元確定出第 一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第 一服務(wù)器 的地址之后,進(jìn)一步保存第二 TCP連接與第一服務(wù)器之間的第三對(duì)應(yīng)關(guān)系, 并根據(jù)第三對(duì)應(yīng)關(guān)系,將后續(xù)來(lái)自所述第二 TCP連接的所有報(bào)文都轉(zhuǎn)發(fā)至第 一服務(wù)器。
本發(fā)明還提供了一種服務(wù)器,包括接收單元,用于接收SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自第一客戶端的SSL連接恢復(fù)請(qǐng)
求;
SSL處理單元,用于根據(jù)所述SSL連接恢復(fù)請(qǐng)求,恢復(fù)本服務(wù)器與第一 客戶端之間的SSL連接。
較佳的,上述服務(wù)器中,所述接收單元,還用于接收SLB設(shè)備轉(zhuǎn)發(fā)的來(lái) 自第一客戶端的新建SSL連接請(qǐng)求;
所述SSL處理單元,還用于根據(jù)所述新建SSL連接請(qǐng)求,建立本服務(wù)器 與第 一客戶端之間的第一 SSL連接,為第一 SSL連接分配包含有自身設(shè)備標(biāo) 識(shí)的第一會(huì)話標(biāo)識(shí),并生成攜帶有所述第一會(huì)話標(biāo)識(shí)的第一響應(yīng)報(bào)文;
所述服務(wù)器還包括
發(fā)送單元,用于將所述第一響應(yīng)報(bào)文發(fā)送給第一客戶端。 較佳的,上述服務(wù)器中,所述接收單元,進(jìn)一步用于通過(guò)本服務(wù)器與SLB 設(shè)備之間的控制通道,接收所述新建SSL連接請(qǐng)求和第一 TCP連接的狀態(tài)信 息,所述第一 TCP連接是第一客戶端與SLB設(shè)備之間發(fā)送所述新建SSL連接 請(qǐng)求的TCP連接;
所述發(fā)送單元,進(jìn)一步用于維護(hù)所述第一 TCP連接的狀態(tài)信息,并根據(jù) 第一 TCP連接的狀態(tài)信息,設(shè)置所述第一響應(yīng)報(bào)文中的對(duì)應(yīng)信息;
所述SSL處理單元,還用于處理SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自所述第一 TCP連接 的報(bào)文。
較佳的,上述服務(wù)器中,所述接收單元,進(jìn)一步用于通過(guò)本服務(wù)器與SLB 設(shè)備之間的控制通道,接收所述SSL連接恢復(fù)請(qǐng)求和第二 TCP連接的狀態(tài)信 息,所述第二TCP連接是第一客戶端與SLB設(shè)備之間發(fā)送所述SSL連接恢復(fù) 請(qǐng)求的TCP連接;
所述SSL處理單元,還用于生成所述SSL連接恢復(fù)請(qǐng)求的第二響應(yīng)報(bào)文, 以及用于處理SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自所述第二 TCP連接的報(bào)文;
所述發(fā)送單元,進(jìn)一步用于維護(hù)所述第二 TCP連接的狀態(tài)信息,并根據(jù) 第二 TCP連接的狀態(tài)信息,設(shè)置所述第二響應(yīng)報(bào)文中的對(duì)應(yīng)信息。
從以上所述可以看出,本發(fā)明提供的保持SSL會(huì)話持續(xù)性的方法及設(shè)備, 具有以下有益效果1 ) SLB設(shè)備不需要分析ServerHello報(bào)文,從而可以減輕SLB設(shè)備的工 作負(fù)擔(dān)。
2 ) SLB設(shè)備也無(wú)需保持SSL會(huì)話的會(huì)話ID和服務(wù)器之間的對(duì)應(yīng)關(guān)系, 而只需保存較為簡(jiǎn)單的設(shè)備ID與服務(wù)器之間的對(duì)應(yīng)關(guān)系。由于負(fù)載均衡系統(tǒng) 中的服務(wù)器的數(shù)量穩(wěn)定且有限,因此,保存設(shè)備ID與服務(wù)器之間的對(duì)應(yīng)關(guān)系 通常只需要較小的內(nèi)存空間。本發(fā)明所保存的對(duì)應(yīng)關(guān)系不需要老化操作,并且 由于該對(duì)應(yīng)關(guān)系具有很好的穩(wěn)定性,在服務(wù)器群組不發(fā)生變化的情況下,無(wú)需 維護(hù)操作。因此,本發(fā)明可以節(jié)約SLB設(shè)備的內(nèi)存資源,減輕SLB設(shè)備的工 作負(fù)擔(dān)。
3)最后,由于本發(fā)明中SLB設(shè)備無(wú)需截獲并分析ServerHello報(bào)文,因 此可以在采用DR模式的SSL報(bào)文負(fù)載均衡的情況下保持SSL會(huì)話的持續(xù)性, 而DR模式的負(fù)載均衡通常能夠達(dá)到較高的報(bào)文轉(zhuǎn)發(fā)性能,因此,本發(fā)明可以 在保持SSL會(huì)話持續(xù)性的同時(shí)達(dá)到較高的報(bào)文轉(zhuǎn)發(fā)性能。


圖1為現(xiàn)有技術(shù)的NAT模式的負(fù)載均衡系統(tǒng)的示意圖2為現(xiàn)有技術(shù)的DR模式的負(fù)載均衡系統(tǒng)的示意圖3為現(xiàn)有技術(shù)的SLB設(shè)備對(duì)TCP報(bào)文序列號(hào)的轉(zhuǎn)換示意圖4為TCP遷移技術(shù)的應(yīng)用環(huán)境示意圖5為TCP遷移技術(shù)對(duì)應(yīng)用層報(bào)文的處理示意圖6為本發(fā)明實(shí)施例所述保持SSL會(huì)話持續(xù)性的方法流程圖7為本發(fā)明實(shí)施例所述SLB設(shè)備的結(jié)構(gòu)示意圖8為本發(fā)明實(shí)施例所述服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明的主要思想是通過(guò)在SSL會(huì)話的會(huì)話ID中攜帶服務(wù)器設(shè)備ID 的信息,在SLB設(shè)備上配置服務(wù)器的設(shè)備ID和服務(wù)器地址之間的對(duì)應(yīng)關(guān)系, 從而在后續(xù)的SSL會(huì)話恢復(fù)時(shí)SLB設(shè)備根據(jù)會(huì)話ID中的設(shè)備ID就可以選擇 對(duì)應(yīng)的服務(wù)器進(jìn)行SSL會(huì)話恢復(fù)。雖然服務(wù)器群組可能分配很多個(gè)會(huì)話ID,但服務(wù)器群組中所包括的服務(wù)器的數(shù)目是固定的且有限的,因此,相對(duì)于現(xiàn)有 技術(shù),保存服務(wù)器的設(shè)備ID和服務(wù)器地址之間的對(duì)應(yīng)關(guān)系只需要很小的內(nèi)存
資源且無(wú)需老化等維護(hù)操作,從而可以節(jié)約內(nèi)存資源和減輕SLB設(shè)備工作負(fù)
擔(dān)。以下通過(guò)附圖結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
根據(jù)背景技術(shù)中的分析,現(xiàn)有技術(shù)在實(shí)現(xiàn)保持SSL會(huì)話的持續(xù)性時(shí),需 要通過(guò)SLB設(shè)備分析ServerHello報(bào)文,提取其中的會(huì)話ID。由于DR模式的 SSL報(bào)文的負(fù)載均衡中,服務(wù)器返回的ServerHello報(bào)文被發(fā)送到默認(rèn)網(wǎng)關(guān)交 換設(shè)備上,由交換設(shè)備直接路由到客戶端,因此,SLB設(shè)備不能截獲ServerHello 報(bào)文,從而現(xiàn)有技術(shù)無(wú)法在DR模式下保持SSL會(huì)話的持續(xù)性。
在NAT模式中,來(lái)自客戶端和服務(wù)器的報(bào)文都經(jīng)由SLB設(shè)備轉(zhuǎn)發(fā),SLB 設(shè)備成為報(bào)文轉(zhuǎn)發(fā)的瓶頸。而在DR模式中,服務(wù)器返回的報(bào)文不通過(guò)SLB 設(shè)備,而是通過(guò)交換設(shè)備直接傳送給了客戶端。在一般情況下,進(jìn)行二、三層 報(bào)文轉(zhuǎn)發(fā)的交換設(shè)備可以實(shí)現(xiàn)較高的轉(zhuǎn)發(fā)性能。所以相對(duì)而言,DR模式的報(bào) 文轉(zhuǎn)發(fā)性能較高。本發(fā)明無(wú)需分析ServerHello報(bào)文,可以在DR模式下保持 SSL會(huì)話的持續(xù)性,同時(shí)達(dá)到較好的報(bào)文轉(zhuǎn)發(fā)性能。為了更好的理解本實(shí)施例, 這里首先對(duì)TCP遷移技術(shù)進(jìn)行簡(jiǎn)單介紹。
TCP遷移技術(shù)的系統(tǒng)的組網(wǎng)如圖4所示,TCP遷移技術(shù)包括
1、 準(zhǔn)備階段
如圖4所示,SLB設(shè)備與服務(wù)器群組按照DR模式組網(wǎng)。整個(gè)群組對(duì)外公 開(kāi)的服務(wù)地址為IP0。在LB上配置真實(shí)的IP地址IPO和IP_0;各服務(wù)器除了 配置一個(gè)虛擬服務(wù)地址IPO以外,還配置一個(gè)真實(shí)的IP地址,如IP1 IP3, 用于內(nèi)部通訊。SLB設(shè)備與群組內(nèi)各服務(wù)器之間建立起一條控制通道(如圖4 中的虛線雙向箭頭所示),比如一條一直不斷開(kāi)的TCP常連接,用于SLB設(shè) 備與各服務(wù)器之間傳遞控制信息。
2、 對(duì)應(yīng)用層^^艮文的負(fù)載均衡處理 如圖5所示,通訊過(guò)程如下
步驟1 ~3,通過(guò)三次握手,客戶端與SLB設(shè)備之間建立起了 TCP連接。 步驟4,客戶端向服務(wù)器端發(fā)送應(yīng)用層服務(wù)請(qǐng)求報(bào)文;SLB設(shè)備分析應(yīng)用 層服務(wù)請(qǐng)求報(bào)文,根據(jù)負(fù)載情況,確定一個(gè)合適的服務(wù)器來(lái)處理此請(qǐng)求,比如是服務(wù)器1。
步驟5,通過(guò)控制通道,SLB設(shè)備將與客戶端建立的TCP連接的狀態(tài)信 息同步給月良務(wù)器l。同步的信息包括TCP連接的源IP、源端口號(hào)、目的IP、 目的端口號(hào)、收發(fā)雙方當(dāng)前的TCP序列號(hào),以及應(yīng)用層請(qǐng)求報(bào)文。服務(wù)器1 建立新的TCP控制塊,按照SLB設(shè)備同步過(guò)來(lái)的狀態(tài)信息進(jìn)行設(shè)置。并且由 服務(wù)器上的應(yīng)用層模塊處理應(yīng)用層請(qǐng)求報(bào)文。處理完應(yīng)用層請(qǐng)求報(bào)文后,服務(wù) 器向客戶端返回應(yīng)答報(bào)文。由于采用DR模式,此報(bào)文將通過(guò)交換設(shè)備直接轉(zhuǎn) 發(fā)給客戶端,不經(jīng)過(guò)SLB設(shè)備。
后續(xù)由客戶端發(fā)送來(lái)的應(yīng)用層報(bào)文,由于目的IP為IPO,故仍會(huì)到達(dá)SLB 設(shè)備。SLB設(shè)備采用保持TCP連接持續(xù)性的方法,將后續(xù)報(bào)文轉(zhuǎn)發(fā)給了服務(wù) 器1。而服務(wù)器1的后續(xù)報(bào)文仍然通過(guò)交換設(shè)備轉(zhuǎn)發(fā)給了客戶端。
上述這種通過(guò)同步TCP連接的狀態(tài),實(shí)現(xiàn)TCP連接被轉(zhuǎn)移到另 一臺(tái)設(shè)備 上去處理的方法,被稱為"TCP遷移"。
本實(shí)施例以基于DR模式的TCP遷移技術(shù)為例進(jìn)行說(shuō)明。根據(jù)SSL協(xié)議, 會(huì)話ID是一個(gè)32字節(jié)的隨機(jī)數(shù),ID值的構(gòu)造可以由實(shí)現(xiàn)者自行定義。因此, 本實(shí)施例中在會(huì)話ID中攜帶服務(wù)器的設(shè)備ID,該設(shè)備ID是服務(wù)器群組中唯 一標(biāo)識(shí)該服務(wù)器的標(biāo)識(shí)。例如,在會(huì)話ID的32個(gè)字節(jié)中選擇出特定字節(jié)部分 (如第1個(gè)字節(jié))用于保存設(shè)備ID,服務(wù)器在為SSL會(huì)話分配會(huì)話ID時(shí),該 特定字節(jié)部分的內(nèi)容為服務(wù)器自身的設(shè)備ID,其它字節(jié)內(nèi)容可以由服務(wù)器自 行分配。
如圖6所示,本實(shí)施例所述保持SSL會(huì)話持續(xù)性的方法包括以下步驟 步驟601,通過(guò)TCP三次握手,客戶端與SLB設(shè)備之間建立起了第一 TCP 連接。
步驟602,客戶端通過(guò)第一 TCP連接發(fā)送新建SSL連接請(qǐng)求(ClientHello 報(bào)文),該報(bào)文中的會(huì)話ID為0。
步驟603, SLB設(shè)備分析ClientHello報(bào)文,根據(jù)會(huì)話ID為0,判斷出這 是一個(gè)新建SSL連接請(qǐng)求。SLB設(shè)備根據(jù)預(yù)定的負(fù)載均衡算法,選擇出一個(gè) 合適的服務(wù)器來(lái)處理此請(qǐng)求,比如是服務(wù)器l,同時(shí),SLB設(shè)備在本地保存第 一 TCP連接和服務(wù)器1之間的對(duì)應(yīng)關(guān)系。本步驟中,可以利用現(xiàn)有技術(shù)中已有的負(fù)載均衡算法,選擇服務(wù)器處理新 建SSL連接請(qǐng)求。
步驟604,通過(guò)控制通道,SLB設(shè)備將ClientHello報(bào)文和第一TCP連接 的狀態(tài)信息同步給服務(wù)器1。所述狀態(tài)信息包括第一TCP連接的源IP、源 端口號(hào)、目的IP、目的端口號(hào)、收發(fā)雙方當(dāng)前的TCP序列號(hào)。這里,第一TCP 連接的源IP是SLB設(shè)備的IP地址,源端口號(hào)是SLB設(shè)備對(duì)應(yīng)于該第一 TCP 連接的端口號(hào),目的IP是客戶端的IP地址,目的端口號(hào)是客戶端對(duì)應(yīng)于該第 一TCP連接的目的端口。
步驟605,服務(wù)器1建立新的TCP控制塊,按照SLB設(shè)備同步過(guò)來(lái)的第 一 TCP連接的狀態(tài)信息設(shè)置該TCP控制塊,通過(guò)TCP控制塊維護(hù)第一 TCP 連接的狀態(tài)信息,從而將第一 TCP連接的端點(diǎn)從SLB設(shè)備遷移到服務(wù)器1, 即服務(wù)器替代SLB設(shè)備作為第一 TCP連接中對(duì)應(yīng)于客戶端的端點(diǎn),對(duì)第一 TCP連接上的來(lái)自客戶端的報(bào)文進(jìn)行處理并返回響應(yīng)報(bào)文。對(duì)于其中的 ClientHello報(bào)文,由服務(wù)器1上的SSL模塊來(lái)處理。
步驟606,服務(wù)器1上的SSL模塊處理完ClientHello報(bào)文后,為新建立 的SSL連接分配一個(gè)包含服務(wù)器1自身設(shè)備ID的會(huì)話ID,并生成ServerHello 報(bào)文,該報(bào)文中攜帶有所分配的會(huì)話ID;并根據(jù)TCP控制塊中的第一TCP連 接的狀態(tài)信息設(shè)置ServerHello報(bào)文的TCP頭和IP頭中的對(duì)應(yīng)信息具體包括 設(shè)置TCP序列號(hào)、源/目的IP地址、源/目的端口號(hào),其中,ServerHello報(bào)文 的目的IP是客戶端的IP地址,目的端口號(hào)是客戶端對(duì)應(yīng)于第一 TCP連接的 端口號(hào),源IP是SLB設(shè)備的IP地址(即整個(gè)系統(tǒng)的虛擬服務(wù)IP地址,對(duì)應(yīng) 于圖4中的IP0),源端口號(hào)是SLB設(shè)備對(duì)應(yīng)于第一TCP連接的端口號(hào),TCP 序列號(hào)為收發(fā)雙方當(dāng)前的序列號(hào);由于采用DR模式,該ServerHello報(bào)文被 發(fā)送到服務(wù)器1的默認(rèn)網(wǎng)關(guān)(交換設(shè)備),再由交換設(shè)備根據(jù)路由將該報(bào)文直 接轉(zhuǎn)發(fā)給客戶端,不經(jīng)過(guò)SLB設(shè)備。
在所述新建SSL連接請(qǐng)求之后,后續(xù)由客戶端發(fā)送來(lái)的SSL協(xié)議報(bào)文, 由于目的IP地址為SLB設(shè)備的IP地址,故仍會(huì)到達(dá)SLB設(shè)備。SLB設(shè)備采 用保持TCP連接持續(xù)性的方法,對(duì)于后續(xù)來(lái)自第一 TCP連接上接收到的所有 報(bào)文,轉(zhuǎn)發(fā)到第一 TCP連接對(duì)應(yīng)的服務(wù)器1,具體的可以是將該報(bào)文的目的MAC地址改寫為服務(wù)器1的MAC地址,然后將該報(bào)文發(fā)送給交換設(shè)備,交 換設(shè)備根據(jù)目的MAC地址將報(bào)文轉(zhuǎn)發(fā)給服務(wù)器1。而服務(wù)器1的后續(xù)的SSL 協(xié)議報(bào)文則仍然通過(guò)交換設(shè)備直接路由至客戶端。在客戶端與服務(wù)器端交互完 ClientHello和ServerHello后,雙方就可以進(jìn)一步協(xié)商會(huì)話參數(shù),建立SSL會(huì) 話連接。
在客戶端與服務(wù)器端完成一次SSL會(huì)話后,SSL連接和TCP連接就斷開(kāi) 了 , SLB設(shè)備同時(shí)會(huì)刪除先前保存的第一 TCP連接與服務(wù)器1之間的對(duì)應(yīng)關(guān) 系。
步驟607,當(dāng)客戶端想要再次與服務(wù)器端建立SSL連接時(shí),需要再通過(guò) TCP的三次握手與SLB設(shè)備建立起第二 TCP連接,并通過(guò)該第二 TCP連接重 新發(fā)送一個(gè)SSL連接恢復(fù)請(qǐng)求(ClientHello報(bào)文),其中的會(huì)話ID為先前分 配的會(huì)話ID。
步驟608, SLB設(shè)備在本地保存有服務(wù)器設(shè)備ID和服務(wù)器地址之間的對(duì) 應(yīng)關(guān)系表,所述服務(wù)器地址是服務(wù)器的MAC地址;SLB設(shè)備接收到上述SSL 連接恢復(fù)請(qǐng)求后,獲得要恢復(fù)使用的SSL連接的會(huì)話ID,根據(jù)該會(huì)話ID中包 含的設(shè)備ID,查詢本地保存的對(duì)應(yīng)關(guān)系表如果找到了與該設(shè)備ID對(duì)應(yīng)的服 務(wù)器地址,如服務(wù)器1的MAC地址,則通過(guò)控制通道,SLB設(shè)備將ClientHello 報(bào)文和第二TCP連接的狀態(tài)信息同步給服務(wù)器1,該狀態(tài)信息包括第二TCP 連接的源IP、源端口號(hào)、目的IP、目的端口號(hào)、收發(fā)雙方當(dāng)前的TCP序列號(hào), 并且在本地保存第二 TCP連接和服務(wù)器1之間的對(duì)應(yīng)關(guān)系,然后進(jìn)入步驟609; 如果沒(méi)找到對(duì)應(yīng)的服務(wù)器,則重新分配一個(gè)服務(wù)器進(jìn)行處理,接下來(lái)的流程同 上述步驟603 ~步驟606。
這里,SLB設(shè)備上保存的服務(wù)器設(shè)備ID和服務(wù)器地址之間的所述對(duì)應(yīng) 關(guān)系,可以按照以下方式建立
(1 )如果SLB設(shè)備與服務(wù)器之間彼此獨(dú)立,可以預(yù)先在每個(gè)服務(wù)器處分 別配置該服務(wù)器地址和設(shè)備ID,然后在SLB設(shè)備上手工配置并保存系統(tǒng)中所 有的服務(wù)器設(shè)備ID與服務(wù)器地址之間的對(duì)應(yīng)關(guān)系;
(2 )如果SLB設(shè)備與服務(wù)器之間構(gòu)成集群,則可以通過(guò)私有的集群協(xié)議, 服務(wù)器在加入集群時(shí),向SLB設(shè)備報(bào)告自己的地址;SLB設(shè)備接收各服務(wù)器的地址,為各服務(wù)器分配設(shè)備ID,并同時(shí)保存該服務(wù)器設(shè)備ID與服務(wù)器地址 之間的對(duì)應(yīng)關(guān)系。
步驟609,服務(wù)器1建立新的TCP控制塊,按照SLB設(shè)備同步過(guò)來(lái)的狀 態(tài)信息進(jìn)行設(shè)置,并由服務(wù)器上的SSL模塊來(lái)處理SSL連接恢復(fù)請(qǐng)求,在這 里應(yīng)該進(jìn)行會(huì)話恢復(fù)的處理在本地會(huì)話緩存中查找與其中會(huì)話ID相對(duì)應(yīng)的 會(huì)話參數(shù),并根據(jù)找到的會(huì)話參數(shù)進(jìn)行會(huì)話恢復(fù),恢復(fù)SSL會(huì)話。
在所述SSL連接恢復(fù)請(qǐng)求之后,SLB設(shè)備根據(jù)本地保存第二 TCP連接和 服務(wù)器l之間的對(duì)應(yīng)關(guān)系,將后續(xù)來(lái)自所述第二TCP連接的所有報(bào)文都轉(zhuǎn)發(fā) 至服務(wù)器1。
本實(shí)施例在DR模式下保持了 SSL報(bào)文的持續(xù)性。與現(xiàn)有技術(shù)相比,本 實(shí)施例不需要分析ServerHello報(bào)文,從而可以減輕SLB設(shè)備的工作負(fù)擔(dān);本 實(shí)施例無(wú)需保持SSL會(huì)話的會(huì)話ID和服務(wù)器之間的對(duì)應(yīng)關(guān)系,而只需保存較 為簡(jiǎn)單的設(shè)備ID與服務(wù)器之間的對(duì)應(yīng)關(guān)系。由于負(fù)載均衡系統(tǒng)中的服務(wù)器的 數(shù)量穩(wěn)定且有限,因此,保存設(shè)備ID與服務(wù)器之間的對(duì)應(yīng)關(guān)系通常只需要較 小的內(nèi)存空間。該對(duì)應(yīng)關(guān)系不需要老化操作,并且,該對(duì)應(yīng)關(guān)系具有很好的穩(wěn) 定性,在服務(wù)器群組不發(fā)生變化的情況下,無(wú)需變動(dòng)。最后,由于在DR模式 中,服務(wù)器返回的報(bào)文不通過(guò)SLB設(shè)備,而是通過(guò)交換設(shè)備直接傳送給了客 戶端。而通常進(jìn)行二、三層報(bào)文轉(zhuǎn)發(fā)的交換設(shè)備可以實(shí)現(xiàn)較高的轉(zhuǎn)發(fā)性能。本 實(shí)施例可以獲得較高的報(bào)文轉(zhuǎn)發(fā)性能。
基于上述保持SSL會(huì)話持續(xù)性的方法,本實(shí)施例還相應(yīng)提供了一種本地 負(fù)載均衡SLB設(shè)備和服務(wù)器。
本實(shí)施例所述SLB設(shè)備,包括
接收單元,用于"l妄收第一客戶端發(fā)送的攜帶有第一會(huì)話標(biāo)識(shí)的SSL連接 恢復(fù)請(qǐng)求,所述第一會(huì)話標(biāo)識(shí)中包含有第一服務(wù)器的設(shè)備標(biāo)識(shí);
服務(wù)器選擇單元,用于從所述SSL連接恢復(fù)請(qǐng)求中獲取第一服務(wù)器的設(shè) 備標(biāo)識(shí),并根據(jù)預(yù)存的服務(wù)器的設(shè)備標(biāo)識(shí)和服務(wù)器地址之間的第一對(duì)應(yīng)關(guān)系, 確定第 一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第 一服務(wù)器的地址;
轉(zhuǎn)發(fā)單元,用于根據(jù)所述服務(wù)器選擇單元確定的第一服務(wù)器的地址,將所 述SSL連接恢復(fù)請(qǐng)求發(fā)送至第一服務(wù)器。這里,SLB設(shè)備還可以包括有第一對(duì)應(yīng)關(guān)系保存單元,用于接收并保存外 部輸入的所述第一對(duì)應(yīng)關(guān)系;或者用于根據(jù)本SLB設(shè)備接收到的各服務(wù)器的 地址以及本SLB設(shè)備為各服務(wù)器所分配的設(shè)備標(biāo)識(shí),建立并保存所述第一對(duì) 應(yīng)關(guān)系。
這里,SLB設(shè)備也可以接收新建SSL連接請(qǐng)求,并為客戶端分配合適的 服務(wù)器,此時(shí),所述接收單元,還用于接收第一客戶端發(fā)送的新建SSL連接 請(qǐng)求;所述服務(wù)器選擇單元,還用于在接收到所述新建SSL連接請(qǐng)求后,根 據(jù)預(yù)定的負(fù)載均衡算法從服務(wù)器群組中選擇出第一服務(wù)器;所述轉(zhuǎn)發(fā)單元,還 用于將所述新建SSL連接請(qǐng)求發(fā)送至所述服務(wù)器選擇單元選擇出的第一服務(wù) 器。
這里,所述接收單元,還可以進(jìn)一步用于建立與第一客戶端之間的第一 TCP連接,通過(guò)第一TCP連接接收所述新建SSL連接請(qǐng)求;所述轉(zhuǎn)發(fā)單元, 進(jìn)一步用于通過(guò)本SLB設(shè)備和第一服務(wù)器之間的控制通道,將所述新建SSL 連接請(qǐng)求和第一 TCP連接的狀態(tài)信息發(fā)送給第一服務(wù)器;以及在所述服務(wù)器 選擇單元選擇出第一服務(wù)器之后,進(jìn)一步保存第一 TCP連接與第一服務(wù)器之 間的第二對(duì)應(yīng)關(guān)系,并根據(jù)第二對(duì)應(yīng)關(guān)系,將后續(xù)來(lái)自所述第一 TCP連接的 所有報(bào)文都轉(zhuǎn)發(fā)至第一服務(wù)器。這里,所述后續(xù)是指在接收到所述新建SSL 連接請(qǐng)求之后。
這里,所述接收單元,還可以進(jìn)一步用于建立與第一客戶端之間的第二 TCP連接,通過(guò)第二TCP連接接收所述SSL連接恢復(fù)請(qǐng)求;所述轉(zhuǎn)發(fā)單元, 還可以進(jìn)一步用于通過(guò)本SLB設(shè)備和第 一服務(wù)器之間的控制通道,將所述SSL 連接恢復(fù)請(qǐng)求和第二 TCP連接的狀態(tài)信息發(fā)送給第一服務(wù)器;以及在所述服 務(wù)器選擇單元確定出第 一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第 一服務(wù)器的地址之后,進(jìn) 一步保存第二 TCP連接與第一服務(wù)器之間的第三對(duì)應(yīng)關(guān)系,并根據(jù)第三對(duì)應(yīng) 關(guān)系,將后續(xù)來(lái)自所述第二TCP連接的所有報(bào)文都轉(zhuǎn)發(fā)至第一服務(wù)器,這里, 所述后續(xù)是指在接收到所述SSL連接恢復(fù)請(qǐng)求之后。
本實(shí)施例所述的服務(wù)器,包括
接收單元,用于接收SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自第一客戶端的SSL連接恢復(fù)請(qǐng)
求;SSL處理單元,用于根據(jù)所述SSL連接恢復(fù)請(qǐng)求,恢復(fù)本服務(wù)器與第一 客戶端之間的SSL連接。
這里,服務(wù)器還可以接收新建SSL連接請(qǐng)求,并為新建的SSL會(huì)話分配 會(huì)話ID,此時(shí),所述接收單元,還用于接收SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自第一客戶端 的新建SSL連接請(qǐng)求;所述SSL處理單元,還用于根據(jù)所述新建SSL連接請(qǐng) 求,建立本服務(wù)器與第一客戶端之間的第一SSL連接,為第一SSL連接分配 包含有自身設(shè)備標(biāo)識(shí)的第一會(huì)話標(biāo)識(shí),并生成攜帶有所述第一會(huì)話標(biāo)識(shí)的第一 響應(yīng)報(bào)文;所述服務(wù)器還包括
發(fā)送單元,用于將所述第一響應(yīng)報(bào)文發(fā)送給第一客戶端。
這里,所述接收單元,還可以進(jìn)一步用于通過(guò)本服務(wù)器與SLB設(shè)備之間 的控制通道,接收所述新建SSL連接請(qǐng)求和第一TCP連接的狀態(tài)信息,所述 第一 TCP連接是第一客戶端與SLB設(shè)備之間發(fā)送所述新建SSL連接請(qǐng)求的 TCP連接;所述發(fā)送單元,進(jìn)一步用于維護(hù)所述第一TCP連接的狀態(tài)信息, 并根據(jù)第一 TCP連接的狀態(tài)信息,設(shè)置所述第一響應(yīng)報(bào)文中的對(duì)應(yīng)信息;所 述SSL處理單元,還用于處理SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自所述第一 TCP連接的報(bào)文。
這里,所述接收單元,還可以進(jìn)一步用于通過(guò)本服務(wù)器與SLB設(shè)備之間 的控制通道,接收所述SSL連接恢復(fù)請(qǐng)求和第二TCP連接的狀態(tài)信息,所述 第二 TCP連接是第一客戶端與SLB設(shè)備之間發(fā)送所述SSL連接恢復(fù)請(qǐng)求的 TCP連接;所述SSL處理單元,還用于生成所述SSL連接恢復(fù)請(qǐng)求的第二響 應(yīng)報(bào)文,以及用于處理SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自所述第二TCP連接的報(bào)文;所述 發(fā)送單元,進(jìn)一步用于維護(hù)所述第二TCP連接的狀態(tài)信息,并才艮據(jù)第二TCP 連接的狀態(tài)信息,設(shè)置所述第二響應(yīng)報(bào)文中的對(duì)應(yīng)信息。
從以上所述可以看出,通過(guò)在SLB設(shè)備處保存服務(wù)器設(shè)備ID與服務(wù)器地 址之間的對(duì)應(yīng)關(guān)系,根據(jù)SSL連接恢復(fù)請(qǐng)求中的設(shè)備ID來(lái)選擇對(duì)應(yīng)的服務(wù)器 來(lái)處理SSL報(bào)文,從而保持了 SSL會(huì)話的持續(xù)性。顯然,在SLB設(shè)備與服務(wù) 器群組按照NAT模式組網(wǎng)的情況下,本發(fā)明也完全可以適用。
本發(fā)明所述保持SSL會(huì)話持續(xù)性的方法及設(shè)備,并不僅僅限于說(shuō)明書和 實(shí)施方式中所列運(yùn)用,它完全可以被適用于各種適合本發(fā)明之領(lǐng)域,對(duì)于熟悉 本領(lǐng)域的人員而言可容易地實(shí)現(xiàn)另外的優(yōu)點(diǎn)和進(jìn)行修改,因此在不背離權(quán)利要求及等同范圍所限定的一4殳;f既念的精神和范圍的情況下,本發(fā)明并不限于特定 的細(xì)節(jié)、代表性的設(shè)備和這里示出與描述的圖示示例。
權(quán)利要求
1.一種保持安全套接層SSL會(huì)話持續(xù)性的方法,其特征在于,包括A,本地負(fù)載均衡SLB設(shè)備接收第一客戶端發(fā)送的攜帶有第一會(huì)話標(biāo)識(shí)的SSL連接恢復(fù)請(qǐng)求,所述第一會(huì)話標(biāo)識(shí)中包含有第一服務(wù)器的設(shè)備標(biāo)識(shí);B,SLB設(shè)備從所述SSL連接恢復(fù)請(qǐng)求中獲取第一服務(wù)器的設(shè)備標(biāo)識(shí),并根據(jù)預(yù)存的服務(wù)器的設(shè)備標(biāo)識(shí)和服務(wù)器地址之間的第一對(duì)應(yīng)關(guān)系,確定第一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器的地址,并將所述SSL連接恢復(fù)請(qǐng)求發(fā)送至第一服務(wù)器;C,第一服務(wù)器根據(jù)所述SSL連接恢復(fù)請(qǐng)求,恢復(fù)本服務(wù)器與第一客戶端之間的SSL連接。
2. 如權(quán)利要求l所述的方法,其特征在于,所述第一對(duì)應(yīng)關(guān)系是根據(jù)各服務(wù)器預(yù)先配置的設(shè)備標(biāo)識(shí)和地址,在SLB 設(shè)備上手工配置并保存的;或者是SLB設(shè)備根據(jù)接收到的各服務(wù)器的地址以 及本SLB設(shè)備為各服務(wù)器所分配的設(shè)備標(biāo)識(shí),自動(dòng)建立并保存的。
3. 如權(quán)利要求l所述的方法,其特征在于,所述步驟A之前還包括 SLB設(shè)備接收第一客戶端發(fā)送的新建SSL連接請(qǐng)求,根據(jù)預(yù)定的負(fù)載均衡算法從服務(wù)器群組中選擇出第一服務(wù)器,并將所述新建SSL連接請(qǐng)求發(fā)送 至第一服務(wù)器;第一服務(wù)器根據(jù)所述新建SSL連接請(qǐng)求,建立本服務(wù)器與第一客戶端之 間的第一 SSL連接,為第一 SSL連接分配包含有自身設(shè)備標(biāo)識(shí)的第 一會(huì)話標(biāo) 識(shí),并向第一客戶端返回?cái)y帶有所述第一會(huì)話標(biāo)識(shí)的第一響應(yīng)報(bào)文。
4. 如權(quán)利要求3所述的方法,其特征在于,SLB設(shè)備和服務(wù)器群組中的 各服務(wù)器都連接到同一個(gè)交換設(shè)備,SLB設(shè)備和服務(wù)器群組中的各服務(wù)器之間 都建立有控制通道;所述新建SSL連接請(qǐng)求是通過(guò)第 一客戶端與SLB設(shè)備之間的第一 TCP連 接發(fā)送的;在選擇出第一服務(wù)器之后,SLB設(shè)備進(jìn)一步通過(guò)所述控制通道將第 一 TCP連接的狀態(tài)信息和所述新建SSL連接請(qǐng)求發(fā)送給第一服務(wù)器;第 一服務(wù)器進(jìn)一步接收并維護(hù)第一 TCP連接的狀態(tài)信息,并根據(jù)第一 TCP連接的狀態(tài)信息,設(shè)置所述第一響應(yīng)報(bào)文中的對(duì)應(yīng)信息,并將所述第一響應(yīng)報(bào) 文通過(guò)所述交換設(shè)備發(fā)送至第 一客戶端。
5. 如權(quán)利要求4所述的方法,其特征在于,在選擇出第一服務(wù)器之后,SLB設(shè)備進(jìn)一步保存第一 TCP連接與第一服 務(wù)器之間的第二對(duì)應(yīng)關(guān)系,并根據(jù)第二對(duì)應(yīng)關(guān)系,將后續(xù)來(lái)自所述第一TCP 連接的所有報(bào)文都轉(zhuǎn)發(fā)至第 一服務(wù)器。
6. 如權(quán)利要求5所述的方法,其特征在于,所述SSL連接恢復(fù)請(qǐng)求是通過(guò)第一客戶端與SLB設(shè)備之間的第二 TCP連 接發(fā)送的;在確定第一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器的地址之后,SLB 設(shè)備進(jìn)一步通過(guò)所述控制通道將第二 TCP連接的狀態(tài)信息和所述SSL連接恢 復(fù)請(qǐng)求發(fā)送至第一服務(wù)器;第一服務(wù)器進(jìn)一步接收并維護(hù)第二 TCP連接的狀態(tài)信息,生成所述SSL 連接恢復(fù)請(qǐng)求的第二響應(yīng)報(bào)文,并根據(jù)第二 TCP連接的狀態(tài)信息,設(shè)置第二 響應(yīng)報(bào)文中的對(duì)應(yīng)信息,并將所述第二響應(yīng)報(bào)文通過(guò)所述交換設(shè)備發(fā)送至第一 客戶端。
7. 如權(quán)利要求6所述的方法,其特征在于,在確定第一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器的地址之后,SLB設(shè)備進(jìn) 一步保存第二 TCP連接與第一服務(wù)器之間的第三對(duì)應(yīng)關(guān)系,并根據(jù)第三對(duì)應(yīng) 關(guān)系,將后續(xù)來(lái)自所述第二 TCP連接的所有報(bào)文都轉(zhuǎn)發(fā)至第一服務(wù)器。
8. —種本地負(fù)載均衡SLB設(shè)備,其特征在于,包括接收單元,用于接收第一客戶端發(fā)送的攜帶有第一會(huì)話標(biāo)識(shí)的SSL連接 恢復(fù)請(qǐng)求,所述第一會(huì)話標(biāo)識(shí)中包含有第一服務(wù)器的設(shè)備標(biāo)識(shí);服務(wù)器選擇單元,用于從所述SSL連接恢復(fù)請(qǐng)求中獲取第一服務(wù)器的設(shè) 備標(biāo)識(shí),并根據(jù)預(yù)存的服務(wù)器的設(shè)備標(biāo)識(shí)和服務(wù)器地址之間的第一對(duì)應(yīng)關(guān)系, 確定第一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器的地址;轉(zhuǎn)發(fā)單元,用于根據(jù)所述服務(wù)器選擇單元確定的第一服務(wù)器的地址,將所 述SSL連接恢復(fù)請(qǐng)求發(fā)送至第一服務(wù)器。
9. 如權(quán)利要求8所述的SLB設(shè)備,其特征在于,還包括第 一對(duì)應(yīng)關(guān)系保存單元,用于接收并保存外部輸入的所述第 一對(duì)應(yīng)關(guān)系;或者用于根據(jù)本SLB設(shè)備接收到的各服務(wù)器的地址以及本SLB設(shè)備為各服務(wù) 器所分配的設(shè)備標(biāo)識(shí),建立并保存所述第一對(duì)應(yīng)關(guān)系。
10. 如權(quán)利要求8所述的SLB設(shè)備,其特征在于, 所述接收單元,還用于接收第一客戶端發(fā)送的新建SSL連接請(qǐng)求; 所述服務(wù)器選擇單元,還用于在接收到所述新建SSL連接請(qǐng)求后,根據(jù)預(yù)定的負(fù)載均衡算法從服務(wù)器群組中選擇出第一服務(wù)器;所述轉(zhuǎn)發(fā)單元,還用于將所述新建SSL連接請(qǐng)求發(fā)送至所述服務(wù)器選擇 單元選擇出的第一服務(wù)器。
11. 如權(quán)利要求IO所述的SLB設(shè)備,其特征在于,所述接收單元,進(jìn)一步用于建立與第一客戶端之間的第一 TCP連接,通 過(guò)第一 TCP連接接收所述新建SSL連接請(qǐng)求;所述轉(zhuǎn)發(fā)單元,進(jìn)一步用于通過(guò)本SLB設(shè)備和第一服務(wù)器之間的控制通 道,將所述新建SSL連接請(qǐng)求和第一 TCP連接的狀態(tài)信息發(fā)送給第一服務(wù)器; 以及在所述服務(wù)器選擇單元選擇出第一服務(wù)器之后,進(jìn)一步保存第一 TCP連 接與第一服務(wù)器之間的第二對(duì)應(yīng)關(guān)系,并根據(jù)第二對(duì)應(yīng)關(guān)系,將后續(xù)來(lái)自所述 第一 TCP連接的所有報(bào)文都轉(zhuǎn)發(fā)至第一服務(wù)器。
12. 如權(quán)利要求11所述的SLB設(shè)備,其特征在于,所述接收單元,進(jìn)一步用于建立與第一客戶端之間的第二 TCP連接,通 過(guò)第二 TCP連接接收所述SSL連接恢復(fù)請(qǐng)求;所述轉(zhuǎn)發(fā)單元,進(jìn)一步用于通過(guò)本SLB設(shè)備和第一服務(wù)器之間的控制通 道,將所述SSL連接恢復(fù)請(qǐng)求和第二 TCP連接的狀態(tài)信息發(fā)送給第一服務(wù)器; 以及在所述服務(wù)器選擇單元確定出第一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器 的地址之后,進(jìn)一步保存第二 TCP連接與第 一服務(wù)器之間的第三對(duì)應(yīng)關(guān)系, 并根據(jù)第三對(duì)應(yīng)關(guān)系,將后續(xù)來(lái)自所述第二 TCP連接的所有報(bào)文都轉(zhuǎn)發(fā)至第 一服務(wù)器。
13. —種服務(wù)器,其特征在于,包括接收單元,用于接收SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自第一客戶端的SSL連接恢復(fù)請(qǐng)求;SSL處理單元,用于根據(jù)所述SSL連接恢復(fù)請(qǐng)求,恢復(fù)本服務(wù)器與第一客戶端之間的SSL連接。
14. 如權(quán)利要求13所述的服務(wù)器,其特征在于,所述接收單元,還用于接收SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自第一客戶端的新建SSL 連接:清求;所述SSL處理單元,還用于根據(jù)所述新建SSL連接請(qǐng)求,建立本服務(wù)器 與第一客戶端之間的第一 SSL連接,為第一 SSL連接分配包含有自身設(shè)備標(biāo) 識(shí)的第一會(huì)話標(biāo)識(shí),并生成攜帶有所述第一會(huì)話標(biāo)識(shí)的第一響應(yīng)報(bào)文;所述服務(wù)器還包括發(fā)送單元,用于將所述第一響應(yīng)報(bào)文發(fā)送給第一客戶端。
15. 如權(quán)利要求14所述的服務(wù)器,其特征在于,所述接收單元,進(jìn)一步用于通過(guò)本服務(wù)器與SLB設(shè)備之間的控制通道, 接收所述新建SSL連接請(qǐng)求和第一 TCP連接的狀態(tài)信息,所述第一 TCP連接 是第一客戶端與SLB設(shè)備之間發(fā)送所述新建SSL連接請(qǐng)求的TCP連接;所述發(fā)送單元,進(jìn)一步用于維護(hù)所述第一 TCP連接的狀態(tài)信息,并根據(jù) 第一 TCP連接的狀態(tài)信息,設(shè)置所述第一響應(yīng)報(bào)文中的對(duì)應(yīng)信息;所述SSL處理單元,還用于處理SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自所述第一 TCP連接 的報(bào)文。
16. 如權(quán)利要求15所述的服務(wù)器,其特征在于,所述接收單元,進(jìn)一步用于通過(guò)本服務(wù)器與SLB設(shè)備之間的控制通道, 接收所述SSL連接恢復(fù)請(qǐng)求和第二 TCP連接的狀態(tài)信息,所述第二 TCP連接 是第一客戶端與SLB設(shè)備之間發(fā)送所述SSL連接恢復(fù)請(qǐng)求的TCP連接;所述SSL處理單元,還用于生成所述SSL連接恢復(fù)請(qǐng)求的第二響應(yīng)報(bào)文, 以及用于處理SLB設(shè)備轉(zhuǎn)發(fā)的來(lái)自所述第二 TCP連接的報(bào)文;所述發(fā)送單元,進(jìn)一步用于維護(hù)所述第二 TCP連接的狀態(tài)信息,并根據(jù) 第二TCP連接的狀態(tài)信息,設(shè)置所述第二響應(yīng)報(bào)文中的對(duì)應(yīng)信息。
全文摘要
本發(fā)明提供了一種保持安全套接層會(huì)話持續(xù)性的方法及設(shè)備。所述方法包括A.本地負(fù)載均衡SLB設(shè)備接收第一客戶端發(fā)送的攜帶有第一會(huì)話標(biāo)識(shí)的SSL連接恢復(fù)請(qǐng)求,所述第一會(huì)話標(biāo)識(shí)中包含有第一服務(wù)器的設(shè)備標(biāo)識(shí);B.SLB設(shè)備從所述SSL連接恢復(fù)請(qǐng)求中獲取第一服務(wù)器的設(shè)備標(biāo)識(shí),并根據(jù)預(yù)存的服務(wù)器的設(shè)備標(biāo)識(shí)和服務(wù)器地址之間的第一對(duì)應(yīng)關(guān)系,確定第一服務(wù)器的設(shè)備標(biāo)識(shí)對(duì)應(yīng)的第一服務(wù)器的地址,并將所述SSL連接恢復(fù)請(qǐng)求發(fā)送至第一服務(wù)器;C.第一服務(wù)器根據(jù)所述SSL連接恢復(fù)請(qǐng)求,恢復(fù)本服務(wù)器與第一客戶端之間的SSL連接。按照本發(fā)明,可以減少對(duì)SLB設(shè)備內(nèi)存資源的占用,減輕SLB設(shè)備的工作負(fù)擔(dān)。
文檔編號(hào)H04L29/06GK101296238SQ20081011512
公開(kāi)日2008年10月29日 申請(qǐng)日期2008年6月17日 優(yōu)先權(quán)日2008年6月17日
發(fā)明者明 薛 申請(qǐng)人:杭州華三通信技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1