重复地址检测方法及装置的制作方法

文档序号:7713310阅读:154来源:国知局
专利名称:重复地址检测方法及装置的制作方法
技术领域
本发明涉及计算机与通信技术领域,尤其涉及一种重复地址检测方法及装
背景技术
MIPv6是目前被普遍接受、能解决未来移动终端在异构网络间漫游的网络层移动性管理(MM, Mobility Management)协议,根据该协议,地址分配可以分为两大类 一类是基于动态主机配置协议(DHCPv6, Dynamic Host ConfigurationProtocol for IPv6)的有状态地址分配,而另 一类是无状态地址自动分配(SLAAC, StateLessAddressAutoConfiguration),其中,无状态;也址自动分配的是以移动结点(MN, Mobile Node)从路由器获得的路由器通告(RA, RouterAdvertisement)消息中的64bit数据作为地址前缀,再以收到该RA消息的主机接口的标识符(IID, Interface IDentifier)作为地址后缀,从而配置得到128比特的IPv6地址,根据RFC标准,要求在将一个IPv6地址指配给一个移动结点使用之前,必须在共享同一前缀的子网中进行重复地址检测(DAD, DuplicateAddress Detection),以保证该暂定地址在该子网中的唯一性,避免地址冲突。
按照现有技术提供的DAD方案,在对某一待分配的IPv6地址进行分配前,路由器需要通知并等待自身控制的各移动结点发送承载有移动结点使用的IPv6地址(这里的地址也可以被称为源IPv6地址)的邻居通告(NA, NeighborAdvertisement)消息;同时,路由器需要监听自身控制的移动结点发来的、承载有请求分配的IPv6地址(这里的地址也可以被称为目标地址(TargetAddrwess))的邻居请求(NS, NeighborSolicitation)消息,当路由器确定出移动结点发来的NA消息中承载的源IPv6地址与待分配的IPv6地址一致,或确定出NS消息中承载的目标IPv6地址与待分配的IPv6地址一致时,路由器判断该待分配的IPv6地址不能通过DAD,需要为对应的移动结点重新配置一个待分配的IPv6地址,反之,则路由器判断该待分配的IPv6地址通过了 DAD,可以将其分配给对应的移动结点。
按照现有技术提供的上述DAD方案,在分配IPv6地址之前,为了确定待分配的IPv6地址是否已被路由器控制的移动结点占用,需要被动等待每一个移动结点反馈来NA消息,因此现有技术中提供的DAD方案存在着实现效率较低的问题。

发明内容
本发明实施例提供一种重复地址检测方法及装置,用以解决现有技术提供的DAD方案实现效率较低的问题。本发明实施例采用以下技术方案
一种重复地址检测方法,包括路由器为待分配IPv6地址的移动结点配置IPv6地址;所述路由器监听自身控制的移动结点发送的邻居请求消息;所述路由器判断预先存储的已使用的IPv6地址以及所述邻居请求消息承载的目标IPv6地址中,是否至少有一个地址与所述配置的IPv6地址一致;当判断结果为是时,所述路由器确定所述配置的IPv6地址不能通过重复地址检测,否则,所述路由器确定所述配置的IPv6地址通过重复地址检测。
较佳地,所述已使用的IPv6地址的存储方式为所述路由器监听所述邻居请求消息前,监听移动结点发送的邻居通告消息;以及所述路由器存储所述邻居通告消息中承载的源IPv6地址。
较佳地,所述路由器确定所述配置的IPv6地址不能通过重复地址检测之后,还包括所述路由器根据所述已使用的IPv6地址以及所述目标IPv6地址,为所述待分配IPv6地址的移动结点配置不同于所述已^f吏用的IPv6地址以及所述目标IPv6地址的IPv6地址。较佳地,所述IPv6地址为链转交地址LCoA和/或区域转交地址RCoA。
较佳地,所述路由器判断所述已使用的IPv6地址以及所述目标IPv6地址中, 是否至少有一个地址与所述配置的IPv6地址一致具体包括所述路由器根据哈 希查表算法,对预先设置的存储有所述已使用的IPv6地址的列表进扦查找;以 及根据查找结果以及所述目标IPv6地址,判断所述已使用的IPv6地址以及所述 目标IPv6地址中,是否至少有一个IPv6地址与所述配置的IPv6地址一致。
一种重复地址检测装置,包括第一配置单元,用于为待分配IPv6地址的 移动结点配置IPv6地址;第一监听单元,用于监听路由器控制的移动结点发送 的邻居请求消息;存储单元,用于存储已使用的IPv6地址;判断单元,用于判 断存储单元存储的所述已使用的IPv6地址以及第一监听单元监听至'』的邻居请 求消息中承载的目标IPv6地址中,是否至少有一个地址与第一配置单元配置的 IPv6地址一致;确定单元,用于在判断单元得到的判断结果为是时,确定第一 配置单元配置的IPv6地址不能通过重复地址检测,否则,确定第一配置单元配 置的IPv6地址通过重复地址检测。
本发明实施例通过路由器在对为移动结点配置的IPv6地址进行DAD时, 根据监听到的移动结点发送的邻居请求消息中承载的目标IPv6地址,以及预 先存储的已使用的IPv6地址,判断当前为移动结点配置的IPv6地址是否已被 占用,从而实现对配置的IPv6地址进行的DAD,由于本发明实施例提供的DAD 方案预先对已使用的IPv6地址进行了存储,路由器能够从与预先存储的已使 用的IPv6地址中获知已被占用的IPv6地址,而无需再^皮动等待移动结点反馈 的NA消息,因此大大提高了 DAD的实现效率,解决了现有技术提供的DAD 方案实现效率较低的问题。


