防止IPv6报文攻击的方法及网络设备的制作方法

文档序号:7656170阅读:193来源:国知局
专利名称:防止IPv6报文攻击的方法及网络设备的制作方法
技术领域
本发明涉及因特网协议技术领域,具体涉及一种防止IPv6报文攻击的 方法及网络设备。
背景技术
IPv4中定义了严格源路由和自由源路由,在IPv6中也有类似的功能, IPv6在包的路由扩展头中定义了类型0和类型2两种路由头。源节点在IPv6 包的类型0路由头中列出包到达目的节点必须经过的特定节点的地址,这些 特定节点可以是IPv6包通过路径上的全部节点,也可以是通过路径上的部 分节点。图1给出了具有类型0路由头的IPv6报文的格式示意图,如图1所示, IPv6报文主要由IPv6基本头和IPv6载荷两部分组成。IPv6基本头包括版本号、下一个头、源地址、目的地址等字段,其 中,版本号表示该报文为IPv4报文还是IPv6报文,当值为4时表示IPv4 报文,值为6时表示IPv6报文;下一个头标志,表示IPv6基本头的下一个 头,当值为43时,表示下一个头为路由头;源地址为始发该报文的源节点 的地址,目的地址为该净艮文的下 一跳的地址。IPv6载荷部分主要包括路由头,路由头中的选项部分包括类型字段、 剩余段数字段和数据字段。其中,类型字段,用于表示路由头的类型,值为 0表示类型0路由头,值为l表示类型l路由头;剩余段数字段,表示报文 到达最终目的节点还需经过的特定节点的个数;数据字段中包含类型0路由 头,类型0路由头中包含了报文到达最终目的地必须经过的特定节点的地 址,如IPv6地址[1]、 IPv6地址[2]、…,最后一个IPv6 i也址即为IPv6净艮
文的最终目的节点地址。图2为现有的转发具有类型0路由头的IPv6报文的流程图,如图2所 示,其具体步骤如下步骤201:源节点在IPv6报文中构造类型0路由头,类型O路由头中 包括报文到达最终目的节点需经过的特定节点的地址,将剩余段数设置为特 定节点的总数,将IPv6报文的第一跳的地址设置为基本头的目的地址。步骤202:源节点将IPv6报文发送出去。步骤203: IPv6报文到达一个节点,该节点判断基本头的目的地址是否 为自身地址,若是,执行步骤205;否则,执行步骤204。步骤204:节点直接将IPv6报文转发出去,转至步骤203。步骤205:节点检查基本头中的下一个头标志,发现该标志为43,确定 该IPv6报文具有3各由头。步骤206:节点检查IPv6报文的路由头中的选项部分,发现类型字段 为0,则确定IPv6净艮文具有类型0^^由头。步骤207:节点判断路由头的选项部分中的剩余段数是否为0,若是, 执行步骤208;否则,执行步骤209。步骤208:节点确定自身即为该IPv6报文的最终目的节点,对IPv6报 文的路由头之后的内容进行处理,本流程结束。步骤209:节点根据类型0路由头中的地址总数以及剩余段数,确定IPv6 报文将经过的下一个特定节点的地址,以该地址来替代IPv6基本头的目的 地址,并将剩余段数减l,然后将IPv6报文转发出去,转至步骤203。从步骤203~209可以看出,只有IPv6报文的必经节点,即始发IPv6报 文的下一跳和类型O路由头中的地址所对应的特定节点,才会对报文的路由 头进行处理,其它中间节点将忽略报文的路由头。以图1为例,当源节点将构造好的IPv6报文发送出去时,报文会首先 到达基本头中的目的地址3000::2对应的节点,该节点发现报文基本头的 目的地址即为自身地址,且检查到报文基本头的下一个头为路由头,则检查
路由头的选项部分中的类型字段,确定报文具有类型0路由头,则检查剩余 段数字段,发现剩余段数为6,确定自身不为最终目的节点,然后根据类型O路由头中的地址总数6以及剩余段数6,以IPv6地址[l]: 3000::3替代 基本头中的目的地址3000::2,将剩余段数设置为5,然后将报文转发出去; 依此类推,直至报文到达3000::8对应的最终目的节点。基于具有类型O路由头的IPv6报文的特点必须依次经过类型O路由 头中的各地址对应的特定节点才能到达最终目的节点,经常有非法者利用该 特点制造IPv6攻击报文。典型的IPv6攻击报文为类型0路由头中的地址 重复,如图3所示,将地址3000::3和3000::4在类型O路由头中反复填写, 这样,报文就会重复地发往一个或多个地址,如图3所示,报文会在地址 3000::3和3000::4之间反复发送,从而占用网络带宽和网络设备的CPU资 源。类型0路由头中最多可设置255个地址,这样,发送一个具有类型O路 由头的IPv6攻击报文,最多就可以使网络设备处理255次该报文。现有的防止非法IPv6报文攻击的方法是在节点上配置ACL规则,该 ACL规则中列出了不信任源的地址,以将所有来自不信任源的IPv6报文过 滤掉。这种方法的缺点是无法细致区分攻击报文和非攻击报文,防止非法 IPv6报文攻击的精确度较低。 一旦某个源被确定为不信任源,则即使该源发 来非攻击目的的IPv6报文,该报文也会被过滤掉。发明内容本发明提供一种防止IPv6报文攻击的方法及网络设备,以提高防止IPv6 报文攻击的精确度。本发明的技术方案是这样实现的 一种防止IPv6才艮文攻击的方法,该方法包括节点接收具有类型O路由头的IPv6报文,根据报文的类型O路由头中的地 址,判断该报文是否满足预先设定的路由重复条件,若满足,则确定为攻击报 文,以攻击报文的类型0路由头中地址的最后一个IPv6地址替换攻击报文的目
的地址,并将攻击报文中的剩余段数设为0,以将攻击报文直接转发到类型0路由头中最后 一个IPv6地址对应的最终目的节点。所述预先设定的路由重复条件为类型O路由头的所有地址中有一个地址重复出现a次以上,或者,类型O路由头的所有地址中有b个地址重复出现c次以上, 或者,类型O路由头预设地址范围内有一个地址重复出现d次以上, 或者,类型O路由头预设地址范围内有e个地址重复出现f次以上, 其中,a, b, c, d, e, f为预设常数。 所述节点判断报文是否满足预先设定的路由重复条件包括 节点确定自身为报文的必经节点,判断报文中的剩余段数是否为0,若是,确定报文已到达最终目的节点,结束本流程;否则,判断报文是否满足预先设定的路由重复条件。一种防止IPv6报文攻击的网络设备,该网络设备包括报文接收模块,接收具有类型0路由头的IPv6报文,且确定本网络设备为报文的必经节点,则将报文发送给路由重复^r测模块;路由重复检测模块,接收IPv6报文,根据报文的类型0路由头中的地址,若检测到报文满足预先设定的路由重复条件,则确定为攻击报文,将重复指示和IPv6报文发送给转发处理模块;转发处理模块,接收路由重复指示和IPv6报文,以报文的类型0路由头中地址的最后一个IPv6地址替代报文的目的地址,将报文中的剩余段数设为0,将报文转发出去。所述报文接收模块包括必经节点检测模块,接收IPv6报文,若检测到报文的目的地址为本网络设 备地址,将报文发送给类型0路由头检测模块;否则,将报文转发给下一节点;类型0路由头检测模块,接收IPv6报文,若检测到报文基本头中的下一个 头标志为路由头标志,且检测到路由头中的类型字段表示类型0,将报文发送 给剩余段数检测模块;
剩余段数检测模块,接收IPv6报文,若检测到剩余段数为0,则确定报文已到达最终目的节点;否则,将IPv6报文发送给路由重复检测模块。 与现有技术相比,本发明通过在节点接收到具有类型0路由头的IPv6报文 时,根据报文的类型0路由头中的地址,判断该报文是否满足路由重复条件, 若满足,则确定为IPv6攻击报文,将攻击报文的类型0路由头中地址的最 后一个IPv6地址作为攻击报文的目的地址,并将攻击报文的剩余段数设为 0,使得IPv6攻击报文能够直接被发送给最终目的节点,避免了 IPv6攻击 报文在同一路由上重复传输,同时也使得发送该IPv6攻击报文的源节点发 来的非攻击目的的IPv6报文能够被正常转发,提高了防止IPv6报文攻击的 精确度。


