處理報(bào)文的方法、轉(zhuǎn)換單元和應(yīng)用單元的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,并且更具體地,涉及一種處理報(bào)文的方法、轉(zhuǎn)換單元和應(yīng)用單元。
【背景技術(shù)】
[0002]現(xiàn)有的LVS(Linux Virtual Server,Linux虛擬服務(wù)器)已經(jīng)是Linux標(biāo)準(zhǔn)內(nèi)核的一部分。使用LVS提供的負(fù)載均衡技術(shù)和Linux操作系統(tǒng)可以實(shí)現(xiàn)一個(gè)高性能、高可用的服務(wù)器群集,具有良好可靠性、可擴(kuò)展性和可操作性,以及能夠以低廉的成本實(shí)現(xiàn)最優(yōu)的服務(wù)性能。
[0003]在云計(jì)算領(lǐng)域,LVS部署的負(fù)載均衡器會(huì)采用全網(wǎng)絡(luò)地址轉(zhuǎn)換(FulINetworkAddress Transfer,F(xiàn)ULLNAT)模式進(jìn)行反向代理,從而可以解決真實(shí)服務(wù)器(Real Server,RS)的跨子網(wǎng)流量分發(fā)能力。但是也帶來了一個(gè)問題,S卩服務(wù)器無法獲取到訪問者的網(wǎng)際協(xié)議(Internet Protocol,IP)地址。服務(wù)器獲取訪問者的IP地址,尤其是可以在網(wǎng)絡(luò)層獲取到訪問者的IP地址,對(duì)網(wǎng)絡(luò)管理員具有重要作用。
【發(fā)明內(nèi)容】
[0004]本申請(qǐng)的目的是提供一種處理報(bào)文的方案、轉(zhuǎn)換單元和應(yīng)用單元,使得應(yīng)用單元能夠進(jìn)行網(wǎng)絡(luò)層對(duì)應(yīng)功能的管理操作。
[0005]第一方面,提供了一種處理報(bào)文的方法。所述方法包括:服務(wù)器中的轉(zhuǎn)換單元接收負(fù)載均衡器發(fā)送的第一數(shù)據(jù)報(bào)文,該第一數(shù)據(jù)報(bào)文的傳輸控制協(xié)議TCP選項(xiàng)字段中攜帶客戶端的網(wǎng)際協(xié)議IP地址,該第一數(shù)據(jù)報(bào)文的源IP地址為該負(fù)載均衡器的IP地址,該第一數(shù)據(jù)報(bào)文的目的IP地址為該服務(wù)器的IP地址;該轉(zhuǎn)換單元從該TCP選項(xiàng)字段中獲取該客戶端的IP地址,將該第一數(shù)據(jù)報(bào)文的源IP地址替換為該客戶端的IP地址,生成第二數(shù)據(jù)報(bào)文;該轉(zhuǎn)換單元向該服務(wù)器中的應(yīng)用單元發(fā)送該第二數(shù)據(jù)報(bào)文。
[0006]服務(wù)器中的轉(zhuǎn)換單元接收在TCP選項(xiàng)字段中攜帶客戶端的IP地址的第一數(shù)據(jù)報(bào)文,并將該第一數(shù)據(jù)報(bào)文的源IP地址替換為該客戶端的IP地址生成第二數(shù)據(jù)報(bào)文,將該第二數(shù)據(jù)報(bào)文發(fā)送給服務(wù)器中的應(yīng)用單元,使得應(yīng)用單元能夠通過IP協(xié)議獲知客戶端的IP地址,從而應(yīng)用單元能夠進(jìn)行網(wǎng)絡(luò)層對(duì)應(yīng)功能的管理操作。
[0007]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,該獲取負(fù)載均衡器發(fā)送的第一數(shù)據(jù)報(bào)文的TCP選項(xiàng)信息之前,該方法還包括:該轉(zhuǎn)換單元根據(jù)該第一數(shù)據(jù)報(bào)文生成流表,該流表包括所述第一數(shù)據(jù)報(bào)文的五元組。
[0008]流表是由很多個(gè)流表項(xiàng)組成,每個(gè)流表項(xiàng)就是一個(gè)轉(zhuǎn)發(fā)規(guī)則,數(shù)據(jù)包通過查詢流表來獲得轉(zhuǎn)發(fā)的目的端口。例如,流表可以記錄該第一數(shù)據(jù)報(bào)文的五元組,五元組包括源IP地址、源端口、目的IP地址、目的端口和傳輸層協(xié)議號(hào)。轉(zhuǎn)換單元可以通過流表記錄該第一數(shù)據(jù)報(bào)文的源IP地址、源端口、目的IP地址和目的端口等,從而轉(zhuǎn)換單元可以通過查詢流表進(jìn)行IP地址轉(zhuǎn)換,進(jìn)而將從應(yīng)用單元返回的數(shù)據(jù)報(bào)文,發(fā)送到對(duì)應(yīng)的負(fù)載均衡器。
[0009]結(jié)合第一方面第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,該方法還包括:該轉(zhuǎn)換單元接收該應(yīng)用單元發(fā)送的用于響應(yīng)該第二數(shù)據(jù)報(bào)文的第三數(shù)據(jù)報(bào)文,該第三數(shù)據(jù)報(bào)文的目的IP地址為該客戶端的IP地址,該第三數(shù)據(jù)報(bào)文的源IP地址為該服務(wù)器的IP地址;該轉(zhuǎn)換單元根據(jù)該流表,將該第三數(shù)據(jù)報(bào)文中的目的IP地址替換為該負(fù)載均衡器的IP地址,生成第四數(shù)據(jù)報(bào)文;該轉(zhuǎn)換單元向該負(fù)載均衡器發(fā)送該第四數(shù)據(jù)報(bào)文。
[0010]例如,流表可以記錄在A端口有負(fù)載均衡器I訪問了應(yīng)用單元I,那么相應(yīng)的,從應(yīng)用單元I返回的報(bào)文需要從A端口發(fā)送到負(fù)載均衡器I。從而,轉(zhuǎn)換單元可以將該第三數(shù)據(jù)報(bào)文中目的IP地址改寫為負(fù)載均衡器的IP地址。該負(fù)載均衡器在向服務(wù)器發(fā)送該第一數(shù)據(jù)報(bào)文時(shí),也會(huì)對(duì)該第一數(shù)據(jù)報(bào)文的源IP地址和目的IP地址的進(jìn)行記錄,當(dāng)?shù)谒臄?shù)據(jù)報(bào)文從服務(wù)器返回到負(fù)載均衡器時(shí),網(wǎng)關(guān)設(shè)備可以查找原有的記錄,將第四數(shù)據(jù)報(bào)文的目的IP地址再替換回原來的公網(wǎng)地址,并返回發(fā)出請(qǐng)求的客戶端。
[0011]第二方面,提供了一種處理報(bào)文的方法。所述方法包括:服務(wù)器中的應(yīng)用單元接收該服務(wù)器中的轉(zhuǎn)換單元發(fā)送的第二數(shù)據(jù)報(bào)文,該第二數(shù)據(jù)報(bào)文的源IP地址為客戶端的網(wǎng)際協(xié)議IP地址,該第二數(shù)據(jù)報(bào)文的目的IP地址為該服務(wù)器的IP地址,該第二數(shù)據(jù)報(bào)文由該轉(zhuǎn)換單元將第一數(shù)據(jù)報(bào)文的源IP地址替換為該客戶端的IP地址生成,該第一數(shù)據(jù)報(bào)文的傳輸控制協(xié)議TCP選項(xiàng)字段中攜帶該客戶端的IP地址;該應(yīng)用單元根據(jù)該客戶端的IP地址進(jìn)行管理操作。
[0012]由于第二數(shù)據(jù)報(bào)文是通過將第一數(shù)據(jù)報(bào)文中源IP地址轉(zhuǎn)換后生成的,那么應(yīng)用單元接收到該第二數(shù)據(jù)報(bào)文時(shí)需要通過網(wǎng)絡(luò)層的IP協(xié)議解析該IP地址,進(jìn)而應(yīng)用單元可以獲知客戶端到應(yīng)用單元之間網(wǎng)絡(luò)層對(duì)應(yīng)的功能。
[0013]應(yīng)用單元接收轉(zhuǎn)換單元發(fā)送的數(shù)據(jù)報(bào)文,該數(shù)據(jù)報(bào)文的源IP地址為客戶端的IP地址,使得應(yīng)用單元可以根據(jù)IP協(xié)議在網(wǎng)絡(luò)層獲知客戶端的IP地址,從而應(yīng)用單元能夠進(jìn)行網(wǎng)絡(luò)層對(duì)應(yīng)功能的管理操作。
[0014]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,該方法還包括:該應(yīng)用單元向該轉(zhuǎn)換單元發(fā)送用于響應(yīng)該第二數(shù)據(jù)報(bào)文的第三數(shù)據(jù)報(bào)文,該第三數(shù)據(jù)報(bào)文的目的IP地址為該客戶端的IP地址,該第三數(shù)據(jù)報(bào)文的源IP地址為該服務(wù)器的IP地址。
[0015]應(yīng)用單元接收到客戶端的第二數(shù)據(jù)報(bào)文之后,從物理層、數(shù)據(jù)鏈路層到達(dá)應(yīng)用層解析該數(shù)據(jù)報(bào)文,最終獲得該數(shù)據(jù)報(bào)文攜帶的訪問請(qǐng)求的數(shù)據(jù)包,進(jìn)而對(duì)客戶端發(fā)送響應(yīng)該訪問請(qǐng)求的第三數(shù)據(jù)報(bào)文,該第三數(shù)據(jù)報(bào)文經(jīng)過服務(wù)器的轉(zhuǎn)換模塊,該第三數(shù)據(jù)報(bào)文中的目的IP地址為客戶端的IP地址,該第三數(shù)據(jù)報(bào)文的源IP地址為該服務(wù)器的IP地址。
[0016]結(jié)合第二方面或第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,該管理操作包括訪問統(tǒng)計(jì)、訪問控制和網(wǎng)絡(luò)故障定位中的至少一項(xiàng)。
[0017]服務(wù)器的應(yīng)用單元從轉(zhuǎn)換單元獲取到客戶端的IP地址,即可以獲知完整的網(wǎng)絡(luò)層功能(即客戶端到應(yīng)用單元之間的網(wǎng)絡(luò)層功能),例如,可以對(duì)客戶端到應(yīng)用單元之間進(jìn)行網(wǎng)絡(luò)故障診斷、連接統(tǒng)計(jì)、流量日志分析,或?qū)υL問者進(jìn)行白名單過濾等,本發(fā)明對(duì)此不進(jìn)行限定。
[0018]第三方面,提供了一種處理報(bào)文的轉(zhuǎn)換單元,該轉(zhuǎn)換單元包括執(zhí)行該第一方面中的方法或第一方面的任意一種實(shí)行方式的各模塊。
[0019]第四方面,提供了一種處理報(bào)文的應(yīng)用單元,該應(yīng)用單元包括執(zhí)行該第二方面中的方法或第二方面的任意一種實(shí)行方式的各模塊。
[0020]第五方面,提供了一種服務(wù)器,包括:上述第三方面的處理報(bào)文的轉(zhuǎn)換單元和上述第四方面的處理報(bào)文的應(yīng)用單元。
[0021 ]第六方面,提供了一種處理報(bào)文的轉(zhuǎn)換單元,包括:處理器和存儲(chǔ)器;
[0022]所述存儲(chǔ)器存儲(chǔ)了程序,所述處理器執(zhí)行所述程序,用于執(zhí)行上述第一方面或第一方面任一種可能的實(shí)現(xiàn)方式所述的處理報(bào)文的方法。
[0023]第七方面,提供了一種處理報(bào)文的應(yīng)用單元,包括:處理器和存儲(chǔ)器;
[0024]所述存儲(chǔ)器存儲(chǔ)了程序,所述處理器執(zhí)行所述程序,用于執(zhí)行上述第二方面或第二方面任一種可能的實(shí)現(xiàn)方式所述的處理報(bào)文的方法。
[0025]基于上述技術(shù)方案,本發(fā)明實(shí)施例的處理報(bào)文的方法、轉(zhuǎn)換單元、應(yīng)用單元,服務(wù)器中的轉(zhuǎn)換單元接收在TCP選項(xiàng)字段中攜帶客戶端的IP地址的第一數(shù)據(jù)報(bào)文,并將該第一數(shù)據(jù)報(bào)文的源IP地址替換為該客戶端的IP地址生成第二數(shù)據(jù)報(bào)文,將該第二數(shù)據(jù)報(bào)文發(fā)送給服務(wù)器中的應(yīng)用單元,使得應(yīng)用單元能夠通過IP協(xié)議獲知客戶端的IP地址,從而應(yīng)用單元能夠進(jìn)行網(wǎng)絡(luò)層對(duì)應(yīng)功能的管理操作。
【附圖說明】
[0026]為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)本發(fā)明實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0027]圖1是客戶端通過負(fù)載均衡器訪問服務(wù)器的流程圖。
[0028]圖2是負(fù)載均衡器的地址轉(zhuǎn)換示意圖。
[0029]圖3是服務(wù)器中協(xié)議層示意圖。
[0030]圖4是根據(jù)本發(fā)明實(shí)施例的處理報(bào)文的方法的示意圖;
[0031 ]圖5是根據(jù)本發(fā)明實(shí)施例的數(shù)據(jù)報(bào)文的結(jié)構(gòu)示意圖;
[0032]圖6根據(jù)本發(fā)明實(shí)施例的處理報(bào)文的交互流程示意圖;
[0033]圖7是根據(jù)本發(fā)明又一實(shí)施例的處理報(bào)文的方法的示意圖;
[0034]圖8是根據(jù)本發(fā)明實(shí)施例的處理報(bào)文的轉(zhuǎn)換單元的示意性框圖;
[0035]圖9是根據(jù)本發(fā)明又一實(shí)施例的處理報(bào)文的應(yīng)用單元的示意性框圖;
[0036]圖10是根據(jù)本發(fā)明實(shí)施例服務(wù)器的示意性框圖;
[0037]圖11是根據(jù)本發(fā)明實(shí)施例的處理報(bào)文的轉(zhuǎn)換單元的結(jié)構(gòu)示意圖;
[0038]圖12是根據(jù)本發(fā)明又一實(shí)施例的處理報(bào)文的應(yīng)用單元的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0039]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前