图1为本发明实施例提供的一种DAD方法的具体流程示意图; 图2为MAP在通信网络中的位置示意图;图3为本发明实施例提供的DAD方法用于对LCoA和RCoA进行DAD 的具体流程示意图4为本发明实施例提供的一种DAD装置的具体结构示意图。
具体实施例方式
本发明实施例提供一种DAD方案,用以解决现有技术提供的DAD方案 实现效率较低的问题,本发明实施例提供的该方案通过对已使用的IPv6地址 进行存储,从而后续能够根据存储的该已使用的IPv6地址以及监听到的邻居 请求消息中承载的目标IPv6地址,判断为移动结点配置的IPv6地址是否已被 占用,从而在无需被动等待移动结点反馈的NA消息的情况下,以较高的效率 实现对IPv6地址的DAD。
下面结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方 式及其对应能够达到的有益效果进行详细的阐述。
本发明实施例首先提供一种DAD方法,该方法的具体流程示意图如图1 所示,包括以下步骤
步骤11,路由器为待分配IPv6地址的移动结点配置IPv6地址;
步骤12,路由器监听自身控制的移动结点发送的NS消息;
步骤13,路由器判断预先存储的已使用的IPv6地址以及监听到的NS消息中 承载的目标IPv6地址中,是否至少有一个地址与步骤ll中配置的IPv6地址一致, 当判断结果为是时,执行步骤14,否则,执行步骤15;
步骤14,路由器确定为待分配IPv6地址的移动结点配置的IPv6地址不能通 过DAD,此时可结束DAD流程,或者路由器还可以根据上述预先存储的已使 用的IPv6地址以及监听到的NS消息中承载的目标IPv6地址,为待分配IPv6地址 的移动结点配置不同于已使用的IPv6地址以及该目标IPv6地址的IPv6地址;
步骤15,路由器确定为待分配IPv6地址的移动结点配置的IPv6地址通过 DAD,流程结束。在上述步骤13中,由于路由器控制的移动结点在被分配了 IPv6地址后, 会向路由器反馈NA消息,而该NA消息中承载的源IPv6地址即为移动结点已 使用的IPv6地址,因此,在本发明实施例中,可以通过路由器在监听自身控 制的移动结点发送的NS消息前,监听移动结点发送的NA消息,并对NA消 息中承载的源IPv6地址进行存储,这里被存储的源IPv6地址即为上述已使用 的IPv6地址。
在本发明实施例中,预先存储的路由器控制的移动结点已使用的IPv6地址 可以存储在路由器中,也可以存储在独立于路由器之外的存储设备中,并且可 以将IPv6地址按照列表形式进行存储,因此,具体地,本发明实施中路由器判 断预先存储的自身控制的移动结点已使用的IPv6地址中,是否至少有一个地址 与所述配置的IPv6地址一致可以具体包括以下步骤
首先,路由器根据哈希查表算法,对预先设置的存储有已使用的IPv6地址 的列表进行查找;
然后,根据查找结果,判断该列表中是否至少有一个IPv6地址与配置的 IPv6地址一致,即当在列表中查找到配置的IPv6地址时,确定该列表中存在 与配置的IPv6地址一致的IPv6地址,说明该配置的IPv6地址已3皮占用,不能 再用于分配给待分配IPv6地址的移动结点,反之,当在列表中没有查找到配 置的IPv6地址时,确定该列表中不存在与配置的IPv6地址一致的IPv6地址, 说明该配置的IPv6地址当前还没有占用,进一步地,如果路由器判断当前接 收到的NS消息中承载的目标IPv6地址与配置的IPv6地址也不一致时,说明 该配置的IPv6地址可以被分配给待分配IPv6地址的移动结点。
采用本发明实施例提供的上述DAD方法,在为移动结点分配IPv6地址时, 路由器无需被动等待移动结点反馈NA消息以确定当前被占用的IPv6地址, 而是可以直接根据预先存储的已使用的IPv6地址,就能确定当前已被占用的 IPv6地址,从而使得整个DAD的实现效率得到了极大的提高。
本发明实施例提供的该方法不仅可以应用于IPv6,还可以应用于互联网工程任务组(正TF, The Internet Engineering Task Force)提出的HMIPv6协议, 该HMIPv6协议通过引入孩吏移动概念和分层管理方式来改善MIPv6的性能, HMIPv6协议从樣0见移动性出发,提出"域"概念,并在每个域中配置一种称 为移动锚点(MAP, Mobility Anchor Point)的新实体,MAP在通4言网络中的 位置示意图如图2所示,其功能是充当所在域内MN的本地家乡代理(HA, Home Agent), MN在一个MAP域中使用两个转交地址,分别为链转交地址
(LCoA, on誦LinkCare陽ofAddress)和区域转交地址(RCoA, Regional Care画of Address),其中,LCoA用于向MAP注册,RCoA用于向HA和图2中的通信 对端节点(CN, Correspondent Node)进行注册。路由器在为MN分配LCoA 和RCoA时,仍然需要分别对分配的LCoA和RCoA进行DAD,由对现有技 术的介绍可知,若采用现有技术提供的DAD方案进行DAD,则在分配转交地 址之前,为了确定待分配的转交地址是否已被路由器控制的移动结点占用,需 要被动等待每一个移动结点反馈来NA消息,因此采用现有技术中提供的DAD 方案对LCoA和RCoA进行DAD,同样存在着DAD实现效率较低的问题。
以下以本发明实施例提供的DAD方法用于对LCoA和RCoA进行DAD 为例,具体说明采用本发明实施例提供的DAD方法提高对LCoA和RCoA进 行DAD效率的实现流程,需要说明的是,为了实现该DAD方法,需要在路 由器(这里的路由器可以既包括上述MAP,也包括MAP域中的接入路由器
(AR, Access Router))中配置一个分配管理(DADAM, Duplicate Address Detection and Allocation Management)才莫块,该流程的实现示意图如图3所示, 包括以下步骤
步骤31,将DADAM模块设置在AR和MAP上,比如,将DADAM模 块设置在如图1所示的ARll、 AR12、 AR21、 AR22以及MAP1、 MAP2上, 并为设置有DADAM模块的每个AR和MAP分别设置一张地址列表,AR和 MAP借助DADAM模块,对NA消息进行监听,并将NA消息中的源地址保 存在该地址列表中,表明该地址已被使用,地址列表中的每个地址都是唯一的且有生命期,并且由DADAM模块定期对该地址列表中的地址进行更新,比如 将存储时间超过预定时间段阈值的地址进行删除等;
步骤32,当MN从图1中的接入点AP12 (由MAPI控制)的覆盖范围移 动进入到接入点AP21 (由MAP2控制)覆盖的范围时,MN会收到AR21发 出的RA消息;
步骤33 , MN根据接收到的RA消息和"MAP选项"配置出新的LCoA(后 续将该新的LCoA称为nLCoA,即New LCoA)和新的RCoA (后读将该新的 RCoA称为nRCoA,即NewRCoA);
步骤34, MN将nRCoA承载在本地绑定更新(LBU, Local Banding Update) 消息的Home Address选项中,并将给LBU消息发送给MAP2以启动MAP注 册过程,其中,该LBU消息的源地址为nLCoA;
步骤35, MAP2接收到LBU消息后,从该LBU消息中提取出nRCoA, 同时,将LBU消息的源地址nLCoA承载在切换发起(ffl, Handover Initiate) 消息中发送给AP21;
步骤36, MAP2与AP21以并行操作的方式,分别对nRCoA和nLCoA进 行DAD,具体地,MAP2进行的DAD如下
为了实现对nRCoA的DAD,按照本发明实施例提供的DAD方法,MAP2 并不会通知并等待自身控制的各移动结点发送NA消息,而是会根据上述 nRCoA,在利用哈希查表算法对自身中设置的DADAM模块存储的地址列表 中的地址进行查找的同时,监听NS消息,当MAP2判断地址列表中的地址以 及监听到的NS消息中承载的目标地址中,至少有一个地址与上述nRCoA — 致时,确定该nRCoA与已使用的地址冲突,则MAP2中的DADAM模块可以 随机生成一个接口标识符(IID, Interface Identifier),并才艮据nRCoA的配置方 式,将该IID与MAP2的地址前缀结合,以重新配置一个不同于地址列表中地 址以及NS消息中承载的目标地址的nRCoA,并将该重新配置的nRCoA写入 到MAP2中的DADAM维护的存储列表中,而当MAP2判断出地址列表中的地址以及监听到的NS消息中承载的目标地址中,均没有一个地址与上述 nRCoA地址一致时,MAP2确定当前进行DAD的nRCoA与已4吏用的地址没 有发生冲突,在MAP2实现对nRCoA的DAD后,等待AR21发送的切换确认 (HAck, Handover Acknowledge)消息(该HAck消息将在AP21进行的DAD 中进行介绍,在此不再赘述),并在MAP2接收到来自AR21的HAck消息后, 建立起通过DAD的该nRCoA与nLCoA的绑定关系; AP21进4亍的DAD如下
为了实现对nLCoA的DAD,按照本发明实施例提供的DAD方法,AP21 也不会通知并等待自身控制的各移动结点发送NA消息,而是在接收到上述 HI消息后,根据上述nLCoA,在利用哈希查表算法对自身中设置的DADAM 模块存储的地址列表中的地址进行查找的同时,监听NS消息,当AP21判断 出地址列表中的地址以及监听到的NS消息中承载的目标地址中,至少有一个 地址与上述nLCoA地址一致时,确定该nLCoA与已使用的地址冲突,则AP21 中的DADAM模块同样可以随机生成一个IID,并根据nLCoA的配置方式, 将该IID与AP21的地址前缀结合,以重新配置一个不同于地址列表中地址以 及NS消息中承载的目标地址的nLCoA,并将该重新配置的nLCoA写入到AP21 中的DADAM模块维护的存储列表中,同时向MAP2发送包含该重新配置的 nLCoA的Hack消息,而当AP21判断出地址列表中的地址以及监听到的NS 消息中承载的目标地址中,均没有一个地址与上述nLCoA地址一致时,AP21 确定当前进行DAD的nLCoA与已使用的地址没有发生沖突,同时向MAP2 发送包含该没有发生冲突nLCoA的Hack消息;
根据上述内容,本步骤36最终得到的执行是MAP2建立起通过DAD的 该nRCoA与nLCoA的绑定关系,在该绑定关系建起之后,继续执行步骤37;
步骤37, MAP2以双播方式发送LBAck消息给MN,该LBAck消息包含 有步骤36中确定出的、没有与已使用的地址发生冲突的nRCoA与nLCoA;
步骤38, MN根据接收到的LBAck消息中包含的nRCoA,分别向HA和CN发起家乡注册和通信对端注册,由于这里的家乡注册与通信对端注册均为 现有技术,在此不再赘述,流程到此可以结束。
需要说明的是,MN在不同MAP控制区域之间的移动一般被称为"域间 宏移动",此时需要配置nLCoA和nRCoA,从而需要对配置的nLCoA和nRCoA 进行DAD,如图3所示的步骤,即是在假设MN发生了 "域间宏移动"的前 提下进行的;而MN在同一MAP控制区域之内的移动一般被称为"域内微移 动",此时不需要配置nRCoA,只需要配置nLCoA,因此,在上述步骤35中, 只需要AP21对nLCoA进行DAD即可。
从如图3所示的实现过程可以看出,根据本发明实施例提供的DAD方法, 路由器(MAP与AP均可统称为路由器)能够从与预先存储移动结点已使用的 IPv6地址中获知已被占用的IPv6地址,而无需再被动等待移动结点反馈的NA 消息,因此大大提高了 DAD的实现效率,解决了现有技术提供的'DAD方案 实现效率较低的问题,此外,本发明实施例中利用MAP与AP同步对nRCoA 与nLCoA进行DAD,可以将分别执行两个DAD过程所需的时间缩短为执行 一个DAD过程所需的时间,从而进一步提高DAD的效率。
相应地,本发明实施例还提供了一种DAD装置,用以解决现有技术提供 的DAD方案实现效率较低的问题,该装置的具体结构示意图如图4所示,包 括以下功能单元
第一配置单元41,用于为待分配IPv6地址的移动结点配置IPv6地址,这 里的IPv6地址可以为链转交地址LCoA和/或区域转交地址RCoA; 第一监听单元42,用于监听路由器控制的移动结点发送的NS消息; 存储单元43,用于存储已使用的IPv6地址;
判断单元44,用于判断存储单元43存储的已使用的IPv6地址以及第一监听 单元42监听到的NS消息中承载的目标IPv6地址中,是否至少有一个地址与第一 配置单元41配置的IPv6地址一致;
确定单元45,用于在判断单元44得到的判断结果为是时,确定第一配置单元41配置的IPv6地址不能通过DAD,否则,确定第一配置单元41配置的IPv6地 址通itDAD。
较佳地,本发明实施例中可以通过预先对NA消息进行监听,从而对NA消 息中已使用的源IPv6地址进行存储,因此,本发明实施例提供的该DAD装置还 可以进一步包括用于在第一监听单元监听NS消息前,监听移动结点发送的NA 消息的笫二监听单元46,为了实现对已使用的IPv6地址的存储,存储单元43具 体可以包括用于存储第二监听单元46监听到的邻居通告消息中承载的源IPv6 地址的存储模块。
较佳地,本发明实施例提供的该DAD装置还可以进一步包括第二配置 单元47,用于在确定单元45确定第一配置单元41配置的IPv6地址不能通过 DAD之后,根据第一监听单元42监听到的NS消息中的目标IPv6地址以及存 储单元43存储的已使用的IPv6地址,为待分配IPv6地址的移动结点配置不同 于已使用的IPv6地址以及该目标IPv6地址的IPv6地址。
较佳地,对应于判断单元44功能的一种实现方式,本发明实施例中可以将 判断单元具体划分为以下功能模块,具体包括
查找模块,用于根据哈希查表算法,对存储单元43中设置的存储有已使 用的IPv6地址的列表进行查找;判断模块,用于根据目标IPv6地址以及查找 模块得到的查找结果,判断已使用的IPv6地址以及第一监听单元42监听到的 NS消息中的目标IPv6地址中,是否至少有一个IPv6地址与第一配置单元41 配置的IPv6地址一致。
显然,本领域的才支术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种重复地址检测方法,其特征在于,包括路由器为待分配IPv6地址的移动结点配置IPv6地址;所述路由器监听自身控制的移动结点发送的邻居请求消息;所述路由器判断预先存储的已使用的IPv6地址以及所述邻居请求消息承载的目标IPv6地址中,是否至少有一个地址与所述配置的IPv6地址一致;当判断结果为是时,所述路由器确定所述配置的IPv6地址不能通过重复地址检测,否则,所述路由器确定所述配置的IPv6地址通过重复地址检测。
2、 如权利要求l所述的方法,其特征在于,所述已使用的IPv6地址的存储方式为所述路由器监听所述邻居请求消息前,监听移动结点发送的邻居通告消息;以及所述路由器存储所述邻居通告消息中承载的源IPv6地址。
3、 如权利要求1或2所述的方法,其特征在于,所述路^器确定所述配置的IPv6地址不能通过重复地址检测之后,还包括所述路由器根据所述已使用的IPv6地址以及所述目标IPv6地址,为所述待分配IPv6地址的移动结点配置不同于所述已使用的IPv6地址以及所迷目标IPv6地址的IPv6地址。
4、 如权利要求l或2所述的方法,其特征在于,所述IPv6地址为链转交地址LCoA和/或区域转交地址RCoA。
5、 如权利要求1或2所述的方法,其特征在于,所述路由器判断所述已使用的IPv6地址以及所述目标IPv6地址中,是否至少有一个地址与所述配置的IPv6地址一致具体包括所述路由器根据哈希查表算法,对预先设置的存储有所述已使用的IPv6地址的列表进行查找;以及根据查找结果以及所述目标IPv6地址,判断所述已使用的IPv6地址以及所述目标IPv6地址中,是否至少有一个IPv6地址与所述配置的IPv6地址一致。
6、 一种重复地址^r测装置,其特征在于,包括第一配置单元,用于为待分配IPv6地址的移动结点配置IPv6地址;第一监听单元,用于监听路由器控制的移动结点发送的邻居请求消息;存储单元,用于存储已使用的IPv6地址;判断单元,用于判断存储单元存储的所述已使用的IPv6地址以及第一监听单元监听到的邻居请求消息中承载的目标IPv6地址中,是否至少有一个地址与第一配置单元配置的IPv6地址一致;确定单元,用于在判断单元得到的判断结果为是时,确定第一配置单元配置的IPv6地址不能通过重复地址检测,否则,确定第一配置单元配置的IPv6地址通过重复地址;险测。
7、 如权利要求6所述的装置,其特征在于,还包括用于在第一监听单元监听所述邻居请求消息前,监听移动结点发送的邻居通告消息的第二监听单元;以及所述存储单元具体包括存储模块,用于存储所述第二监听单元监听到的邻居通告消息中承载的源IPv6地址。
8、 如权利要求6或7所述的装置,其特征在于,还包括第二配置单元,用于在确定单元确定第一配置单元配置的IPv6地址不能通过重复地址检测之后,根据所述目标IPv6地址以及存储单元存储的所述已使用的IPv6地址,为所述待分配IPv6地址的移动结点配置不同于所述已《吏用的IPv6地址以及所述目标IPv6地址的IPv6地址。
9、 如权利要求6或7所述的装置,其特征在于,所述IPv6地址为链转交地址LCoA和/或区域转交地址RCoA。
10、 如权利要求6或7所述的装置,其特征在于,所述判断单元具体包括查找模块,用于根据哈希查表算法,对存储单元中设置的存储有所述已使用的IPv6地址的列表进行查找;判断模块,用于根据所述目标IPv6地址以及查找模块得到的查找结果,判断所述已使用的IPv6地址以及所述目标IPv6地址中,是否至少有一个IPv6地址与所述配置的IPv6i也址一致。
全文摘要
本发明公开了一种重复地址检测方法及装置,用以解决现有技术提供的DAD方案实现效率较低的问题。其中,本发明公开的重复地址检测方法包括步骤路由器为待分配IPv6地址的移动结点配置IPv6地址;所述路由器监听自身控制的移动结点发送的邻居请求消息;所述路由器判断预先存储的已使用的IPv6地址以及所述邻居请求消息承载的目标IPv6地址中,是否至少有一个地址与所述配置的IPv6地址一致;当判断结果为是时,所述路由器确定所述配置的IPv6地址不能通过重复地址检测,否则,所述路由器确定所述配置的IPv6地址通过重复地址检测。
文档编号H04L12/26GK101656641SQ20091017420
公开日2010年2月24日 申请日期2009年9月23日 优先权日2009年9月23日
发明者周星月, 张载龙, 朱春晖 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1