图1为具有类型0路由头的IPv6报文的示意图;图2为现有的转发具有类型0路由头的IPv6报文的流程图;图3为具有类型0路由头的IPv6攻击报文的示意图;图4为本发明实施例提供的防止IPv6报文攻击的流程图;图5为本发明实施例提供的防止IPv6报文攻击的网络设备的结构示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。 图4为本发明实施例提供的防止IPv6 4艮文攻击的流程图,如图4所示, 其具体步骤如下步骤401:源节点在IPv6报文中构造类型0路由头,该路由头中包括 报文到达最终目的节点需经过的特定节点的地址,将剩余段数设置为特定节 点的总数,将IPv6报文的第一跳的地址设置为基本头的目的地址。步骤402:源节点将IPv6净艮文发送出去。
步骤403: IPv6报文到达一个节点,该节点判断基本头的目的地址是否 为自身地址,若是,执行步骤405;否则,执行步骤404。步骤404:节点按下一跳地址直接将该报文转发出去,转至步骤403。步骤405:节点检查基本头中的下一个头标志,发现该标志为43,确定 该IPv6报文具有路由头。步骤406:节点检查IPv6报文的路由头中的选项部分,发现类型字段 为0,则确定该报文具有类型0路由头。步骤407:节点判断路由头的选项部分中的剩余段数是否为0,若是, 执行步骤408;否则,执行步骤409。步骤408:节点确定自身即为该IPv6报文的最终目的节点,对IPv6报 文的路由头之后的内容进行处理,本流程结束。步骤409:节点根据类型0路由头中的地址,判断IPv6报文是否满足 预先设定的路由重复条件,若是,执行步骤410;否则,执行步骤4U。路由重复的情况有很多种,或者类型O路由头的所有地址中只有部分地 址重复,或者所有地址都相同。路由重复条件可以根据网络中的节点部署情 况和经验设定,可设定为只要类型O路由头的所有地址中有一个地址出现 a次以上就认为路由重复;或者设定为,类型O路由头的所有地址中有b个 地址出现c次以上就认为路由重复;或者设定为只要类型O路由头中的预 设地址范围内有一个地址出现d次以上就认为路由重复,例如,类型O路由 头中的IPv6地址[1] ~ IPv6地址[10]中有一个地址出现2次以上就认为^各由 重复;或者设定为,类型O路由头中的预设地址范围内有e个地址出现f次 以上就认为路由重复,等等。这里的a, b, c, d, e, f以及预设范围可以根 据网络节点的部署情况和经验设定。步骤410:节点以IPv6报文类型0路由头中的最后一个地址替换IPv6 报文基本头中的目的地址,并将路由头选项部分中的剩余段数设为0,将IPv6 报文转发出去,以使报文直接转发给最终目的节点转至步骤403。步骤411:节点根据剩佘段数以及类型O路由头中的地址总数,确定报
文将经过的下一个特定节点的地址,以该地址来替代IPv6基本头的目的地址,并将剩余段数减l,然后按下一跳地址将IPv6报文转发出去,转至步骤 403。从图4所示实施例可以看出,当IPv6报文的必经特定节点检测到报文 满足路由重复条件时,就直接将1Pv6报文的类型0路由头中的最后一个地 址作为报文基本头中的目的地址,并将剩余段数设为0,这样,IPv6报文就 会直接被转发给最终目的节点,避免了报文在某个路由上的重复传输。且可 以看出,该实施例提供的方法与发来IPv6报文的源无关,即使该源曾经发 出过IPv6攻击报文,该源随后发出的非攻击目的的IPv6报文仍能被正常转 发。图4所示实施例中的节点一般指具有路由、交换功能的网络设备,如 路由器、交换机等。图5为本发明实施例提供的防止IPv6报文攻击的网络设备的结构组成 图,如图5所示,其主要包括报文接收模块51、路由重复检测模块52和 转发处理模块53,其中,报文接收模块51由必经节点检测模块511、类 型0路由头检测模块512和剩余段数检测模块513组成,各模块的功能分别 如下:必经节点检测模块511:接收其它节点发来的IPv6报文,若检测到报文的 目的地址为本网络设备地址,将报文发送给类型0路由头检测模块512;否则, 按下一跳地址直接将报文转发给下一节点。类型O路由头检测模块512:接收必经节点检测模块511发来的IPv6报文, 若检测到报文基本头中的下一个头标志为路由头标志,且检测到路由头的选项 部分中的类型字段表示类型0,将报文发送给剩余段数检测模块513。剩余段数检测模块513:接收类型0路由头检测模块512发来的IPv6 报文,若检测到报文的路由头的选项部分中的剩余段数为0,则确定本网络 设备为报文的最终目的节点,对报文的路由头之后的内容进行处理;否则, 将IPv6才艮文发送给路由重复检测才莫块52。 路由重复检测模块52:接收剩余段数检测模块513发来的IPv6报文, 根据报文的类型0路由头中的地址,判断IPv6报文是否满足预先设定的路 由重复条件,若满足,将路由重复指示和该IPv6报文发送给转发处理模块 53;若不满足,只将IPv6报文发送给转发处理模块53。转发处理模块53:接收到路由重复检测模块52发来的路由重复指示和 1Pv6报文,以IPv6报文的类型O路由头中的最后一个地址替代基本头中的 目的地址,将报文中的剩余段数设置为0,将报文转发出去,使报文直接到 达最终目的节点;只接收到路由重复检测模块52发来的IPv6报文,根据IPv6 报文中的剩余段数以及类型0路由头中包含的地址总数,从类型0路由头中 顺序选择一个地址替代基本头中的目的地址,并将剩余段数减l,然后按下 一跳地址将报文转发出去。以上所述仅为本发明的过程及方法实施例,并不用以限制本发明,凡在 本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
权利要求
1、一种防止IPv6报文攻击的方法,其特征在于,该方法包括节点接收具有类型0路由头的IPv6报文,根据报文的类型0路由头中的地址,判断该报文是否满足预先设定的路由重复条件,若满足,则确定为攻击报文,以攻击报文的类型0路由头中地址的最后一个IPv6地址替换攻击报文的目的地址,并将攻击报文中的剩余段数设为0,以将攻击报文直接转发到类型0路由头中最后一个IPv6地址对应的最终目的节点。
2、 如权利要求l所述的方法,其特征在于,所述预先设定的路由重复条件 为类型O路由头的所有地址中有一个地址重复出现a次以上,或者,类型O路由头的所有地址中有b个地址重复出现c次以上, 或者,类型O路由头预设地址范围内有一个地址重复出现d次以上, 或者,类型O路由头预设地址范围内有e个地址重复出现f次以上, 其中,a, b, c, d, e, f为预设常数。
3、 如权利要求l所述的方法,其特征在于,所述节点判断报文是否满足预 先设定的路由重复条件包括节点确定自身为报文的必经节点,判断报文中的剩余段数是否为0,若是, 确定报文已到达最终目的节点,结束本流程;否则,判断报文是否满足预先设 定的路由重复条件。
4、 一种防止IPv6报文攻击的网络设备,其特征在于,该网络设备包括 报文接收模块,接收具有类型O路由头的IPv6报文,且确定本网络设备为报文的必经节点,则将报文发送给路由重复检测模块;路由重复检测模块,接收IPv6报文,根据报文的类型O路由头中的地址, 若检测到报文满足预先设定的路由重复条件,则确定为攻击报文,将重复指示 和IPv6报文发送给转发处理模块;转发处理模块,接收路由重复指示和IPv6报文,以报文的类型O路由头中 地址的最后一个IPv6地址替代报文的目的地址,将报文中的剩余段数设为0, 将报文转发出去。
5、如权利要求4所述的网络设备,其特征在于,所述报文接收模块包括必经节点检测模块,接收IPv6报文,若检测到报文的目的地址为本网络设 备地址,将报文发送给类型0路由头检测模块;否则,将报文转发给下一节点;类型0路由头检测模块,接收IPv6报文,若检测到报文基本头中的下一个 头标志为路由头标志,且检测到路由头中的类型字段表示类型0,将报文发送 给剩余段数检测模块;剩余段数检测模块,接收IPv6报文,若检测到剩余段数为0,则确定报文 已到达最终目的节点;否则,将IPv6报文发送给路由重复检测模块。
全文摘要
本发明公开了一种防止IPv6报文攻击的方法及网络设备。方法包括接收具有类型0路由头的IPv6报文,根据报文的类型0路由头中的地址,判断该报文是否满足预先设定的路由重复条件,若满足,则确定该报文为IPv6攻击报文,以攻击报文的类型0路由头中地址的最后一个IPv6地址替换攻击报文的目的地址,并将攻击报文中的剩余段数设为0,以将攻击报文直接转发到类型0路由头中的最后一个IPv6地址对应的最终目的节点。本发明避免了IPv6攻击报文在同一路由上重复传输,同时也使得发送该IPv6攻击报文的源节点发来的非攻击目的的IPv6报文能够被正常转发,提高了防止IPv6报文攻击的精确度。
文档编号H04L12/56GK101119376SQ200710121819
公开日2008年2月6日 申请日期2007年9月14日 优先权日2007年9月14日
发明者刘经伦 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1