一种IPv6地址重复后自动恢复的方法、系统和节点的制作方法

文档序号:7670342阅读:313来源:国知局
专利名称:一种IPv6地址重复后自动恢复的方法、系统和节点的制作方法
技术领域
本发明涉及数据通信领域,尤其涉及IPv6地址重复后自动恢复的方法、系统及节点。
背景技术
随着IPv4地址的日益枯竭,IPv6网络的大量部署逐渐被提上了日程,在IPv6协议里面,ND (邻居发现)协议是一个全新的协议,它实现了 IPv4的ARP (地址解析协议)、 ICMP(控制报文协议)中路由器发现部分、重定向部分的所有功能以及地址重复检测功能。 在IPv6网络中,任何一个网络节点上配置的地址都有一个地址状态,都必须进行地址重复检测,最后检测的结果要上报接口管理模块,IPv6常见的地址状态有normal (正常状态)、 tentative (实验性地址状态)和duplicated (重复地址状态)。IPv6地址重复检测原理,如附图1所示节点新配置IPv6地址以后,发送一个 NS(邻居请求)报文,该报文的目标地址是当前配置的地址,源IP是0,目的IP是一个IPv6 的请求组播地址(根据被检测地址生成),如果在发送用于检测重复地址的NS报文前,收到针对同一个目标地址的NS报文,则说明地址重复;在发送用于检测重复地址的NS后,收到的针对同一个目标地址的NS报文比预期的多,则说明地址重复;收到针对目标地址的 NA(邻居通告),则说明地址重复。否则,地址就是有效的。根据检测结果,分别打上对应的标记,带有tentative标记和duplicated标记的IP地址,在发包的时候不能作为源IP。当前,IPv6地址检测,如果发现一个地址冲突了,就会打上duplicated标记,一直存下去。即使和该标记为duplicated的地址冲突的地址已经不存在了,该duplicated标记会继续存在,标记为duplicated的地址仍然不能使用,除非中途接口发生震荡或者机架重启,触发该地址重新进行地址重复检测。一般IPv6地址重复检测的时机有两个地址配置的时候和接口 IPv6协议up的时候。这样如果一个用户配置地址A,发现和地址B重复后不删除,地址B删除后,后边用户会造成一种错觉,认为地址A地址重复检测有问题。针对上述问题有一种解决方案,就是把重复的地址挂在一个链表上,定时扫描链表,重新触发这些重复的地址进行地址重复检测,这样如果地址B被删除了,很快地址A就会发现不重复就会恢复正常状态。这种检测方式属于主动式,优点是检测的可靠性比较高,一旦冲突解除,一定可以恢复正确的地址状态;缺点就是定时器的超时时间不好设置,设置长了效果不明显; 设置短了,在冲突地址较多的时候,如果对端的冲突一直没有解除,则浪费带宽较多。

