一种预防恶意邻居学习攻击的方法及装置的制作方法

文档序号:7889490阅读:111来源:国知局
专利名称:一种预防恶意邻居学习攻击的方法及装置的制作方法
技术领域
本发明涉及计算机数据通信领域,尤其涉及一种预防恶意邻居学习攻击的方法及
>J-U ρ α装直。
背景技术
邻居学习行为是指节点将自身的链路层地址(Link-Layer Address)、完整IP地址、节点名称等地址配置信息通过邻居发现协议中的邻居请求报文发送给网络内的其他节点,而接收到该邻居请求报文的节点将自身的链路层地址、完整IP地址、节点名称等配置信息通过邻居发现协议中的邻居通告报文返回给发送邻居请求报文的节点,这样,发送邻居请求报文的节点以及网络内的其他节点就可以知道对方节点的地址配置信息,从而根据地址配置信息进行正常的邻居表操作,例如,将对方节点的地址配置信息加入自己的邻居表中建立新的邻居表项,或修改原有邻居表项等,完成邻居学习。版本号为6的互联网协议(Internet Protocol Version 6, IPv6)地址主机部分通常是64比特,这意味着一个IPv6网段可以容纳的主机数量远远大于版本号为4的互联网协议(Internet Protocol Version 4, IPv4)网段,这个特征使得以地址扫描为手段的网络病毒在IPv6网络中难有作为。但是,IPv6地址空间比较大的特点可能被远程恶意攻击者利用。远程恶意攻击者恶意发送大量的目的地址属于一个IPv6网段,但这些地址在该IPv6网络中实际上并不存在数据包,这样将导致这些数据包在到达最后一跳路由器时,使该路由器发生大量的邻居学习行为,生成大量的无效邻居表项,不仅加大了路由器处理器(CPU)的负担,而且使正常的邻居表项也无法生成,这实际上是一种拒绝服务攻击,但该攻击只针对全局单播地址,不适用链路本地地址。

