專利名稱:一種被均衡設(shè)備的健康檢測(cè)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種被均衡設(shè)備的健康檢測(cè)方法及 裝置。
背景技術(shù):
LB (LoadBalance,負(fù)載均衡)是一種集群技術(shù),將網(wǎng)絡(luò)服務(wù)、網(wǎng)絡(luò)流量 等特定的業(yè)務(wù)分擔(dān)給多臺(tái)網(wǎng)絡(luò)設(shè)備(包括服務(wù)器、網(wǎng)關(guān)設(shè)備等)或多條鏈路, 從而提高業(yè)務(wù)處理能力,保證業(yè)務(wù)的高可靠性。按照負(fù)載均衡對(duì)象的不同, 可分為服務(wù)器負(fù)載均衡,網(wǎng)關(guān)設(shè)備負(fù)載均衡,鏈路負(fù)載均衡。
其中,服務(wù)器負(fù)載均衡的對(duì)象是提供服務(wù)的服務(wù)器,可以提高服務(wù)的處 理能力。服務(wù)器負(fù)載均衡依據(jù)轉(zhuǎn)發(fā)方式,分為NAT ( Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)方式、DR (Designated Router,指定路由器)方 式、TUNNEL (隧道)方式。由于NAT方式組網(wǎng)更靈活,內(nèi)網(wǎng)可以使用私網(wǎng) 地址,因此,下面以NAT方式為例,說(shuō)明服務(wù)器負(fù)載均衡的工作原理,如圖l 所示,用戶主機(jī)(Host )通過(guò)IP網(wǎng)絡(luò)與集群(Cluster )通信。其中集群(Cluster) 是對(duì)外提供特定服務(wù)的群體,包括LB device,負(fù)責(zé)分發(fā)各種服務(wù)請(qǐng)求到多 臺(tái)Server, Server,負(fù)責(zé)響應(yīng)和處理各種服務(wù)請(qǐng)求。集群對(duì)外提供的虛服務(wù)IP (Virtual Service IP)為VSIP,供用戶請(qǐng)求服務(wù)時(shí)使用,Server IP是服務(wù)器的 IP地址,供LBdevice分發(fā)服務(wù)請(qǐng)求時(shí)使用。
NAT方式服務(wù)器負(fù)載均衡的工作流程如圖2所示,包括以下步驟
步驟201, Host向集群發(fā)送服務(wù)請(qǐng)求報(bào)文,報(bào)文的源地址為HostIP,目的 地址為VSIP;
步驟202,集群中的LBdevice接收到請(qǐng)求報(bào)文后,借助調(diào)度算法計(jì)算出應(yīng) 該將請(qǐng)求報(bào)文分發(fā)給哪臺(tái)Server;
步驟203, LB device使用DNAT (Destination NAT,目的地址NAT)技術(shù)將目的地址轉(zhuǎn)換為對(duì)應(yīng)的Server IP,分發(fā)才艮文;
步驟204, Server沖姿收并處理請(qǐng)求才艮文,向LB device返回響應(yīng)沖艮文,該響 應(yīng)報(bào)文的源地址為Server IP ,目的地址為Host IP;
步驟205, LBdevice接收到響應(yīng)報(bào)文后,將源IP地址轉(zhuǎn)換為VSIP后向Host轉(zhuǎn)發(fā)。
鏈路負(fù)載均衡系統(tǒng)的服務(wù)對(duì)象是運(yùn)營(yíng)商提供的鏈路,用以擴(kuò)展用戶網(wǎng)絡(luò) 帶寬。如圖3所示,源端設(shè)備通過(guò)集群(Cluster)與目的端設(shè)備通信。集群提 供網(wǎng)絡(luò)流量負(fù)載均衡的群體,包括LB device和多條物理鏈路。LB device,負(fù) 責(zé)分發(fā)網(wǎng)絡(luò)流量到多條物理鏈路的設(shè)備;物理鏈路為運(yùn)營(yíng)商提供的實(shí)際鏈路。 VSIP,集群對(duì)外提供的虛服務(wù)IP,即用戶發(fā)送報(bào)文的目的網(wǎng)段。 鏈路負(fù)載均衡的工作流程如圖4所示,包括以下步驟 步驟401, LB device接收內(nèi)網(wǎng)用戶(源端設(shè)備)發(fā)送的報(bào)文。 步驟402, LB device根據(jù)報(bào)文的目的IP和配置的鏈^各負(fù)載均衡規(guī)則進(jìn)行 鏈路選擇。
步驟403, LB device按照鏈路選擇的結(jié)果將報(bào)文轉(zhuǎn)發(fā)給選定的鏈路。 步驟404, LB device接收外網(wǎng)用戶(目的端設(shè)備)發(fā)回的報(bào)文。 步驟405, LB device將報(bào)文轉(zhuǎn)發(fā)回內(nèi)網(wǎng)用戶(源端設(shè)備)。
為了保證在報(bào)文分發(fā)服務(wù)時(shí),只分給可用的服務(wù)器、網(wǎng)絡(luò)設(shè)備或鏈路, 負(fù)載均衡系統(tǒng)中引入了健康檢測(cè)機(jī)制負(fù)載均衡設(shè)備通過(guò)動(dòng)態(tài)查詢服務(wù)器或 網(wǎng)絡(luò)設(shè)備端健康狀況維護(hù)網(wǎng)絡(luò)穩(wěn)定性,新的連接分發(fā)時(shí),只分發(fā)給健康的服 務(wù)器或網(wǎng)絡(luò)設(shè)備。以下將需要檢測(cè)的服務(wù)器、網(wǎng)絡(luò)設(shè)備或鏈路統(tǒng)稱為被均衡 設(shè)備。
常用的健康檢測(cè)方法有基于ICMP (Internet Control Message Protocol,網(wǎng) 際控制信息協(xié)議)和基于TCP ( Transmission Control Protocol,傳^T控制協(xié)i義) 全連接檢測(cè)方法。
其中,ICMP健康檢測(cè)方法具體包括負(fù)載均衡設(shè)備向被均衡設(shè)備主動(dòng)發(fā)
6送ICMP Echo查詢報(bào)文,在超時(shí)時(shí)間內(nèi)收到ICMP Reply報(bào)文則認(rèn)為被均衡設(shè) 備健康,否則認(rèn)為被均衡設(shè)備不健康;
然而,由于ICMP是不安全的網(wǎng)絡(luò)協(xié)議,在被均衡設(shè)備上往往禁止傳輸 或應(yīng)答ICMP報(bào)文; 一旦ICMP被禁用,則該檢測(cè)方法無(wú)法使用。
TCP全連接健康檢測(cè)方法具體包括
1,負(fù)載均衡設(shè)備通過(guò)端口 1向被均衡設(shè)備的端口 l主動(dòng)發(fā)起一個(gè)帶有SYN 標(biāo)志的連接請(qǐng)求,初始序列號(hào)SEQ: 1791872318,以建立之間的TCP連接;
2,當(dāng)被均衡設(shè)備正常工作時(shí),則通過(guò)端口l向負(fù)載均衡設(shè)備的端口l返回 一個(gè)同時(shí)帶有S YN標(biāo)志和ACK標(biāo)志的應(yīng)答包,表示負(fù)載均衡設(shè)備的請(qǐng)求被接 受,其中,ACK應(yīng)答序列號(hào)SEQ- 1791872318 + 1, SYN請(qǐng)求序列號(hào)SEQ-3880988084;
3,負(fù)載均衡設(shè)備再通過(guò)端口 1向被均衡設(shè)備的端口 l返回一個(gè)包含ACK標(biāo) 志的應(yīng)答包,應(yīng)答序列號(hào)8£(^ = 3880988084+ 1。至此,負(fù)載均衡設(shè)備和被均 衡設(shè)備之間就建立了 一個(gè)安全的可靠的TCP連接。如果TCP連接能夠建i成 功,則說(shuō)明被均衡設(shè)備健康,否則不健康。
可知,正常的TCP連接建立需要負(fù)載均衡設(shè)備與被均衡設(shè)備交互多次信 息,消耗帶寬資源,還消耗服務(wù)器的系統(tǒng)資源如socket,內(nèi)存,CPU等;頻 繁的健康檢測(cè)功能會(huì)導(dǎo)致被均衡設(shè)備受到類syn-fllood攻擊;另外由于檢測(cè)周 期太長(zhǎng),又會(huì)使得被均衡設(shè)備故障發(fā)現(xiàn)延遲,影響功能穩(wěn)定性。
發(fā)明內(nèi)容
本發(fā)明提供了 一種被均衡設(shè)備的健康檢測(cè)方法及裝置,在不建立實(shí)際 TCP連接的情況下,完成被均衡設(shè)備健康一企測(cè)。
本發(fā)明提供了 一種被均衡設(shè)備的健康檢測(cè)方法,應(yīng)用于包括負(fù)載均衡設(shè) 備和至少兩個(gè)被均衡設(shè)備的網(wǎng)絡(luò)中,所述方法包括以下步驟
所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,所述非TCP 復(fù)位報(bào)文用于使被均衡設(shè)備生成TCP復(fù)位報(bào)文;
所述負(fù)載均衡設(shè)備判斷是否所述被均衡設(shè)備接收到返回的TCP復(fù)位報(bào)文,如果收到,則確定所述被均衡設(shè)備工作正常;如果沒(méi)有接收到,則確定
所述被均衡設(shè)備工作不正常。
所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,具體包括 所述負(fù)載均衡設(shè)備配置所述被均衡設(shè)備的待檢測(cè)端口 ,所述待檢測(cè)端口
為被均衡設(shè)備上沒(méi)有打開的端口 ;
所述負(fù)載均衡設(shè)備通過(guò)所述被均衡設(shè)備的TCP協(xié)議棧向所述被均衡設(shè)備
的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文;
所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,之后還包括 所述被均衡設(shè)備的TCP協(xié)議棧檢測(cè)所述非TCP復(fù)位報(bào)文的待檢測(cè)端口為
沒(méi)有打開的端口,所述被均衡設(shè)備的TCP協(xié)議棧向所述負(fù)載均衡設(shè)備返回
TCP復(fù)位報(bào)文。
所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,具體包括 所述負(fù)載均衡設(shè)備配置所述被均衡設(shè)備的待檢測(cè)端口 ,所述待檢測(cè)端口
為被均衡設(shè)備上正在監(jiān)聽服務(wù)的端口 ;
所述負(fù)載均衡設(shè)備通過(guò)所述被均衡設(shè)備的TCP協(xié)議棧向所述被均衡設(shè)備
的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位"l艮文中的序列號(hào)與所述
被均衡設(shè)備的TCP協(xié)議棧中記錄的序列號(hào)不相匹配;
所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,之后還包括 所述被均衡設(shè)備工作正常時(shí),所述被均衡設(shè)備的TCP協(xié)議棧檢測(cè)所述非
TCP復(fù)位報(bào)文的待檢測(cè)端口為正在監(jiān)聽服務(wù)的端口 ,則判斷所述非TCP復(fù)位
報(bào)文中的序列號(hào)與TCP協(xié)議棧中記錄的序列號(hào)是否匹配,如果不匹配則,返
回TCP復(fù)位報(bào)文。
所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,具體包括 當(dāng)所述被均衡設(shè)備配置了多個(gè)IP地址,且綁定其中 一個(gè)IP地址作為所述 負(fù)載均衡設(shè)備正常業(yè)務(wù)的目的地址,所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā) 送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文的目的地址與所述綁定IP地址不 同,且屬于所述被均衡設(shè)備配置的多個(gè)IP地址之一。
所述非TCP復(fù)位報(bào)文與所述TCP復(fù)位報(bào)文的序列號(hào)匹配。本發(fā)明提供了 一種被均衡設(shè)備的健康檢測(cè)裝置,應(yīng)用于包括至少兩個(gè)被
均衡設(shè)備的網(wǎng)絡(luò)中,所述裝置包括
發(fā)送模塊,用于向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù) 位報(bào)文用于使被均衡設(shè)備生成TCP復(fù)位報(bào)文;
檢測(cè)模塊,用于判斷是否從所述被均衡設(shè)備接收到返回的TCP復(fù)位報(bào)文, 如果收到,則確定所述被均衡設(shè)備工作正常;如果沒(méi)有接收到,則確定所述 被均衡設(shè)備工作不正常。
所述發(fā)送模塊,具體用于配置所述被均衡設(shè)備的待檢測(cè)端口,所述待檢 測(cè)端口為被均衡設(shè)備上正在監(jiān)聽服務(wù)的端口 ,通過(guò)所述被均衡設(shè)備的TCP協(xié) 議棧向所述被均衡設(shè)備的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文,所迷非TCP復(fù)位 報(bào)文中的序列號(hào)與所述被均衡設(shè)備的TCP協(xié)議棧中記錄的序列號(hào)不相匹配。 所述發(fā)送模塊,具體用于配置所述被均衡設(shè)備的待檢測(cè)端口,所述待檢測(cè)端 口為被均衡設(shè)備上沒(méi)有打開的端口 ,通過(guò)所述被均衡設(shè)備的TCP協(xié)議棧向所 述被均衡設(shè)備的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文。
所述發(fā)送模塊,具體用于當(dāng)所述被均衡設(shè)備配置了多個(gè)IP地址,且綁定 其中 一個(gè)IP地址作為所述負(fù)載均衡設(shè)備正常業(yè)務(wù)的目的地址時(shí),向所述被均 衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文的目的地址與所述綁定IP 地址不同,且屬于所述被均衡設(shè)備配置的多個(gè)IP地址之一。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
本發(fā)明中,利用TCP消息中的復(fù)位字段指示被均衡設(shè)備處于健康狀態(tài), 無(wú)論負(fù)載均衡設(shè)備,還是被均衡設(shè)備,都不需要建立正常的TCP連接,可以 花費(fèi)較小代價(jià)完成健康檢測(cè)功能。
圖l是現(xiàn)有技術(shù)中NAT方式的服務(wù)器負(fù)載均衡組網(wǎng)圖;圖2是現(xiàn)有技術(shù)中NAT方式的服務(wù)器負(fù)載均衡流程圖3是現(xiàn)有技術(shù)中鏈路負(fù)載均衡組網(wǎng)圖4是現(xiàn)有技術(shù)中鏈路負(fù)載均衡流程圖5是本發(fā)明中一種被均衡設(shè)備的健康檢測(cè)方法流程圖6是本發(fā)明中TCP首部格式示意圖7是本發(fā)明中一種被均衡設(shè)備的健康檢測(cè)裝置結(jié)構(gòu)圖。
具體實(shí)施例方式
本發(fā)明的核心思路是利用TCP復(fù)位報(bào)文實(shí)現(xiàn)不建立TCP連接的TCP 健康檢測(cè),具體為負(fù)載均衡設(shè)備向被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,被均 衡設(shè)備接收到該非TCP復(fù)位報(bào)文后,根據(jù)所述非TCP復(fù)位報(bào)文生成并返回 TCP復(fù)位報(bào)文,使負(fù)載均衡設(shè)備知悉該被均衡設(shè)備健康,處于正常工作狀態(tài)。 本發(fā)明中,無(wú)論負(fù)載均衡設(shè)備,還是被均衡設(shè)備(包括服務(wù)器和網(wǎng)絡(luò)設(shè)備等), 都不需要建立正常的TCP連接,系統(tǒng)開銷小。
本發(fā)明提供了 一種被均衡設(shè)備的健康檢測(cè)方法,應(yīng)用于包括負(fù)載均衡設(shè) 備和至少兩個(gè)被均衡設(shè)備的網(wǎng)絡(luò)中,所述被均衡設(shè)備包括服務(wù)器、網(wǎng)關(guān)設(shè) 備和鏈路。所述方法如圖5所示,包括以下步驟
步驟501,負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位4艮文;該非 TCP復(fù)位報(bào)文用于使被均衡設(shè)備生成TCP復(fù)位報(bào)文。其中,非TCP復(fù)位報(bào)文 包括攜帶ACK標(biāo)記和/或SYN標(biāo)記的TCP報(bào)文;例如,TCP連接建立請(qǐng)求攜 帶SYN標(biāo)記,TCPACK報(bào)文、TCP FIN報(bào)文、TCP PSH報(bào)文等都攜帶ACK 標(biāo)記。
其中,TCP首部如圖6所示,包括
源端口 ( Source Port)和目的端口 ( Destination Port)都是16個(gè)比特,分 別表示發(fā)送方和接收方的端口號(hào)。
序歹'J號(hào)(Sequence Number )和石角^人號(hào)(ACKnowledgement Number)者卩是 32位的無(wú)符號(hào)整數(shù),可以表示0,4G (232)字節(jié)的范圍。其中,序列號(hào)表示
10數(shù)據(jù)部分第一個(gè)字節(jié)的序列號(hào),而確認(rèn)號(hào)表示該數(shù)據(jù)的接收者希望對(duì)方發(fā)送 的下一個(gè)字節(jié)的序號(hào)(即序列號(hào)小于確認(rèn)號(hào)的數(shù)據(jù)都已被正確接收)。
數(shù)據(jù)偏移(DataOffset),表示數(shù)據(jù)的偏移量;
保留域,緊接在頭長(zhǎng)度字段后有6個(gè)比特,應(yīng)該設(shè)置為0。
再后是6個(gè)標(biāo)志位,包括
URG為緊急數(shù)據(jù)標(biāo)志,如果為1,則表示本數(shù)據(jù)報(bào)中包含緊急數(shù)據(jù),此 時(shí)緊急數(shù)據(jù)指針表示的值有效;表示在緊急數(shù)據(jù)之后的第一個(gè)字節(jié)的偏侈值 (即緊急數(shù)據(jù)的總長(zhǎng)度)。
ACK為確認(rèn)標(biāo)志位,用于提示對(duì)端設(shè)備已經(jīng)成功接收所有數(shù)據(jù),如果 ACK為1,則表示^^文中的確認(rèn)號(hào)有效,否則,才艮文中的確認(rèn)號(hào)無(wú)效,接收 端可以忽略。
PSH標(biāo)志位,被置位后,要求發(fā)送方的TCP協(xié)議軟件馬上發(fā)送該數(shù)據(jù)報(bào), 接收方在收到數(shù)據(jù)后也應(yīng)該立即上交給應(yīng)用程序,即^f吏其接收緩沖區(qū)尚未填滿。
RST標(biāo)志位,用來(lái)復(fù)位一條連接,RST標(biāo)志置位的報(bào)文稱為復(fù)位報(bào)文, 一般情況下,如果TCP收到的一個(gè)報(bào)文明顯不是屬于該主機(jī)上的任何個(gè)連接, 則向遠(yuǎn)端發(fā)送一個(gè)復(fù)位報(bào)文。 一般說(shuō)來(lái),無(wú)論何時(shí)一個(gè)報(bào)文段發(fā)往基準(zhǔn)的連 接出現(xiàn)錯(cuò)誤,TCP都會(huì)發(fā)出一個(gè)復(fù)位報(bào)文段(這里提到的"基準(zhǔn)的連接"是 指由目的IP地址和目的端口號(hào)以及源IP地址和源端口號(hào)指明的連接)。生成 復(fù)位的一種常見(jiàn)情況是當(dāng)連接請(qǐng)求到達(dá)時(shí),目的端口沒(méi)有正在監(jiān)聽,則TCP 協(xié)議棧將生成一個(gè)復(fù)位報(bào)文。
SYN標(biāo)志位,用來(lái)建立連接,讓連接雙方同步序列號(hào),如果SYN-1而 ACK=0,則表示該數(shù)據(jù)報(bào)為連接請(qǐng)求,如SYN=1而ACK=1則表示是接受連 接。
FIN標(biāo)志位,表示發(fā)送方已經(jīng)沒(méi)有數(shù)據(jù)要傳輸了,希望釋放連接。
窗口 (window)字段,表示從被確認(rèn)的字節(jié)開始,發(fā)送方最多可以連續(xù)
發(fā)送的字節(jié)的個(gè)數(shù),接收方通過(guò)設(shè)置該窗口值的大小,可以調(diào)節(jié)源端發(fā)送數(shù)
據(jù)的速度,從而實(shí)現(xiàn)流控。校驗(yàn)和(checksum )域,是TCP協(xié)議4是供的 一種檢錯(cuò)機(jī)制。 步驟501具體包括
所述負(fù)載均衡設(shè)備配置所述被均衡設(shè)備的待檢測(cè)端口 ,所述待檢測(cè)端口 為被均衡設(shè)備上正在監(jiān)聽服務(wù)的端口 ;所述負(fù)載均衡設(shè)備通過(guò)所述被均衡設(shè) 備的TCP協(xié)議棧向所述被均衡設(shè)備的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文,所述 非TCP復(fù)位報(bào)文中的序列號(hào)與所述被均衡設(shè)備的TCP協(xié)議棧中記錄的序列號(hào) 不相匹配。由于該非TCP復(fù)位報(bào)文的五元組(源IP地址、源端口號(hào)、目的IP 地址、目的端口號(hào)和協(xié)議號(hào)),與正常業(yè)務(wù)的五元組相同,因此,當(dāng)被均衡設(shè) 備檢測(cè)到五元組相同,且序列號(hào)匹配時(shí),則為正常業(yè)務(wù),如果序列號(hào)不匹配, 則為非TCP復(fù)位報(bào)文?;?br>
所述負(fù)載均衡設(shè)備配置所述被均衡設(shè)備的待檢測(cè)端口 ,所述待檢測(cè)端口 為被均衡設(shè)備上沒(méi)有打開的端口 ;所述負(fù)載均衡設(shè)備通過(guò)所述被均衡設(shè)備的 TCP協(xié)議棧向所述被均衡設(shè)備的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文。
當(dāng)所述被均衡設(shè)備配置了多個(gè)IP地址,且綁定其中 一個(gè)IP地址作為所述 負(fù)載均衡設(shè)備正常業(yè)務(wù)的目的地址時(shí),所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備 發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文的目的地址與所述綁定IP地址 不同,且屬于所述被均衡設(shè)備配置的多個(gè)IP地址之一。由于該非TCP復(fù)位報(bào) 文的目的地址屬于該被均衡設(shè)備配置的IP地址,因此,該被均衡設(shè)備可以收 到該非TCP復(fù)位報(bào)文,然而,該被均衡設(shè)備又沒(méi)有通過(guò)該IP地址建立正常業(yè) 務(wù)連接,因此,該被均衡設(shè)備收到該非TCP復(fù)位報(bào)文后會(huì)返回TCP復(fù)位報(bào)文。
步驟502,所述被均衡設(shè)備根據(jù)所述非TCP復(fù)位報(bào)文生成TCP復(fù)位報(bào)文, 并返回給所述負(fù)載均衡設(shè)備。如果被均衡設(shè)備的TCP協(xié)議棧不正常工作,則 不會(huì)根據(jù)非TCP復(fù)位報(bào)文生成TCP復(fù)位報(bào)文,并返回給負(fù)載均衡設(shè)備;當(dāng)被 均衡設(shè)備的TCP協(xié)議棧正常工作,但負(fù)載均衡設(shè)備與被均衡設(shè)備之間的鏈路 出現(xiàn)故障時(shí),雖然被均衡設(shè)備可以生成TCP復(fù)位報(bào)文,但無(wú)法返回給負(fù)載均 衡設(shè)備;當(dāng)被均衡設(shè)備出現(xiàn)故障時(shí),即使鏈路正常,同樣不能產(chǎn)生TCP復(fù)位 報(bào)文。
12其中,當(dāng)被均衡設(shè)備工作正常的、被均衡設(shè)備TCP協(xié)議棧正常工作、且
負(fù)載均衡設(shè)備與被均衡設(shè)備之間的鏈路正常時(shí),所述被均衡設(shè)備的TCP協(xié)議棧接收所述負(fù)載均衡設(shè)備發(fā)送的非TCP復(fù)位報(bào)文;所述被均衡設(shè)備的TCP協(xié)議棧檢測(cè)所述非TCP復(fù)位報(bào)文的待檢測(cè)端口為沒(méi)有打開的端口 ,所述凈皮均衡設(shè)備的TCP協(xié)議棧向所述負(fù)載均衡設(shè)備返回TCP復(fù)位報(bào)文;
如果所述非TCP復(fù)位報(bào)文的待檢測(cè)端口為正在監(jiān)聽服務(wù)的端口 ,則判斷所述非TCP復(fù)位報(bào)文中的序列號(hào)與TCP協(xié)議棧中記錄的序列號(hào)是否匹配,如果不匹配則,返回TCP復(fù)位報(bào)文;如果匹配,則說(shuō)明接收的報(bào)文可能為正常業(yè)務(wù)報(bào)文,按正常業(yè)務(wù)報(bào)文處理。例如,對(duì)于一個(gè)正常的^J:包括IO個(gè)數(shù)據(jù)包,則每個(gè)數(shù)據(jù)包具有自己的序列號(hào)(l到10),該報(bào)文占用的序列號(hào)也為1到10, TCP協(xié)議棧正常處理該報(bào)文后,會(huì)記錄該報(bào)文使用的序列號(hào)(1到10),則跟著該導(dǎo)艮文的下一條報(bào)文的第一個(gè)序列號(hào)應(yīng)該從11開始,因此,如果TCP協(xié)議棧接收到一條才艮文,其第一個(gè)序列號(hào)為11,則認(rèn)為該后續(xù)報(bào)文與前一個(gè)報(bào)文都是正常業(yè)務(wù)報(bào)文,進(jìn)行相應(yīng)處理;如果TCP協(xié)議棧接收的一條報(bào)文的序列號(hào)不為11,則認(rèn)為該后續(xù)報(bào)文與前一個(gè)報(bào)文無(wú)關(guān)^f關(guān),不是正常業(yè)務(wù)報(bào)文,產(chǎn)生并返回TCP復(fù)位報(bào)文。
另外,當(dāng)所述被均衡設(shè)備配置了多個(gè)IP地址,且綁定其中一個(gè)IP地址作為負(fù)載均4酐設(shè)備正常業(yè)務(wù)的目的地址,而所述非TCP復(fù)位報(bào)文的目的地址與所述綁定的目的地址不同時(shí)(負(fù)栽均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文時(shí),使用了該被均衡設(shè)備所配置的,且與正常業(yè)務(wù)綁定目的地址不同的目的地址)。由于該非TCP復(fù)位報(bào)文的目的地址屬于該被均衡設(shè)備配置的IP地址,因此,該被均衡設(shè)備可以收到該非TCP復(fù)位報(bào)文,然而,該被均衡設(shè)備又沒(méi)有通過(guò)該IP地址建立正常業(yè)務(wù)連接,因此,該被均衡設(shè)備收到該非TCP復(fù)位報(bào)文后會(huì)返回TCP復(fù)位報(bào)文。
另外,由于檢測(cè)用的非TCP復(fù)位報(bào)文的源地址和正常業(yè)務(wù)的源地址是不同的,所以檢測(cè)報(bào)文不會(huì)影響到正常業(yè)務(wù)應(yīng)用。另外,為了使源/目的IP、源/目的端口號(hào)、才良文序列號(hào)可以唯一標(biāo)識(shí)一次
探測(cè),使RST報(bào)文與攜帶ACK標(biāo)記的TCP報(bào)文序列號(hào)匹配,每次探測(cè)時(shí),TCP報(bào)文的序列號(hào)都不同。
步驟503,負(fù)載均衡設(shè)備判斷是否從所述被均衡設(shè)備接收到返回的TCP復(fù)位報(bào)文,如果收到,則確定所述被均衡設(shè)備工作正常;如果沒(méi)有接收到,則確定所述被均衡設(shè)備工作不正常。負(fù)載均衡設(shè)備在預(yù)設(shè)時(shí)間內(nèi)收到TCP復(fù)位報(bào)文,則可以確定被均衡設(shè)備工作正常,在預(yù)設(shè)時(shí)間內(nèi)沒(méi)收到TCP復(fù)位報(bào)文,則被均衡設(shè)備可能工作不正常,為了避免一些瞬態(tài)干擾導(dǎo)致的負(fù)載均衡設(shè)備的協(xié)議棧暫時(shí)故障,或鏈路暫時(shí)故障,可以在預(yù)設(shè)時(shí)間內(nèi)沒(méi)有收到TCP復(fù)位報(bào)文時(shí),再次向被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,重復(fù)幾次,如果多次(例如3次),均沒(méi)有收到TCP復(fù)位報(bào)文,則確認(rèn)該一皮均衡設(shè)備不正常工作或鏈路故障。
本發(fā)明提供了 一種被均衡設(shè)備的健康檢測(cè)裝置,應(yīng)用于包括負(fù)載均衡設(shè)備和至少兩個(gè)被均衡、沒(méi)備的網(wǎng)絡(luò)中,如圖7所示,所述裝置包括
發(fā)送模塊710,用于向所述被均衡設(shè)備發(fā)送非TCP復(fù)位才艮文,所述非TCP復(fù)位報(bào)文用于使被均衡設(shè)備生成TCP復(fù)位報(bào)文;
發(fā)送模塊710,具體用于配置所述被均衡設(shè)備的待檢測(cè)端口 ,所述待檢測(cè)端口為被均衡設(shè)備上正在監(jiān)聽服務(wù)的端口 ,通過(guò)所述一皮均衡設(shè)備的TCP協(xié)議棧向所述被均衡設(shè)備的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文中的序列號(hào)與所述被均衡設(shè)備的TCP協(xié)議棧中記錄的序列號(hào)不相匹配。
發(fā)送模塊710,配置所述被均衡設(shè)備的待檢測(cè)端口,所述待檢測(cè)端口為被均衡設(shè)備上沒(méi)有打開的端口 ,通過(guò)所述被均衡設(shè)備的TCP協(xié)議棧向所述被均衡設(shè)備的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文。
發(fā)送模塊710,具體用于當(dāng)所述被均衡設(shè)備配置了多個(gè)IP地址,且綁定其中 一個(gè)IP地址作為所述負(fù)載均衡設(shè)備正常業(yè)務(wù)的目的地址時(shí),向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文的目的地址與所述綁定IP地址不同,且屬于所述被均衡設(shè)備配置的多個(gè)IP地址之一。檢測(cè)模塊720,用于判斷是否從所述被均衡設(shè)備接收到返回的TCP復(fù)位報(bào)文,如果收到,則確定所述被均衡設(shè)備工作正常;如果沒(méi)有接收到,則確定所述被均衡設(shè)備工作不正常。負(fù)載均衡設(shè)備在預(yù)設(shè)時(shí)間內(nèi)收到TCP復(fù)位報(bào)文,則可以確定被均衡設(shè)備工作正常,在預(yù)設(shè)時(shí)間內(nèi)沒(méi)收到TCP復(fù)位報(bào)文,則被均衡設(shè)備可能工作不正常,為了避免一些瞬態(tài)千擾導(dǎo)致的負(fù)載均衡設(shè)備的協(xié)議棧暫時(shí)故障,或鏈路暫時(shí)故障,可以在預(yù)^:時(shí)間內(nèi)沒(méi)有收到TCP復(fù)位報(bào)文時(shí),再次向被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,重復(fù)幾次,如果多次(例如3次),均沒(méi)有收到TCP復(fù)位報(bào)文,則確認(rèn)該被均tf設(shè)備不正常工作或鏈路故障。
本發(fā)明在正常的網(wǎng)絡(luò)傳輸中,防火墻作為網(wǎng)絡(luò)防護(hù)設(shè)備,對(duì)接收?qǐng)?bào)文進(jìn)行狀態(tài)檢測(cè),對(duì)于不屬于正常狀態(tài)的報(bào)文認(rèn)為是攻擊報(bào)文,將其丟棄,因此,通過(guò)防火墻的TCP報(bào)文有被丟棄的風(fēng)險(xiǎn)。但是在服務(wù)器負(fù)載均衡中,負(fù)載均衡設(shè)備往往位于數(shù)據(jù)中心前面,負(fù)載均衡設(shè)備和數(shù)據(jù)中心間沒(méi)有防火墻,負(fù)載均衡設(shè)備可以被認(rèn)為是可信設(shè)備,數(shù)據(jù)中心間不需要對(duì)負(fù)載均衡設(shè)備進(jìn)行防護(hù)。另外,負(fù)載均衡設(shè)備和數(shù)據(jù)中心間作為一體對(duì)外網(wǎng)提供服務(wù),利用防火墻防護(hù)來(lái)自外網(wǎng)的攻擊報(bào)文。因此,負(fù)載均衡設(shè)備發(fā)往數(shù)據(jù)中心間的TCP報(bào)文不會(huì)被丟棄,從而在服務(wù)器負(fù)載均衡中具有應(yīng)用前景。同樣在網(wǎng)關(guān)負(fù)載均衡組網(wǎng)中,負(fù)載均衡設(shè)備也位于網(wǎng)關(guān)設(shè)備前面,之前也不會(huì)有防火墻設(shè)備,不會(huì)丟棄檢測(cè)報(bào)文,同樣在鏈路負(fù)載均衡中,該方法可以用于檢測(cè)鏈路狀態(tài)的健康性。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的扶術(shù)人員可以清楚地了解到本發(fā)明可以通過(guò)硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM, U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),月良務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
15本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不 一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
1權(quán)利要求
1、一種被均衡設(shè)備的健康檢測(cè)方法,應(yīng)用于包括負(fù)載均衡設(shè)備和至少兩個(gè)被均衡設(shè)備的網(wǎng)絡(luò)中,其特征在于,所述方法包括以下步驟所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文用于使被均衡設(shè)備生成TCP復(fù)位報(bào)文;所述負(fù)載均衡設(shè)備判斷是否從所述被均衡設(shè)備接收到返回的TCP復(fù)位報(bào)文,如果收到,則確定所述被均衡設(shè)備工作正常;如果沒(méi)有接收到,則確定所述被均衡設(shè)備工作不正常。
2、 如權(quán)利要求l所述的方法,其特征在于,所述負(fù)載均衡設(shè)備向所述被 均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,具體包括所述負(fù)載均衡設(shè)備配置所述被均衡設(shè)備的待檢測(cè)端口 ,所述待檢測(cè)端口 為被均衡設(shè)備上沒(méi)有打開的端口 ;所述負(fù)載均衡設(shè)備通過(guò)所述被均衡設(shè)備的TCP協(xié)議棧向所述被均衡設(shè)備 的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文;所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,之后還包括所述被均衡設(shè)備工作正常時(shí),所述被均衡設(shè)備的TCP協(xié)議棧檢測(cè)所述非 TCP復(fù)位報(bào)文的待檢測(cè)端口為沒(méi)有打開的端口 ,所述被均衡設(shè)備的TCP協(xié)議 棧向所述負(fù)載均衡設(shè)備返回TCP復(fù)位報(bào)文。
3、 如權(quán)利要求l所述的方法,其特征在于,所述負(fù)載均衡設(shè)備向所述被 均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,具體包括所述負(fù)載均衡設(shè)備配置所述被均衡設(shè)備的待檢測(cè)端口 ,所述待檢測(cè)端口 為被均衡設(shè)備上正在監(jiān)聽服務(wù)的端口 ;所述負(fù)載均衡設(shè)備通過(guò)所述被均衡設(shè)備的TCP協(xié)議棧向所述被均衡設(shè)備 的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文中的序列號(hào)與所述 被均衡設(shè)備的TCP協(xié)議棧中記錄的序列號(hào)不相匹配;所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,之后還包括所述被均衡設(shè)備工作正常時(shí),所述被均衡設(shè)備的TCP協(xié)議棧檢測(cè)所述非 TCP復(fù)位報(bào)文的待檢測(cè)端口為正在監(jiān)聽服務(wù)的端口 ,則判斷所述非TCP復(fù)位報(bào)文中的序列號(hào)與TCP協(xié)議棧中記錄的序列號(hào)是否匹配,如果不匹配則,返回TCP復(fù)位報(bào)文。
4、 如權(quán)利要求l所述的方法,其特征在于,所述負(fù)載均衡設(shè)備向所述被 均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,具體包括當(dāng)所述被均衡設(shè)備配置了多個(gè)IP地址,且綁定其中一個(gè)IP地址作為所述 負(fù)載均衡設(shè)備正常業(yè)務(wù)的目的地址,所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā) 送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文的目的地址與所述綁定IP地址不 同,且屬于所述被均衡設(shè)備配置的多個(gè)IP地址之一。
5、 如權(quán)利要求l所述的方法,其特征在于,所述非TCP復(fù)位報(bào)文與所述 TCP復(fù)位才艮文的序列號(hào)匹配。
6、 如權(quán)利要求1至5中任一項(xiàng)所述的方法,其特征在于,所述負(fù)載均衡 設(shè)備為所述被均衡設(shè)備的可信設(shè)備。
7、 一種被均衡設(shè)備的健康檢測(cè)裝置,應(yīng)用于包括至少兩個(gè)被均衡設(shè)備的 網(wǎng)絡(luò)中,其特征在于,所述裝置包括發(fā)送模塊,用于向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù) 位報(bào)文用于使被均衡設(shè)備生成TCP復(fù)位報(bào)文;檢測(cè)模塊,用于判斷是否從所述被均衡設(shè)備接收到返回的TCP復(fù)位報(bào)文, 如果收到,則確定所述被均衡設(shè)備工作正常;如果沒(méi)有接收到,則確定所述 被均衡設(shè)備工作不正常。
8、 如權(quán)利要求7所述的裝置,其特征在于,所述發(fā)送模塊,具體用于配置所述被均衡設(shè)備的待檢測(cè)端口,所述待檢 測(cè)端口為被均衡設(shè)備上正在監(jiān)聽服務(wù)的端口 ,通過(guò)所述被均衡設(shè)備的TCP協(xié) 議棧向所述被均衡設(shè)備的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位 報(bào)文中的序列號(hào)與所述被均衡設(shè)備的TCP協(xié)議棧中記錄的序列號(hào)不相匹配。
9、 如權(quán)利要求7所述的裝置,其特征在于,所述發(fā)送模塊,具體用于配置所述被均衡設(shè)備的待檢測(cè)端口,所述待檢 測(cè)端口為被均衡設(shè)備上沒(méi)有打開的端口 ,通過(guò)所述被均衡設(shè)備的TCP協(xié)議棧向所述被均衡設(shè)備的待檢測(cè)端口發(fā)送非TCP復(fù)位報(bào)文。
10、如權(quán)利要求7所述的裝置,其特征在于,所述發(fā)送模塊,具體用于當(dāng)所述被均衡設(shè)備配置了多個(gè)IP地址,且綁定 其中一個(gè)IP地址作為所述負(fù)載均衡設(shè)備正常業(yè)務(wù)的目的地址時(shí),向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文的目的地址與所述綁定IP 地址不同,且屬于所述被均衡設(shè)備配置的多個(gè)IP地址之一。
全文摘要
本發(fā)明公開了一種被均衡設(shè)備的健康檢測(cè)方法,包括所述負(fù)載均衡設(shè)備向所述被均衡設(shè)備發(fā)送非TCP復(fù)位報(bào)文,所述非TCP復(fù)位報(bào)文用于使被均衡設(shè)備生成TCP復(fù)位報(bào)文;所述負(fù)載均衡設(shè)備判斷是否從所述被均衡設(shè)備接收到返回的TCP復(fù)位報(bào)文,如果收到,則確定所述被均衡設(shè)備工作正常;如果沒(méi)有接收到,則確定所述被均衡設(shè)備工作不正常。本發(fā)明中,利用TCP消息中的復(fù)位字段指示被均衡設(shè)備處于健康狀態(tài),無(wú)論負(fù)載均衡設(shè)備,還是被均衡設(shè)備,都不需要建立正常的TCP連接,可以花費(fèi)較小代價(jià)完成健康檢測(cè)功能。
文檔編號(hào)H04L12/26GK101640620SQ200910170020
公開日2010年2月3日 申請(qǐng)日期2009年9月1日 優(yōu)先權(quán)日2009年9月1日
發(fā)明者崔曉會(huì) 申請(qǐng)人:杭州華三通信技術(shù)有限公司