一种源地址重复性检测方法和设备的制作方法

xiaoxiao2020-09-10  11

专利名称:一种源地址重复性检测方法和设备的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种源地址重复性检测方法和设备。
背景技术
SAVI (Source Address Validation Improvement, ill jfttitilE ) i —禾中I 证数据包源地址的机制,通过使用绑定实例(绑定实例将终端IP地址、终端MAC (Media Access Control,介质访问控制)地址以及接入端口进行绑定)过滤源地址欺骗报文,对于来自终端的报文的源地址,判断是否满足绑定实例的关系,如果是,则允许报文通过,否则, 不允许报文通过。为了优化SAVI绑定实例和SAVI验证流程,提出了执行边界的概念,如图1所示的执行边界示意图,由SAVI设备(即使能了 SAVI功能的网络设备)以及其他网络设备构成拓扑边界,边界内的流量不需要SAVI验证,边界外的流量需要SAVI验证;且SAVI设备的端口分为信任端口和验证端口,信任端口不验证报文的源地址,验证端口需要验证报文的源地址。执行边界通过设置信任端口和验证端口,并只对验证端口检测源地址,降低了绑定实例的存储数目,且减少了验证量,提升了 SAVI设备的性能。以图 1 为例,SAVI 设备(SAVI 1、SAVI 2、SAVI 3、SAVI 4)与 Switch A(交换机 Α)之间、各SAVI设备之间为信任端口,SAVI 1与终端1、终端2之间为验证端口,SAVI 2与终端3之间为验证端口,SAVI 3与终端4之间为验证端口,SAVI 4与Switch B连接的端口为验证端口(由于SAVI 4与没有SAVI功能的Switch B相连,且Switch B下连接有终端 5和终端6,为了验证终端5和终端6的流量,SAVI 4与Switch B之间为验证端口)。需要注意的是,由于SAVI的目的是控制源地址欺骗攻击,不允许伪造源地址;且不同SAVI设备存在相同源地址的绑定实例时,会导致流量无法正常转发,增加SAVI设备绑定实例的数目;因此源地址不能在不同SAVI设备上创建绑定实例。但是在以下情况下,会发生在不同SAVI设备上为相同源地址创建绑定实例的情况(1)终端获取地址的方法为无状态地址分配时,不同终端可能生成相同的地址;(2)攻击者可能伪造相同地址;(3)终端在不同SAVI设备间移动。因此,为了保证不在不同SAVI 设备上为相同源地址创建绑定实例,SAVI设备需要执行绑定实例的一致性检测,以确保源地址没有重复使用。现有技术中,SAVI设备监控从验证端口和信任端口收到的报文,与终端相连的 SAVI设备为终端建立SAVI绑定实例,为了保持绑定实例的一致性,SAVI设备通过信任端口以广播方式发送DAD (Duplicate Address Detection,重复性地址检测)报文,以检验源地
址是否重复绑定。如图2所示的SAVI绑定实例一致性检测过程示意图,当终端E连接SAVI设备A 时,终端E通过DAD_NS0L(Duplicate Address Detection Neighbor Solicitation,重复性地址检测邻居请求)表明试图拥有源地址X ;SAVI设备A接收到DAD_NS0L时,记录源地址 X的绑定实例信息(如源IP地址、源MAC地址、接入端口等,此时并未创建绑定实例),并通
4过信任端口广播DAD_NS0L ;SAVI设备B接收到DAD_NS0L时,发现自身没有源地址X的绑定实例,通过信任端口广播DAD_NS0L ;SAVI设备C接收到DAD_NS0L时,由于终端F已经表明拥有源地址X,则SAVI设备C发现自身有源地址X的绑定实例。为了验证终端F是否存在,SAVI设备C将DAD_NS0L报文从验证端口转发给终端 F,如果终端 F 存在,则终端 F 响应 DAD_NADV (Duplicate Address Detection Neighbor Advertisement,重复性地址检测邻居通告),DAD_NADV由SAVI设备C发送到SAVI设备A, SAVI设备A认为终端E和终端F试图拥有相同源地址,删除源地址X的绑定实例信息,将 DAD_NADV转发给终端E,终端E收到DAD_NADV后,需重新生成新的源地址。但是,由于DAD_NS0L、DAD_NADV为广播报文,广播报文需要通过信任端口到达所有SAVI设备,当终端在SAVI设备间频繁移动时,SAVI设备间的广播报文负载很重。而且当SAVI设备重启时,SAVI设备上的绑定实例可能丢失,随后数据报文将被丢弃,影响数据的正常传输。