发明内容
针对上述技术问题,本发明的目的在于提供一种预防恶意邻居学习攻击的方法及装置,其有效的解决了 IPv6网络中恶意邻居学习攻击的问题。为达到上述目的,本发明是通过以下技术方案来实现的—种预防恶意邻居学习攻击的方法,所述方法包括如下步骤A、设置汇聚交换机允许的不完整状态邻居表项的阈值;B、汇聚交换机监听IPv6主机利用全球单播地址,进行重复地址检测的过程,创建和保存IPv6主机记录,并将该记录保存到IPv6主机表中;C、汇聚交换机在转发IPv6报文时,如果该报文的目的地址对应的链路层地址不存在,则检测邻居表中不完整状态邻居表项的数量是否达到所述阈值,如果未达到,则向邻居节点发送邻居请求报文;如果达到,则查询该邻居节点的地址是否在所述IPv6主机表中,若存在,则发送邻居请求报文,若不存在,则不发送邻居请求报文;D、汇聚交换机收到与所述邻居请求报文对应的邻居公告报文后,将其邻居表中不完整状态邻居表项的数量减I。特别的,所述步骤B还包括汇聚交换机向交换芯片下发邻居请求报文和邻居通告报文重定向至汇聚交换机处理器的规则,在交换芯片收到邻居请求报文和邻居通告报文后,均将其复制一份发送给汇聚交换机处理器进行软件解析,但是,所述邻居请求报文和邻居通告报文由交换芯片执行硬件转发。特别的,所述步骤B中,IPv6主机记录包括IPv6主机地址和汇聚交换机接收邻居请求报文的三层接口号。特别的,所步骤C中,如果邻居表中不完整状态邻居表项的数量没有达到阈值,则向邻居节点发送邻居请求报文,并在所述邻居表中插入一个邻居表项,状态设置为不完整状态,将邻居表中不完整状态邻居表项的数量加I。特别的,所述步骤D具体还包括汇聚交换机根据邻居通告报文的IPv6首部的目的地址的查询邻居表,如果查到与该目的地址对应的邻居表项,则将所述邻居表项的链路层地址更新为邻居通告报文中携带的链路层地址,并将该邻居表项的状态设置为可达状态,将邻居表中不完整状态邻居表项的数量减I。本发明还公开了一种预防恶意邻居学习攻击的装置,所述装置为汇聚交换机,包括阈值设置单元,用于设置汇聚交换机允许的不完整状态邻居表项的阈值;主机记录创建单元,用于通过监听IPv6主机利用全球单播地址进行重复地址检测的过程,创建和保存IPv6主机记录,并将该记录保存到IPv6主机表中;邻居表项检测单元,与阈值设置单元连接,用于检测邻居表中不完整状态邻居表项的数量是否达到所述阈值;第一处理单元,与邻居表项检测单元及主机记录创建单元连接,用于根据邻居表项检测单元的检测结果,如果检测结果为否,则向邻居节点发送邻居请求报文;如果检测结果为是,则查询该邻居节点的地址是否在所述IPv6主机表中,若存在,则发送邻居请求报文,若不存在,则不发送邻居请求报文;第二处理单元,与第一处理单元连接,用于在收到与邻居请求报文对应的邻居公告报文后,将其邻居表中不完整状态邻居表项的数量减I。特别的,所述汇聚交换机还包括规则下发单元,与阈值设置单元连接,用于向交换芯片下发邻居请求报文和邻居通告报文重定向至汇聚交换机处理器的规则,在交换芯片收到邻居请求报文和邻居通告报文后,均将其复制一份发送给汇聚交换机处理器进行软件解析,但是,所述邻居请求报文和邻居通告报文由交换芯片执行硬件转发。特别的,所述IPv6主机记录包括IPv6主机地址和汇聚交换机接收邻居请求报文
的三层接口号。特别的,所述第一处理单元具体还用于在邻居表中不完整状态邻居表项的数量没有达到阈值时,向邻居节点发送邻居请求报文,并在所述邻居表中插入一个邻居表项,状态设置为不完整状态,将邻居表中不完整状态邻居表项的数量加I。特别的,所述第二处理单元具体还用根据邻居通告报文的IPv6首部的目的地址的查询邻居表,如果查到与该目的地址对应的邻居表项,则将所述邻居表项的链路层地址更新为邻居通告报文中携带的链路层地址,并将该邻居表项的状态设置为可达态,将邻居表中不完整状态邻居表项的数量减I。本发明的有益效果为,所述一种预防恶意邻居学习攻击的方法及装置,通过设置汇聚交换机允许的不完整状态邻居表项的阈值;在邻居表中不完整状态邻居表项的数量是超过阈值时,根据通过监听IPv6主机进行重复地址检测的过程,而获得的IPv6主机表,判断邻居节点的可达性,从而避免了对恶意数据包开展大量邻居学习,有效的解决了 IPv6网络中恶意邻居学习攻击的问题。







