Udp負(fù)載均衡方法、系統(tǒng)及裝置制造方法
【專利摘要】本發(fā)明提出一種UDP負(fù)載均衡方法、系統(tǒng)和裝置。其中,方法包括以下步驟:負(fù)載均衡設(shè)備通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包,其中負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址;負(fù)載均衡設(shè)備根據(jù)負(fù)載均衡策略為客戶端選擇對(duì)應(yīng)的服務(wù)器,并建立客戶端和服務(wù)器之間的會(huì)話,并分別將會(huì)話插入至第一哈希表和第二哈希表中,其中,第一哈希表包括虛擬IP地址和/或虛擬端口號(hào)與客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,第二哈希表包括后端IP地址和/或端口號(hào)與服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系;以及負(fù)載均衡設(shè)備對(duì)UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器。
【專利說(shuō)明】UDP負(fù)載均衡方法、系統(tǒng)及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,特別涉及一種UDP負(fù)載均衡方法、系統(tǒng)及裝置。
【背景技術(shù)】
[0002]在現(xiàn)有的UDP (User Datagram Protocol,用戶數(shù)據(jù)包協(xié)議)負(fù)載均衡系統(tǒng),存在如下限制:
[0003]1、后端服務(wù)器與負(fù)載均衡設(shè)備必須在同一個(gè)子網(wǎng)中且默認(rèn)網(wǎng)關(guān)必須指向負(fù)載均衡設(shè)備。但是,當(dāng)有多個(gè)數(shù)據(jù)中心時(shí),經(jīng)常會(huì)有將負(fù)載均衡設(shè)備和后端服務(wù)器放置在不同局域網(wǎng)中的需求,這種限制導(dǎo)致無(wú)法實(shí)現(xiàn)跨網(wǎng)段部署的需求。
[0004]2、負(fù)載均衡設(shè)備與后端服務(wù)器可以不在同一個(gè)子網(wǎng)中,但是從后端服務(wù)器返回客戶端的響應(yīng)數(shù)據(jù)包必須不經(jīng)過(guò)負(fù)載均衡設(shè)備,且后端服務(wù)器上需要配置虛擬IP作為響應(yīng)數(shù)據(jù)包的源IP。這種限制導(dǎo)致的問(wèn)題是,會(huì)有很多業(yè)務(wù)需要使用多個(gè)虛擬IP對(duì)外提供服務(wù),當(dāng)一個(gè)數(shù)據(jù)包通過(guò)負(fù)載均衡設(shè)備到達(dá)后端服務(wù)器時(shí),后端服務(wù)器無(wú)法知道應(yīng)該使用哪個(gè)虛擬IP進(jìn)行響應(yīng)。另外,該方案對(duì)于后端服務(wù)器也不是透明的,它除了要知道自己的真實(shí)IP外還需要知道一個(gè)虛擬IP,這也會(huì)帶來(lái)一些集群部署上的麻煩。
【發(fā)明內(nèi)容】
[0005]本發(fā)明旨在至少解決現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題之一。
[0006]為此,本發(fā)明的一個(gè)目的在于提出一種UDP負(fù)載均衡方法,同時(shí)滿足客戶端真實(shí)IP獲取、跨網(wǎng)段部署、服務(wù)器的默認(rèn)網(wǎng)關(guān)不指向負(fù)載均衡設(shè)備以及虛擬IP的添加對(duì)于后端服務(wù)器透明的要求。
[0007]本發(fā)明的另一個(gè)目的在于提出一種UDP負(fù)載均衡系統(tǒng)。
[0008]本發(fā)明的又一個(gè)目的在于提出一種負(fù)載均衡設(shè)備。
[0009]本發(fā)明的再一個(gè)目的在于提出一種服務(wù)器。
[0010]為達(dá)到上述目的,根據(jù)本發(fā)明第一方面的實(shí)施例提出一種UDP負(fù)載均衡方法,包括以下步驟:負(fù)載均衡設(shè)備通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包,所述負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址;所述負(fù)載均衡設(shè)備根據(jù)負(fù)載均衡策略為所述客戶端選擇對(duì)應(yīng)的服務(wù)器;所述負(fù)載均衡設(shè)備建立所述客戶端和所述服務(wù)器之間的會(huì)話,并分別將所述會(huì)話插入至第一哈希表和第二哈希表中,其中,所述第一哈希表包括所述虛擬IP地址和/或虛擬端口號(hào)與所述客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,所述第二哈希表包括所述后端IP地址和/或端口號(hào)與所述服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系;以及所述負(fù)載均衡設(shè)備對(duì)所述UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將所述UDP請(qǐng)求包發(fā)送至所述對(duì)應(yīng)的服務(wù)器。
[0011]根據(jù)本發(fā)明實(shí)施例的UDP負(fù)載均衡方法,服務(wù)器完全不用知道虛擬IP的存在,需要添加刪除虛擬IP時(shí)僅在負(fù)載均衡設(shè)備上操作即可,不用對(duì)所有服務(wù)器進(jìn)行操作,對(duì)于集群部署非常方便。同時(shí),通過(guò)源地址轉(zhuǎn)換技術(shù),使得服務(wù)器可以知道負(fù)載均衡設(shè)備的后端IP地址,這樣即使服務(wù)器的默認(rèn)路由不指向負(fù)載均衡設(shè)備,返回的數(shù)據(jù)包也可以經(jīng)非默認(rèn)路由回到負(fù)載均衡設(shè)備,由此可以實(shí)現(xiàn)負(fù)載均衡設(shè)備和服務(wù)器的跨網(wǎng)段部署,提高靈活性,且在某個(gè)服務(wù)器因異常無(wú)法提供服務(wù)時(shí),可以迅速部署另一個(gè)服務(wù)器來(lái)提供服務(wù),增加安全性。通過(guò)為負(fù)載均衡設(shè)備配置虛擬IP,。同時(shí),通過(guò)同時(shí)使用源地址轉(zhuǎn)換技術(shù)和目的地址轉(zhuǎn)換技術(shù),可以同時(shí)。
[0012]為達(dá)到上述目的,根據(jù)本發(fā)明第二方面的實(shí)施例提出一種UDP負(fù)載均衡系統(tǒng),包括客戶端、負(fù)載均衡設(shè)備和服務(wù)器。其中,所述客戶端用于向所述負(fù)載均衡設(shè)備發(fā)送UDP請(qǐng)求包;所述負(fù)載均衡設(shè)備用于通過(guò)虛擬IP地址接收所述客戶端發(fā)送的UDP請(qǐng)求包,根據(jù)負(fù)載均衡策略為所述客戶端選擇對(duì)應(yīng)的服務(wù)器并建立所述客戶端和所述服務(wù)器之間的會(huì)話,并分別將所述會(huì)話插入至第一哈希表和第二哈希表中,以及對(duì)所述UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將所述UDP請(qǐng)求包發(fā)送至所述對(duì)應(yīng)的服務(wù)器,其中所述負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址,所述第一哈希表包括所述虛擬IP地址和/或虛擬端口號(hào)與所述客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,所述第二哈希表包括后端IP地址和/或端口號(hào)與所述服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系;所述服務(wù)器用于接收所述負(fù)載均衡設(shè)備發(fā)送的UDP請(qǐng)求包。
[0013]根據(jù)本發(fā)明實(shí)施例的UDP負(fù)載均衡系統(tǒng),通過(guò)在負(fù)載均衡設(shè)備上配置虛擬IP,月艮務(wù)器完全不用知道虛擬IP的存在,需要添加刪除虛擬IP時(shí)僅在負(fù)載均衡設(shè)備上操作即可,不用對(duì)所有服務(wù)器進(jìn)行操作,對(duì)于集群部署非常方便。同時(shí),通過(guò)源地址轉(zhuǎn)換技術(shù),使得服務(wù)器可以知道負(fù)載均衡設(shè)備的后端IP地址,這樣即使服務(wù)器的默認(rèn)路由不指向負(fù)載均衡設(shè)備,返回的數(shù)據(jù)包也可以經(jīng)非默認(rèn)路由回到負(fù)載均衡設(shè)備,由此可以實(shí)現(xiàn)負(fù)載均衡設(shè)備和服務(wù)器的跨網(wǎng)段部署,提高靈活性,且在某個(gè)服務(wù)器因異常無(wú)法提供服務(wù)時(shí),可以迅速部署另一個(gè)服務(wù)器來(lái)提供服務(wù),增加安全性。
[0014]為達(dá)到上述目的,根據(jù)本發(fā)明第三方面的實(shí)施例提出一種負(fù)載均衡設(shè)備,包括:接收模塊,用于通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包;會(huì)話建立模塊,用于根據(jù)負(fù)載均衡策略為所述客戶端選擇對(duì)應(yīng)的服務(wù)器并建立所述客戶端和所述服務(wù)器之間的會(huì)話;插入模塊,用于將所述會(huì)話插入至第一哈希表和第二哈希表中,其中所述第一哈希表包括所述虛擬IP地址和/或虛擬端口號(hào)與所述客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,所述第二哈希表包括所述后端IP地址和/或端口號(hào)與所述服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系;地址轉(zhuǎn)換模塊,用于對(duì)所述UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換;以及發(fā)送模塊,用于將所述UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器。
[0015]根據(jù)本發(fā)明實(shí)施例的負(fù)載均衡設(shè)備,通過(guò)配置虛擬IP,使得添加刪除虛擬IP時(shí)僅在負(fù)載均衡設(shè)備上操作即可,不用對(duì)所有服務(wù)器進(jìn)行操作,對(duì)于集群部署非常方便。同時(shí),通過(guò)源地址轉(zhuǎn)換技術(shù),使得服務(wù)器可以知道負(fù)載均衡設(shè)備的后端IP地址,這樣即使服務(wù)器的默認(rèn)路由不指向負(fù)載均衡設(shè)備,返回的數(shù)據(jù)包也可以經(jīng)非默認(rèn)路由回到負(fù)載均衡設(shè)備,由此可以實(shí)現(xiàn)負(fù)載均衡設(shè)備和服務(wù)器的跨網(wǎng)段部署,提高靈活性,且在某個(gè)服務(wù)器因異常無(wú)法提供服務(wù)時(shí),可以迅速部署另一個(gè)服務(wù)器來(lái)提供服務(wù),增加安全性。
[0016]為達(dá)到上述目的,本發(fā)明第四方面的實(shí)施例提出一種服務(wù)器,包括:接收模塊,用于接收負(fù)載均衡設(shè)備發(fā)送的UDP請(qǐng)求包,其中所述UDP請(qǐng)求包的協(xié)議號(hào)為特殊協(xié)議號(hào),且所述UDP請(qǐng)求包中包括客戶端的IP地址和/或端口號(hào);解析模塊,用于解析所述UDP請(qǐng)求包以獲取所述客戶端的IP地址和/或端口號(hào);會(huì)話建立模塊,用于根據(jù)所述客戶端的IP地址和/或端口號(hào)以及所述服務(wù)器的IP地址和/或端口號(hào)建立會(huì)話;以及恢復(fù)模塊,用于恢復(fù)所述UDP請(qǐng)求包的協(xié)議號(hào)。
[0017]通過(guò)本發(fā)明實(shí)施例的服務(wù)器,可以獲取到客戶端的真實(shí)地址,從而可以開(kāi)展地理位置相關(guān)的服務(wù)。
[0018]本發(fā)明的附加方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說(shuō)明】
[0019]本發(fā)明的上述和/或附加的方面和優(yōu)點(diǎn)從結(jié)合下面附圖對(duì)實(shí)施例的描述中將變得明顯和容易理解,其中:
[0020]圖1是本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡方法的流程圖;
[0021]圖2是本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡方法的流程圖;
[0022]圖3是本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡系統(tǒng)中UDP數(shù)據(jù)包傳遞示意圖;
[0023]圖4是本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡方法的流程圖;
[0024]圖5a和圖5b是本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡方法的流程圖;
[0025]圖6是本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡系統(tǒng)中UDP數(shù)據(jù)包傳遞示意圖;
[0026]圖7是本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡系統(tǒng)的結(jié)構(gòu)框圖;
[0027]圖8是本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡設(shè)備的結(jié)構(gòu)框圖;
[0028]圖9是本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡設(shè)備的結(jié)構(gòu)框圖;
[0029]圖10是本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡設(shè)備的結(jié)構(gòu)框圖;
[0030]圖11是本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡設(shè)備的結(jié)構(gòu)框圖;以及
[0031]圖12是本發(fā)明一個(gè)實(shí)施例的服務(wù)器的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0032]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對(duì)本發(fā)明的限制。
[0033]在本發(fā)明的描述中,需要理解的是,術(shù)語(yǔ)“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。在本發(fā)明的描述中,需要說(shuō)明的是,除非另有明確的規(guī)定和限定,術(shù)語(yǔ)“相連”、“連接”應(yīng)做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機(jī)械連接,也可以是電連接;可以是直接相連,也可以通過(guò)中間媒介間接相連。對(duì)于本領(lǐng)域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語(yǔ)在本發(fā)明中的具體含義。此外,在本發(fā)明的描述中,除非另有說(shuō)明,“多個(gè)”的含義是兩個(gè)或兩個(gè)以上。
[0034]流程圖中或在此以其他方式描述的任何過(guò)程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過(guò)程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來(lái)執(zhí)行功能,這應(yīng)被本發(fā)明的實(shí)施例所屬【技術(shù)領(lǐng)域】的技術(shù)人員所理解。[0035]下面結(jié)合附圖詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的UDP負(fù)載均衡方法。
[0036]圖1為本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡方法的流程圖。如圖1所示,該方法包括以下步驟:
[0037]步驟S101,負(fù)載均衡設(shè)備通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包。
[0038]在本發(fā)明中,負(fù)載均衡設(shè)備的前端暴露在外網(wǎng),使用一個(gè)虛擬IP地址(VIP)對(duì)外提供服務(wù);后端在內(nèi)網(wǎng),使用后端的IP地址(BIP)。當(dāng)某個(gè)客戶端第一次訪問(wèn)該服務(wù)時(shí),數(shù)據(jù)包目的地址為虛擬IP地址/虛擬端口號(hào)(VIP/VP0RT),源地址為客戶端IP/客戶端端口號(hào)(CIP/CP0RT)。
[0039]步驟S102,負(fù)載均衡設(shè)備根據(jù)負(fù)載均衡策略為客戶端選擇對(duì)應(yīng)的服務(wù)器。
[0040]具體地,負(fù)載均衡設(shè)備可采用本領(lǐng)域技術(shù)人員所熟知的負(fù)載均衡策略為客戶端選擇一個(gè)后端的真實(shí)服務(wù)器(Real Server, RS)以及一個(gè)合適的端口(RPORT)。
[0041]步驟S103,負(fù)載均衡設(shè)備建立客戶端和服務(wù)器之間的會(huì)話,并分別將會(huì)話插入至第一哈希表和第二哈希表中,其中,第一哈希表包括虛擬IP地址和/或虛擬端口號(hào)與客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,第二哈希表包括后端IP地址和/或端口號(hào)與服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系。
[0042]建立會(huì)話之前,負(fù)載均衡設(shè)備需要選擇一個(gè)后端IP/后端端口(BIP/BP0RT),選擇的原則是要求BIP/BP0RT與RIP/RP0RT的四元組組合的會(huì)話在負(fù)載均衡設(shè)備的會(huì)話表中不存在。
[0043]此外需要說(shuō)明的是,由于UDP協(xié)議沒(méi)有連接的概念,無(wú)法判斷客戶端與服務(wù)器通信是否結(jié)束,因此會(huì)話的回收必須依靠超時(shí)來(lái)控制。也就是說(shuō),在客戶端與服務(wù)器之間的會(huì)話超過(guò)預(yù)設(shè)超時(shí)時(shí)間后關(guān)閉該會(huì)話。一般情況下,對(duì)于請(qǐng)求/響應(yīng)型的服務(wù),超時(shí)時(shí)間設(shè)為秒級(jí)即可,其他類型的服務(wù)可以根據(jù)需要進(jìn)行超時(shí)時(shí)間的設(shè)定。
[0044]步驟S104,負(fù)載均衡設(shè)備對(duì)UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器。
[0045]具體地,負(fù)載均衡設(shè)備可以采用本領(lǐng)域技術(shù)人員所熟知的地址轉(zhuǎn)換技術(shù)對(duì)UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,轉(zhuǎn)換后,數(shù)據(jù)包的源IP/源端口從CIP/CP0RT改為BIP/BPORT,目的IP/目的端口從VIP/VP0RT改為RIP/RP0RT,然后可發(fā)送至后端服務(wù)器。
[0046]應(yīng)理解,后續(xù)來(lái)自相同客戶端相同端口的數(shù)據(jù)包到達(dá)負(fù)載均衡設(shè)備時(shí),負(fù)載均衡設(shè)備會(huì)根據(jù)VIP/VP0RT/CIP/CP0RT四元組查找會(huì)話,找到后即直接進(jìn)行源地址和目的地址轉(zhuǎn)換操作,發(fā)往服務(wù)器即可。
[0047]根據(jù)本發(fā)明實(shí)施例的UDP負(fù)載均衡方法,通過(guò)在負(fù)載均衡設(shè)備上配置虛擬IP,月艮務(wù)器完全不用知道虛擬IP的存在,需要添加刪除虛擬IP時(shí)僅在負(fù)載均衡設(shè)備上操作即可,不用對(duì)所有服務(wù)器進(jìn)行操作,對(duì)于集群部署非常方便。同時(shí),通過(guò)源地址轉(zhuǎn)換技術(shù),使得服務(wù)器可以知道負(fù)載均衡設(shè)備的后端IP地址,這樣即使服務(wù)器的默認(rèn)路由不指向負(fù)載均衡設(shè)備,返回的數(shù)據(jù)包也可以經(jīng)非默認(rèn)路由回到負(fù)載均衡設(shè)備,由此可以實(shí)現(xiàn)負(fù)載均衡設(shè)備和服務(wù)器的跨網(wǎng)段部署,提高靈活性,且在某個(gè)服務(wù)器因異常無(wú)法提供服務(wù)時(shí),可以迅速部署另一個(gè)服務(wù)器來(lái)提供服務(wù),增加安全性。
[0048]圖2為本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡方法的流程圖。圖3為本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡系統(tǒng)中數(shù)據(jù)包傳遞示意圖。如圖2和圖3所示,該方法包括以下步驟:[0049]步驟S201,負(fù)載均衡設(shè)備通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包,負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址。
[0050]步驟S202,負(fù)載均衡設(shè)備根據(jù)負(fù)載均衡策略為客戶端選擇對(duì)應(yīng)的服務(wù)器。
[0051]步驟S203,負(fù)載均衡設(shè)備建立服務(wù)器和客戶端之間的會(huì)話,并分別將會(huì)話插入至第一哈希表和第二哈希表中,其中第一哈希表包括虛擬IP地址和/或虛擬端口號(hào)與客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,第二哈希表包括后端IP地址和/或端口號(hào)與服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系。
[0052]步驟S204,負(fù)載均衡設(shè)備對(duì)UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器。
[0053]上述步驟S201至步驟S204的具體實(shí)現(xiàn)過(guò)程可與上述步驟SlOl至步驟S104相同,此處不再詳細(xì)描述。
[0054]步驟S205,負(fù)載均衡設(shè)備接收服務(wù)器根據(jù)Μ)Ρ請(qǐng)求包返回的UDP響應(yīng)包。
[0055]服務(wù)器收到UDP請(qǐng)求包后進(jìn)行處理返回的UDP響應(yīng)包的源/目的地址分別是RIP/RPORT和BIP/BP0RT。由于BIP在私有環(huán)境中是唯一的,因此返回的UDP響應(yīng)包可以通過(guò)非默認(rèn)路由回到負(fù)載均衡設(shè)備。
[0056]步驟S206,負(fù)載均衡設(shè)備根據(jù)UDP響應(yīng)包確定UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話。
[0057]步驟S207,負(fù)載均衡設(shè)備根據(jù)Μ)Ρ響應(yīng)包所對(duì)應(yīng)的會(huì)話查找第一哈希表和第二哈希表以確定UDP響應(yīng)包所對(duì)應(yīng)的客戶端的IP地址和/或端口號(hào)。
[0058]步驟S208,負(fù)載均衡設(shè)備根據(jù)客戶端的IP地址和/或端口號(hào)對(duì)UDP響應(yīng)包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將UDP響應(yīng)包發(fā)送至客戶端。
[0059]負(fù)載均衡設(shè)備收到UDP響應(yīng)包后根據(jù)RIP/RP0RT/BIP/BP0RT在內(nèi)部會(huì)話表中查找會(huì)話,找到后將響應(yīng)包的源IP/端口從RIP/RP0RT替換為VIP/VP0RT,目的IP/端口從BIP/BPORT替換為CIP/VP0RT,然后從對(duì)外端口發(fā)送至客戶端。
[0060]由此,服務(wù)器返回的數(shù)據(jù)包可以不經(jīng)默認(rèn)路由回到負(fù)載均衡設(shè)備,使得負(fù)載均衡設(shè)備能夠完整追蹤連接狀態(tài),從而有利于數(shù)據(jù)流的監(jiān)控。
[0061]在上面的實(shí)施例中,服務(wù)器不需要獲取客戶端的真實(shí)IP,但是在其他開(kāi)展地理位置相關(guān)的服務(wù)等的實(shí)施例中,服務(wù)器可能需要獲取客戶端的真實(shí)IP。因此,本發(fā)明還提出另一種UDP負(fù)載均衡方法。
[0062]圖4為本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡方法的流程圖。如圖4所示,該方法包括以下步驟:
[0063]步驟S301,負(fù)載均衡設(shè)備通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包。負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址。
[0064]步驟S302,負(fù)載均衡設(shè)備根據(jù)負(fù)載均衡策略為客戶端選擇對(duì)應(yīng)的服務(wù)器。
[0065]步驟S303,負(fù)載均衡設(shè)備建立客戶端和服務(wù)器之間的會(huì)話,并分別將會(huì)話插入至第一哈希表和第二哈希表中,其中,第一哈希表包括虛擬IP地址和/或虛擬端口號(hào)與客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,第二哈希表包括后端IP地址和/或端口號(hào)與服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系。
[0066]步驟S304,負(fù)載均衡設(shè)備對(duì)UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換。
[0067]上述步驟S301至步驟S304的具體實(shí)現(xiàn)過(guò)程與上述步驟SlOl至步驟S104相同,此處不再詳細(xì)描述。
[0068]步驟S305,負(fù)載均衡設(shè)備將UDP請(qǐng)求包的協(xié)議號(hào)修改為特殊協(xié)議號(hào),并在UDP請(qǐng)求包中插入客戶端的IP地址和/或端口號(hào)。
[0069]在本發(fā)明的一個(gè)實(shí)施例中,將UDP請(qǐng)求包IP首部協(xié)議號(hào)修改為一個(gè)未被使用的協(xié)議號(hào),例如從m)P的17修改為193,另外在IP首部和UDP首部之間插入如下表1所示的一個(gè)8字節(jié)的字段,攜帶客戶端的IP地址和/或端口號(hào)(CIP/CP0RT)信息。其中包括I字節(jié)的選項(xiàng)編號(hào)(31 ),I字節(jié)的選項(xiàng)長(zhǎng)度(8 ),2字節(jié)的客戶端端口( CPORT )和4字節(jié)的客戶端IP(CIP)。應(yīng)理解,這僅為示意性的例子,并不用于限制本發(fā)明,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要設(shè)置字段的長(zhǎng)度,而且在字段中可以只插入客戶端的地址,或者只插入客戶端的端口號(hào),或者同時(shí)插入客戶端的地址和端口號(hào)。
[0070]
I字節(jié) I字節(jié)2字節(jié)4字節(jié)
318CPORTOP
[0071]表1插入字段
[0072]此外,還應(yīng)理解,將插入的字段包含在IP選項(xiàng)中將其變成一個(gè)非標(biāo)準(zhǔn)的IP選項(xiàng),可以避免刪除該插入字段時(shí)需要將后面的數(shù)據(jù)全部向前移動(dòng)(內(nèi)存拷貝)而導(dǎo)致的效率降低,同時(shí)也不會(huì)影響內(nèi)核對(duì)數(shù)據(jù)包的處理,因?yàn)閮?nèi)核遇到不認(rèn)識(shí)的IP選項(xiàng)會(huì)根據(jù)字段長(zhǎng)度自動(dòng)跳過(guò)。
[0073]步驟S306,負(fù)載均衡設(shè)備將UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器。
[0074]應(yīng)理解,后續(xù)來(lái)自相同 客戶端相同端口的請(qǐng)求包到達(dá)負(fù)載均衡設(shè)備時(shí),負(fù)載均衡設(shè)備會(huì)根據(jù)IP/VP0RT/CIP/CP0RT四元組查找會(huì)話,找到后即直接做地址轉(zhuǎn)換操作并插入自定義首部,發(fā)往服務(wù)器即可。
[0075]根據(jù)本發(fā)明實(shí)施例的UDP負(fù)載均衡方法,通過(guò)將客戶端的地址和/或端口號(hào)插入到UDP請(qǐng)求包中,使得服務(wù)器可以獲取客戶端的真實(shí)IP,從而可以提供基于地理位置的相關(guān)服務(wù)器等。而且,由于服務(wù)器知道客戶端的真實(shí)IP地址,可以通知客戶端對(duì)地址轉(zhuǎn)換進(jìn)行穿透,同時(shí)服務(wù)器可以使用負(fù)載均衡設(shè)備而不需直接暴露在外網(wǎng),減少了受攻擊的風(fēng)險(xiǎn),提聞了安全性。
[0076]圖5a和圖5b為本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡方法的流程圖。圖6為本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡系統(tǒng)中數(shù)據(jù)包傳遞過(guò)程示意圖。如圖5和圖6所示,該方法包括下述步驟:
[0077]步驟S401,負(fù)載均衡設(shè)備通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包。負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址。
[0078]步驟S402,負(fù)載均衡設(shè)備根據(jù)負(fù)載均衡策略為客戶端選擇對(duì)應(yīng)的服務(wù)器。
[0079]步驟S403,負(fù)載均衡設(shè)備建立客戶端和服務(wù)器之間的會(huì)話,并分別將會(huì)話插入至第一哈希表和第二哈希表中,其中,第一哈希表包括虛擬IP地址和/或虛擬端口號(hào)與客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,第二哈希表包括后端IP地址和/或端口號(hào)與服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系。
[0080]步驟S404,負(fù)載均衡設(shè)備對(duì)UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換。[0081]步驟S405,負(fù)載均衡設(shè)備將UDP請(qǐng)求包的協(xié)議號(hào)修改為特殊協(xié)議號(hào),并在UDP請(qǐng)求包中插入客戶端的IP地址和/或端口號(hào)。
[0082]步驟S406,負(fù)載均衡設(shè)備將UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器。
[0083]上述步驟S401至步驟S406的具體實(shí)現(xiàn)過(guò)程與上述步驟S 301至步驟S 306相同,此處不再詳細(xì)描述。
[0084]步驟S407,服務(wù)器接收UDP請(qǐng)求包,并從UDP請(qǐng)求包中獲取客戶端的IP地址和/
或端口號(hào)。
[0085]步驟S408,服務(wù)器根據(jù)客戶端的IP地址和/或端口號(hào)以及服務(wù)器的IP地址和/
或端口號(hào)建立會(huì)話。
[0086]步驟S409,服務(wù)器恢復(fù)UDP請(qǐng)求包的協(xié)議號(hào)。
[0087]具體地,根據(jù)本發(fā)明的一個(gè)實(shí)施例,服務(wù)器將UDP請(qǐng)求包的IP首部長(zhǎng)度字段加8,使得IP首部長(zhǎng)度覆蓋插入的8字節(jié)信息,最后將IP首部協(xié)議字段改回原首部協(xié)議號(hào)。
[0088]步驟S410,負(fù)載均衡設(shè)備接收服務(wù)器根據(jù)處理后的UDP請(qǐng)求包返回的UDP響應(yīng)包。
[0089]生成的UDP響應(yīng)包的源/目的IP分別為RIP和CIP。UDP響應(yīng)包到到達(dá)服務(wù)器內(nèi)核后由內(nèi)核模塊查找轉(zhuǎn)換表,將CIP/CP0RT替換回BIP/BP0RT,然后發(fā)送給負(fù)載均衡設(shè)備。
[0090]如上所述,在服務(wù)器的內(nèi)核中會(huì)維護(hù)一個(gè)轉(zhuǎn)換表,在帶有插入字段的請(qǐng)求包進(jìn)入時(shí)會(huì)建立一個(gè)表項(xiàng),在m)P響應(yīng)包外出時(shí)會(huì)查詢?cè)摫?。?dāng)不斷有新的客戶端訪問(wèn)時(shí),該表會(huì)越來(lái)越大,占用大量的內(nèi)存。為了防止這種情況發(fā)生,需要對(duì)每個(gè)表項(xiàng)設(shè)置一個(gè)超時(shí)時(shí)間,當(dāng)一段時(shí)間沒(méi)有用到該表項(xiàng)時(shí)即從轉(zhuǎn)換表中將該項(xiàng)刪除。該超時(shí)時(shí)間必須小于上述的負(fù)載均衡設(shè)備上的會(huì)話超時(shí)時(shí)間,否則從服務(wù)器返回的響應(yīng)包可能因?yàn)樨?fù)載均衡設(shè)備上的會(huì)話已刪除而無(wú)法返回從而被負(fù)載均衡設(shè)備丟棄。
[0091]步驟S411,負(fù)載均衡設(shè)備根據(jù)UDP響應(yīng)包確定UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話。
[0092]步驟S412,負(fù)載均衡設(shè)備根據(jù)Μ)Ρ響應(yīng)包所對(duì)應(yīng)的會(huì)話查找第一哈希表和第二哈希表以確定UDP響應(yīng)包所對(duì)應(yīng)的客戶端的IP地址和/或端口號(hào)。
[0093]步驟S413,負(fù)載均衡設(shè)備根據(jù)客戶端的IP地址和/或端口號(hào)對(duì)UDP響應(yīng)包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將UDP響應(yīng)包發(fā)送至客戶端。
[0094]負(fù)載均衡設(shè)備收到UDP響應(yīng)包后根據(jù)RIP/RP0RT/BIP/BP0RT在內(nèi)部會(huì)話表中查找會(huì)話,找到后將響應(yīng)包的源IP/端口從RIP/RP0RT替換為VIP/VP0RT,目的IP/端口從BIP/BPORT替換為CIP/VP0RT,然后從對(duì)外端口發(fā)送至客戶端。
[0095]根據(jù)本發(fā)明實(shí)施例的負(fù)載均衡方法,至少具有以下有益效果:
[0096]1、后端服務(wù)器和負(fù)載均衡設(shè)備部署在不同的網(wǎng)段,靈活性高。
[0097]2、后端服務(wù)器的默認(rèn)網(wǎng)關(guān)不需指向負(fù)載均衡設(shè)備,即返回的數(shù)據(jù)包可以不經(jīng)默認(rèn)路由回到負(fù)載均衡設(shè)備。
[0098]3、兩個(gè)方向的數(shù)據(jù)流都經(jīng)過(guò)負(fù)載均衡設(shè)備,實(shí)現(xiàn)完整追蹤連接狀態(tài),有利于數(shù)據(jù)流的監(jiān)控。
[0099]4、只需在負(fù)載均衡設(shè)備上配置虛擬IP即可,添加刪除虛擬IP對(duì)于服務(wù)器完全透明,有利于集群部署。
[0100]5、服務(wù)器可以獲取到客戶端的真實(shí)地址,有利于開(kāi)展地理位置相關(guān)的服務(wù)。
[0101]6、服務(wù)器可以獲取到客戶端的真實(shí)地址,可以通知客戶端對(duì)地址轉(zhuǎn)換進(jìn)行穿透,同時(shí)服務(wù)器可以使用負(fù)載均衡設(shè)備而無(wú)需直接暴露在外網(wǎng),減少受攻擊的風(fēng)險(xiǎn),增加安全性。
[0102]為實(shí)現(xiàn)上述實(shí)施例,本發(fā)明還提出一種UDP負(fù)載均衡系統(tǒng)。
[0103]圖7為本發(fā)明一個(gè)實(shí)施例的UDP負(fù)載均衡系統(tǒng)的結(jié)構(gòu)框圖。如圖7所不,該系統(tǒng)包括:客戶端1、負(fù)載均衡設(shè)備2和后端服務(wù)器3。負(fù)載均衡設(shè)備2相對(duì)于內(nèi)網(wǎng)和外網(wǎng)分別具有虛擬IP地址和后端IP地址。
[0104]客戶端I用于向負(fù)載均衡設(shè)備2發(fā)送UDP請(qǐng)求包。負(fù)載均衡設(shè)備2用于通過(guò)虛擬IP地址接收客戶端I發(fā)送的UDP請(qǐng)求包,根據(jù)負(fù)載均衡策略為客戶端I選擇對(duì)應(yīng)的服務(wù)器3并建立客戶端I和服務(wù)器3之間的會(huì)話,并分別將會(huì)話插入至第一哈希表和第二哈希表中,以及對(duì)UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器3,其中第一哈希表包括虛擬IP地址和/或虛擬端口號(hào)與客戶端I的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,第二哈希表包括后端IP地址和/或端口號(hào)與服務(wù)器3的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系。服務(wù)器3用于接收負(fù)載均衡設(shè)備2發(fā)送的UDP請(qǐng)求包。
[0105]根據(jù)本發(fā)明實(shí)施例的UDP負(fù)載均衡系統(tǒng),通過(guò)在負(fù)載均衡設(shè)備上配置虛擬IP,月艮務(wù)器完全不用知道虛擬IP的存在,需要添加刪除虛擬IP時(shí)僅在負(fù)載均衡設(shè)備上操作即可,不用對(duì)所有服務(wù)器進(jìn)行操作,對(duì)于集群部署非常方便。同時(shí),通過(guò)源地址轉(zhuǎn)換技術(shù),使得服務(wù)器可以知道負(fù)載均衡設(shè)備的后端IP地址,這樣即使服務(wù)器的默認(rèn)路由不指向負(fù)載均衡設(shè)備,返回的數(shù)據(jù)包也可以經(jīng)非默認(rèn)路由回到負(fù)載均衡設(shè)備,由此可以實(shí)現(xiàn)負(fù)載均衡設(shè)備和服務(wù)器的跨網(wǎng)段部署,提高靈活性,且在某個(gè)服務(wù)器因異常無(wú)法提供服務(wù)時(shí),可以迅速部署另一個(gè)服務(wù)器來(lái)提供服務(wù),增加安全性。
[0106]在本發(fā)明的一個(gè)實(shí)施例中,服務(wù)器3還用于根據(jù)接收到的UDP請(qǐng)求包返回相應(yīng)的UDP響應(yīng)包。負(fù)載均衡設(shè)備2還用于接收服務(wù)器3的UDP響應(yīng)包,根據(jù)UDP響應(yīng)包確定UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話,并根據(jù)Μ)Ρ響應(yīng)包所對(duì)應(yīng)的會(huì)話查找第一哈希表和第二哈希表以確定UDP響應(yīng)包所對(duì)應(yīng)的客戶端I的IP地址和/或端口號(hào),以及根據(jù)客戶端I的IP地址和/或端口號(hào)對(duì)UDP響應(yīng)包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將UDP響應(yīng)包發(fā)送至客戶端I。由此,服務(wù)器返回的數(shù)據(jù)包可以不經(jīng)默認(rèn)路由回到負(fù)載均衡設(shè)備,使得負(fù)載均衡設(shè)備能夠完整追蹤連接狀態(tài),從而有利于數(shù)據(jù)流的監(jiān)控。
[0107]在本發(fā)明的一個(gè)實(shí)施例中,負(fù)載均衡設(shè)備2還用于在客戶端I和服務(wù)器3之間的會(huì)話超過(guò)預(yù)設(shè)超時(shí)時(shí)間后關(guān)閉會(huì)話。
[0108]在本發(fā)明的另一個(gè)實(shí)施例中,負(fù)載均衡設(shè)備2還用于在將UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器3之前,將UDP請(qǐng)求包的協(xié)議號(hào)修改為特殊協(xié)議號(hào),并在UDP請(qǐng)求包中插入客戶端
I的IP地址和/或端口號(hào)。服務(wù)器3還用于在接收到UDP請(qǐng)求包之后,從UDP請(qǐng)求包中獲取客戶端I的IP地址和/或端口號(hào),并根據(jù)客戶端I的IP地址和/或端口號(hào)以及服務(wù)器3的IP地址和/或端口號(hào)建立會(huì)話,以及恢復(fù)UDP請(qǐng)求包的協(xié)議號(hào)。由此,服務(wù)器可以獲取客戶端的真實(shí)IP,從而可以提供基于地理位置的相關(guān)服務(wù)器等。而且,由于服務(wù)器知道客戶端的真實(shí)IP地址,可以通知客戶端對(duì)地址轉(zhuǎn)換進(jìn)行穿透,同時(shí)服務(wù)器可以使用負(fù)載均衡設(shè)備而不需直接暴露在外網(wǎng),減少了受攻擊的風(fēng)險(xiǎn),提高了安全性。
[0109]圖8為本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡設(shè)備的結(jié)構(gòu)框圖。如圖8所示,該負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址,且該負(fù)載均衡設(shè)備包括接收模塊21、會(huì)話建立模塊22、插入模塊23、地址轉(zhuǎn)換模塊24和發(fā)送模塊25。
[0110]接收模塊21用于通過(guò)虛擬IP地址接收客戶端I發(fā)送的UDP請(qǐng)求包。會(huì)話建立模塊22用于根據(jù)負(fù)載均衡策略為客戶端I選擇對(duì)應(yīng)的服務(wù)器3并建立客戶端I和服務(wù)器3之間的會(huì)話。插入模塊23用于將會(huì)話插入至第一哈希表和第二哈希表中,其中第一哈希表包括虛擬IP地址和/或虛擬端口號(hào)與客戶端I的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,第二哈希表包括后端IP地址和/或端口號(hào)與服務(wù)器3的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系。地址轉(zhuǎn)換模塊24用于對(duì)UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換。發(fā)送模塊25用于將UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器。
[0111]根據(jù)本發(fā)明實(shí)施例的負(fù)載均衡設(shè)備,通過(guò)配置虛擬IP,使得添加刪除虛擬IP時(shí)僅在負(fù)載均衡設(shè)備上操作即可,不用對(duì)所有服務(wù)器進(jìn)行操作,對(duì)于集群部署非常方便。同時(shí),通過(guò)源地址轉(zhuǎn)換技術(shù),使得服務(wù)器可以知道負(fù)載均衡設(shè)備的后端IP地址,這樣即使服務(wù)器的默認(rèn)路由不指向負(fù)載均衡設(shè)備,返回的數(shù)據(jù)包也可以經(jīng)非默認(rèn)路由回到負(fù)載均衡設(shè)備,由此可以實(shí)現(xiàn)負(fù)載均衡設(shè)備和服務(wù)器的跨網(wǎng)段部署,提高靈活性,且在某個(gè)服務(wù)器因異常無(wú)法提供服務(wù)時(shí),可以迅速部署另一個(gè)服務(wù)器來(lái)提供服務(wù),增加安全性。
[0112]圖9為本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡設(shè)備的結(jié)構(gòu)構(gòu)圖。如圖9所示,在圖8所示的實(shí)施例的基礎(chǔ)上,該負(fù)載均衡設(shè)備還包括地址確定模塊26。
[0113]首先,發(fā)送模塊21接收服務(wù)器3根據(jù)UDP請(qǐng)求包返回的UDP響應(yīng)包。
[0114]然后,地址確定模塊26根據(jù)UDP響應(yīng)包確定UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話,并根據(jù)UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話查找第一哈希表和第二哈希表以確定m)P響應(yīng)包所對(duì)應(yīng)的客戶端的IP地址和/或端口號(hào)。
[0115]接著,地址轉(zhuǎn)換模塊24根據(jù)客戶端的IP地址和/或端口號(hào)對(duì)UDP響應(yīng)包進(jìn)行源地址和目的地址轉(zhuǎn)換。
[0116]最后,發(fā)送模塊25將UDP響應(yīng)包發(fā)送至客戶端I。
[0117]由此,服務(wù)器返回的數(shù)據(jù)包可以不經(jīng)默認(rèn)路由回到負(fù)載均衡設(shè)備,使得負(fù)載均衡設(shè)備能夠完整追蹤連接狀態(tài),從而有利于數(shù)據(jù)流的監(jiān)控。
[0118]圖10為本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡設(shè)備的結(jié)構(gòu)框圖。如圖10所示,在圖9所示的實(shí)施例的基礎(chǔ)上,該負(fù)載均衡設(shè)備2還包括超時(shí)關(guān)閉模塊27。超時(shí)關(guān)閉模塊27用于在客戶端I和服務(wù)器3之間的會(huì)話超過(guò)預(yù)設(shè)超時(shí)時(shí)間之后關(guān)閉會(huì)話。
[0119]在本發(fā)明的一個(gè)實(shí)施例中,地址確定模塊26為可選的。
[0120]圖11為本發(fā)明一個(gè)實(shí)施例的負(fù)載均衡設(shè)備的結(jié)構(gòu)框圖。如圖11所示,在圖10所示的實(shí)施例的基礎(chǔ)上,該負(fù)載均衡設(shè)備還包括修改模塊28。
[0121]修改模塊28用于在發(fā)送模塊25將UDP請(qǐng)求包發(fā)送至服務(wù)器之前,將UDP請(qǐng)求包的協(xié)議號(hào)修改為特殊協(xié)議號(hào),并在UDP請(qǐng)求包中插入客戶端I的IP地址和/或端口號(hào)。由此,服務(wù)器可以獲得客戶端的真實(shí)IP地址,由此可以開(kāi)展地理位置相關(guān)的服務(wù)等。
[0122]在本發(fā)明的一個(gè)實(shí)施例中,地址確定模塊26和超時(shí)關(guān)閉模塊17均為可選的。
[0123]本發(fā)明另一個(gè)方面還提出一種服務(wù)器。
[0124]圖12為本發(fā)明一個(gè)實(shí)施例的服務(wù)器的結(jié)構(gòu)框圖。如圖12所示,該服務(wù)器包括接收模塊31、解析模塊32、會(huì)話建立模塊33和恢復(fù)模塊34。
[0125]接收模塊31用于接收負(fù)載均衡設(shè)備2發(fā)送的UDP請(qǐng)求包,其中UDP請(qǐng)求包的協(xié)議號(hào)為特殊協(xié)議號(hào),且UDP請(qǐng)求包中包括客戶端I的IP地址和/或端口號(hào)。解析模塊32用于解析UDP請(qǐng)求包以獲取客戶端I的IP地址和/或端口號(hào)。會(huì)話建立模塊33用于根據(jù)客戶端I的IP地址和/或端口號(hào)以及服務(wù)器3的IP地址和/或端口號(hào)建立會(huì)話。恢復(fù)模塊34用于恢復(fù)UDP請(qǐng)求包的協(xié)議號(hào)。
[0126]根據(jù)本發(fā)明實(shí)施例的服務(wù)器,可以獲取到客戶端的真實(shí)地址,從而可以開(kāi)展地理位置相關(guān)的服務(wù)。
[0127]上述系統(tǒng)和裝置中各個(gè)模塊的工作過(guò)程可參見(jiàn)方法實(shí)施例的描述,此處不再詳細(xì)描述。
[0128]應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門(mén)電路的離散邏輯電路,具有合適的組合邏輯門(mén)電路的專用集成電路,可編程門(mén)陣列(PGA),現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)等。
[0129]在本說(shuō)明書(shū)的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書(shū)中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。
[0130]盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對(duì)這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。
【權(quán)利要求】
1.一種用戶數(shù)據(jù)包協(xié)議UDP負(fù)載均衡方法,其特征在于,包括以下步驟: 負(fù)載均衡設(shè)備通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包,所述負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址; 所述負(fù)載均衡設(shè)備根據(jù)負(fù)載均衡策略為所述客戶端選擇對(duì)應(yīng)的服務(wù)器; 所述負(fù)載均衡設(shè)備建立所述客戶端和所述服務(wù)器之間的會(huì)話,并分別將所述會(huì)話插入至第一哈希表和第二哈希表中,其中,所述第一哈希表包括所述虛擬IP地址和/或虛擬端口號(hào)與所述客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,所述第二哈希表包括所述后端IP地址和/或端口號(hào)與所述服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系;以及 所述負(fù)載均衡設(shè)備對(duì)所述UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將所述UDP請(qǐng)求包發(fā)送至所述對(duì)應(yīng)的服務(wù)器。
2.如權(quán)利要求1所述的UDP負(fù)載均衡方法,其特征在于,還包括: 所述負(fù)載均衡設(shè)備接收所述服務(wù)器根據(jù)所述UDP請(qǐng)求包返回的UDP響應(yīng)包; 所述負(fù)載均衡設(shè)備根據(jù)所述m)P響應(yīng)包確定所述UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話; 所述負(fù)載均衡設(shè)備根據(jù)所述UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話查找所述第一哈希表和第二哈希表以確定所述UDP響應(yīng)包所對(duì)應(yīng)的客戶端的IP地址和/或端口號(hào);以及 所述負(fù)載均衡設(shè)備根據(jù)所述客戶端的IP地址和/或端口號(hào)對(duì)所述UDP響應(yīng)包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將所述UDP響應(yīng)包發(fā)送至所述客戶端。
3.如權(quán)利要求1所述的UDP負(fù)載均衡方法,其特征在于,在建立所述會(huì)話之后,還包括: 所述負(fù)載均衡設(shè)備在所述服務(wù)器和所述客戶端之間的會(huì)話超過(guò)預(yù)設(shè)超時(shí)時(shí)間之后關(guān)閉所述會(huì)話。
4.如權(quán)利要求1所述的UDP負(fù)載均衡方法,其特征在于,在將所述UDP請(qǐng)求包發(fā)送至所述對(duì)應(yīng)的服務(wù)器之前,還包括: 所述負(fù)載均衡設(shè)備將所述UDP請(qǐng)求包的協(xié)議號(hào)修改為特殊協(xié)議號(hào),并在所述UDP請(qǐng)求包中插入所述客戶端的IP地址和/或端口號(hào)。
5.如權(quán)利要求4所述的UDP負(fù)載均衡方法,其特征在于,還包括: 所述服務(wù)器接收所述UDP請(qǐng)求包,并從所述UDP請(qǐng)求包中獲取所述客戶端的IP地址和/或端口號(hào); 所述服務(wù)器根據(jù)所述客戶端的IP地址和/或端口號(hào)以及所述服務(wù)器的IP地址和/或端口號(hào)建立會(huì)話; 所述服務(wù)器恢復(fù)所述UDP請(qǐng)求包的協(xié)議號(hào)。
6.一種UDP負(fù)載均衡系統(tǒng),其特征在于,包括客戶端、負(fù)載均衡設(shè)備和服務(wù)器,其中, 所述客戶端,用于向所述負(fù)載均衡設(shè)備發(fā)送UDP請(qǐng)求包; 所述負(fù)載均衡設(shè)備,用于通過(guò)虛擬IP地址接收所述客戶端發(fā)送的UDP請(qǐng)求包,根據(jù)負(fù)載均衡策略為所述客戶端選擇對(duì)應(yīng)的服務(wù)器并建立所述客戶端和所述服務(wù)器之間的會(huì)話,并分別將所述會(huì)話插入至第一哈希表和第二哈希表中,以及對(duì)所述UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將所述UDP請(qǐng)求包發(fā)送至所述對(duì)應(yīng)的服務(wù)器,其中所述負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址,所述第一哈希表包括所述虛擬IP地址和/或虛擬端口號(hào)與所述客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,所述第二哈希表包括后端IP地址和/或端口號(hào)與所述服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系; 所述服務(wù)器,用于接收所述負(fù)載均衡設(shè)備發(fā)送的UDP請(qǐng)求包。
7.如權(quán)利要求6所述的UDP負(fù)載均衡系統(tǒng),其特征在于,所述服務(wù)器還用于根據(jù)所述UDP請(qǐng)求包返回相應(yīng)的UDP響應(yīng)包。
8.如權(quán)利要求7所述的UDP負(fù)載均衡系統(tǒng),其特征在于,所述負(fù)載均衡設(shè)備還用于接收所述服務(wù)器m)P響應(yīng)包,根據(jù)所述UDP響應(yīng)包確定所述UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話,并根據(jù)所述UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話查找所述第一哈希表和第二哈希表以確定所述UDP響應(yīng)包所對(duì)應(yīng)的客戶端的IP地址和/或端口號(hào),以及根據(jù)所述客戶端的IP地址和/或端口號(hào)對(duì)所述UDP響應(yīng)包進(jìn)行源地址和目的地址轉(zhuǎn)換,并將所述UDP響應(yīng)包發(fā)送至所述客戶端。
9.如權(quán)利要求6所述的UDP負(fù)載均衡系統(tǒng),其特征在于,所述負(fù)載均衡設(shè)備還用于在所述客戶端和所述服務(wù)器之間的會(huì)話超過(guò)預(yù)設(shè)超時(shí)時(shí)間之后關(guān)閉所述會(huì)話。
10.如權(quán)利要求6所述的UDP負(fù)載均衡系統(tǒng),其特征在于,所述負(fù)載均衡設(shè)備還用于在將所述UDP請(qǐng)求包發(fā)送至所述對(duì)應(yīng)的服務(wù)器之前,將所述UDP請(qǐng)求包的協(xié)議號(hào)修改為特殊協(xié)議號(hào),并在所述UDP請(qǐng)求包中插入所述客戶端的IP地址和/或端口號(hào)。
11.如權(quán)利要求10所述的UDP負(fù)載均衡系統(tǒng),其特征在于,所述服務(wù)器還用于在接收所述UDP請(qǐng)求包之后,從所述UDP請(qǐng)求包中獲取所述客戶端的IP地址和/或端口號(hào),并根據(jù)所述客戶端的IP地址和/或端口號(hào)以及所述服務(wù)器的IP地址和/或端口號(hào)建立會(huì)話,以及恢復(fù)所述UDP請(qǐng)求包的協(xié)議號(hào)。`
12.—種負(fù)載均衡設(shè)備,其特征在于,所述負(fù)載均衡設(shè)備相對(duì)于外網(wǎng)和內(nèi)網(wǎng)分別具有虛擬IP地址和后端IP地址,且所述負(fù)載均衡設(shè)備包括: 接收模塊,用于通過(guò)虛擬IP地址接收客戶端發(fā)送的UDP請(qǐng)求包; 會(huì)話建立模塊,用于根據(jù)負(fù)載均衡策略為所述客戶端選擇對(duì)應(yīng)的服務(wù)器并建立所述客戶端和所述服務(wù)器之間的會(huì)話; 插入模塊,用于將所述會(huì)話插入至第一哈希表和第二哈希表中,其中所述第一哈希表包括所述虛擬IP地址和/或虛擬端口號(hào)與所述客戶端的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系,所述第二哈希表包括所述后端IP地址和/或端口號(hào)與所述服務(wù)器的IP地址和/或端口號(hào)之間的對(duì)應(yīng)關(guān)系; 地址轉(zhuǎn)換模塊,用于對(duì)所述UDP請(qǐng)求包進(jìn)行源地址和目的地址轉(zhuǎn)換;以及 發(fā)送模塊,用于將所述UDP請(qǐng)求包發(fā)送至對(duì)應(yīng)的服務(wù)器。
13.如權(quán)利要求12所述的負(fù)載均衡設(shè)備,其特征在于,所述接收模塊還用于接收所述服務(wù)器根據(jù)所述UDP請(qǐng)求包返回的UDP響應(yīng)包。
14.如權(quán)利要求13所述的負(fù)載均衡設(shè)備,其特征在于,還包括: 地址確定模塊,用于根據(jù)所述UDP響應(yīng)包確定所述UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話,并根據(jù)所述UDP響應(yīng)包所對(duì)應(yīng)的會(huì)話查找所述第一哈希表和第二哈希表以確定所述UDP響應(yīng)包所對(duì)應(yīng)的客戶端的IP地址和/或端口號(hào)。
15.如權(quán)利要求14所對(duì)應(yīng)的負(fù)載均衡設(shè)備,其特征在于,所述地址轉(zhuǎn)換模塊還用于根據(jù)所述客戶端的IP地址和/或端口號(hào)對(duì)所述UDP響應(yīng)包進(jìn)行源地址和目的地址轉(zhuǎn)換,且所述發(fā)送模塊還用于將所述UDP響應(yīng)包發(fā)送至所述客戶端。
16.如權(quán)利要求12所述的負(fù)載均衡設(shè)備,其特征在于,還包括: 超時(shí)關(guān)閉模塊,用于在所述客戶端和所述服務(wù)器之間的會(huì)話超過(guò)預(yù)設(shè)超時(shí)時(shí)間之后關(guān)閉所述會(huì)話。
17.如權(quán)利要求12所述的負(fù)載均衡設(shè)備,其特征在于,還包括: 修改模塊,用于在所述發(fā)送模塊將所述UDP請(qǐng)求包發(fā)送至服務(wù)器之前,將所述UDP請(qǐng)求包的協(xié)議號(hào)修改為特殊協(xié)議號(hào),并在所述UDP請(qǐng)求包中插入所述客戶端的IP地址和/或端口號(hào)。
18.一種服務(wù)器,其特征在于,包括: 接收模塊,用于接收負(fù)載均衡設(shè)備發(fā)送的UDP請(qǐng)求包,其中所述UDP請(qǐng)求包的協(xié)議號(hào)為特殊協(xié)議號(hào),且所述UDP請(qǐng)求包中包括客戶端的IP地址和/或端口號(hào); 解析模塊,用于解析所述UDP請(qǐng)求包以獲取所述客戶端的IP地址和/或端口號(hào);會(huì)話建立模塊,用于根據(jù)所述客戶端的IP地址和/或端口號(hào)以及所述服務(wù)器的IP地址和/或端口號(hào)建立會(huì)話;以及 恢復(fù)模塊,用于恢復(fù)所述UDP請(qǐng)求包的協(xié)議號(hào)。
【文檔編號(hào)】H04L29/06GK103491053SQ201210189880
【公開(kāi)日】2014年1月1日 申請(qǐng)日期:2012年6月8日 優(yōu)先權(quán)日:2012年6月8日
【發(fā)明者】裴超, 劉濤, 劉寧, 張 誠(chéng) 申請(qǐng)人:北京百度網(wǎng)訊科技有限公司