專利名稱:防止IPv6報文攻擊的方法及網絡設備的制作方法
技術領域:
本發(fā)明涉及因特網協(xié)議技術領域,具體涉及一種防止IPv6報文攻擊的 方法及網絡設備。
背景技術:
IPv4中定義了嚴格源路由和自由源路由,在IPv6中也有類似的功能, IPv6在包的路由擴展頭中定義了類型0和類型2兩種路由頭。源節(jié)點在IPv6 包的類型0路由頭中列出包到達目的節(jié)點必須經過的特定節(jié)點的地址,這些 特定節(jié)點可以是IPv6包通過路徑上的全部節(jié)點,也可以是通過路徑上的部 分節(jié)點。圖1給出了具有類型0路由頭的IPv6報文的格式示意圖,如圖1所示, IPv6報文主要由IPv6基本頭和IPv6載荷兩部分組成。IPv6基本頭包括版本號、下一個頭、源地址、目的地址等字段,其 中,版本號表示該報文為IPv4報文還是IPv6報文,當值為4時表示IPv4 報文,值為6時表示IPv6報文;下一個頭標志,表示IPv6基本頭的下一個 頭,當值為43時,表示下一個頭為路由頭;源地址為始發(fā)該報文的源節(jié)點 的地址,目的地址為該凈艮文的下 一跳的地址。IPv6載荷部分主要包括路由頭,路由頭中的選項部分包括類型字段、 剩余段數(shù)字段和數(shù)據(jù)字段。其中,類型字段,用于表示路由頭的類型,值為 0表示類型0路由頭,值為l表示類型l路由頭;剩余段數(shù)字段,表示報文 到達最終目的節(jié)點還需經過的特定節(jié)點的個數(shù);數(shù)據(jù)字段中包含類型0路由 頭,類型0路由頭中包含了報文到達最終目的地必須經過的特定節(jié)點的地 址,如IPv6地址[1]、 IPv6地址[2]、…,最后一個IPv6 i也址即為IPv6凈艮
文的最終目的節(jié)點地址。圖2為現(xiàn)有的轉發(fā)具有類型0路由頭的IPv6報文的流程圖,如圖2所 示,其具體步驟如下步驟201:源節(jié)點在IPv6報文中構造類型0路由頭,類型O路由頭中 包括報文到達最終目的節(jié)點需經過的特定節(jié)點的地址,將剩余段數(shù)設置為特 定節(jié)點的總數(shù),將IPv6報文的第一跳的地址設置為基本頭的目的地址。步驟202:源節(jié)點將IPv6報文發(fā)送出去。步驟203: IPv6報文到達一個節(jié)點,該節(jié)點判斷基本頭的目的地址是否 為自身地址,若是,執(zhí)行步驟205;否則,執(zhí)行步驟204。步驟204:節(jié)點直接將IPv6報文轉發(fā)出去,轉至步驟203。步驟205:節(jié)點檢查基本頭中的下一個頭標志,發(fā)現(xiàn)該標志為43,確定 該IPv6報文具有3各由頭。步驟206:節(jié)點檢查IPv6報文的路由頭中的選項部分,發(fā)現(xiàn)類型字段 為0,則確定IPv6凈艮文具有類型0^^由頭。步驟207:節(jié)點判斷路由頭的選項部分中的剩余段數(shù)是否為0,若是, 執(zhí)行步驟208;否則,執(zhí)行步驟209。步驟208:節(jié)點確定自身即為該IPv6報文的最終目的節(jié)點,對IPv6報 文的路由頭之后的內容進行處理,本流程結束。步驟209:節(jié)點根據(jù)類型0路由頭中的地址總數(shù)以及剩余段數(shù),確定IPv6 報文將經過的下一個特定節(jié)點的地址,以該地址來替代IPv6基本頭的目的 地址,并將剩余段數(shù)減l,然后將IPv6報文轉發(fā)出去,轉至步驟203。從步驟203~209可以看出,只有IPv6報文的必經節(jié)點,即始發(fā)IPv6報 文的下一跳和類型O路由頭中的地址所對應的特定節(jié)點,才會對報文的路由 頭進行處理,其它中間節(jié)點將忽略報文的路由頭。以圖1為例,當源節(jié)點將構造好的IPv6報文發(fā)送出去時,報文會首先 到達基本頭中的目的地址3000::2對應的節(jié)點,該節(jié)點發(fā)現(xiàn)報文基本頭的 目的地址即為自身地址,且檢查到報文基本頭的下一個頭為路由頭,則檢查
路由頭的選項部分中的類型字段,確定報文具有類型0路由頭,則檢查剩余 段數(shù)字段,發(fā)現(xiàn)剩余段數(shù)為6,確定自身不為最終目的節(jié)點,然后根據(jù)類型O路由頭中的地址總數(shù)6以及剩余段數(shù)6,以IPv6地址[l]: 3000::3替代 基本頭中的目的地址3000::2,將剩余段數(shù)設置為5,然后將報文轉發(fā)出去; 依此類推,直至報文到達3000::8對應的最終目的節(jié)點?;诰哂蓄愋蚈路由頭的IPv6報文的特點必須依次經過類型O路由 頭中的各地址對應的特定節(jié)點才能到達最終目的節(jié)點,經常有非法者利用該 特點制造IPv6攻擊報文。典型的IPv6攻擊報文為類型0路由頭中的地址 重復,如圖3所示,將地址3000::3和3000::4在類型O路由頭中反復填寫, 這樣,報文就會重復地發(fā)往一個或多個地址,如圖3所示,報文會在地址 3000::3和3000::4之間反復發(fā)送,從而占用網絡帶寬和網絡設備的CPU資 源。類型0路由頭中最多可設置255個地址,這樣,發(fā)送一個具有類型O路 由頭的IPv6攻擊報文,最多就可以使網絡設備處理255次該報文?,F(xiàn)有的防止非法IPv6報文攻擊的方法是在節(jié)點上配置ACL規(guī)則,該 ACL規(guī)則中列出了不信任源的地址,以將所有來自不信任源的IPv6報文過 濾掉。這種方法的缺點是無法細致區(qū)分攻擊報文和非攻擊報文,防止非法 IPv6報文攻擊的精確度較低。 一旦某個源被確定為不信任源,則即使該源發(fā) 來非攻擊目的的IPv6報文,該報文也會被過濾掉。發(fā)明內容本發(fā)明提供一種防止IPv6報文攻擊的方法及網絡設備,以提高防止IPv6 報文攻擊的精確度。本發(fā)明的技術方案是這樣實現(xiàn)的 一種防止IPv6才艮文攻擊的方法,該方法包括節(jié)點接收具有類型O路由頭的IPv6報文,根據(jù)報文的類型O路由頭中的地 址,判斷該報文是否滿足預先設定的路由重復條件,若滿足,則確定為攻擊報 文,以攻擊報文的類型0路由頭中地址的最后一個IPv6地址替換攻擊報文的目
的地址,并將攻擊報文中的剩余段數(shù)設為0,以將攻擊報文直接轉發(fā)到類型0路由頭中最后 一個IPv6地址對應的最終目的節(jié)點。所述預先設定的路由重復條件為類型O路由頭的所有地址中有一個地址重復出現(xiàn)a次以上,或者,類型O路由頭的所有地址中有b個地址重復出現(xiàn)c次以上, 或者,類型O路由頭預設地址范圍內有一個地址重復出現(xiàn)d次以上, 或者,類型O路由頭預設地址范圍內有e個地址重復出現(xiàn)f次以上, 其中,a, b, c, d, e, f為預設常數(shù)。 所述節(jié)點判斷報文是否滿足預先設定的路由重復條件包括 節(jié)點確定自身為報文的必經節(jié)點,判斷報文中的剩余段數(shù)是否為0,若是,確定報文已到達最終目的節(jié)點,結束本流程;否則,判斷報文是否滿足預先設定的路由重復條件。一種防止IPv6報文攻擊的網絡設備,該網絡設備包括報文接收模塊,接收具有類型0路由頭的IPv6報文,且確定本網絡設備為報文的必經節(jié)點,則將報文發(fā)送給路由重復^r測模塊;路由重復檢測模塊,接收IPv6報文,根據(jù)報文的類型0路由頭中的地址,若檢測到報文滿足預先設定的路由重復條件,則確定為攻擊報文,將重復指示和IPv6報文發(fā)送給轉發(fā)處理模塊;轉發(fā)處理模塊,接收路由重復指示和IPv6報文,以報文的類型0路由頭中地址的最后一個IPv6地址替代報文的目的地址,將報文中的剩余段數(shù)設為0,將報文轉發(fā)出去。所述報文接收模塊包括必經節(jié)點檢測模塊,接收IPv6報文,若檢測到報文的目的地址為本網絡設 備地址,將報文發(fā)送給類型0路由頭檢測模塊;否則,將報文轉發(fā)給下一節(jié)點;類型0路由頭檢測模塊,接收IPv6報文,若檢測到報文基本頭中的下一個 頭標志為路由頭標志,且檢測到路由頭中的類型字段表示類型0,將報文發(fā)送 給剩余段數(shù)檢測模塊;
剩余段數(shù)檢測模塊,接收IPv6報文,若檢測到剩余段數(shù)為0,則確定報文已到達最終目的節(jié)點;否則,將IPv6報文發(fā)送給路由重復檢測模塊。 與現(xiàn)有技術相比,本發(fā)明通過在節(jié)點接收到具有類型0路由頭的IPv6報文 時,根據(jù)報文的類型0路由頭中的地址,判斷該報文是否滿足路由重復條件, 若滿足,則確定為IPv6攻擊報文,將攻擊報文的類型0路由頭中地址的最 后一個IPv6地址作為攻擊報文的目的地址,并將攻擊報文的剩余段數(shù)設為 0,使得IPv6攻擊報文能夠直接被發(fā)送給最終目的節(jié)點,避免了 IPv6攻擊 報文在同一路由上重復傳輸,同時也使得發(fā)送該IPv6攻擊報文的源節(jié)點發(fā) 來的非攻擊目的的IPv6報文能夠被正常轉發(fā),提高了防止IPv6報文攻擊的 精確度。
圖1為具有類型0路由頭的IPv6報文的示意圖;圖2為現(xiàn)有的轉發(fā)具有類型0路由頭的IPv6報文的流程圖;圖3為具有類型0路由頭的IPv6攻擊報文的示意圖;圖4為本發(fā)明實施例提供的防止IPv6報文攻擊的流程圖;圖5為本發(fā)明實施例提供的防止IPv6報文攻擊的網絡設備的結構示意圖。
具體實施方式
下面結合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。 圖4為本發(fā)明實施例提供的防止IPv6 4艮文攻擊的流程圖,如圖4所示, 其具體步驟如下步驟401:源節(jié)點在IPv6報文中構造類型0路由頭,該路由頭中包括 報文到達最終目的節(jié)點需經過的特定節(jié)點的地址,將剩余段數(shù)設置為特定節(jié) 點的總數(shù),將IPv6報文的第一跳的地址設置為基本頭的目的地址。步驟402:源節(jié)點將IPv6凈艮文發(fā)送出去。
步驟403: IPv6報文到達一個節(jié)點,該節(jié)點判斷基本頭的目的地址是否 為自身地址,若是,執(zhí)行步驟405;否則,執(zhí)行步驟404。步驟404:節(jié)點按下一跳地址直接將該報文轉發(fā)出去,轉至步驟403。步驟405:節(jié)點檢查基本頭中的下一個頭標志,發(fā)現(xiàn)該標志為43,確定 該IPv6報文具有路由頭。步驟406:節(jié)點檢查IPv6報文的路由頭中的選項部分,發(fā)現(xiàn)類型字段 為0,則確定該報文具有類型0路由頭。步驟407:節(jié)點判斷路由頭的選項部分中的剩余段數(shù)是否為0,若是, 執(zhí)行步驟408;否則,執(zhí)行步驟409。步驟408:節(jié)點確定自身即為該IPv6報文的最終目的節(jié)點,對IPv6報 文的路由頭之后的內容進行處理,本流程結束。步驟409:節(jié)點根據(jù)類型0路由頭中的地址,判斷IPv6報文是否滿足 預先設定的路由重復條件,若是,執(zhí)行步驟410;否則,執(zhí)行步驟4U。路由重復的情況有很多種,或者類型O路由頭的所有地址中只有部分地 址重復,或者所有地址都相同。路由重復條件可以根據(jù)網絡中的節(jié)點部署情 況和經驗設定,可設定為只要類型O路由頭的所有地址中有一個地址出現(xiàn) a次以上就認為路由重復;或者設定為,類型O路由頭的所有地址中有b個 地址出現(xiàn)c次以上就認為路由重復;或者設定為只要類型O路由頭中的預 設地址范圍內有一個地址出現(xiàn)d次以上就認為路由重復,例如,類型O路由 頭中的IPv6地址[1] ~ IPv6地址[10]中有一個地址出現(xiàn)2次以上就認為^各由 重復;或者設定為,類型O路由頭中的預設地址范圍內有e個地址出現(xiàn)f次 以上就認為路由重復,等等。這里的a, b, c, d, e, f以及預設范圍可以根 據(jù)網絡節(jié)點的部署情況和經驗設定。步驟410:節(jié)點以IPv6報文類型0路由頭中的最后一個地址替換IPv6 報文基本頭中的目的地址,并將路由頭選項部分中的剩余段數(shù)設為0,將IPv6 報文轉發(fā)出去,以使報文直接轉發(fā)給最終目的節(jié)點轉至步驟403。步驟411:節(jié)點根據(jù)剩佘段數(shù)以及類型O路由頭中的地址總數(shù),確定報
文將經過的下一個特定節(jié)點的地址,以該地址來替代IPv6基本頭的目的地址,并將剩余段數(shù)減l,然后按下一跳地址將IPv6報文轉發(fā)出去,轉至步驟 403。從圖4所示實施例可以看出,當IPv6報文的必經特定節(jié)點檢測到報文 滿足路由重復條件時,就直接將1Pv6報文的類型0路由頭中的最后一個地 址作為報文基本頭中的目的地址,并將剩余段數(shù)設為0,這樣,IPv6報文就 會直接被轉發(fā)給最終目的節(jié)點,避免了報文在某個路由上的重復傳輸。且可 以看出,該實施例提供的方法與發(fā)來IPv6報文的源無關,即使該源曾經發(fā) 出過IPv6攻擊報文,該源隨后發(fā)出的非攻擊目的的IPv6報文仍能被正常轉 發(fā)。圖4所示實施例中的節(jié)點一般指具有路由、交換功能的網絡設備,如 路由器、交換機等。圖5為本發(fā)明實施例提供的防止IPv6報文攻擊的網絡設備的結構組成 圖,如圖5所示,其主要包括報文接收模塊51、路由重復檢測模塊52和 轉發(fā)處理模塊53,其中,報文接收模塊51由必經節(jié)點檢測模塊511、類 型0路由頭檢測模塊512和剩余段數(shù)檢測模塊513組成,各模塊的功能分別 如下:必經節(jié)點檢測模塊511:接收其它節(jié)點發(fā)來的IPv6報文,若檢測到報文的 目的地址為本網絡設備地址,將報文發(fā)送給類型0路由頭檢測模塊512;否則, 按下一跳地址直接將報文轉發(fā)給下一節(jié)點。類型O路由頭檢測模塊512:接收必經節(jié)點檢測模塊511發(fā)來的IPv6報文, 若檢測到報文基本頭中的下一個頭標志為路由頭標志,且檢測到路由頭的選項 部分中的類型字段表示類型0,將報文發(fā)送給剩余段數(shù)檢測模塊513。剩余段數(shù)檢測模塊513:接收類型0路由頭檢測模塊512發(fā)來的IPv6 報文,若檢測到報文的路由頭的選項部分中的剩余段數(shù)為0,則確定本網絡 設備為報文的最終目的節(jié)點,對報文的路由頭之后的內容進行處理;否則, 將IPv6才艮文發(fā)送給路由重復檢測才莫塊52。 路由重復檢測模塊52:接收剩余段數(shù)檢測模塊513發(fā)來的IPv6報文, 根據(jù)報文的類型0路由頭中的地址,判斷IPv6報文是否滿足預先設定的路 由重復條件,若滿足,將路由重復指示和該IPv6報文發(fā)送給轉發(fā)處理模塊 53;若不滿足,只將IPv6報文發(fā)送給轉發(fā)處理模塊53。轉發(fā)處理模塊53:接收到路由重復檢測模塊52發(fā)來的路由重復指示和 1Pv6報文,以IPv6報文的類型O路由頭中的最后一個地址替代基本頭中的 目的地址,將報文中的剩余段數(shù)設置為0,將報文轉發(fā)出去,使報文直接到 達最終目的節(jié)點;只接收到路由重復檢測模塊52發(fā)來的IPv6報文,根據(jù)IPv6 報文中的剩余段數(shù)以及類型0路由頭中包含的地址總數(shù),從類型0路由頭中 順序選擇一個地址替代基本頭中的目的地址,并將剩余段數(shù)減l,然后按下 一跳地址將報文轉發(fā)出去。以上所述僅為本發(fā)明的過程及方法實施例,并不用以限制本發(fā)明,凡在 本發(fā)明的精神和原則之內所做的任何修改、等同替換、改進等,均應包含在 本發(fā)明的保護范圍之內。
權利要求
1、一種防止IPv6報文攻擊的方法,其特征在于,該方法包括節(jié)點接收具有類型0路由頭的IPv6報文,根據(jù)報文的類型0路由頭中的地址,判斷該報文是否滿足預先設定的路由重復條件,若滿足,則確定為攻擊報文,以攻擊報文的類型0路由頭中地址的最后一個IPv6地址替換攻擊報文的目的地址,并將攻擊報文中的剩余段數(shù)設為0,以將攻擊報文直接轉發(fā)到類型0路由頭中最后一個IPv6地址對應的最終目的節(jié)點。
2、 如權利要求l所述的方法,其特征在于,所述預先設定的路由重復條件 為類型O路由頭的所有地址中有一個地址重復出現(xiàn)a次以上,或者,類型O路由頭的所有地址中有b個地址重復出現(xiàn)c次以上, 或者,類型O路由頭預設地址范圍內有一個地址重復出現(xiàn)d次以上, 或者,類型O路由頭預設地址范圍內有e個地址重復出現(xiàn)f次以上, 其中,a, b, c, d, e, f為預設常數(shù)。
3、 如權利要求l所述的方法,其特征在于,所述節(jié)點判斷報文是否滿足預 先設定的路由重復條件包括節(jié)點確定自身為報文的必經節(jié)點,判斷報文中的剩余段數(shù)是否為0,若是, 確定報文已到達最終目的節(jié)點,結束本流程;否則,判斷報文是否滿足預先設 定的路由重復條件。
4、 一種防止IPv6報文攻擊的網絡設備,其特征在于,該網絡設備包括 報文接收模塊,接收具有類型O路由頭的IPv6報文,且確定本網絡設備為報文的必經節(jié)點,則將報文發(fā)送給路由重復檢測模塊;路由重復檢測模塊,接收IPv6報文,根據(jù)報文的類型O路由頭中的地址, 若檢測到報文滿足預先設定的路由重復條件,則確定為攻擊報文,將重復指示 和IPv6報文發(fā)送給轉發(fā)處理模塊;轉發(fā)處理模塊,接收路由重復指示和IPv6報文,以報文的類型O路由頭中 地址的最后一個IPv6地址替代報文的目的地址,將報文中的剩余段數(shù)設為0, 將報文轉發(fā)出去。
5、如權利要求4所述的網絡設備,其特征在于,所述報文接收模塊包括必經節(jié)點檢測模塊,接收IPv6報文,若檢測到報文的目的地址為本網絡設 備地址,將報文發(fā)送給類型0路由頭檢測模塊;否則,將報文轉發(fā)給下一節(jié)點;類型0路由頭檢測模塊,接收IPv6報文,若檢測到報文基本頭中的下一個 頭標志為路由頭標志,且檢測到路由頭中的類型字段表示類型0,將報文發(fā)送 給剩余段數(shù)檢測模塊;剩余段數(shù)檢測模塊,接收IPv6報文,若檢測到剩余段數(shù)為0,則確定報文 已到達最終目的節(jié)點;否則,將IPv6報文發(fā)送給路由重復檢測模塊。
全文摘要
本發(fā)明公開了一種防止IPv6報文攻擊的方法及網絡設備。方法包括接收具有類型0路由頭的IPv6報文,根據(jù)報文的類型0路由頭中的地址,判斷該報文是否滿足預先設定的路由重復條件,若滿足,則確定該報文為IPv6攻擊報文,以攻擊報文的類型0路由頭中地址的最后一個IPv6地址替換攻擊報文的目的地址,并將攻擊報文中的剩余段數(shù)設為0,以將攻擊報文直接轉發(fā)到類型0路由頭中的最后一個IPv6地址對應的最終目的節(jié)點。本發(fā)明避免了IPv6攻擊報文在同一路由上重復傳輸,同時也使得發(fā)送該IPv6攻擊報文的源節(jié)點發(fā)來的非攻擊目的的IPv6報文能夠被正常轉發(fā),提高了防止IPv6報文攻擊的精確度。
文檔編號H04L12/56GK101119376SQ200710121819
公開日2008年2月6日 申請日期2007年9月14日 優(yōu)先權日2007年9月14日
發(fā)明者劉經倫 申請人:杭州華三通信技術有限公司