一种防止重复地址检测攻击的方法及网络设备的制作方法

文档序号:7687044阅读:129来源:国知局
专利名称:一种防止重复地址检测攻击的方法及网络设备的制作方法
技术领域
本发明涉及IPv6技术,尤指一种防止重复地址检测(DAD, Duplicated Address Detection )攻击的方法及网络设备。
背景技术
互联网工程任务组(IETF, Internet Engineering Task Force )在20世纟己 卯年代提出了下一代互联网协议——IPv6,目前IPv6已经被公认为是IPv4 的未来升级版本。其中,IPv6技术最为本质的改进就是将原来的地址长度由 32位增加到了 128位,从而带来了几乎无限的地址空间。同时,用基于网 间控制报文协议第六版(ICMPv6 , Internet Control Messages Protocol version 6 )的邻居发现(ND, Neighbor Discovery )协议替代了地址解析协议(ARP, Address Resolution Protocol)来实现重复地址4企测、地址解析、路由器发现 等功能。重复地址检测是节点在配置IPv6地址时执行的操作。参见图1,图1 所示为用户节点1做DAD检测的情况。当用户节点1要配置IPv6地址 2000::1时,发送目的地址为被请求节点组播地址的DAD NS报文,该目的 地址对应共享同 一前缀空间的子网,用来检测当前要配置的地址是否已被使 用。其中,请求配置的目标IPv6地址2000::l携带在报文中。同时,用户节 点1在发送DADNS报文时启动定时器。按照协议的规定,收到该DADNS 报文的用户节点如果已经配置了 2000::1,则回复DADNA报文,目的地址 为所有节点组播地址,如图l所示的用户节点2。如果发送DADNS报文的 用户节点在定时器到时之前,收到其他节点发送的DAD NA报文或者针对 同一目标地址的DADNS才艮文,图1中所示的用户节点3发送了针对同一目标地址的DAD NS报文,则认为地址出现冲突,将目标地址标记成重用 (Duplicated)而不生效。如果在定时器到时之后,均未收到对应的DAD NA 报文或者DAD NS报文,则目标地址有效,配置该目标地址。DAD攻击是攻击节点在收到合法用户发送的DADNS报文后,恶意返 回DAD NA报文或者将收到的DAD NS再发送出去,使得作DAD检测的合 法用户节点认为当前请求配置的目标地址已经被其他用户配置或者请求,而 放弃生效该IPv6地址的情况。众所周知,节点只有在配置地址之后,才能 正常通信,如果用户节点一直不能成功配置地址,则该用户节点也将始终无 法正常通信,这样将极大的影响用户节点的正常业务以及网络的正常运行。 如果攻击节点对收到的所有DAD NS报文都做应答,就会导致整个子网内各 节点配置IPv6地址失败,这样整个子网陷于瘫痪,极大的影响了网络的正 常运行。发明内容有鉴于此,本发明提供了 一种防止重复地址检测攻击的方法及网络设 备,应用本发明所提供的方法及网络设备能够有效的阻止重复地址检测攻 击。为达到上述目的,本发明的技术方案是这样实现的 一种防止重复地址4全测攻击的方法,该方法包括网络设备在收到针对第一 IPv6地址的重复地址检测DAD邻居请求NS 报文或DAD邻居公告NA报文时,判断当前是否存在记录有所述第一 IPv6 地址的表项,如果是,在当前收到报文的端口与所述表项中记录的端口不同、并该表 项标注了临时状态时,丢弃当前收到的报文;如果不是,在收到DAD NS报文时,创建记录有所述第一 IPv6地址和 接收当前DADNS报文的端口号的表项,并为该表项标注临时状态,转发收 到的DADNS报文。一种防止重复地址检测攻击的网络设备,该网络设备包括接收单元,用于将收到的重复地址检测DAD邻居请求NS报文以及 DAD邻居公告NA报文,发送收到的报文;执行单元,用于在从接收单元收到报文后,根据报文对应的第一 IPv6 地址,判断当前是否存在记录有所述第一 IPv6地址的表项,如果是,在当 前收到报文的端口与所述表项中记录的端口不同、并该表项标注了临时状态 时,丢弃当前收到的报文;如果不是,在收到DADNS报文时,创建记录有 所述第一 IPv6地址和接收当前DAD NS报文的端口号的表项,并为该表项 标注临时状态,转发收到的DAD NS报文。本发明所提供的 一种防止重复地址检测攻击的技术方案,通过记录第一 个收到检测第一 IPv6地址的DAD NS报文的第一端口;然后依据记录的第 一端口,丢弃从其他端口收到的对应第一 IPv6地址的DAD NS报文以及 DAD NA报文,由于丢弃了影响第一 IPv6地址生效的DAD NA报文以及 DADNS报文,因此有效的阻止了攻击者发起的DAD攻击,使用户节点能 够顺利配置IPv6地址。另外,本发明技术方案的实现不需要对用户节点进 行修改、更新,仅对网络设备进行了相应改进,实现代价小,是一种简便而 有岁丈的方法。