具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步说明。请参照图I所示,图I为本发明实施例提供的预防恶意邻居学习攻击的方法流程图。本实施例中预防恶意邻居学习攻击的方法包括如下步骤步骤101、在汇聚交换机上使能预防恶意邻居学习攻击的功能,并设置该汇聚交换机允许的不完整状态邻居表项的阈值。步骤102、汇聚交换机向交换芯片下发邻居请求(Neighbor Solicitation)报文和邻居通告(Neighbor Advertisement)报文重定向至汇聚交换机处理器(CPU)的规则。在交换芯片收到邻居请求报文和邻居通告报文后,均将所述邻居请求报文和邻居通告报文复制一份发送给汇聚交换机处理器进行软件解析,但是,所述汇聚交换机处理器不转发复制的邻居请求报文和邻居通告报文,交换芯片收到的邻居请求报文和邻居通告报文依然由交换芯片执行硬件转发。步骤103、汇聚交换机监听IPv6主机利用全球单播地址进行重复地址检测 (Duplicate Address Detection, DAD)的过程,创建和保存IPv6主机记录,并将该记录保存到IPv6主机表中。所述全球单播地址为IPv6全球单播地址,IPv6全球单播地址指的是前缀为 2000::/3 的地址,由互联网号码分配局(Internet Assigned Numbers Authority,缩写 IANA)负责分配。如图2所示,监听重复地址检测的具体过程如下
步骤1031、检测邻居请求的合法性。IPv6主机在生成地址时要作重复地址检测,通过接入交换机及汇聚交换机向链路内所有邻居节点发送邻居请求报文,在汇聚交换机处理器接收到IPv6主机发送的邻居请求报文后,使能预防恶意邻居学习攻击功能,检测邻居请求的合法性,其中,合法的邻居请求应该满足邻居请求报文的IPv6首部源地址为未指定地址,目的地址为被请求邻居节点的主播地址。步骤1032、根据步骤1031的检测结果,如果检测到邻居请求不合法,则丢弃邻居请求报文。步骤1033、根据步骤1031的检测结果,如果检测到邻居请求合法,则从邻居请求报文的目标地址(Target Address)中获取IPv6主机地址,并检测所述IPv6主机地址是否为全球单播地址。步骤1034、如果IPv6主机地址是为全球单播地址,则将该IPv6主机地址和汇聚交换机接收邻居请求报文的三层接口号作为一条IPv6主机记录,填入IPv6主机表中。步骤1035、如果IPv6主机地址不是全球单播地址,则不创建IPv6主机记录。另外, 在监听重复地址检测的过程中,汇聚交换机并不记录链路本地地址(前缀为FE80::/10)的重复地址检测的信息。步骤104、汇聚交换机在转发目的地址为本网段的IPv6报文时,如果该报文的目的地址对应的链路层地址(Link-Layer Address)不存在,参照图3所示,进行如下处理步骤1041、检测邻居表中不完整状态邻居表项的数量是否达到所述阈值。步骤1042、根据步骤1041的检测结果,若不完整状态邻居表项的数量没有达到所述阈值,则向邻居节点发送邻居请求报文,并在所述邻居表中插入一个邻居表项,状态设置为不完整状态,将邻居表中不完整状态邻居表项的数量加I。步骤1043、根据步骤1041的检测结果,若不完整状态邻居表项的数量达到所述阈值,则查询该邻居节点的地址是否在所述IPv6主机表中。步骤1044、根据步骤1043的查询结果,若该邻居节点的地址在IPv6主机表中,则向所述邻居节点发送邻居请求报文。步骤1045、根据步骤1043的查询结果,若该邻居节点的地址不在IPv6主机表中, 则不向所述邻居节点发送邻居请求报文,并丢弃要转发的IPv6报文。步骤105、汇聚交换机收到与所述邻居请求报文对应的邻居通告报文后,将其邻居表中不完整状态邻居表项的数量减I。汇聚交换机收到邻居通告报文后,根据邻居通告报文的IPv6首部的目的地址的查询邻居表,如果查与该目的地址对应的邻居表项,则将所述邻居表项的链路层地址更新为邻居通告报文中携带的链路层地址,并将该邻居表项的状态设置为可达(Reachable)状态,邻居表中不完整状态邻居表项的数量减I。请参照图5所示,图5为本发明实施例提供的预防恶意邻居学习攻击的装置框图。本实施例中预防恶意邻居学习攻击的装置为汇聚交换机403,包括阈值设置单元、规则下发单元、主机记录创建单元、邻居表项检测单元、第一处理单元及第二处理单元。 其中,如图4所示,所述汇聚交换机403与若干个接入交换机402连接,所述接入交换机402 与IPv6主机401连接。
所述阈值设置单元,用于在汇聚交换机403上使能预防恶意邻居学习攻击的功能后,设直汇聚交换机403允许的不完整状态邻居表项的阈值。所述规则下发单元,与阈值设置单元连接,用于向交换芯片下发邻居请求报文和邻居通告报文重定向至汇聚交换机403处理器的规则。在交换芯片收到邻居请求报文和邻居通告报文后,均将所述邻居请求报文和邻居通告报文复制一份发送给汇聚交换机403处理器进行软件解析,但是,所述汇聚交换机403 处理器不转发复制的邻居请求报文和邻居通告报文,交换芯片收到的邻居请求报文和邻居通告报文依然由交换芯片执行硬件转发。所述主机记录创建单元,用于通过监听IPv6主机401利用全球单播地址进行重复地址检测的过程,创建和保存IPv6主机记录,并将该记录保存到IPv6主机表中。所述全球单播地址为IPv6全球单播地址,IPv6全球单播地址指的是前缀为 2000::/3 的地址,由互联网号码分配局(Internet Assigned Numbers Authority,缩写 IANA)负责分配。监听重复地址检测的具体过程如下IPv6主机401发送的邻居请求报文传入汇聚交换机403处理器后,汇聚交换机403使能预防恶意邻居学习攻击功能,检测邻居请求的合法性,合法的邻居请求应该满足邻居请求报文的IPv6首部源地址为未指定地址,目的地址为被请求邻居节点的主播地址。如果检测到邻居请求不合法,则丢弃邻居请求报文;如果检测到邻居请求合法,则从邻居请求报文的目标地址中获取IPv6主机地址,并检测所述 IPv6主机地址是否为全球单播地址,如果IPv6主机地址是全球单播地址,则将该IPv6主机地址和汇聚交换机403接收邻居请求报文的三层接口号作为一条IPv6主机记录,填入IPv6 主机表中,如果IPv6主机地址不是全球单播地址,则不创建IPv6主机记录。另外,在监听重复地址检测的过程中,汇聚交换机403并不记录链路本地地址(前缀为FE80: :/10)的重复地址检测的信息。所述邻居表项检测单元,与阈值设置单元连接,用于检测邻居表中不完整状态邻居表项的数量是否达到所述阈值。所述第一处理单元,与邻居表项检测单元及主机记录创建单元连接,用于在汇聚交换机403在转发目的地址为本网段的IPv6报文时,如果该报文的目的地址对应的链路层地址不存在,则根据邻居表项检测单元的检测结果,若不完整状态邻居表项的数量没有达到所述阈值,则向邻居节点发送邻居请求报文,并在所述邻居表中插入一个邻居表项,状态设置为不完整状态,将邻居表中不完整状态邻居表项的数量加I ;若不完整状态邻居表项的数量达到所述阈值,则查询该邻居节点的地址是否在所述IPv6主机表中,若该邻居节点的地址在IPv6主机表中,则向所述邻居节点发送邻居请求报文,若该邻居节点的地址不在 IPv6主机表中,则不向所述邻居节点发送邻居请求报文,并丢弃要转发的IPv6报文。所述第二处理单元,与第一处理单元连接,用于在收到与邻居请求报文对应的邻居公告报文后,将其邻居表中不完整状态邻居表项的数量减I。汇聚交换机403收到邻居通告报文后,根据邻居通告报文的IPv6首部的目的地址的查询邻居表,如果查与该目的地址对应的邻居表项,则将所述邻居表项的链路层地址更新为邻居通告报文中携带的链路层地址,并将该邻居表项的状态设置为可达状态,邻居表中不完整状态邻居表项的数量减I。
本发明实施例提供的预防恶意邻居学习攻击的汇聚交换机,避免了对恶意数据包开展大量邻居学习,有效的解决了 IPv6网络中恶意邻居学习攻击的问题。上述仅为本发明的较佳实施例及所运用技术原理,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。
权利要求
1.一种预防恶意邻居学习攻击的方法,其特征在于,包括如下步骤A、设置汇聚交换机允许的不完整(Incomplete)状态邻居表项的阈值;B、汇聚交换机监听IPv6主机利用全球单播地址,进行重复地址检测(Duplicate Address Detection, DAD)的过程,创建和保存IPv6主机记录,并将该记录保存到IPv6主机表中;C、汇聚交换机在转发IPv6报文时,如果该报文的目的地址对应的链路层地址不存在, 则检测邻居表中不完整状态邻居表项的数量是否达到所述阈值,如果未达到,则向邻居节点发送邻居请求(Neighbor Solicitation)报文;如果达到,则查询该邻居节点的地址是否在所述IPv6主机表中,若存在,则发送邻居请求报文,若不存在,则不发送邻居请求报文;D、汇聚交换机收到与所述邻居请求报文对应的邻居公告(NeighborAdvertisement) 报文后,将其邻居表中不完整状态邻居表项的数量减I。
2.根据权利要求I所述的预防恶意邻居学习攻击的方法,其特征在于,所述步骤B还包括汇聚交换机向交换芯片下发邻居请求报文和邻居通告报文重定向至汇聚交换机处理器(CPU)的规则,在交换芯片收到邻居请求报文和邻居通告报文后,均将其复制一份发送给汇聚交换机处理器进行软件解析,但是,所述邻居请求报文和邻居通告报文由交换芯片执行硬件转发。
3.根据权利要求2所述的预防恶意邻居学习攻击的方法,其特征在于,所述步骤B中, IPv6主机记录包括IPv6主机地址和汇聚交换机接收邻居请求报文的三层接口号。
4.根据权利要求3所述的预防恶意邻居学习攻击的方法,其特征在于,所步骤C中,如果邻居表中不完整状态邻居表项的数量没有达到阈值,则向邻居节点发送邻居请求报文, 并在所述邻居表中插入一个邻居表项,状态设置为不完整状态,将邻居表中不完整状态邻居表项的数量加I。
5.根据权利要求6所述的预防恶意邻居学习攻击的方法,其特征在于,所述步骤D具体还包括汇聚交换机根据邻居通告报文的IPv6首部的目的地址的查询邻居表,如果查到与该目的地址对应的邻居表项,则将所述邻居表项的链路层地址更新为邻居通告报文中携带的链路层地址,并将该邻居表项的状态设置为可达(Reachable)状态,将邻居表中不完整状态邻居表项的数量减I。
6.一种预防恶意邻居学习攻击的装置,其特征在于,所述装置为汇聚交换机,包括阈值设置单元,用于设置汇聚交换机允许的不完整状态邻居表项的阈值;主机记录创建单元,用于通过监听IPv6主机利用全球单播地址进行重复地址检测的过程,创建和保存IPv6主机记录,并将该记录保存到IPv6主机表中;邻居表项检测单元,与阈值设置单元连接,用于检测邻居表中不完整状态邻居表项的数量是否达到所述阈值;第一处理单元,与邻居表项检测单元及主机记录创建单元连接,用于根据邻居表项检测单元的检测结果,如果检测结果为否,则向邻居节点发送邻居请求报文;如果检测结果为是,则查询该邻居节点的地址是否在所述IPv6主机表中,若存在,则发送邻居请求报文,若不存在,则不发送邻居请求报文;第二处理单元,与第一处理单元连接,用于在收到与邻居请求报文对应的邻居公告报文后,将其邻居表中不完整状态邻居表项的数量减I。
7.根据权利要求6所述的预防邻居恶意学习攻击的装置,其特征在于,所述汇聚交换机还包括规则下发单元,与阈值设置单元连接,用于向交换芯片下发邻居请求报文和邻居通告报文重定向至汇聚交换机处理器的规则,在交换芯片收到邻居请求报文和邻居通告报文后,均将其复制一份发送给汇聚交换机处理器进行软件解析,但是,所述邻居请求报文和邻居通告报文由交换芯片执行硬件转发。
8.根据权利要求7所述的预防邻居恶意学习攻击的装置,其特征在于,所述IPv6主机记录包括IPv6主机地址和汇聚交换机接收邻居请求报文的三层接口号。
9.根据权利要求8所述的预防邻居恶意学习攻击的装置,其特征在于,所述第一处理单元具体还用于在邻居表中不完整状态邻居表项的数量没有达到阈值时,向邻居节点发送邻居请求报文,并在所述邻居表中插入一个邻居表项,状态设置为不完整状态,将邻居表中不完整状态邻居表项的数量加I。
10.根据权利要求9所述的预防邻居恶意学习攻击的装置,其特征在于,所述第二处理单元具体还用根据邻居通告报文的IPv6首部的目的地址的查询邻居表,如果查到与该目的地址对应的邻居表项,则将所述邻居表项的链路层地址更新为邻居通告报文中携带的链路层地址,并将该邻居表项的状态设置为可达状态,将邻居表中不完整状态邻居表项的数量减I。
全文摘要
本发明公开一种预防恶意邻居学习攻击的方法,包括设置汇聚交换机允许的不完整状态邻居表项的阈值;汇聚交换机监听IPv6主机利用全球单播地址进行重复地址检测的过程,创建和保存IPv6主机记录,并将该记录保存到IPv6主机表中;汇聚交换机在转发IPv6报文时,若该报文的目的地址对应的链路层地址不存在,则检测邻居表中不完整状态邻居表项的数量是否达到阈值,若未达到,则发送邻居请求报文;若达到,则查询邻居节点的地址是否在IPv6主机表中,若存在,则发送邻居请求报文,若不存在,则不发送邻居请求报文;汇聚交换机收到与邻居请求报文对应的邻居公告报文后,将邻居表中不完整状态邻居表项的数量减1。
文档编号H04L12/56GK102594816SQ201210033530
公开日2012年7月18日 申请日期2012年2月15日 优先权日2012年2月15日
发明者梁小冰 申请人:神州数码网络(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1