本发明涉及ipv6别名前缀检测技术领域,尤其是涉及一种基于分片指纹的ipv6别名前缀检测方法。
背景技术:
别名检测基于下面的经验:在非别名前缀下,随机生成的ipv6地址全部活跃的事件,是小概率事件。通常的做法是:首先选取特定长度的地址前缀,然后在前缀下生成一定数量的ipv6地址进行探测,根据探测地址的活跃数量进行别名判断。murdock等在96前缀的空间中随机生成3个地址,对每个地址发送三个探测包,如果收到三个随机地址的答复,前缀被确定为别名前缀。这种方法仅仅检测长度为96的前缀,空间局限性较大;同时随机生成的地址可能分布在同一子网,导致整个别名前缀出现误判(子网前缀是别名前缀,但是该前缀不是别名前缀);gasser等提出多层次别名检测算法,将前缀长度扩展到64到124范围,在前缀空间伪随机生成ipv6地址,避免子网别名前缀导致误判,同时基于指纹对进行别名有效性进行验证。但是,提出的指纹技术是一种模糊且具有挑战性的技术,不能有效表征别名前缀特性,仅仅是对检测结果的侧面验证。同时,随着ipv6地址部署的推进,前缀空间越小,整个前缀空间(比如/124)的每个地址都被分配到不同主机,导致基于概率的别名前缀检测失效;liu等提出嵌入在动态扫描中的大规模别名检测技术,以避免对检测到的别名区域进行不必要的扫描并提高发现效率,这种方法同样存在多层次别名检测算法的缺陷。基于概率的别名检测,准确的是探测前缀内的地址是否完全活跃,并不能证明该别名前缀被配置到同一台主机。
技术实现要素:
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明的一个目的在于提出一种基于分片指纹的ipv6别名前缀检测方法,可以有效发现网络主机,降低网络探测成本,为网络测量、网络测绘和安全研究提供更有效的数据支持。
根据本发明实施例的基于分片指纹的ipv6别名前缀检测方法,包括如下步骤:
在目标前缀空间生成多个伪随机地址;
探测点对多个所述伪随机地址分别发送大小为x比特的icmpv6echorequest包,所述x为(1280,1500]中的一个值,当所述探测点全部收到icmpv6echoresponse数据包时,则判断所述目标前缀为活跃前缀;
当收到的全部所述icmpv6echoresponse数据包都未发生分片,所述探测点对多个所述伪随机地址中的一个所述伪随机地址发送mtu为y比特的icmptoobig包,所述y为[1280,x)中的一个值,修改目标主机到探测点的pmtu为z,所述z等于y;然后,所述探测点再对多个所述伪随机地址分别发送大小为w比特的icmpv6echorequest包,所述w等于所述x,当所述目标主机的每个伪随机地址回复的数据包都发生分片时,则判断多个所述伪随机地址和所述活跃前缀被配置在同一台主机上,从而识别出所述活跃前缀为别名前缀。
根据本发明实施例的基于分片指纹的ipv6别名前缀检测方法,具有如下优点:第一、有效发现网络主机。基于分片id的别名前缀检测,解决了前缀空间较小时基于概率的别名前缀误判问题,有效区别出别名前缀和活跃前缀,有效地识别出别名前缀,解决主机和别名前缀的映射关系,为ipv6资源探测发现有效的主机资源提供技术支持。第二、降低网络探测成本。在ipv6测量中,从探测者角度,研究的对象是主机。如果主机被配置别名前缀。因为别名前缀存在导致在局部网络空间存在大量活跃地址,在网络资源探测时,别名前缀会在网络测量中产生对单个目的主机重复测量,从而产生大量不必要的流量,浪费网络资源。别名前缀检测技术去除别名地址,避免在别名前缀中进行海量发包。第三、为网络测量、网络测绘和安全研究提供更有效的数据支持。网络测量、网络测绘和安全研究的主题是网络设备。ipv6别名前缀的存在导致ipv6地址和主机设备不再是一一对应的关系,基于分片指纹的别名前缀检测解决了主机和地址的映射关系,为后续的研究提供更有效的ipv6数据支持。
根据本发明的一个实施例,所述在目标前缀空间生成多个所述伪随机地址的具体步骤是:将所述目标前缀空间划分成多个子网空间,在每个所述子网空间生成一个所述伪随机地址。
根据本发明进一步的实施例,多个所述子网空间均为2n-bit子网空间,其中,所述n为大于等于1的整数。
根据本发明的一个实施例,所述x为1300,所述y为1280,所述z为1280,所述w为1300。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的基于分片指纹的ipv6别名前缀检测方法的检测时序图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
如图1所示,下面来描述本发明实施例的基于分片指纹的ipv6别名前缀检测方法。
如图1所示,根据本发明实施例的基于分片指纹的ipv6别名前缀检测方法,包括如下步骤:
步骤一:生成伪随机地址集。在目标前缀空间生成多个伪随机地址,多个伪随机地址均作为探测地址。例如如图1所示,在目标前缀空间可以生成16个伪随机地址,分别是ip1~ip6。
步骤二:活跃前缀判断。探测点对多个伪随机地址分别发送大小为x比特的icmpv6echorequest包,其中,x为(1280,1500]中的一个值,例如,如图1所示,探测点对多个伪随机地址分别发送大小为1300比特的icmpv6echorequest包,当探测点全部收到icmpv6echoresponse数据包时,则判断目标前缀为活跃前缀。
步骤三:活跃前缀与目标主机一致性判断。在活跃前缀的判断阶段,当收到的全部icmpv6echoresponse数据包都未发生分片,探测点对多个伪随机地址中的一个伪随机地址发送mtu为y比特的icmptoobig包,其中,y为[1280,x)中的一个值,例如y可以为1280,修改目标主机的pmtu为z,其中z等于y,例如,z为1280,然后,探测点再对多个伪随机地址分别发送大小为w比特的icmpv6echorequest包,其中,w等于x,例如图1所示,探测点再对多个伪随机地址分别发送大小为1300比特的icmpv6echorequest包,当目标主机的每个伪随机地址回复的数据包都发生分片时,则判断多个伪随机地址和活跃前缀被配置在同一台主机上,从而识别出活跃前缀为别名前缀。可以理解的是,当收到的icmpv6echoresponse数据包都未发生分片,探测点对多个伪随机地址中的一个伪随机地址例如ip1发送mtu为1280的icmptoobig包,诱导目标主机发生分片,相应的,短时间内多个伪随机地址中的其它伪随机地址例如ip2~ip16在收到数据包也会发生分片。修改目标主机的pmtu为1280(ipv6最小mtu值为1280字节),改变目标主机的特性。探测点对多个伪随机地址再发送大小为1300比特的icmpv6echorequest包,这些数据包到达目标主机没有分片,但是目标主机ipv6堆栈的高速缓存到探测点的pmtu为1280,如果该目标前缀被配置到同一台主机,探测点对每个伪随机地址发送的ping请求(即大小为1300比特的icmpv6echorequest包)导致目标主机回复分片数据包。因此,通过对多个伪随机地址中的任意一个伪随机地址例如ip1发送诱骗包,修改主机缓存中的pmtu,修改的结果对ip2-ip16依然有效,那么ip1-ip16被分配在同一台主机上,该活跃前缀被配置到同一台主机上,从而识别出该活跃前缀为别名前缀。
需要说明的是,x为(1280,1500]中的一个值,y为[1280,x)中的一个值,z等于y,w等于x,可以节约流量,避免浪费网络资源。
根据本发明实施例的基于分片指纹的ipv6别名前缀检测方法,具有如下优点:第一、有效发现网络主机。基于分片id的别名前缀检测,解决了前缀空间较小时基于概率的别名前缀误判问题,有效区别出别名前缀和活跃前缀,有效地识别出别名前缀,解决主机和别名前缀的映射关系,为ipv6资源探测发现有效的主机资源提供技术支持。第二、降低网络探测成本。在ipv6测量中,从探测者角度,我们研究的对象是主机。如果主机被配置别名前缀。因为别名前缀存在导致在局部网络空间存在大量活跃地址,在网络资源探测时,别名前缀会在网络测量中产生对单个目的主机重复测量,从而产生大量不必要的流量,浪费网络资源。别名前缀检测技术去除别名地址,避免在别名前缀中进行海量发包。第三、为网络测量、网络测绘和安全研究提供更有效的数据支持。网络测量、网络测绘和安全研究的主题是网络设备。ipv6别名前缀的存在导致ipv6地址和主机设备不再是一一对应的关系,基于分片id的别名前缀检测解决了主机和地址的映射关系,为后续的研究提供更有效的ipv6数据支持。
根据本发明的一个实施例,在目标前缀空间生成多个伪随机地址的具体步骤为:将目标前缀空间划分成多个子网空间,在每个子网空间生成一个伪随机地址,这样,对于给定前缀,可以有效地防止随机生成的探测地址即伪随机地址聚集在单个子空间,出现子网活跃前缀导致整个前缀被判定为活跃前缀的情况。
根据本发明进一步的实施例,多个子网空间均为2n-bit子网空间,其中,n为大于等于1的整数。可以理解的是,子网空间大小的划分与生成伪随机地址的数量相关,可以根据要求的伪随机地址数量不同对目标前缀空间划分不同大小的bit的子网空间。
根据本发明的一个实施例,x为1300,y为1280,z为1280,w为1300。由此,可以节约流量,避免浪费网络资源。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
1.一种基于分片指纹的ipv6别名前缀检测方法,其特征在于,包括如下步骤:
在目标前缀空间生成多个伪随机地址;
探测点对多个所述伪随机地址分别发送大小为x比特的icmpv6echorequest包,所述x为(1280,1500]中的一个值,当所述探测点全部收到icmpv6echoresponse数据包时,则判断所述目标前缀为活跃前缀;
当收到的全部所述icmpv6echoresponse数据包都未发生分片,所述探测点对多个所述伪随机地址中的一个所述伪随机地址发送mtu为y比特的icmptoobig包,所述y为[1280,x)中的一个值,修改目标主机到探测点的pmtu为z,所述z等于y;然后,所述探测点再对多个所述伪随机地址分别发送大小为w比特的icmpv6echorequest包,所述w等于所述x,当所述目标主机的每个伪随机地址回复的数据包都发生分片时,则判断多个所述伪随机地址和所述活跃前缀被配置在同一台主机上,从而识别出所述活跃前缀为别名前缀。
2.根据权利要求1所述的基于分片指纹的ipv6别名前缀检测方法,其特征在于,所述在目标前缀空间生成多个所述伪随机地址的具体步骤是:将所述目标前缀空间划分成多个子网空间,在每个所述子网空间生成一个所述伪随机地址。
3.根据权利要求2所述的基于分片指纹的ipv6别名前缀检测方法,其特征在于,多个所述子网空间均为2n-bit子网空间,其中,所述n为大于等于1的整数。
4.根据权利要求1所述的基于分片指纹的ipv6别名前缀检测方法,其特征在于,所述x为1300,所述y为1280,所述z为1280,所述w为1300。
技术总结