图1为现有技术中进行DAD检测的应用场景; 图2为本发明较佳实施例的方法流程图; 图3为本发明较佳实施例的应用场景; 图4为本发明较佳实施例的网络设备结构图。
具体实施方式
分析攻击节点发动DAD攻击的过程,可知在发动DAD攻击时,攻击 节点必须先收到其他用户节点发送的DAD NS报文,针对报文中携带的目标地址实施攻击。可见,攻击节点所攻击的目标地址在发送DADNS报文之前 必然不会出现在子网内。这样,可以确定在一个子网内第一个发送DADNS 报文的用户必为合法用户。利用在子网内第一个发送DAD NS报文的用户为合法用户,本发明的 技术方案是这样实现的由子网内负责用户节点之间报文交互的网络设备对 收到的报文进行监听,记录第一个收到检测第一 IPv6地址的DAD NS报文 的第一端口;然后依据记录的第一端口,丢弃从其他端口收到的对应第一 IPv6地址的DAD NS报文以及DAD NA报文。由于网络设备丟弃了影响第 一 IPv6地址生效的DAD NA报文以及DAD NS报文,进而第一个发送DAD NS报文的合法用户节点将在定时器超时后将生效请求的地址,有效的阻止 了攻击者发起的DAD攻击。具体可以通过如下流程实现网络设备在收到针对第一 IPv6地址的重复地址检测DAD邻居请求NS 报文或DAD邻居公告NA报文时,判断当前是否存在记录有所述第一 IPv6 地址的表项,如果是,在当前收到报文的端口与所述表项中记录的端口不同、 并该表项标注了临时状态时,丢弃当前收到的报文;如果不是,在收到DAD NS报文时,创建记录有所述第一 IPv6地址和接收当前DAD NS报文的端口 号的表项,并为该表项标注临时状态,转发收到的DAD NS报文。另外,用户节点在配置的地址生效后,再收到对应生效地址的DADNS 报文时,则返回DAD NA报文,告之检测该地址的用户节点该目标地址已 被使用;并在收到DAD NA报文时,不做处理。可见,用户节点在配置的 地址生效后,即使收到DAD NS报文或者DAD NA报文,也不会对生效的 地址产生影响。因此,在请求配置的第一 IPv6地址生效后,网络设备可以 正常转发收到的DAD NA报文,以及DAD NS报文。另外,由于用户节点 对于收到的DAD NA报文不做处理,因此网络设备在配置地址生效后,也 可以丢弃收到DAD NA才艮文。这里,考虑到用户节点在地址生效时,会发送主动DAD NA报文,因 此在本发明的技术方案中,网络设备可以在从用户节点对应的端口收到DADNA报文时,确定用户节点请求配置的地址生效,删除为端口标注的临 时状态。网络设备在将端口和第一 IPv6地址记录至表项时,可以网络设备进一 步将当前收到DAD NS报文的源介质访问控制(MAC )地址记录至所述第 一 IPv6地址对应的表项。网络设备在删除为所述表项标注的临时状态后, 则可将该表项作为邻居表项,转发报文。这样,在用户节点配置的第一 IPv6 地址生效后,网络设备可以直接根据建立的表项转发发往该用户节点的报 文,免去了在转发报文过程中创建邻居表项的操作,加快了报文转发的速度。现以列举较佳实施例,对本发明的技术方案进行详细介绍。参见图2,图2为本发明较佳实施例的方法流程图。本实施例所对应的 场景如图3所示。在图3中,用户节点l、 2和3位于同一局域网内,分别 连接在网络设备的端口 A、 B和C上。这里,假设用户节点1要配置地址 2000::1,且用户节点1为第 一个配置地址2000::1的用户节点;用户节点2 为攻击节点,并在用户节点1进行DAD的过程进行DAD攻击;用户节点3 为在用户节点1生效地址后新加入的节点,并配置相同的地址2000::1。本 发明实施例方法的具体流程如下在步骤201中,用户节点1配置地址2000::1,在此称为第一 IPv6地址, 并针对该第一 IPv6地址做DAD检测。具体为发送DAD NS报文,其中 携带请求配置的第一IPv6地址;同时启动定时器。在步骤202中,网络设备从端口 A接收用户节点1发送的DAD NS报 文,在确定该DAD NS报文为第一个检测第一 IPv6地址的报文时,根据收 到的DAD NS报文,将源MAC地址、请求配置的第一 IPv6地址和端口 A 记录在邻居表项,并将该表项标注为临时(Tentative)状态,将该DAD NS 报文做2层转发。其中,确定收到的DAD NS报文为第一个检测第一 IPv6地址的报文的 具体方法可以是,判断网络设备中是否已经存在了与第一 IPv6地址对应的 邻居表项,没有则说明该DADNS报文为第一个检测第一 IPv6地址的报文。这里,将邻居表项标注为临时状态除了可以用来确定用户节点1是否生效了 配置的第一 IPv6地址,还可以用来标识对应的邻居表项是否可以做三层转 发。在步骤203中,攻击节点接收网络设备发送的DAD NS报文,发送对 应的DADNS净艮文或DADNA净艮文,进行DAD攻击。在步骤204中,网络设备从攻击节点所在的端口 B收到攻击节点发送 的DAD NS报文或DAD NA报文,根据其对应的第一 IPv6地址查找邻居表 项,得到在邻居表项中与第一 IPv6地址对应的端口为端口 A、并且该邻居 表项标注为临时状态,网络设备丢弃收到的DAD NS报文或者DAD NA报 文。这里,由于网络设备丢弃了攻击节点用于攻击的DAD NS报文或者 DADNA报文,因此该报文就不再会转发至用户节点1。进而,用户节点l 将在定时器超时后,生效配置的地址。其中,网络设备收到的DAD NS报文还有可能是另外一个合法用户节 点检测第一 IPv6地址的DAD NS报文,此时网络设备丟弃收到的DAD NS 报文能够避免两个用户节点同时报冲突而导致配置的IPv6地址均不能生效 的问题。因此,本发明的技术方案不但能够有效阻止DAD攻击,还能够避 免两个用户节点同时做DAD检测,导致两个用户节点均不能生效IPv6地址 的情况。在步骤205中,用户节点l定时器超时,生效配置的第一 IPv6地址, 并主动发送DAD NA报文。在步骤206中,网络设备从端口 A接收DAD NA报文,根据其对应的 第一 IPv6地址查找邻居表项,得到邻居表项与第一 IPv6地址对应的端口为 端口 A,正是当前接收DAD NA报文的端口 ,则将该DAD NA报文做二层 转发,并删除其对应邻居表项的临时状态。在删除邻居表项的临时状态标注后,网络设备则可将该邻居表项用于三 层转发。在步骤207中,用户节点1配置第一 IPv6地址生效后,局域网中新增 用户节点3,同样配置第一 IPv6地址,做DAD检测。具体为发送DAD NS 报文,其中携带请求配置的第一 IPv6地址;同时启动定时器。在步骤208中,网络设备从端口 C收到用户节点3发送的DAD NS报 文,根据其对应的第一 IPv6地址查找邻居表项,得到邻居表项与第一 IPv6 地址对应的端口为端口 A,在确定该邻居表项没有标注临时状态后,二层转 发收到的DAD NS报文。这里,邻居表项没有标注临时状态表明原先第一 IPv6地址在用户节点 上已经生效。此时转发DADNS报文不会对已经生效的地址产生影响,更不 会造成DAD攻击,故可正常转发收到的DADNS报文。同样,在用户节点 1的第一 IPv6生效后,网络设备也可以转发从其他用户节点收到的DADNA 报文,其具体处理的过程与DADNS报文的过程相同,在此不再详述。在步骤209中,用户节点1通过网络设备收到从用户节点3发送的DAD NS报文,回复DAD NA报文。由于网络设备从端口 A收到DAD NA报文, 因此网络设备转发收到的DAD NA净艮文。在步骤210中,用户节点3收到网络设备转发的DAD NA报文,得知 自身当前配置的第一 IPv6地址已经被其他用户节点配置,此时将第一 IPv6 :l也址标{己为Duplicated而不生效。在本实施例的介绍中,主要描述的是用户节点对第一 IPv6地址仅检测 一次的场景。在一些情况下,为了避免网络环境而造成的不利因素,用户节 点可能会根据配置周期性的发送多次DAD NS报文,用来检测IPv6地址。 这里,需要指出的是本发明的技术方案也能很好的处理这种用户节点多次发 送DADNS4艮文的情况,因为本发明实施例的技术方案在记录端口 A之后, 将会丢弃从其他端口收到的DAD NS4艮文及DAD NA报文,而不会丢弃从 端口 A收到的DAD NS及DAD NA报文。另外,在网络设备检测到端口失效时,可以删除与该端口对应的邻居表 项。这里所指的失效包括用户节点更换网卡或更换端口导致端口发生Down事件的情况。用户节点在更换网卡或者更换端口后,也会重新做上述DAD 的过程。另外,参见图4,图4为本发明实施例提供的一种网络设备的结构图, 包括接收单元和执行单元。接收单元,用于将收到的重复地址检测DAD邻居请求NS报文以及 DAD邻居公告NA报文,发送收到的报文;执行单元,用于在从接收单元收到报文后,根据报文对应的第一 IPv6 地址,判断当前是否存在记录有所述第一 IPv6地址的表项,如果是,在当 前收到报文的端口与所述表项中记录的端口不同、并该表项标注了临时状态 时,丢弃当前收到的报文;如果不是,在收到DADNS报文时,创建记录有 所述第一 IPv6地址和接收当前DAD NS报文的端口号的表项,并为该表项 标注临时状态,转发收到的DAD NS报文。具体的,所述控制单元,在从接收单元收到报文后,根据报文对应的第 一 IPv6地址,判断当前是否存在记录有所述第一 IPv6地址的表项,如果是, 在当前收到报文的端口与所述表项中记录的端口不同、并该表项标注了临时 状态时,丢弃当前收到的报文;如果不是,在收到DADNS报文时,创建记 录有所述第一 IPv6地址和接收当前DAD NS4艮文的端口号的表项,并为该 表项标注临时状态,转发收到的DADNS报文;所述存储单元,用于保存控 制单元记录的表项。所述控制单元,进一步用于判定当前存在记录有所述第一 IPv6地址的 表项时,在接收DAD NA报文的端口与该表项中记录的端口相同的情况下, 删除为所述表项标注的临时状态。所述控制单元,还可用于将当前收到DAD NS净艮文的源介质访问控制 MAC地址记录至所述第一 IPv6地址对应的表项;并在删除为所述表项标注 的临时状态后,根据所述表项转发报文。所述控制单元,还可进一步用于在检测到表项中记录的端口失效时,删 除与该端口对应的表项。在本发明中,所使用的网络设备可以是交换设备,例如三层交换设备 在本发明实施例的技术方案中,通过网络设备对收到的报文进行监听,记录第一个收到检测第一 IPv6地址的DAD NS报文的第一端口 ;然后依据 记录的第一端口 ,丢弃从其他端口收到的对应第一 IPv6地址的DAD NS报 文以及DADNA4艮文,由于网络设备丢弃了影响第一 IPv6地址生效的DAD NA报文以及DADNS报文,进而有效的阻止了攻击者发起的DAD攻击。同时,本发明技术方案的实现不需要对用户节点进行操作,仅对网络设 备进行了相应改进,实现代价小,是一种简便而有效的方法。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
权利要求
1、一种防止重复地址检测攻击的方法,其特征在于,该方法包括网络设备在收到针对第一IPv6地址的重复地址检测DAD邻居请求NS报文或DAD邻居公告NA报文时,判断当前是否存在记录有所述第一IPv6地址的表项,如果是,在当前收到报文的端口与所述表项中记录的端口不同、并该表项标注了临时状态时,丢弃当前收到的报文;如果不是,在收到DAD NS报文时,创建记录有所述第一IPv6地址和接收当前DAD NS报文的端口号的表项,并为该表项标注临时状态,转发收到的DAD NS报文。
2、 根据权利要求1所述的方法,其特征在于,该方法进一步包括 网络设备判定当前存在记录有所述第一 IPv6地址的表项时,在接收DADNA报文的端口与该表项中记录的端口相同的情况下,删除为所述表项标注的 临时状态。
3、 根据权利要求1或2所述的方法,其特征在于,该方法进一步包括 网络设备进一步将当前收到DAD NS报文的源介质访问控制MAC地址记录至所述第一 IPv6地址对应的表项;网络设备在删除为所述表项标注的临时状态后,根据所述表项转发报文。
4、 根据权利要求1或2所述的方法,其特征在于,该方法进一步包括网 络设备检测到表项中记录的端口失效时,删除与该端口对应的表项。
5、 一种防止重复地址检测攻击的网络设备,其特征在于,该网络设备包括 接收单元,用于将收到的重复地址针对DAD邻居请求NS报文以及DAD邻居公告NA报文,发送收到的报文;执行单元,用于在从接收单元收到报文后,根据报文对应的第一 IPv6地址, 判断当前是否存在记录有所述第一IPv6地址的表项,如果是,在当前收到报文 的端口与所述表项中记录的端口不同、并该表项标注了临时状态时,丢弃当前收到的报文;如果不是,在收到DAD NS报文时,创建记录有所述第一 IPv6 地址和接收当前DADNS报文的端口号的表项,并为该表项标注临时状态,转 发收到的DADNS报文。
6、 根据权利要求5所述的网络设备,其特征在于,所述执行单元包括控制 单元和存储单元;所述控制单元,在从接收单元收到报文后,根据报文对应的第一 IPv6地址, 判断当前是否存在记录有所述第一IPv6地址的表项,如果是,在当前收到报文 的端口与所述表项中记录的端口不同、并该表项标注了临时状态时,丢弃当前收到的报文;如果不是,在收到DAD NS报文时,创建记录有所述第一 IPv6 地址和接收当前DADNS报文的端口号的表项,并为该表项标注临时状态,转 发收到的DADNS报文;所述存储单元,用于保存控制单元记录的表项。
7、 根据权利要求5或6所述的网络设备,其特征在于, 所述控制单元,进一步用于判定当前存在记录有所述第一IPv6地址的表项时,在接收DADNA报文的端口与该表项中记录的端口相同的情况下,删除为 所述表项标注的临时状态。
8、 根据权利要求5或6所述的网络设备,其特征在于, 所述控制单元,进一步用于将当前收到DAD NS报文的源介质访问控制MAC地址记录至所述第一 IPv6地址对应的表项;并在删除为所述表项标注的 临时状态后,根据所述表项转发报文。
9、 根据权利要求5或6所述的网络设备,其特征在于, 所述控制单元,进一步用于在检测到表项中记录的端口失效时,删除与该端口对应的表项。
全文摘要
本发明公开了一种防止重复地址检测攻击的方法,通过记录第一个收到检测第一IPv6地址的DAD NS报文的第一端口;然后依据记录的第一端口,丢弃从其他端口收到的对应第一IPv6地址的DAD NS报文以及DAD NA报文,由于丢弃了影响第一IPv6地址生效的DAD NA报文以及DAD NS报文,因此有效的阻止攻击者发起的DAD攻击,使用户节点能够顺利配置IPv6地址。另外,本发明还公开了一种防止重复地址检测攻击的网络设备。
文档编号H04L29/06GK101222513SQ20081005699
公开日2008年7月16日 申请日期2008年1月28日 优先权日2008年1月28日
发明者哲 黄 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1