IPv6網(wǎng)中防止主機(jī)PMTU攻擊的方法、裝置與系統(tǒng)的制作方法
【專(zhuān)利摘要】本公開(kāi)涉及一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法、裝置與系統(tǒng)。該方法包括接收源主機(jī)發(fā)送的PMTU檢測(cè)報(bào)文;響應(yīng)于對(duì)目的主機(jī)中的MTU值的修改,如果檢測(cè)報(bào)文的MTU值大于目的主機(jī)中的MTU值,則截獲目的主機(jī)發(fā)出的包太大ICMPv6報(bào)文,該報(bào)文中攜帶被修改后的目的主機(jī)的MTU值;將自該報(bào)文中提取的MTU值與最小MTU門(mén)限值進(jìn)行比較;如果小于門(mén)限值,則記錄該報(bào)文的五元組信息,并丟棄該報(bào)文;接收源主機(jī)發(fā)送的業(yè)務(wù)報(bào)文,發(fā)送至目的主機(jī)的每個(gè)業(yè)務(wù)報(bào)文的大小為PMTU檢測(cè)成功后得到的相應(yīng)MTU值;基于自包太大報(bào)文中提取的MTU值和五元組信息對(duì)相應(yīng)業(yè)務(wù)報(bào)文進(jìn)行分片與轉(zhuǎn)發(fā),可以從根本上解決PMTU攻擊問(wèn)題。
【專(zhuān)利說(shuō)明】IPv6網(wǎng)中防止主機(jī)PMTU攻擊的方法、裝置與系統(tǒng)
【技術(shù)領(lǐng)域】
[0001 ] 本公開(kāi)涉及IPv6網(wǎng)絡(luò),特別地,涉及一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU (PathMaximum Transmiss1n Unit,路徑最大傳輸單元)攻擊的方法、裝置與系統(tǒng)。
【背景技術(shù)】
[0002]在IPv6網(wǎng)絡(luò)中,通常網(wǎng)絡(luò)設(shè)備不再承擔(dān)IP報(bào)文的分片和重組功能,主機(jī)在發(fā)送報(bào)文之前,需要根據(jù)對(duì)發(fā)送路徑的MTU (Maximum Transmiss1n Unit,最大傳輸單元)的探測(cè)來(lái)決定發(fā)送報(bào)文的大小。因此對(duì)路徑探測(cè)的值將決定主機(jī)的TCP/IP協(xié)議棧的一系列參數(shù),例如,TCP的窗口大小、IP報(bào)文的長(zhǎng)度等。
[0003]在大多數(shù)IP網(wǎng)絡(luò)通信場(chǎng)景下,一旦主機(jī)將PMTU值設(shè)置很小(這可能是惡意軟件的攻擊行為所致),將導(dǎo)致服務(wù)器側(cè)主機(jī)的TCP/IP協(xié)議棧性能下降,同時(shí)也導(dǎo)致服務(wù)器側(cè)網(wǎng)絡(luò)性能下降,例如,這樣的報(bào)文過(guò)多會(huì)導(dǎo)致設(shè)備協(xié)議棧無(wú)法處理大量的小報(bào)文,導(dǎo)致網(wǎng)卡、協(xié)議棧等停止響應(yīng)。
[0004]這種由惡意軟件修改PMTU值所引起的攻擊方式在微軟發(fā)布的安全公告MS05-019中已有詳細(xì)描述,這種攻擊不是基于PMTU偽造,而是基于主機(jī)設(shè)置最小MTU進(jìn)行的攻擊。
[0005]以下是微軟針對(duì)PMTU攻擊的一些分析:
[0006]( DlCMPdnternet Control Messages Protocol,因特網(wǎng)控制報(bào)文協(xié)議)路徑 MTU漏洞一CAN-2004-1060:
[0007]存在“拒絕服務(wù)”漏洞,該漏洞可能允許攻擊者向受影響的系統(tǒng)發(fā)送特制的ICMP消息,這可能導(dǎo)致網(wǎng)絡(luò)性能降低并可能使受影響的系統(tǒng)停止響應(yīng)請(qǐng)求。
[0008](2) ICMP路徑MTU漏洞(CAN-2004-1060)的常見(jiàn)問(wèn)題解答:此漏洞的影響范圍有多大?
[0009]存在“拒絕服務(wù)”漏洞,該漏洞可能允許攻擊者向受影響的系統(tǒng)發(fā)送特制的ICMP消息,這可能導(dǎo)致網(wǎng)絡(luò)性能降低并可能使受影響的系統(tǒng)停止響應(yīng)請(qǐng)求,需要注意的是,攻擊者無(wú)法利用拒絕服務(wù)漏洞來(lái)執(zhí)行代碼或提升他們的用戶(hù)權(quán)限。即,這個(gè)漏洞只造成DDOS(Distributed Denial of Service,分布式拒絕服務(wù))拒絕服務(wù)攻擊,并不能單純通過(guò)這個(gè)攻擊來(lái)獲取服務(wù)器的ROOT權(quán)限。
[0010](3)造成漏洞的原因是什么?
[0011]ICMP最大傳輸單位路徑發(fā)現(xiàn)過(guò)程允許攻擊者指定可能降低網(wǎng)絡(luò)性能的路徑MTU值。
[0012](4) ICMP 路徑 MTU 漏洞(CAN-2004-1060)的緩解因素:
[0013]采用防火墻最佳做法和防火墻或禁止所有ICMP通信的路由器配置,可以幫助網(wǎng)絡(luò)免受企業(yè)外部發(fā)起的攻擊。按照最佳做法,應(yīng)使連接到Internet的系統(tǒng)所暴露的端口數(shù)盡可能少。
[0014]對(duì)于試圖利用此漏洞的攻擊者,他們必須首先預(yù)測(cè)或了解現(xiàn)有TCP網(wǎng)絡(luò)連接的源和目的地的IP地址信息。
[0015](5) ICMP 路徑 MTU 漏洞(CAN-2004-1060)的變通辦法:
[0016]禁用最大傳輸單位路徑發(fā)現(xiàn);
[0017]在防火墻或路由器處禁止所有ICMP網(wǎng)絡(luò)數(shù)據(jù)包;
[0018]在受影響系統(tǒng)上使用IPSec (Internet Protocol Security)阻止 ICMP 通信。
[0019]微軟的上述方法只是在協(xié)議棧中設(shè)置了 512字節(jié)的最小PMTU限制,或者在IPv4的場(chǎng)景下禁用PMTU探測(cè),但是,這些方法都不是根本的解決辦法。
【發(fā)明內(nèi)容】
[0020]本公開(kāi)鑒于以上問(wèn)題中的至少一個(gè)提出了新的技術(shù)方案。
[0021]本公開(kāi)在其一個(gè)方面提供了一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法,其可以從根本上解決PMTU攻擊問(wèn)題。
[0022]本公開(kāi)在其另一方面提供了一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的裝置,其可以從根本上解決PMTU攻擊問(wèn)題。
[0023]本公開(kāi)在其又一方面提供了一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng),其可以從根本上解決PMTU攻擊問(wèn)題。
[0024]根據(jù)本公開(kāi),提供一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法,包括:
[0025]接收源主機(jī)發(fā)送的PMTU檢測(cè)報(bào)文;
[0026]響應(yīng)于對(duì)目的主機(jī)中的MTU值的修改,如果PMTU檢測(cè)報(bào)文的MTU值大于目的主機(jī)中的MTU值,則截獲目的主機(jī)發(fā)出的包太大ICMPv6報(bào)文,包太大ICMPv6報(bào)文中攜帶被修改后的目的主機(jī)的MTU值;
[0027]將自包太大ICMPv6報(bào)文中提取的MTU值與最小MTU門(mén)限值進(jìn)行比較;
[0028]如果提取的MTU值小于最小MTU門(mén)限值,則記錄包太大ICMPv6報(bào)文中的五元組信息,并靜默丟棄包太大ICMPv6報(bào)文;
[0029]接收源主機(jī)發(fā)送的業(yè)務(wù)報(bào)文,發(fā)送至目的主機(jī)的每個(gè)業(yè)務(wù)報(bào)文的大小為PMTU檢測(cè)成功后得到的相應(yīng)MTU值;
[0030]基于自包太大ICMPv6報(bào)文中提取的MTU值和五元組信息對(duì)相應(yīng)業(yè)務(wù)報(bào)文進(jìn)行分片與轉(zhuǎn)發(fā)。
[0031]在本公開(kāi)的一些實(shí)施例中,該方法還包括:
[0032]由目的主機(jī)對(duì)分片轉(zhuǎn)發(fā)的報(bào)文進(jìn)行組裝。
[0033]在本公開(kāi)的一些實(shí)施例中,由源主機(jī)接入路由器或防火墻截獲包太大ICMPv6報(bào)文。
[0034]在本公開(kāi)的一些實(shí)施例中,由目的主機(jī)接入路由器或防火墻截獲包太大ICMPv6報(bào)文。
[0035]在本公開(kāi)的一些實(shí)施例中,五元組信息包括源主機(jī)IP地址、源端口、目的主機(jī)IP地址、目的端口以及傳輸層協(xié)議號(hào)。
[0036]根據(jù)本公開(kāi),還提供了一種防止主機(jī)PMTU攻擊的裝置,包括:
[0037]檢測(cè)報(bào)文接收單元,用于接收源主機(jī)發(fā)送的PMTU檢測(cè)報(bào)文;
[0038]包太大報(bào)文截獲單元,用于響應(yīng)于對(duì)目的主機(jī)中的MTU值的修改,如果PMTU檢測(cè)報(bào)文的MTU值大于目的主機(jī)中的MTU值,則截獲目的主機(jī)發(fā)出的包太大ICMPv6報(bào)文,包太大ICMPv6報(bào)文中攜帶被修改后的目的主機(jī)的MTU值;
[0039]MTU比較單元,用于將自包太大ICMPv6報(bào)文中提取的MTU值與最小MTU門(mén)限值進(jìn)行比較;
[0040]包太大報(bào)文處理單元,用于如果提取的MTU值小于最小MTU門(mén)限值,則記錄包太大ICMPv6報(bào)文中的五元組信息,并靜默丟棄包太大ICMPv6報(bào)文;
[0041]業(yè)務(wù)報(bào)文接收單元,用于接收源主機(jī)發(fā)送的業(yè)務(wù)報(bào)文,發(fā)送至目的主機(jī)的每個(gè)業(yè)務(wù)報(bào)文的大小為PMTU檢測(cè)成功后得到的相應(yīng)MTU值;
[0042]分片處理單元,用于基于自包太大ICMPv6報(bào)文中提取的MTU值和五元組信息對(duì)相應(yīng)業(yè)務(wù)報(bào)文進(jìn)行分片與轉(zhuǎn)發(fā)。
[0043]在本公開(kāi)的一些實(shí)施例中,將裝置設(shè)置在源主機(jī)接入路由器或防火墻內(nèi)。
[0044]在本公開(kāi)的一些實(shí)施例中,將裝置設(shè)置在目的主機(jī)接入路由器或防火墻內(nèi)。
[0045]在本公開(kāi)的一些實(shí)施例中,五元組信息包括源主機(jī)IP地址、源端口、目的主機(jī)IP地址、目的端口以及傳輸層協(xié)議號(hào)。
[0046]根據(jù)本公開(kāi),還提供了一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng),包括源主機(jī)、目的主機(jī)以及源主機(jī)接入路由器或防火墻,并在源主機(jī)接入路由器或防火墻內(nèi)設(shè)置如前述實(shí)施例的防止主機(jī)PMTU攻擊的裝置。
[0047]根據(jù)本公開(kāi),還提供了一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng),包括源主機(jī)、目的主機(jī)以及目的主機(jī)接入路由器或防火墻,并在目的主機(jī)接入路由器或防火墻內(nèi)設(shè)置如前述實(shí)施例的防止主機(jī)PMTU攻擊的裝置。
[0048]在本公開(kāi)的技術(shù)方案中,由于設(shè)置在源主機(jī)接入路由器或防火墻、或者是設(shè)置在目的主機(jī)接入路由器或防火墻,因此可以攔截并丟棄攜帶非常小的MTU值的包太大ICMPv6報(bào)文,在定時(shí)器到時(shí)后,源主機(jī)認(rèn)為PMTU檢測(cè)成功,則將以上次發(fā)送檢測(cè)報(bào)文時(shí)所使用的MTU值來(lái)發(fā)送業(yè)務(wù)報(bào)文,因此,可以有效防止PMTU對(duì)源主機(jī)的攻擊。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0049]此處所說(shuō)明的附圖用來(lái)提供對(duì)本公開(kāi)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分。在附圖中:
[0050]圖1是本公開(kāi)一個(gè)實(shí)施例的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法的流程示意圖。
[0051]圖2是本公開(kāi)另一實(shí)施例的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法的流程示意圖。
[0052]圖3是本公開(kāi)一個(gè)實(shí)施例的防止主機(jī)PMTU攻擊的裝置的結(jié)構(gòu)示意圖。
[0053]圖4是本公開(kāi)一個(gè)實(shí)施例的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng)的結(jié)構(gòu)示意圖。
[0054]圖5是本公開(kāi)另一實(shí)施例的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0055]下面將參照附圖描述本公開(kāi)。要注意的是,以下的描述在本質(zhì)上僅是解釋性和示例性的,決不作為對(duì)本公開(kāi)及其應(yīng)用或使用的任何限制。除非另外特別說(shuō)明,否則,在實(shí)施例中闡述的部件和步驟的相對(duì)布置以及數(shù)字表達(dá)式和數(shù)值并不限制本公開(kāi)的范圍。另外,本領(lǐng)域技術(shù)人員已知的技術(shù)、方法和裝置可能不被詳細(xì)討論,但在適當(dāng)?shù)那闆r下意在成為說(shuō)明書(shū)的一部分。
[0056]IPv6協(xié)議中規(guī)定了源分片、目的組裝的報(bào)文機(jī)制,S卩,傳輸途徑中的路由器設(shè)備不進(jìn)行IP報(bào)文的分片和重組工作。IPv6報(bào)文在發(fā)包之前必須進(jìn)行路徑MTU值的檢測(cè),以確定源主機(jī)能夠發(fā)送的報(bào)文的大小。
[0057]與IPv4不同,IPv6PMTU探測(cè)得到的值將影響IPv6本身和上層協(xié)議的一些關(guān)鍵參數(shù),例如,IPv6發(fā)送報(bào)文的大小、TCP窗口的大小等,這些給網(wǎng)絡(luò)攻擊提供了新的手段。
[0058]在大多數(shù)IP網(wǎng)絡(luò)通信場(chǎng)景下,一旦目的主機(jī)將PMTU值設(shè)置的很小(這可能是惡意軟件的攻擊行為導(dǎo)致),將導(dǎo)致源主機(jī)的TCP/IP協(xié)議棧性能下降,同時(shí)也導(dǎo)致源主機(jī)側(cè)網(wǎng)絡(luò)性能下降。
[0059]本公開(kāi)下述實(shí)施例將MTU值與TCP/IP協(xié)議棧相分離,使得MTU值的設(shè)置不能影響TCP窗口、IP報(bào)文長(zhǎng)度等關(guān)鍵性能參數(shù),保證源主機(jī)協(xié)議棧的性能。同時(shí)由于主機(jī)可以支持有限制的分片機(jī)制(例如,只在部分節(jié)點(diǎn)設(shè)備上實(shí)現(xiàn)分片機(jī)制),保證了與IPv6協(xié)議的一致性。
[0060]圖1是本公開(kāi)一個(gè)實(shí)施例的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法的流程示意圖。
[0061]需要指出的是,以下流程可以由源主機(jī)接入路由器或防火墻執(zhí)行,也可以由目的主機(jī)接入路由器或防火墻執(zhí)行。
[0062]如圖1所示,該實(shí)施例可以包括以下步驟:
[0063]S102,接收源主機(jī)發(fā)送的PMTU檢測(cè)報(bào)文,該報(bào)文用于在IPv6網(wǎng)絡(luò)中檢測(cè)自源主機(jī)至目的主機(jī)路徑的MTU值。
[0064]S104,響應(yīng)于對(duì)目的主機(jī)中的MTU值的修改,如果PMTU檢測(cè)報(bào)文的MTU值大于目的主機(jī)中的MTU值,則截獲目的主機(jī)發(fā)出的包太大ICMPv6報(bào)文,包太大ICMPv6報(bào)文中攜帶被修改后的目的主機(jī)的MTU值;
[0065]具體地,如果目的主機(jī)被惡意軟件所攻擊,則響應(yīng)于對(duì)目的主機(jī)中的MTU值的修改,目的主機(jī)將接收的PMTU檢測(cè)報(bào)文中的MTU值與被修改后的MTU值進(jìn)行比較,如果檢測(cè)報(bào)文中的MTU值大于目的主機(jī)中被修改后的MTU值,則目的主機(jī)發(fā)出“包太大” ICMPv6報(bào)文,告知源主機(jī)其發(fā)送的PMTU檢測(cè)報(bào)文的包太大,需降低發(fā)送報(bào)文的大小。
[0066]由于目的主機(jī)中原來(lái)設(shè)置的MTU值可能并不是很小,但是被攻擊后將該值修改的很小,導(dǎo)致源主機(jī)如果按照包太大ICMPv6報(bào)文中攜帶的MTU值設(shè)置發(fā)送報(bào)文的大小,則將降低源主機(jī)的性能。此時(shí),為了防止PMTU攻擊對(duì)源主機(jī)的影響,源主機(jī)接入路由器或防火墻/目的主機(jī)接入路由器或防火墻攔截該包太大ICMPv6報(bào)文,在對(duì)其中的MTU值進(jìn)行判斷后再確定是否轉(zhuǎn)發(fā)給源主機(jī)。
[0067]S106,將自包太大ICMPv6報(bào)文中提取的MTU值與最小MTU門(mén)限值進(jìn)行比較,以確定是否將包太大ICMPv6報(bào)文轉(zhuǎn)發(fā)給源主機(jī)。
[0068]S108,如果提取的MTU值小于最小MTU門(mén)限值,則表明目的主機(jī)中的MTU值被更改,記錄包太大ICMPv6報(bào)文中的五元組信息以利用該信息判斷要對(duì)哪些報(bào)文進(jìn)行分片處理,并靜默丟棄包太大ICMPv6報(bào)文。
[0069]具體地,可以由源主機(jī)接入路由器或防火墻截獲包太大ICMPv6報(bào)文;也可以由目的主機(jī)接入路由器或防火墻截獲包太大ICMPv6報(bào)文。
[0070]此外,五元組信息包括源主機(jī)IP地址、源端口、目的主機(jī)IP地址、目的端口以及傳輸層協(xié)議號(hào)。
[0071]S110,在PMTU檢測(cè)成功后,接收源主機(jī)發(fā)送的業(yè)務(wù)報(bào)文,發(fā)送至目的主機(jī)的每個(gè)業(yè)務(wù)報(bào)文的大小為PMTU檢測(cè)成功后得到的相應(yīng)MTU值。
[0072]SI 12,基于自包太大ICMPv6報(bào)文中提取的MTU值和五元組信息對(duì)相應(yīng)業(yè)務(wù)報(bào)文進(jìn)行分片與轉(zhuǎn)發(fā)。
[0073]在該實(shí)施例中,由于設(shè)置在源主機(jī)接入路由器或防火墻、或者是設(shè)置在目的主機(jī)接入路由器或防火墻,因此可以攔截并丟棄攜帶非常小的MTU值的包太大ICMPv6報(bào)文,在定時(shí)器到時(shí)后,源主機(jī)認(rèn)為PMTU檢測(cè)成功,則將以上次發(fā)送檢測(cè)報(bào)文時(shí)所使用的MTU值來(lái)發(fā)送業(yè)務(wù)報(bào)文,因此,可以有效防止PMTU對(duì)源主機(jī)的攻擊。
[0074]進(jìn)一步地,在步驟S112之后,由目的主機(jī)對(duì)分片轉(zhuǎn)發(fā)的報(bào)文進(jìn)行組裝,進(jìn)而還原出源主機(jī)所發(fā)送的報(bào)文。
[0075]接下來(lái),通過(guò)一個(gè)具體實(shí)例對(duì)上述實(shí)施例作進(jìn)一步說(shuō)明。
[0076]如圖2所示,在服務(wù)器端接入的路由器或防火墻設(shè)備上設(shè)立ICMPv6SN00PING功能,截獲PMTU探測(cè)中的“包太大”報(bào)文,判斷里面的MTU值。如果該值小于相應(yīng)門(mén)限值,則啟動(dòng)分片機(jī)制,并將相關(guān)通信雙方的五元組記錄為sess1n信息,以標(biāo)識(shí)這個(gè)需要分片的IP流。最后將這個(gè)ICMPv6報(bào)文靜默丟棄。
[0077]服務(wù)器在PMTU檢測(cè)成功后,發(fā)送的相關(guān)報(bào)文在出口路由器/防火墻處被截獲,然后按照需要進(jìn)行分片,分片的大小為之前捕獲的MTU包太大報(bào)文中的MTU值,分片后的報(bào)文被發(fā)送到主機(jī)側(cè),由主機(jī)進(jìn)行分片重組。
[0078]本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述方法實(shí)施例的全部和部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算設(shè)備可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟,而前述的存儲(chǔ)介質(zhì)可以包括ROM、RAM、磁碟和光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0079]圖3是本公開(kāi)一個(gè)實(shí)施例的防止主機(jī)PMTU攻擊的裝置的結(jié)構(gòu)示意圖。
[0080]如圖3所示,該實(shí)施例中的裝置30可以包括檢測(cè)報(bào)文接收單元302、包太大報(bào)文截獲單元304、MTU比較單元306、包太大報(bào)文處理單元308、業(yè)務(wù)報(bào)文接收單元310和分片處理單元312。其中,
[0081]檢測(cè)報(bào)文接收單元302,用于接收源主機(jī)發(fā)送的PMTU檢測(cè)報(bào)文;
[0082]包太大報(bào)文截獲單元304,用于響應(yīng)于對(duì)目的主機(jī)中的MTU值的修改,如果PMTU檢測(cè)報(bào)文的MTU值大于目的主機(jī)中的MTU值,則截獲目的主機(jī)發(fā)出的包太大ICMPv6報(bào)文,包太大ICMPv6報(bào)文中攜帶被修改后的目的主機(jī)的MTU值;
[0083]MTU比較單元306,用于將自包太大ICMPv6報(bào)文中提取的MTU值與最小MTU門(mén)限值進(jìn)行比較;
[0084]包太大報(bào)文處理單元308,用于如果提取的MTU值小于最小MTU門(mén)限值,則記錄包太大ICMPv6報(bào)文中的五元組信息,并靜默丟棄包太大ICMPv6報(bào)文;
[0085]業(yè)務(wù)報(bào)文接收單元310,用于接收源主機(jī)發(fā)送的業(yè)務(wù)報(bào)文,發(fā)送至目的主機(jī)的每個(gè)業(yè)務(wù)報(bào)文的大小為PMTU檢測(cè)成功后得到的相應(yīng)MTU值;
[0086]分片處理單元312,用于基于自包太大ICMPv6報(bào)文中提取的MTU值和五元組信息對(duì)相應(yīng)業(yè)務(wù)報(bào)文進(jìn)行分片與轉(zhuǎn)發(fā)。
[0087]在該實(shí)施例中,由于設(shè)置在源主機(jī)接入路由器或防火墻、或者是設(shè)置在目的主機(jī)接入路由器或防火墻,因此可以攔截并丟棄攜帶非常小的MTU值的包太大ICMPv6報(bào)文,在定時(shí)器到時(shí)后,源主機(jī)認(rèn)為PMTU檢測(cè)成功,則將以上次發(fā)送檢測(cè)報(bào)文時(shí)所使用的MTU值來(lái)發(fā)送業(yè)務(wù)報(bào)文,因此,可以有效防止PMTU對(duì)源主機(jī)的攻擊。
[0088]進(jìn)一步地,可以將防止主機(jī)PMTU攻擊的裝置設(shè)置在源主機(jī)接入路由器或防火墻內(nèi),還可以將防止主機(jī)PMTU攻擊的裝置設(shè)置在目的主機(jī)接入路由器或防火墻內(nèi)。
[0089]其中,五元組信息包括源主機(jī)IP地址、源端口、目的主機(jī)IP地址、目的端口以及傳輸層協(xié)議號(hào)。
[0090]圖4是本公開(kāi)一個(gè)實(shí)施例的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng)的結(jié)構(gòu)示意圖。
[0091]如圖4所示,該實(shí)施例中系統(tǒng)40可以包括源主機(jī)402、目的主機(jī)404以及源主機(jī)接入路由器或防火墻406,并在源主機(jī)接入路由器或防火墻內(nèi)設(shè)置防止主機(jī)PMTU攻擊的裝置406a,其中,防止主機(jī)PMTU攻擊的裝置406a可以通過(guò)前述實(shí)施例實(shí)現(xiàn)。
[0092]該實(shí)施例中將防止主機(jī)PMTU攻擊的裝置設(shè)置在源主機(jī)接入路由器或防火墻的方式,可以防止源主機(jī)發(fā)送的報(bào)文太小,有效防止了源主機(jī)被PMTU所攻擊。
[0093]圖5是本公開(kāi)另一實(shí)施例的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng)的結(jié)構(gòu)示意圖。
[0094]如圖5所示,該實(shí)施例中的系統(tǒng)50可以包括源主機(jī)502、目的主機(jī)504以及目的主機(jī)接入路由器或防火墻506,并在目的主機(jī)接入路由器或防火墻內(nèi)設(shè)置防止主機(jī)PMTU攻擊的裝置506a,其中,防止主機(jī)PMTU攻擊的裝置506a可以通過(guò)前述實(shí)施例實(shí)現(xiàn)。
[0095]該實(shí)施例除了具備圖4所示實(shí)施例的效果外,由于將防止主機(jī)PMTU攻擊的裝置設(shè)置在目的主機(jī)接入路由器或防火墻內(nèi),使得在整個(gè)網(wǎng)絡(luò)中傳輸?shù)膱?bào)文都比較大,只是在接入目的主機(jī)的入口處才將大報(bào)文分成較小的報(bào)文,顯著提升了網(wǎng)絡(luò)傳輸?shù)男省?br>
[0096]本說(shuō)明書(shū)中各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同和相似的部分可以相互參見(jiàn)。對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處可以參見(jiàn)方法實(shí)施例部分的說(shuō)明。
[0097]本公開(kāi)上述實(shí)施例具有以下有益效果:
[0098](I)通過(guò)在部分網(wǎng)絡(luò)設(shè)備上實(shí)現(xiàn)分片機(jī)制,避免了主機(jī)TCP/IP協(xié)議棧受到MTU值過(guò)小的影響;
[0099](2)由于只在防火墻、出口路由器、用戶(hù)接入路由器設(shè)備上通過(guò)ICMPv6SN00PING功能來(lái)啟用分片機(jī)制,在大多數(shù)情況下保證網(wǎng)絡(luò)不采用分片,只有在發(fā)生攻擊時(shí)才引入該機(jī)制,很好地保證了 IPv6協(xié)議原有的功能,可以避免源主機(jī)受目的主機(jī)PMTU設(shè)置過(guò)小的攻擊;
[0100](3)將MTU值與TCP/IP協(xié)議棧相分離,使得MTU值的設(shè)置不能影響TCP窗口、IP報(bào)文長(zhǎng)度等關(guān)鍵性能參數(shù),保證服務(wù)器協(xié)議棧的性能;
[0101](4)不改變IPv6協(xié)議、PMTU檢測(cè)等交互過(guò)程,防護(hù)功能可以疊加于現(xiàn)有網(wǎng)絡(luò)設(shè)備上。
[0102]需要指出的是,由于MTU設(shè)置過(guò)小可能是一種配置錯(cuò)誤,也可能是惡意軟件攻擊,其攻擊對(duì)象可以是所有的互聯(lián)網(wǎng)服務(wù)器。因此,本公開(kāi)可以為所有IPv6網(wǎng)絡(luò)中的服務(wù)器提供針對(duì)該類(lèi)攻擊的防護(hù),可以向IPv6服務(wù)器提供PMTU攻擊的防護(hù),確保這些服務(wù)器免受拒絕服務(wù)攻擊,或者因?yàn)檫@些攻擊導(dǎo)致的性能下降等。
[0103]雖然已參照示例性實(shí)施例描述了本公開(kāi),但應(yīng)理解,本公開(kāi)不限于上述的示例性實(shí)施例。對(duì)于本領(lǐng)域技術(shù)人員顯然的是,可以在不背離本公開(kāi)的范圍和精神的條件下修改上述的示例性實(shí)施例。所附的權(quán)利要求的范圍應(yīng)被賦予最寬的解釋?zhuān)园羞@樣的修改以及等同的結(jié)構(gòu)和功能。
【權(quán)利要求】
1.一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法,其特征在于,包括: 接收源主機(jī)發(fā)送的PMTU檢測(cè)報(bào)文; 響應(yīng)于對(duì)目的主機(jī)中的MTU值的修改,如果所述PMTU檢測(cè)報(bào)文的MTU值大于所述目的主機(jī)中的MTU值,則截獲所述目的主機(jī)發(fā)出的包太大ICMPv6報(bào)文,所述包太大ICMPv6報(bào)文中攜帶被修改后的目的主機(jī)的MTU值; 將自所述包太大ICMPv6報(bào)文中提取的MTU值與最小MTU門(mén)限值進(jìn)行比較; 如果提取的MTU值小于所述最小MTU門(mén)限值,則記錄所述包太大ICMPv6報(bào)文中的五元組信息,并靜默丟棄所述包太大ICMPv6報(bào)文; 接收所述源主機(jī)發(fā)送的業(yè)務(wù)報(bào)文,發(fā)送至所述目的主機(jī)的每個(gè)業(yè)務(wù)報(bào)文的大小為PMTU檢測(cè)成功后得到的相應(yīng)MTU值; 基于自所述包太大ICMPv6報(bào)文中提取的MTU值和所述五元組信息對(duì)相應(yīng)業(yè)務(wù)報(bào)文進(jìn)行分片與轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法,其特征在于,所述方法還包括: 由所述目的主機(jī)對(duì)分片轉(zhuǎn)發(fā)的報(bào)文進(jìn)行組裝。
3.根據(jù)權(quán)利要求1所述的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法,其特征在于,由所述源主機(jī)接入路由器或防火墻截獲所述包太大ICMPv6報(bào)文。
4.根據(jù)權(quán)利要求1所述的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法,其特征在于,由所述目的主機(jī)接入路由器或防火墻截獲所述包太大ICMPv6報(bào)文。
5.根據(jù)權(quán)利要求1所述的IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的方法,所述五元組信息包括源主機(jī)IP地址、源端口、目的主機(jī)IP地址、目的端口以及傳輸層協(xié)議號(hào)。
6.一種防止主機(jī)PMTU攻擊的裝置,其特征在于,包括: 檢測(cè)報(bào)文接收單元,用于接收源主機(jī)發(fā)送的PMTU檢測(cè)報(bào)文; 包太大報(bào)文截獲單元,用于響應(yīng)于對(duì)目的主機(jī)中的MTU值的修改,如果所述PMTU檢測(cè)報(bào)文的MTU值大于所述目的主機(jī)中的MTU值,則截獲所述目的主機(jī)發(fā)出的包太大ICMPv6報(bào)文,所述包太大ICMPv6報(bào)文中攜帶被修改后的目的主機(jī)的MTU值; MTU比較單元,用于將自所述包太大ICMPv6報(bào)文中提取的MTU值與最小MTU門(mén)限值進(jìn)行比較; 包太大報(bào)文處理單元,用于如果提取的MTU值小于所述最小MTU門(mén)限值,則記錄所述包太大ICMPv6報(bào)文中的五元組信息,并靜默丟棄所述包太大ICMPv6報(bào)文; 業(yè)務(wù)報(bào)文接收單元,用于接收所述源主機(jī)發(fā)送的業(yè)務(wù)報(bào)文,發(fā)送至所述目的主機(jī)的每個(gè)業(yè)務(wù)報(bào)文的大小為PMTU檢測(cè)成功后得到的相應(yīng)MTU值; 分片處理單元,用于基于自所述包太大ICMPv6報(bào)文中提取的MTU值和所述五元組信息對(duì)相應(yīng)業(yè)務(wù)報(bào)文進(jìn)行分片與轉(zhuǎn)發(fā)。
7.根據(jù)權(quán)利要求6所述的防止主機(jī)PMTU攻擊的裝置,其特征在于,將所述裝置設(shè)置在所述源主機(jī)接入路由器或防火墻內(nèi)。
8.根據(jù)權(quán)利要求6所述的防止主機(jī)PMTU攻擊的裝置,其特征在于,將所述裝置設(shè)置在所述目的主機(jī)接入路由器或防火墻內(nèi)。
9.根據(jù)權(quán)利要求6所述的防止主機(jī)PMTU攻擊的裝置,其特征在于,所述五元組信息包括源主機(jī)IP地址、源端口、目的主機(jī)IP地址、目的端口以及傳輸層協(xié)議號(hào)。
10.一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng),其特征在于,包括源主機(jī)、目的主機(jī)以及所述源主機(jī)接入路由器或防火墻,并在所述源主機(jī)接入路由器或防火墻內(nèi)設(shè)置權(quán)利要求6所述的防止主機(jī)PMTU攻擊的裝置。
11.一種IPv6網(wǎng)絡(luò)中防止主機(jī)PMTU攻擊的系統(tǒng),其特征在于,包括源主機(jī)、目的主機(jī)以及所述目的主機(jī)接入路由器或防火墻,并在所述目的主機(jī)接入路由器或防火墻內(nèi)設(shè)置權(quán)利要求6所述的防止主機(jī)PMTU攻擊的裝置。
【文檔編號(hào)】H04L29/06GK104348785SQ201310321383
【公開(kāi)日】2015年2月11日 申請(qǐng)日期:2013年7月29日 優(yōu)先權(quán)日:2013年7月29日
【發(fā)明者】陳仲華, 廖江 申請(qǐng)人:中國(guó)電信股份有限公司