发明内容
本发明提供一种源地址重复性检测方法和设备,以降低SAVI设备间的负载,并保证数据的正常传输。为了达到上述目的,本发明提供一种源地址重复性检测方法,包括以下步骤第一 SAVI设备接收终端发送的报文,若本地没有存储该报文源地址的SAVI绑定实例,则确定记录所述SAVI绑定实例存储信息的第二 SAVI设备,向该第二 SAVI设备发送查询所述SAVI绑定实例存在信息的源地址重复性检测报文,如果在预定时间内没有收到源地址重复报文,所述第一 SAVI设备在本地建立该源地址的SAVI绑定实例,否则不建立该源地址的SAVI绑定实例;所述第二 SAVI设备收到第一 SAVI设备的该查询所述SAVI绑定实例存在信息的源地址重复性检测报文后,如果本地没有记录所述SAVI绑定实例存储信息,则在本地记录该SAVI绑定实例存储在第一 SAVI设备的信息;如果本地记录有所述SAVI绑定实例存储信息,则根据该SAVI绑定实例存储信息判断存储该SAVI绑定实例的SAVI设备,如果是第三 SAVI设备,则向该第三SAVI设备发送查询该报文源地址是否重复的源地址重复性检测报文;如果第二 SAVI设备在预定时间内没有收到源地址重复报文,则在本地记录该SAVI绑定实例存储在第一 SAVI设备的信息,否则,将收到的源地址重复报文发送给第一 SAVI设备;所述第三SAVI设备收到第二 SAVI设备的查询该报文源地址是否重复的源地址重复性检测报文后,向该源地址对应的终端进行查询,如果源地址重复则向第二 SAVI设备发送源地址重复报文。所述第一 SAVI确定记录所述SAVI绑定实例存储信息的第二 SAVI设备,具体包括第一 SAVI设备通过该报文源地址HASH计算得到地址标识,并根据该地址标识与SAVI 设备标识之间的关系确定记录所述SAVI绑定实例存储信息的第二 SAVI设备。根据该地址标识与SAVI设备标识之间的关系确定记录所述SAVI绑定实例存储信息的第二 SAVI设备,具体包括所述第一 SAVI设备确定所述第二 SAVI设备为SAVI设备标识大于所述地址标识,且与所述地址标识差距最小的SAVI设备;或者,所述第一 SAVI设备确定所述第二 SAVI设备为SAVI设备标识小于所述地址标识,且与所述地址标识差距最小的SAVI设备。所述SAVI设备标识由各SAVI设备通过广播方式向其他SAVI设备通告,所述第一 SAVI设备收到各SAVI设备的广播通告后在本地记录各SAVI设备标识,所述SAVI设备标识通过Hash计算得到。一种源地址重复性检测设备,包括接收模块,用于接收终端发送的报文;接收查询该报文源地址的SAVI绑定实例存在信息的源地址重复性检测报文;接收查询该报文源地址是否重复的源地址重复性检测报文;处理模块,用于在接收到终端发送的报文后,当本地没有存储该报文源地址的 SAVI绑定实例时,确定记录所述SAVI绑定实例存储信息的SAVI设备;在预定时间内没有收到源地址重复报文时,在本地建立该源地址的SAVI绑定实例,否则不建立该源地址的 SAVI绑定实例;在接收到查询该报文源地址的SAVI绑定实例存在信息的源地址重复性检测报文后,当本地没有记录所述SAVI绑定实例存储信息或在预定时间内没有收到源地址重复报文时,在本地记录该SAVI绑定实例存储在接收到终端的报文的SAVI设备的信息;当本地记录有所述SAVI绑定实例存储信息时,根据该SAVI绑定实例存储信息判断存储该SAVI绑定实例的SAVI设备;在接收到查询该报文源地址是否重复的源地址重复性检测报文后,向该源地址对应的终端进行查询;发送模块,用于发送查询所述SAVI绑定实例存在信息的源地址重复性检测报文; 发送查询该报文源地址是否重复的源地址重复性检测报文;发送源地址重复报文。所述处理模块,具体用于通过该报文源地址HASH计算得到地址标识,并根据该地址标识与SAVI设备标识之间的关系确定记录所述SAVI绑定实例存储信息的SAVI设备。所述处理模块,进一步用于确定记录所述SAVI绑定实例存储信息的SAVI设备为 SAVI设备标识大于所述地址标识,且与所述地址标识差距最小的SAVI设备;或者,确定记录所述SAVI绑定实例存储信息的SAVI设备为SAVI设备标识小于所述地址标识,且与所述地址标识差距最小的SAVI设备。所述SAVI设备标识由各SAVI设备通过广播方式向其他SAVI设备通告,在收到各 SAVI设备的广播通告后在本地记录各SAVI设备标识,所述SAVI设备标识通过Hash计算得到。与现有技术相比,本发明至少具有以下优点通过在两个SAVI设备上维护同一源地址的绑定实例信息,可降低SAVI设备间的负载,保证数据的正常传输。