发明内容
有鉴于此,本发明的主要目的在于提供一种IPv6地址重复后自动恢复的方法、系统和节点,以解决上述现有技术中存在的问题。为了达到上述目的,本发明的技术方案是这样实现的本发明提供了一种IPv6地址重复后自动恢复的方法,包括节点删除地址后,向邻居节点组播邻居通告(NA)报文,所述NA报文携带节点删除的所述地址,所述邻居节点收到所述NA报文后对本地地址进行检测,若本地地址为重复地址,则进行处理。进一步地,所述NA报文目标地址字段填入节点删除的所述地址,选项部分字段、S 字段、0字段为空。进一步地,所述邻居节点收到所述NA报文后对本地地址进行检测,包括判断所述NA报文的源IP地址是否为0 ;若是,判断所述NA报文的目的IP地址是否为组播地址;若是,取出所述NA报文的目标地址,在入接口上进行查找是否存在与所述NA报文的目标地址相同的地址;若存在,判断该地址的状态是否为重复地址状态;若是,则本地地址为所述重复地址。进一步地,所述处理为将所述重复地址的重复地址状态改为正常地址状态,或者为所述邻居节点触发地址重复检测。进一步地,所述方法还包括当邻居节点检测到入接口邻居条目中包含删除的所述地址对应的邻居条目,则将对应的所述邻居条目删除。进一步地,所述向邻居节点组播NA报文的步骤,包括根据配置的发送间隔和发送个数发送组播NA报文。本发明还提供了一种IPv6地址重复后自动恢复的系统,包括包括节点和邻居节点; 所述节点用于删除地址后,向邻居节点发送组播NA报文,所述NA报文携带节点删除的所述地址;所述邻居节点用于收到所述NA报文后对本地地址进行检测,若本地地址为重复地址,则进行处理。进一步地,所述NA报文目标地址字段填入节点删除的所述地址,选项部分字段、S 字段、0字段为空,所述NA报文的源地址为0。进一步地,所述处理为将所述重复地址的重复地址状态改为正常地址状态,或者为所述邻居节点触发地址重复检测。进一步地,所述系统还包括当邻居节点检测到入接口邻居条目中包含所述地址对应的邻居条目,则将对应的所述邻居条目删除。进一步地,所述向邻居节点组播NA报文的步骤,包括根据配置的发送间隔和发送个数发送组播NA报文。本发明还提供了一种IPv6地址重复后自动恢复的节点,包括所述节点包括NA报文发送模块、地址检测模块;所述NA报文发送模块用于节点删除地址后,向邻居节点发送组播NA报文;所述地址检测模块用于节点收到邻居节点组播的NA报文后对本地地址进行检测,若本地地址为重复地址,则将所述重复地址的重复地址状态改为正常地址状态,或者所述邻居节点触发重复地址检测。进一步地,所述节点还包括邻居条目删除模块,所述条目删除模块用于收到所述 NA报文后,当节点检测到入接口邻居条目中包含删除的所述地址对应的邻居条目,则将该条目删除。本发明在节点删除地址后,向邻居节点组播携带被删除地址的NA报文,邻居节点收到所述NA报文后,检查本节点上是否有地址和NA报文的被删除地址相同,如果相同且地址状态是重复状态则重新触发地址重复检测或将重复地址的状态改为正常状态,与现有技术相比,具有更好的可操作性。


