否合法,來實(shí)現(xiàn)網(wǎng)絡(luò)準(zhǔn)入的效果。
[005引 實(shí)施例二:
[0化3] 繼續(xù)對W上實(shí)施例進(jìn)行詳細(xì)說明,其中,更具體地,步驟1中,業(yè)務(wù)服務(wù)器判斷客 戶端是否跨NAT的用戶,具體包括:
[0化4] 業(yè)務(wù)服務(wù)器獲取客戶端登錄后發(fā)送的本機(jī)IP地址;通過客戶端連接業(yè)務(wù)服務(wù)器 的socket接口獲取到對端的IP地址,如果兩個IP不相同,則判定客戶端為跨NAT。
[0化5] 步驟3中,判斷ITL值是否合法,具體包括:
[0化6] 提取數(shù)據(jù)包中的IP頭的數(shù)據(jù);
[0化7] 判斷IP頭的1TL值是否在指定的ITL合法范圍內(nèi),如果合法,則此數(shù)據(jù)包直接放 行,不進(jìn)行處理;如果不在指定的ITL合法范圍內(nèi),則繼續(xù)按照已有的處理流程判斷數(shù)據(jù)包 的合法性。
[0化引向非法的客戶端發(fā)送RST包或數(shù)據(jù)重定向包,具體包括:
[0059] 如果數(shù)據(jù)包非法,則判斷業(yè)務(wù)服務(wù)器與客戶端之間是否有指定通訊的http端口, 如果有,則發(fā)送重定向數(shù)據(jù)包,其它則發(fā)送RST數(shù)據(jù)包。
[0060] 實(shí)施例S;
[0061] 結(jié)合具體例子進(jìn)行說明。其中,在該實(shí)施例中,其關(guān)鍵點(diǎn)在于服務(wù)器會在客戶端上 線和既有策略更新的情況下,通知跨NAT的客戶端插件,告知客戶端目前的狀態(tài)是合法還 是非法??鏝AT的客戶端會在合法的情況下將往外發(fā)送的數(shù)據(jù)包的ITL值修改為用戶指定 的ITL值,默認(rèn)是90-100。工作示意圖如如圖3所示,具體來說,其具體步驟包括:
[006引 1.客戶端登錄后,業(yè)務(wù)服務(wù)器判斷客戶端是否跨NAT的用戶,如果用戶為跨NAT用 戶,則判斷客戶端的合法性,并向合法的客戶端發(fā)送修改ITL值的命令,告知修改ITL的數(shù) 值。
[0063] 2.已登陸的跨NAT客戶端當(dāng)狀態(tài)由非法變?yōu)楹戏ê?,服?wù)器也會發(fā)送相應(yīng)的修改 ITL值的命令。
[0064] 3.客戶端收到服務(wù)器修改ITL值的命令后,會將外發(fā)的數(shù)據(jù)包的ITL值修改為服 務(wù)器指定的ITL值。
[00化]4.服務(wù)器收到交換機(jī)鏡像過來的數(shù)據(jù)包后,內(nèi)核首先判斷ITL值是否是配置的合 法ITL值范圍內(nèi),如果ITL值合法,則認(rèn)定此數(shù)據(jù)包為合法客戶端發(fā)送的數(shù)據(jù)包,則不予處 理,否則繼續(xù)使用已有的處理策略判斷數(shù)據(jù)包的合法性,向非法的客戶端發(fā)送RST包或數(shù) 據(jù)重定向包。
[0066] 更具體地,本方案在技術(shù)實(shí)現(xiàn)上有如下幾個關(guān)鍵點(diǎn):
[0067] 判斷客戶端是否跨NAT用戶
[0068] 1.客戶端登錄后會發(fā)送本機(jī)的IP到服務(wù)器上,服務(wù)器收到IP后,通過客戶端連接 服務(wù)器的socket也可W獲取到一個對端的IP地址,如果兩個IP不相同,則判定客戶端為 跨NAT。
[0069] 客戶端修改1TL實(shí)現(xiàn),調(diào)用APISetlpTTL設(shè)置終端發(fā)包默認(rèn)ITL值。
[0070] 服務(wù)器內(nèi)核判斷TTL合法性
[0071] 1.收到硬件層發(fā)送來的W太網(wǎng)包后,提取IP頭的數(shù)據(jù)。IP頭在內(nèi)核中的結(jié)構(gòu)為 structiphdr。
[0072]
[0073]
【主權(quán)項(xiàng)】
1. 一種跨NAT環(huán)境下客戶端接入方法,其特征在于,包括: 步驟1)客戶端登錄后,業(yè)務(wù)服務(wù)器判斷客戶端是否跨NAT的用戶,如果用戶為跨NAT用戶,則判斷數(shù)據(jù)包的合法性,并向合法的客戶端發(fā)送修改生存時間TTL值的命令,告知修 改ITL值; 步驟2)客戶端收到業(yè)務(wù)服務(wù)器修改ITL值的命令后,會將外發(fā)的數(shù)據(jù)包的ITL值修改 為業(yè)務(wù)服務(wù)器指定的ITL值; 步驟3)業(yè)務(wù)服務(wù)器收到交換機(jī)鏡像過來的數(shù)據(jù)包后,判斷ITL值是否合法,如果TTL值合法,則認(rèn)定此數(shù)據(jù)包為合法客戶端發(fā)送的數(shù)據(jù)包; 否則繼續(xù)判斷數(shù)據(jù)包的合法性,并向非法的客戶端發(fā)送RST包或數(shù)據(jù)重定向包。
2. 根據(jù)權(quán)利要求1所述的跨NAT環(huán)境下客戶端接入方法,其特征在于,步驟1中,業(yè)務(wù) 服務(wù)器判斷客戶端是否跨NAT的用戶,具體包括: 業(yè)務(wù)服務(wù)器獲取客戶端登錄后發(fā)送的本機(jī)IP地址;通過客戶端連接業(yè)務(wù)服務(wù)器的socket接口獲取到對端的IP地址,如果獲取到的對端IP和對端提交的本機(jī)IP不在一個網(wǎng) 段,則判定客戶端為跨NAT。
3. 根據(jù)權(quán)利要求1或2所述的跨NAT環(huán)境下客戶端接入方法,其特征在于,步驟3中, 判斷ITL值是否合法,具體包括: 提取數(shù)據(jù)包中的IP頭的數(shù)據(jù); 判斷IP頭的TTL值是否在指定的ITL合法范圍內(nèi),如果合法,則此數(shù)據(jù)包直接放行,不 進(jìn)行處理;如果不在指定的ITL合法范圍內(nèi),則繼續(xù)按照已有的處理流程判斷數(shù)據(jù)包的合 法性。
4. 根據(jù)權(quán)利要求1所述的跨NAT環(huán)境下客戶端接入方法,其特征在于,步驟3中,向非 法的客戶端發(fā)送RST包或數(shù)據(jù)重定向包,具體包括: 如果數(shù)據(jù)包非法,則判斷業(yè)務(wù)服務(wù)器與客戶端之間是否有指定通訊的ht化端口,如果 有,則發(fā)送重定向數(shù)據(jù)包,其它則發(fā)送RST數(shù)據(jù)包。
5. 根據(jù)權(quán)利要求1所述的跨NAT環(huán)境下客戶端接入方法,其特征在于,判斷數(shù)據(jù)包的合 法性,是基于現(xiàn)有的預(yù)設(shè)既有策略。
6. -種跨NAT環(huán)境下客戶端接入系統(tǒng),其特征在于,包括: 業(yè)務(wù)服務(wù)器和交換機(jī),且業(yè)務(wù)服務(wù)器W端口鏡像方式旁路接入交換機(jī), 所述業(yè)務(wù)服務(wù)器,用于在客戶端登錄后,判斷客戶端是否跨NAT的用戶,如果用戶為跨NAT用戶,則判斷數(shù)據(jù)包的合法性,并向合法的客戶端發(fā)送修改生存時間ITL值的命令,告 知修改ITL值; 所述客戶端,在收到業(yè)務(wù)服務(wù)器修改ITL值的命令后,會將外發(fā)的數(shù)據(jù)包的ITL值修改 為業(yè)務(wù)服務(wù)器指定的TTL值; 交換機(jī),用于向業(yè)務(wù)服務(wù)器鏡像客戶端發(fā)送的數(shù)據(jù)包; 業(yè)務(wù)服務(wù)器,進(jìn)一步在收到交換機(jī)鏡像過來的數(shù)據(jù)包后,判斷TTL值是否合法,如果ITL值合法,則認(rèn)定此數(shù)據(jù)包為合法客戶端發(fā)送的數(shù)據(jù)包; 否則繼續(xù)判斷數(shù)據(jù)包的合法性,并向非法的客戶端發(fā)送RST包或數(shù)據(jù)重定向包。
7. 根據(jù)權(quán)利要求6所述的跨NAT環(huán)境下客戶端接入系統(tǒng),其特征在于,業(yè)務(wù)服務(wù)器判斷 客戶端是否跨NAT的用戶,具體包括: 業(yè)務(wù)服務(wù)器獲取客戶端登錄后發(fā)送的本機(jī)IP地址;通過客戶端連接業(yè)務(wù)服務(wù)器的socket接口獲取到對端的IP地址,如果獲取到的對端IP和對端提交的本機(jī)IP不在一個網(wǎng) 段,則判定客戶端為跨NAT。
8. 根據(jù)權(quán)利要求6或7所述的跨NAT環(huán)境下客戶端接入系統(tǒng),其特征在于,業(yè)務(wù)服務(wù) 器,判斷1TL值是否合法,具體包括: 提取數(shù)據(jù)包中的IP頭的數(shù)據(jù); 判斷IP頭的ITL值是否在指定的ITL合法范圍內(nèi),如果合法,則此數(shù)據(jù)包直接放行,不 進(jìn)行處理;如果不在指定的ITL合法范圍內(nèi),則繼續(xù)按照已有的處理流程判斷數(shù)據(jù)包的合 法性。
9. 根據(jù)權(quán)利要求6所述的跨NAT環(huán)境下客戶端接入系統(tǒng),其特征在于,業(yè)務(wù)服務(wù)器,向 非法的客戶端發(fā)送RST包或數(shù)據(jù)重定向包,具體包括: 如果數(shù)據(jù)包非法,則判斷業(yè)務(wù)服務(wù)器與客戶端之間是否有指定通訊的ht化端口,如果 有,則發(fā)送重定向數(shù)據(jù)包,其它則發(fā)送RST數(shù)據(jù)包。
10. 根據(jù)權(quán)利要求6所述的跨NAT環(huán)境下客戶端接入系統(tǒng),其特征在于,業(yè)務(wù)服務(wù)器,判 斷數(shù)據(jù)包的合法性,是基于現(xiàn)有的預(yù)設(shè)既有策略。
【專利摘要】本發(fā)明公開了一種跨NAT環(huán)境下客戶端接入方法和系統(tǒng),包括:步驟1)客戶端登錄后,業(yè)務(wù)服務(wù)器判斷客戶端是否跨NAT的用戶,如果用戶為跨NAT用戶,則判斷數(shù)據(jù)包的合法性,并向合法的客戶端發(fā)送修改生存時間TTL值的命令,告知修改TTL值;步驟2)客戶端收到業(yè)務(wù)服務(wù)器修改TTL值的命令后,會將外發(fā)的數(shù)據(jù)包的TTL值修改為業(yè)務(wù)服務(wù)器指定的TTL值;步驟3)業(yè)務(wù)服務(wù)器收到交換機(jī)鏡像過來的數(shù)據(jù)包后,判斷TTL值是否合法,如果TTL值合法,則認(rèn)定此數(shù)據(jù)包為合法客戶端發(fā)送的數(shù)據(jù)包;否則繼續(xù)判斷數(shù)據(jù)包的合法性,并向非法的客戶端發(fā)送RST包或數(shù)據(jù)重定向包。
【IPC分類】H04L29-12
【公開號】CN104717316
【申請?zhí)枴緾N201510158073
【發(fā)明人】吳永, 范龍
【申請人】山東華軟金盾軟件有限公司
【公開日】2015年6月17日
【申請日】2015年4月3日