图1是现有技术中执行边界示意图;图2是现有技术中SAVI绑定实例一致性检测过程示意图;图3是本发明应用场景示意图;图4是本发明中携带设备标识的广播报文的消息格式示意图5是本发明中设备标识分布在128位的地址空间的示意图;图6是本发明提供的一种源地址重复性检测方法流程图;图7是本发明提出的一种源地址重复性检测处理设备结构图。
具体实施例方式本发明提出一种源地址重复性检测方法,应用于包括多个SAVI设备的网络系统中,以图3为本发明参考网络示意图,SAVI设备A、SAVI设备B、SAVI设备C、SAVI设备D、 SAVI设备E为使能了 SAVI功能的网络设备(如交换机、路由器等),且各SAVI设备之间为信任端口,终端A与SAVI设备A之间为验证端口,终端B与SAVI设备C之间为验证端口。本发明中,各SAVI设备可具有接入功能和存储功能;接入功能用于为终端的源地址建立SAVI绑定实例,并利用该绑定实例过滤源地址欺骗报文,允许源地址满足绑定实例的报文通过,并过滤源地址不满足绑定实例的报文;存储功能用于存储某源地址的绑定实例位于哪个SAVI设备的信息,此时需要建立源地址与设备标识的映射关系。例如,针对终端A的源地址,可利用SAVI设备A的接入功能为该源地址建立SAVI绑定实例,并利用SAVI 设备D的存储功能建立源地址与设备标识的映射关系。为了实现上述功能,各SAVI设备可利用设备信息(如SAVI设备的IP地址以及名称等信息)HASH计算得到设备标识(设备标识的位数可根据实际情况进行选择,以1 位为例),所有SAVI设备均有一个1 位的设备标识。基于各SAVI设备的设备标识,各SAVI设备均需要获得其他SAVI设备的设备标识,并维护SAVI设备列表,SAVI设备列表中记录有其他SAVI设备的设备标识以及各SAVI 设备之间出口信息。例如,SAVI设备A的SAVI设备列表中记录有SAVI设备B的设备标识及到达SAVI设备B的出口信息,以此类推。利用SAVI设备列表中维护的信息,各SAVI设备之间可进行报文的传输;例如,SAVI设备A向SAVI设备C发送报文时,可基于SAVI设备 C的设备标识及到达SAVI设备C的出口信息将报文发送给SAVI设备C。为了获得其他SAVI设备的设备标识,可通过手动配置方式或自动配置方式来实现,手动配置的优先级可高于自动配置。手动配置方式适用于SAVI设备较少的情况,在 SAVI设备上直接配置其他SAVI设备的设备标识。自动配置方式适用于SAVI设备较多、SAVI 设备不稳定的情况,各SAVI设备通过信任端口周期性广播自身的设备标识,接收到广播报文的SAVI设备维护SAVI设备列表,并为每个SAVI设备设置定时器,在定时器超时前接收到SAVI设备的广播报文,则继续维护SAVI设备的记录,在定时器超时且没有接收到SAVI 设备的广播报文,则将SAVI设备的记录从SAVI设备列表中删除。针对携带设备标识的广播报文,可采用图4所示的消息格式示意图,第一个Type 字段表示帧类型,Type为8888表示为SAVI数据帧。第二个Type字段描述SAVI消息类型,Type为0表示SAVI设备请求其他SAVI设备的设备标识,目的MAC地址为广播地址, SAVI Identifier字段为全0 ;Type为1表示SAVI设备广播自身的设备标识,该消息为Type 类型0的响应或用于维护SAVI设备的设备标识的心跳,目的MAC地址为广播地址,SAVI Identifier为SAVI设备标识符;Type为2表示SAVI设备封装报文,即将来自终端的数据填充到lidding字段中。Length字段描述从第二个Type类型到lidding结束的长度。SAVI Identifier描述SAVI设备的设备标识。
7
需要说明的是,上述各数值(如Type为8888、Type为1等)只是为了方便描述的具体应用,实际应用中可进行调整;而且为了维护SAVI设备列表,SAVI设备可多次(如3 次)发送Type为0、Type为1等的报文。当有SAVI设备接入网络时,该SAVI设备利用Type为0的广播报文请求其他SAVI 设备的设备标识,并利用Type为1的广播报文广播携带自身的设备标识的报文。因此,该 SAVI设备可维护SAVI设备列表,且其他SAVI设备可将该SAVI设备的设备标识更新到自身的SAVI设备列表中。需要注意的是,在广播携带自身的设备标识的报文之前,该SAVI设备还可判断其他SAVI设备的设备标识与自身的设备标识是否相同,如果不同则广播报文;如果相同则通过将自身IP地址取反,HASH得到新的设备标识,并继续判断该新的设备标识与其他SAVI设备的设备标识是否相同,如果不同则广播报文;如果相同则报错并记录日志,提示管理员配置设备标识。以SAVI设备A的设备标识为IDa、SAVI设备B的设备标识为IDb、SAVI设备C的设备标识为IDc、SAVI设备D的设备标识为IDd、SAVI设备E的设备标识为IDe为例进行说明,如图5所示的设备标识分布在1 位的地址空间的示意图,设备标识值以顺时针方向增长,IDa < IDb < IDc < IDd < IDe。为了在SAVI设备上建立源地址与设备标识的映射关系,(1)可选择指定设备(如 SAVI设备D)建立所有源地址与设备标识的映射关系;( 可选择设备标识大于地址标识 (利用源地址信息HASH计算得到的地址标识,设备标识和地址标识为具有相同位数的数值,如地址标识也为1 位)且与地址标识差距最小的SAVI设备建立源地址与设备标识的映射关系,例如,终端A的源地址的地址标识位于IDb与IDc之间时,SAVI设备C建立终端 A的源地址与IDa的映射关系;(3)可选择设备标识小于地址标识且与地址标识差距最小的 SAVI设备建立源地址与设备标识的映射关系,即SAVI设备A建立地址标识位于IDa与IDb 之间所有源地址与设备标识的映射关系,以此类推,SAVI设备E建立地址标识位于[IDe, 2"128)和[0,IDa)之间所有源地址与设备标识的映射关系;例如,终端A的源地址的地址标识位于IDb与IDc之间时,SAVI设备B建立终端A的源地址与IDa的映射关系。需要注意的是,当采用方式(2)或方式(3)时,如果有SAVI设备(如SAVI设备F) 加入网络(接收到SAVI设备F的携带设备标识IDf的广播报文)或者有SAVI设备(如 SAVI设备E)离开网络(预定时间没有接收到SAVI设备E的广播报文),则会导致源地址与IDa的映射关系的存储设备发生改变。如采用方式(3)时,IDf位于IDa与IDb之间,则地址标识位于IDf与IDb之间所有源地址与设备标识的映射关系将由SAVI设备F建立(之前由SAVI设备A)建立;SAVI设备E上记录的映射关系也将由其他SAVI设备建立。因此,各SAVI设备之间可调整映射关系的存储位置,例如,当前由SAVI设备A记录地址2的映射关系时,在SAVI设备F加入网络后,根据设备标识以及地址2的地址标识获知需要由SAVI设备F记录地址2的映射关系时,SAVI设备A可将地址2的映射关系发送(可采用DAD_NS0L报文进行发送)给SAVI设备F,由SAVI设备F记录地址2的映射关系,且SAVI设备A删除自身记录的地址2的映射关系。基于各SAVI设备上维护的SAVI设备列表,如图6所示,该方法包括以下步骤步骤601,第一 SAVI设备(如SAVI设备A)接收来自终端(如终端A)的报文。如果SAVI设备A记录有报文源地址的SAVI绑定实例,则执行现有的过滤流程,在此不再赘述;如果SAVI设备A上没有存储该报文源地址的SAVI绑定实例,则记录源地址的绑定实例信息,并执行步骤602。步骤602,第一 SAVI设备确定记录该源地址(以地址1为例)的SAVI绑定实例存储信息的第二 SAVI设备。具体的,SAVI设备A利用地址IHASH计算得到地址标识,并通过其他SAVI设备的设备标识以及地址标识确定第二 SAVI设备;例如,当选择设备标识大于地址标识且与地址标识差距最小的SAVI设备建立源地址与设备标识的映射关系时,确定第二 SAVI设备为设备标识大于地址标识且与地址标识差距最小的SAVI设备;当选择设备标识小于地址标识且与地址标识差距最小的SAVI设备建立源地址与设备标识的映射关系时,确定第二 SAVI 设备为设备标识小于地址标识且与地址标识差距最小的SAVI设备。实际应用中,第一 SAVI设备还可确定指定设备为第二 SAVI设备;例如,SAVI设备 D用于记录是否有SAVI设备上建立有源地址信息的绑定实例时,则第二 SAVI设备为SAVI 设备D。以第二 SAVI设备为设备标识小于地址标识且与地址标识差距最小的SAVI设备为例,SAVI设备A通过HASH地址1得到1 位的地址标识X,通过查找SAVI设备列表,将地址标识X与各设备标识比较得到IDd < X < IDe,则确定第二设备为SAVI设备D。步骤603,第一 SAVI设备向第二 SAVI设备发送查询SAVI绑定实例存在信息(即是否存在SAVI绑定实例、以及存在SAVI绑定实例的SAVI设备)的源地址重复性检测报文。需要注意的是,来自终端的报文可以为DAD_NS0L报文或者数据报文,针对DAD_ NSOL报文,SAVI设备A通过信任端口(由SAVI设备列表获知)将该报文封装为Type类型 2的源地址重复性检测报文发送给SAVI设备D ;针对数据报文,SAVI设备A缓存该数据报文,并向第二 SAVI设备发送源地址重复性检测报文,如果后续确认源地址没有重复,则发送缓存的数据报文,否则,丢弃缓存的数据报文。本发明中,该查询SAVI绑定实例存在信息的源地址重复性检测报文可以为封装有DAD_NS0L的报文,其目的MAC地址为第二 SAVI设备的MAC地址。步骤604,第二 SAVI设备根据SAVI绑定实例存储信息判断是否记录有地址1的 SAVI绑定实例;如果没有,执行步骤605,否则,执行步骤606。在SAVI设备D上通过维护SAVI设备的设备标识与源地址的对应关系(不包含 MAC地址和接入端口信息)表示是否有源地址的SAVI绑定实例,如果SAVI设备D上有地址1以及对应的设备标识,则说明该设备标识所对应的SAVI设备上有地址1的SAVI绑定实例。例如,SAVI设备D上记录有地址1与IDc的对应关系时,则SAVI设备C有地址1的 SAVI绑定实例。需要说明的是,SAVI设备D从信任端口接收到查询SAVI绑定实例存在信息的源地址重复性检测报文后,如果源地址重复性检测报文的目的MAC地址为自身的MAC地址,则执行上述步骤604 ;否则,根据源地址重复性检测报文的目的MAC地址继续发送源地址重复性检测。步骤605,第二 SAVI设备记录第一 SAVI设备上建立有地址1的SAVI绑定实例,且第一 SAVI设备利用地址1建立SAVI绑定实例。例如,SAVI设备D记录地址1与IDa的对
9应关系,SAVI设备A利用地址1等绑定实例信息建立SAVI绑定实例。需要注意的是,SAVI设备D可不向SAVI设备A返回响应报文,在SAVI设备A上, 如果在预定时间内没有接收到源地址重复报文,则SAVI设备A在本地直接利用地址1建立 SAVI绑定实例。步骤606,第二 SAVI设备根据该SAVI绑定实例存储信息确定建立有地址1的SAVI 绑定实例的SAVI设备为第三SAVI设备(如SAVI设备C)。SAVI设备D可直接利用设备标识与地址1的对应关系确定第三SAVI设备上建立有地址1的SAVI绑定实例,执行步骤607。实际应用中,当SAVI设备A由于重启等原因导致SAVI绑定实例丢失时,则在SAVI 设备D上还可获知SAVI设备A上建立有地址1的SAVI绑定实例,通知SAVI设备A利用地址1建立SAVI绑定实例;或者结束流程,由SAVI设备A在预定时间内没有接收到源地址重复报文后建立SAVI绑定实例。步骤607,第二 SAVI设备向第三SAVI设备发送查询该报文源地址是否重复的源地址重复性检测报文(即DAD_NS0L报文)。步骤608,第三SAVI设备查询地址1是否在使用,如果是,执行步骤609,否则,执行步骤610。如果SAVI设备C上没有地址1对应的SAVI绑定实例,则说明地址1没有在使用; 如果SAVI设备C上有地址1对应的SAVI绑定实例,为了验证地址1对应的终端是否存在, SAVI设备C将DAD_NS0L报文从验证端口转发给对应的终端,如果对应的终端存在,SAVI设备C会接收到DAD_NADV,此时说明地址1在使用,否则,说明地址1没有在使用。步骤609,第三SAVI设备向第二 SAVI设备发送源地址重复报文(如DAD_NADV),第二 SAVI设备将源地址重复报文发送给第一 SAVI设备,当第一 SAVI设备接收到源地址重复报文后,获知终端A不允许使用地址1,删除地址1的绑定实例信息,不建立地址1的SAVI 绑定实例,将源地址重复报文转发给终端A,终端A需重新生成新地址。步骤610,第二 SAVI设备记录第一 SAVI设备上建立有地址1的SAVI绑定实例,第一 SAVI设备地址1建立SAVI绑定实例。如果SAVI设备D在预定时间内没有接收到源地址重复报文,则获知地址1没有在使用,SAVI设备D将地址1与SAVI设备C的设备标识的对应关系更新为地址1与SAVI设备A的设备标识的对应关系,即记录SAVI设备A上建立有地址1的SAVI绑定实例;如果 SAVI设备A如果预定时间内没有接收到通知终端不允许使用地址1的报文,则利用地址1 建立SAVI绑定实例。需要注意的是,上述预定时间可通过等待DAD_NADV定时器超时来实现,各SAVI设备的等待DAD_NADV定时器的设定需要一致。基于与上述方法同样的发明构思,本发明还提出了一种源地址重复性检测设备, 如图7所示,包括接收模块11,用于接收终端发送的报文;接收查询该报文源地址的SAVI绑定实例存在信息的源地址重复性检测报文;接收查询该报文源地址是否重复的源地址重复性检测报文;处理模块12,用于在接收到终端发送的报文后,当本地没有存储该报文源地址的
10SAVI绑定实例时,确定记录所述SAVI绑定实例存储信息的SAVI设备;在预定时间内没有收到源地址重复报文时,在本地建立该源地址的SAVI绑定实例,否则不建立该源地址的 SAVI绑定实例;在接收到查询该报文源地址的SAVI绑定实例存在信息的源地址重复性检测报文后,当本地没有记录所述SAVI绑定实例存储信息或在预定时间内没有收到源地址重复报文时,在本地记录该SAVI绑定实例存储在接收到终端的报文的SAVI设备的信息;当本地记录有所述SAVI绑定实例存储信息时,根据该SAVI绑定实例存储信息判断存储该SAVI绑定实例的SAVI设备;在接收到查询该报文源地址是否重复的源地址重复性检测报文后,向该源地址对应的终端进行查询;发送模块13,用于发送查询所述SAVI绑定实例存在信息的源地址重复性检测报文;发送查询该报文源地址是否重复的源地址重复性检测报文;发送源地址重复报文。所述处理模块12,具体用于通过该报文源地址HASH计算得到地址标识,并根据该地址标识与SAVI设备标识之间的关系确定记录所述SAVI绑定实例存储信息的SAVI设备。所述处理模块12,进一步用于确定记录所述SAVI绑定实例存储信息的SAVI设备为SAVI设备标识大于所述地址标识,且与所述地址标识差距最小的SAVI设备;或者,确定记录所述SAVI绑定实例存储信息的SAVI设备为SAVI设备标识小于所述地址标识,且与所述地址标识差距最小的SAVI设备。所述SAVI设备标识由各SAVI设备通过广播方式向其他SAVI设备通告,在收到各 SAVI设备的广播通告后在本地记录各SAVI设备标识,所述SAVI设备标识通过Hash计算得到。此外,为了进一步阐述图7所示的源地址重复性检测设备,基于与上述方法同样的发明构思,上述源地址重复性检测设备的角色可以为第一 SAVI设备、第二 SAVI设备、第三SAVI设备,该源地址重复性检测设备包括接收模块、确定模块、发送模块、记录模块、建立模块;当源地址重复性检测设备的角色作为第一 SAVI设备时,所述接收模块,用于接收终端发送的报文;所述确定模块,用于当本地没有存储该报文源地址的SAVI绑定实例时,确定记录所述SAVI绑定实例存储信息的第二 SAVI设备;所述发送模块,用于向该第二 SAVI设备发送查询所述SAVI绑定实例存在信息的源地址重复性检测报文;所述建立模块, 用于在预定时间内没有收到源地址重复报文时,在本地建立该源地址的SAVI绑定实例,否则不建立该源地址的SAVI绑定实例。当源地址重复性检测设备的角色作为第二 SAVI设备时,所述接收模块,用于接收第一 SAVI设备的该查询所述SAVI绑定实例存在信息的源地址重复性检测报文;所述记录模块,用于当本地没有记录所述SAVI绑定实例存储信息时,在本地记录该SAVI绑定实例存储在第一 SAVI设备的信息;如果在预定时间内没有收到源地址重复报文,则在本地记录该 SAVI绑定实例存储在第一 SAVI设备的信息;所述确定模块,用于当本地记录有所述SAVI 绑定实例存储信息时,根据该SAVI绑定实例存储信息判断存储该SAVI绑定实例的SAVI设备为第三SAVI设备;所述发送模块,用于向该第三SAVI设备发送查询该报文源地址是否重复的源地址重复性检测报文;如果在预定时间内收到源地址重复报文,则将收到的源地址
11重复报文发送给第一 SAVI设备。当源地址重复性检测设备的角色作为第三SAVI设备时,所述接收模块,用于接收第二 SAVI设备的源地址重复性检测报文;所述确定模块,用于向该源地址对应的终端进行查询;所述发送模块,用于当源地址重复时,向第二 SAVI设备发送源地址重复报文。当源地址重复性检测设备的角色第一 SAVI设备时,所述确定模块,具体用于通过该报文源地址HASH计算得到地址标识,并根据该地址标识与SAVI设备标识之间的关系确定记录所述SAVI绑定实例存储信息的第二 SAVI设备。并进一步用于确定所述第二 SAVI 设备为设备标识大于所述地址标识,且与所述地址标识差距最小的SAVI设备;或者,确定所述第二 SAVI设备为设备标识小于所述地址标识,且与所述地址标识差距最小的SAVI设备。所述SAVI设备标识由各SAVI设备通过广播方式向其他SAVI设备通告,在收到各 SAVI设备的广播通告后在本地记录各SAVI设备标识,所述SAVI设备标识通过Hash计算得到。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是⑶-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种源地址重复性检测方法,其特征在于,包括以下步骤第一 SAVI设备接收终端发送的报文,若本地没有存储该报文源地址的SAVI绑定实例, 则确定记录所述SAVI绑定实例存储信息的第二 SAVI设备,向该第二 SAVI设备发送查询所述SAVI绑定实例存在信息的源地址重复性检测报文,如果在预定时间内没有收到源地址重复报文,所述第一 SAVI设备在本地建立该源地址的SAVI绑定实例,否则不建立该源地址的SAVI绑定实例;所述第二 SAVI设备收到第一 SAVI设备的该查询所述SAVI绑定实例存在信息的源地址重复性检测报文后,如果本地没有记录所述SAVI绑定实例存储信息,则在本地记录该 SAVI绑定实例存储在第一 SAVI设备的信息;如果本地记录有所述SAVI绑定实例存储信息,则根据该SAVI绑定实例存储信息判断存储该SAVI绑定实例的SAVI设备,如果是第三 SAVI设备,则向该第三SAVI设备发送查询该报文源地址是否重复的源地址重复性检测报文;如果第二 SAVI设备在预定时间内没有收到源地址重复报文,则在本地记录该SAVI绑定实例存储在第一 SAVI设备的信息,否则,将收到的源地址重复报文发送给第一 SAVI设备;所述第三SAVI设备收到第二 SAVI设备的查询该报文源地址是否重复的源地址重复性检测报文后,向该源地址对应的终端进行查询,如果源地址重复则向第二 SAVI设备发送源地址重复报文。
2.如权利要求1所述的方法,其特征在于,所述第一SAVI确定记录所述SAVI绑定实例存储信息的第二 SAVI设备,具体包括第一 SAVI设备通过该报文源地址HASH计算得到地址标识,并根据该地址标识与SAVI 设备标识之间的关系确定记录所述SAVI绑定实例存储信息的第二 SAVI设备。
3.如权利要求2所述的方法,其特征在于,根据该地址标识与SAVI设备标识之间的关系确定记录所述SAVI绑定实例存储信息的第二 SAVI设备,具体包括所述第一 SAVI设备确定所述第二 SAVI设备为SAVI设备标识大于所述地址标识,且与所述地址标识差距最小的SAVI设备;或者,所述第一 SAVI设备确定所述第二 SAVI设备为SAVI设备标识小于所述地址标识,且与所述地址标识差距最小的SAVI设备。
4.如权利要求2所述的方法,其特征在于,所述SAVI设备标识由各SAVI设备通过广播方式向其他SAVI设备通告,所述第一 SAVI设备收到各SAVI设备的广播通告后在本地记录各SAVI设备标识,所述SAVI设备标识通过Hash计算得到。
5.一种源地址重复性检测设备,其特征在于,包括接收模块,用于接收终端发送的报文;接收查询该报文源地址的SAVI绑定实例存在信息的源地址重复性检测报文;接收查询该报文源地址是否重复的源地址重复性检测报文;处理模块,用于在接收到终端发送的报文后,当本地没有存储该报文源地址的SAVI绑定实例时,确定记录所述SAVI绑定实例存储信息的SAVI设备;在预定时间内没有收到源地址重复报文时,在本地建立该源地址的SAVI绑定实例,否则不建立该源地址的SAVI绑定实例;在接收到查询该报文源地址的SAVI绑定实例存在信息的源地址重复性检测报文后, 当本地没有记录所述SAVI绑定实例存储信息或在预定时间内没有收到源地址重复报文时,在本地记录该SAVI绑定实例存储在接收到终端的报文的SAVI设备的信息;当本地记录有所述SAVI绑定实例存储信息时,根据该SAVI绑定实例存储信息判断存储该SAVI绑定实例的SAVI设备;在接收到查询该报文源地址是否重复的源地址重复性检测报文后,向该源地址对应的终端进行查询;发送模块,用于发送查询所述SAVI绑定实例存在信息的源地址重复性检测报文;发送查询该报文源地址是否重复的源地址重复性检测报文;发送源地址重复报文。
6.如权利要求5所述的设备,其特征在于,所述处理模块,具体用于通过该报文源地址HASH计算得到地址标识,并根据该地址标识与SAVI设备标识之间的关系确定记录所述SAVI绑定实例存储信息的SAVI设备。
7.如权利要求6所述的设备,其特征在于,所述处理模块,进一步用于确定记录所述SAVI绑定实例存储信息的SAVI设备为SAVI 设备标识大于所述地址标识,且与所述地址标识差距最小的SAVI设备;或者,确定记录所述SAVI绑定实例存储信息的SAVI设备为SAVI设备标识小于所述地址标识,且与所述地址标识差距最小的SAVI设备。
8.如权利要求6所述的设备,其特征在于,所述SAVI设备标识由各SAVI设备通过广播方式向其他SAVI设备通告,在收到各SAVI设备的广播通告后在本地记录各SAVI设备标识,所述SAVI设备标识通过Hash计算得到。
全文摘要
本发明公开了一种源地址重复性检测方法和设备,通过应用本发明提供的技术方案,可降低SAVI设备间的负载,保证数据的正常传输。
文档编号H04L12/56GK102201951SQ201110160169
公开日2011年9月28日 申请日期2011年6月15日 优先权日2011年6月15日
发明者李 杰 申请人:杭州华三通信技术有限公司
转载请注明原文地址:https://www.famiwei.com/read-7750166.html

最新回复(0)