图1为IPv6重复地址检测原理示意图;图2为本发明实施例地址重复后自动恢复的方法流程图;图3为本发明实施例NA报文格式示意图;图4为本发明实施例节点根据配置发送NA报文的流程图;图5为本发明实施例节点接收到NA报文后地址检测流程具体实施例方式本发明技术方案为在节点删除地址后,向邻居节点组播携带被删除地址的NA报文后,邻居节点收到所述NA报文后,检查本节点上是否有地址和NA报文的被删除地址相同,如果相同且地址状态是重复状态,则重新触发地址重复检测或将重复地址的状态改为正常状态。地址重复检测的方法为现有技术,在背景技术中已经描述。本文中描述的节点删除的所述地址为IPv6地址。下面结合附图2对地址重复后自动恢复的方法做详细说明。若本地地址为重复地址,则进行处理。步骤201 节点删除地址后,向邻居节点组播NA报文。上述节点删除的地址为IPv6地址,所述NA报文携带节点删除的所述地址,所述NA 报文格式如图3所示所述NA报文目标地址字段填写节点删除的地址,选项部分(一般是目标链路层地址选项)不填,“s”、“0”标记字段不填,其它字段和普通NA报文一样;报文的目的地址是根据目标地址产生的请求组播地址,源地址填0。其中,为了防止节点向邻居节点组播报文过程中丢包,导致邻居节点收不到,增加两个配置命令,配置组播所述NA报文的个数和报文发送间隔。具体步骤如图4所示步骤401 系统初始化一个地址删除发送链表;步骤402 节点地址删除后,创建一个NA报文发送的节点,把该节点挂到地址删除发送链表,步骤403 启动定时器,根据配置的发送间隔发送组播NA报文;步骤404 定时器超时,判断发送的NA报文个数是否达到配置的个数,若否,跳到步骤405 ;若是跳到步骤406 步骤405 根据配置间隔继续发送组播NA报文,跳到步骤404 ;步骤406 发送结束,从链表中删除该发送节点。上述步骤中,发送间隔和发送个数,可以预设一个默认值,比如发送间隔是1秒,发送个数是1个。步骤202 所述邻居节点收到所述NA报文后对本地地址进行检测;上述步骤中所述本地地址为IPv6地址,所述邻居节点对本地地址进行检测的步骤,下面结合如图5做详细说明步骤501 邻居节点收到NA报文,取出所述NA报文中携带的节点删除的所述IPv6 地址;步骤502 判断所述NA报文源IP地址是否为0 ;若是,跳到步骤504 ;若否,跳到步骤 503 ;步骤503 为其他类型NA报文,按照其相应类型进行处理;步骤504 判断所述NA报文目的IP地址是否为组播地址;若是,跳到步骤506 ;若否,跳到步骤505 ;步骤505 丢弃所述NA报文;跳到步骤506 ;步骤506 在入接口上进行查找是否存在与所述NA报文的目标地址相同的地址;步骤507 若存在,跳到步骤509 ;若不存在跳到步骤508 ;步骤508 根据所述目标地址和入接口查找所述删除的IPv6地址对应的邻居条目;跳到511 ;步骤509 查找本地地址状态是否为重复地址状态;若否,跳到步骤510 ;若是,跳到步骤513 ;步骤510:不作处理;步骤511 若找到,跳到步骤512 ;若没找到,跳到步骤510 ;步骤512 删除该邻居条目;现有技术中,如果这个邻居条目对应的IPv6地址早已经删除,此时该邻居条目其实已经是一个无效条目,因为无法感知到这个地址删除,这个邻居条目会一直存在。除非有报文通过该邻居条目发送,触发邻居条目的邻居探测,探测失败删除条目;否则这个条目默认会存在M小时,这样就浪费了邻居条目资源空间。本发明提供的方法,可以在删除IPv6 地址的时候,同时删除在邻居节点上的邻居条目,解决了上述问题。步骤513:为重复地址。步骤203 当所述检测的本地地址为重复地址时,进行处理。上述步骤中,所述的重复地址是指邻居节点的本地地址和被节点删除的所述地址相同,且状态为重复地址状态的地址。所述进行处理,是指重新触发地址重复检测,或者,改变地址状态为正常地址状态。、本发明提供了一种IPv6地址重复后自动恢复的系统,所述系统包括节点和邻居节点;所述节点用于删除地址后,向邻居节点发送组播NA报文,所述NA报文携带节点删除的所述地址;所述邻居节点用于收到所述NA报文后对本地地址进行检测,若本地地址为重复地址,则进行处理。其中,所述NA报文目标地址字段填入节点删除的所述地址,选项部分字段、S字段、0字段为空,所述NA报文的源地址为0。
其中,所述处理为将所述重复地址的重复地址状态改为正常地址状态,或者为所述邻居节点触发地址重复检测。其中,所述系统还包括当邻居节点检测到入接口邻居条目中包含所述地址对应的邻居条目,则将对应的所述邻居条目删除。其中,所述向邻居节点组播NA报文的步骤,包括根据配置的发送间隔和发送个数组播NA报文。本发明还提供了一种IPv6地址重复后自动恢复的节点,所述节点包括NA报文发送模块、地址检测模块以及邻居条目删除模块;所述NA报文发送模块用于节点删除地址后,向邻居节点发送组播NA报文;所述地址检测模块用于节点收到邻居节点组播的NA报文后对本地地址进行检测,若本地地址和被删除地址相同,且状态为重复,则将所述重复地址的重复地址状态改为正常地址状态,或者所述邻居节点触发重复地址检测。所述节点还包括邻居条目删除模块,所述条目删除模块用于收到所述NA报文后, 当节点检测到入接口邻居条目中包含删除的所述地址对应的邻居条目,则将该条目删除。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。属于本发明所附的权利要求的保护范围。
权利要求
1.一种IPv6地址重复后自动恢复的方法,其特征在于节点删除地址后,向邻居节点组播邻居通告(NA)报文,所述NA报文携带节点删除的所述地址,所述邻居节点收到所述NA报文后对本地地址进行检测,若本地地址为重复地址, 则进行处理。
2.根据权利要求1所述的方法,其特征在于所述NA报文目标地址字段填入节点删除的所述地址,选项部分字段、S字段、0字段为空。
3.根据权利要求1所述的方法,其特征在于所述邻居节点收到所述NA报文后对本地地址进行检测,包括判断所述NA报文的源IP地址是否为0 ;若是,判断所述NA报文的目的IP地址是否为组播地址;若是,取出所述NA报文的目标地址,在入接口上进行查找是否存在与所述NA报文的目标地址相同的地址;若存在,判断该地址的状态是否为重复地址状态; 若是,则本地地址为所述重复地址。
4.根据权利要求1至3中至少一项所述的方法,其特征在于所述处理为将所述重复地址的重复地址状态改为正常地址状态,或者为所述邻居节点触发地址重复检测。
5.根据权利要求4所述的方法,其特征在于所述方法还包括当邻居节点检测到入接口邻居条目中包含删除的所述地址对应的邻居条目,则将对应的所述邻居条目删除。
6.根据权利要求5所述的方法,其特征在于所述向邻居节点组播NA报文的步骤,包括根据配置的发送间隔和发送个数发送组播 NA报文。
7.—种IPv6地址重复后自动恢复的系统,其特征在于 包括节点和邻居节点;所述节点用于删除地址后,向邻居节点发送组播NA报文,所述NA报文携带节点删除的所述地址;所述邻居节点用于收到所述NA报文后对本地地址进行检测,若本地地址为重复地址, 则进行处理。
8.根据权利要求7所述的系统,其特征在于所述NA报文目标地址字段填入节点删除的所述地址,选项部分字段、S字段、0字段为空,所述NA报文的源地址为0。
9.根据权利要求7或8所述的系统,其特征在于所述处理为将所述重复地址的重复地址状态改为正常地址状态,或者为所述邻居节点触发地址重复检测。
10.根据权利要求9所述的系统,其特征在于所述系统还包括当邻居节点检测到入接口邻居条目中包含所述地址对应的邻居条目, 则将对应的所述邻居条目删除。
11.根据权利要求10所述的系统,其特征在于所述向邻居节点组播NA报文的步骤,包括根据配置的发送间隔和发送个数发送组播 NA报文。
12.—种IPv6地址重复后自动恢复的节点,其特征在于所述节点包括NA报文发送模块、地址检测模块;所述NA报文发送模块用于节点删除地址后,向邻居节点发送组播NA报文;所述地址检测模块用于节点收到邻居节点组播的NA报文后对本地地址进行检测,若本地地址为重复地址,则将所述重复地址的重复地址状态改为正常地址状态,或者所述邻居节点触发重复地址检测。
13.根据权利要求12所述的节点,其特征在于所述节点还包括邻居条目删除模块,所述条目删除模块用于收到所述NA报文后,当节点检测到入接口邻居条目中包含删除的所述地址对应的邻居条目,则将该条目删除。
全文摘要
本发明公开了一种IPv6地址重复后自动恢复的方法、系统和节点,包括节点删除地址后,向邻居节点发送组播携带被删除地址的NA报文,邻居节点收到所述NA报文后,检查本节点上是否有地址和NA报文的被删除地址相同,如果相同且地址状态是重复状态则重新触发地址重复检测或将重复地址的状态改为正常状态,与现有技术相比,具有更好的可操作性。
文档编号H04L12/56GK102209122SQ20111012950
公开日2011年10月5日 申请日期2011年5月18日 优先权日2011年5月18日
发明者吴坤峰, 李洪涛, 谭云桥 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1