一种ping报文处理方法及装置与流程

文档序号:12131742阅读:411来源:国知局
一种ping报文处理方法及装置与流程

本申请涉及报文处理技术领域,特别是涉及一种ping报文处理方法及装置。



背景技术:

现有技术中,网络设备,如路由器常常会收到由其他设备发送的针对本机的ping请求报文和ping应答报文。

目前,网络设备对ping请求报文和ping应答报文这两类ping报文进行处理的方式是,由网络设备的网络处理器接收所有的ping报文,然后发送给网络设备的中央处理器CPU统一进行处理。

CPU对ping报文进行的处理,具体包括:若CPU收到ping请求报文,则生成应答报文,通过网络处理器返回给发送ping请求报文的网络设备;若CPU收到ping应答报文,则根据ping应答报文生成ping结果输出。

然而,有时网络设备会收到ping攻击,常见的方式就是伪造ping请求报文和ping应答报文发送给网络设备,此时CPU会收到大量的ping请求报文和ping应答报文,增加了CPU负担,使CPU对其他协议的响应减慢,甚至可能造成协议宕机。



技术实现要素:

本申请实施例的目的在于提供一种ping报文处理方法及装置,以减少CPU处理ping报文的报文数量,降低CPU处理ping报文的负担。

第一方面,本申请实施例提供了一种ping报文处理方法,应用于第一网络设备的网络处理器,所述方法包括:

获得针对本机的第一ping报文;

获得所述第一ping报文的第一源IP地址;

在预设的目标流表中查找所述第一源IP地址,其中,所述目标流表记录有与所述第一网络设备相通信的第二网络设备的IP地址;

若未命中,则丢弃所述第一ping报文。

第二方面,本申请实施例提供了一种ping报文处理装置,应用于第一网络设备的网络处理器,所述装置包括:

第一获得单元,用于获得针对本机的第一ping报文;

第二获得单元,用于获得所述第一ping报文的第一源IP地址;

第一查找单元,用于在预设的目标流表中查找所述第一源IP地址,其中,所述目标流表记录有与所述第一网络设备相通信的第二网络设备的IP地址;

丢弃单元,用于所述第一查找单元在预设的目标流表中未查找到所述第一源IP地址时,丢弃所述第一ping报文。

在本申请实施例中,第一网络设备获得针对本机的第一ping报文,并在预设的目标流表中,查找是否存在所述第一ping报文的第一源IP地址。由于在所述目标流表中,记录有与所述第一网络设备相通信的第二网络设备的IP地址,因此当在所述目标流表中未命中所述第一源IP地址时,认为所述第一ping报文为非法报文,丢弃所述第一ping报文,减少了需要处理的第一ping报文的数量。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种ping报文处理方法流程图;

图2为本申请实施例提供的一种ping报文处理装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

现有技术中,为了减轻ping攻击对中央处理器CPU的影响,对ping请求和ping应答报文上送CPU的队列进行简单的限速处理,使得上送CPU的报文速率减小,从而缓解CPU短时的处理负担。

但是,这种方式只能减小上送CPU的报文速率,CPU仍然需要处理大量的攻击报文。

为了解决上述问题,本申请实施例提供了一种ping报文处理方法及装置。

下面首先对本申请实施例提供的ping报文处理方法进行说明。

需要说明的是,本申请实施例提供的ping报文处理方法的执行主体为第一网络设备。所述第一网络设备包括但不局限于路由器,任意包括网络处理器和中央处理器CPU的网络设备,均可作为本申请实施例提供的ping报文处理方法的执行主体。

可以理解的是,通过本申请实施例提供的ping报文处理方法,可以减少中央处理器CPU处理ping报文的报文数量,降低CPU处理ping报文的负担。

如图1所示,该ping报文处理方法可以包括如下步骤:

S101:获得针对本机的第一ping报文;

其中,第一网络设备会收到许多ping报文,这些ping报文的报文内容中通常包含:ping报文的源IP地址、目的IP地址以及报文的类型标识。其中,报文的类型标识用来标识ping报文是ping请求报文还是ping应答报文。

需要说明的是,针对本机的第一ping报文是指:所接收到的ping报文中,ping报文的目标IP地址与所述第一网络设备的IP地址相匹配的ping报文。

在确定针对本机的第一ping报文后,可以将接收到的ping报文中不属于第一ping报文的报文丢弃,减少了需要处理的ping报文的数量。

S102:获得所述一ping报文的第一源IP地址;

其中,在获得针对本机的第一ping报文后,可以从所述第一ping报文的报文内容中获得该第一ping报文的第一源IP地址。所述第一源IP地址是发送所述第一ping报文的网络设备的IP地址。

S103:在预设的目标流表中查找所述第一源IP地址,其中,所述目标流表记录有与所述第一网络设备相通信的第二网络设备的IP地址;

若未命中,执行步骤S104:丢弃所述第一ping报文。

本领域技术人员可以理解的是,攻击设备在对所述第一网络设备进行ping攻击时,常常会在很短时间内向所述第一网络设备发送多个ping请求报文,因此,针对所接收到的第一ping报文为具有攻击性的ping请求报文,所述目标流表中可以记录有所接收到的第一ping报文的第一源IP地址,以及第一次接收到所述第一ping报文的第一时间、本次接收到所述第一ping报文的第二时间及接收到所述第一ping报文的次数。其中,所述第一源IP地址是与所述第一网络设备相通信的第二网络设备的IP地址。

在该种实现方式中,可以根据所述目标流表,判断在预设时间内收到第一ping报文的次数是否超过预设阈值;如果超过所述预设阈值,表明所述第一ping报文为攻击报文,丢弃所述第一ping报文,减少了所需要处理的第一ping报文的数量。为了方便理解,后续再对该种实现方式进行具体说明。

另外,本领域技术人员可以理解的是,当所述第一网络设备向所述第二网络设备发送第二ping请求报文时,才会接收到该第二网络设备所发送的ping应答报文。因此,针对具有攻击性的ping应答报文,所述目标流表中可以记录有所述第二ping请求报文的目的IP地址。

可以理解的是,在该种实现方式中,可以根据所述目标流表,对具有攻击性的ping应答报文进行过滤,减少了需要处理的第一ping报文的数量。

需要说明的是,所述第二网络设备包括但是并不局限于智能手机、智能电视、电脑和路由器等设备。

在本申请实施例中,第一网络设备获得针对本机的第一ping报文,并在预设的目标流表中,查找是否存在所述第一ping报文的第一源IP地址。由于在所述目标流表中,记录有与所述第一网络设备相通信的第二网络设备的IP地址,因此当在所述目标流表中未命中所述第一源IP地址时,认为所述第一ping报文为非法报文,丢弃所述第一ping报文,减少了需要处理的第一ping报文的数量。

在本申请又一实施例中,由于所述第一网络设备所对应的路由表中所记录的第二网络设备的IP地址比较全,因此,在预设的目标流表中查找所述第一源IP地址前,还可以包括:

在预设路由表中查找所获得的第一源IP地址,所述路由表中存储有与所述第一网络设备相通信的第二网络设备的IP地址;

若未命中,则丢弃所述第一ping报文;

若命中,执行所述在预设的目标流表中查找所述第一源IP地址的步骤。

可以理解的是,可以先利用所述路由表对所接收到的第一ping报文进行过滤,以过滤掉不是所述第二网络设备所发送的第一ping报文,减少了在所述预设的目标流表查找第一源IP地址的工作量。若命中所述路由表,再利用预设的目标流表,对所述第一ping报文作进一步过滤。

在本申请又一实施例中,获得针对本机的第一ping报文为ping请求报文;在预设的目标流表中查找所述第一源IP地址的步骤前,还包括:

判断是否已保存有所述目标流表;

如果没有,则建立所述目标流表,将所述第一源IP地址保存至目标流表中。

可以理解的是,在该种实现方式中,在所述第一ping报文命中路由表后,表明所述第一ping报文的第一源IP地址是所述第二网络设备的IP地址。但是由于所述第一ping报文很可能是其他设备仿冒所述第二网络设备所发送的报文。此时可以建立针对该第一ping报文的目标流表,以进一步确定该第一ping报文是否为攻击报文。

下面对所建立的针对所述第一ping报文为ping请求报文的目标流表作进一步说明。

在一种实现方式中,可以在所述路由表建立的同时建立所述目标流表,具体地:在建立路由表后,将路由表中与所述第一网络设备相通信的第二网络设备的IP地址保存至相应的目标流表中,并在所对应的目标流表中记录所保存的IP地址的命中次数为1,后续存在命中该目标流表的ping请求报文时,将该目标流表中与所述ping请求报文的第一源IP相匹配的IP地址的命中次数加1,并记录该次命中所述目标流表的时间。

在另一种实现方式中,在所述ping请求报文的第一源IP地址命中路由表后,判断是否保存有该第一源IP地址的目标流表。如果没有,建立保存有所述第一源IP地址的目标流表,并在所述目标流表中记录第一次接收到所述ping请求报文的第一时间,并记录该次接收到所述ping请求报文的次数为1。

当所述ping请求报文的第一源IP地址再次命中路由表后,判断所述第一网络设备中保存有所述第一源IP地址的目标流表。记录本次接收到所述ping请求报文的第二时间,并更新该次接收到所述ping请求报文的次数2,并按照该种方式,将所接收到的所述ping请求报文的接收时间和接收次数,记录到所述目标流表中。

为了利用上述所建立的目标流表确定所述ping请求报文是否为攻击报文,可以在预设的目标流表中查找所述第一源IP地址之后,根据所述目标流表,判断在预设时间内收到第一ping报文的次数是否超过预设阈值;如果超过所述预设阈值,则丢弃所述第一ping报文。

可以理解的是,当判断在预设时间内收到该ping请求报文的次数超过预设阈值时,则认为该ping请求报文为攻击报文,丢弃该ping请求报文。例如,设定预设时间为2秒,预设阈值为10,当根据该保存有该第一源IP地址的目标流表,计算在2秒内收到所述ping请求报文的次数为15时,则丢弃所接收到的所述ping请求报文。

可选地,在命中所述目标流表的情况下,可以根据所述第一ping报文的类型,对所述第一ping报文进行处理。具体地,当所述第一ping报文为ping请求报文时,可以通过所述第一网络设备的网络处理器,生成所述第一ping报文对应的第二ping应答报文,并将所述第二ping应答报文发送给所述第一源IP地址对应的第二网络设备。其中,

生成所述第一ping报文对应的第二ping应答报文的步骤包括:交换该第一ping报文的第一源IP地址和第一目的IP地址,并将该第一ping报文内容中的报文类型标识修改为应答报文标识,生成第二ping应答报文。

在本申请又一实施例中,为了保证被所述第一网络设备误判断是攻击报文的正常第一ping报文能够得到应答,在建立保存有所述第一ping报文的第一源IP地址的目标流表后,该方法还可以包括:

设置所述目标流表的老化时间为第一老化时长,当所述目标流表存在时长超过第一老化时长时,删除所述目标流表。

例如:第一网络设备收到大量的攻击性的第一ping报文,其中,所述第一ping报文为ping请求报文。这些第一ping报文的第一源IP地址是从1.1.1.1到10.10.10.10的大范围的IP地址。其中,第一源IP地址为5.5.5.5的具有攻击性的第一ping报文能命中预设的路由表。其中,

在第一次命中所述路由表后,会建立一个保存有所述5.5.5.5的IP地址的目标流表。如果此时存在第一源IP地址为5.5.5.5的网络设备对所述第一网络设备发送正常的第一ping报文,但是由于攻击性的具有第一源IP地址为5.5.5.5的第一ping报文数量较多,在所述目标流表的生存周期内,该正常的第一ping报文也会被丢弃,无法执行应答。因此设置所述目标流表的老化时间,使得在所述目标流表的存在时长超过第一老化时长(例如10秒)后,删除所述目标流表,保证后续所获得的正常的第一ping报文得到应答。

下面以一个具体的例子对本申请实施例中所述第一网络设备在接收到ping报文后,对所述ping报文的处理流程进行详细说明。

假设所述第一网络设备的IP地址为20.20.20.20,当所述第一网络设备的网络处理器接收到ping报文时,会判断该ping报文的目标IP地址是否为20.20.20.20。如果是,则确定该ping报文是针对所述第一网络设备的第一ping报文;如果不是,则确定该ping报文不是针对所述第一网络设备的第一ping报文,并对该ping报文进行丢弃,减少了需要处理的ping报文的数量。

当该ping报文是针对所述第一网络设备的第一ping报文时,可以根据该第一ping报文的类型标识,判断该第一ping报文是ping请求报文还是ping应答报文。例如根据该第一ping报文的报文内容中的icmp type和icmp code字段来识别该第一ping报文是ping请求报文还是ping应答报文。

下面对所述第一ping报文为ping请求报文的情况进行具体说明。

当该第一ping报文被识别为ping请求报文时,获得所述ping请求报文的第一源IP地址。并在预设的路由表中查找所找获得的第一源IP地址,其中,假设所述路由表中记录有与所述第一网络设备相通信的第二网络设备的IP为5.5.5.5。若未查到,说明所述第一源IP地址不是第二网络设备的IP地址,即说明所述第一源IP地址不合法,丢弃所述ping请求报文,减少了需要处理的ping请求报文的数量。

若在所述路由表中能查找到所述第一源IP地址,说明所述第一源IP地址是第二网络设备的IP地址,且所述第一源IP地址为5.5.5.5。此时判断是否已保存有记录有5.5.5.5的IP地址的目标流表,如果没有,则建立保存有15.15.15.15的IP地址的目标流表,并在所述目标流表中记录第一次接收到所述ping请求报文的第一时间,并记录该次接收到所述ping请求报文的次数为1。

如果判断已保存有记录有5.5.5.5的IP地址的目标流表,则记录本次接收到所述ping请求报文的时间,并对接收到所述ping请求报文的次数加1。并判断在预设时间(例如2秒)内收到所述ping请求报文的次数是否超过预设阈值(例如10次);如果超过所述预设阈值,确定所述ping请求报文为攻击报文,并丢弃所述ping请求报文,减少了需要处理的ping请求报文的数量。

如果未超过所述预设阈值,交换该ping请求报文的第一源IP地址和第一目的IP地址,并将该ping请求报文内容中的报文类型标识修改为应答报文标识,生成第二ping应答报文,并将所述第二ping应答报文发送至IP地址为5.5.5.5的第二网络设备。

另外,在建立保存有所述ping请求报文的第一源IP地址的目标流表后,设置该目标流表的老化时间为第一老化时长,并实时监控该目标流表的存在时间是否超过第一老化时长时,若是,删除所述目标流表,保证了被所述第一网络设备误判断是攻击报文的正常的ping请求报文能够得到应答。

下面对所述第一ping报文为ping应答报文的情况进行具体说明。

当该第一ping报文被识别为ping应答报文时,获得所述ping应答报文的第一源IP地址。并在预设的路由表中查找所找获得的第一源IP地址,其中,假设所述路由表中记录有与所述第一网络设备相通信的第二网络设备的IP为5.5.5.5。若未查到,说明所述第一源IP地址不是第二网络设备的IP地址,即说明所述第一源IP地址不合法,丢弃所述ping应答报文,减少了需要处理的ping应答报文的数量。

若在所述路由表中能查找到所述第一源IP地址,说明所述第一源IP地址是第二网络设备的IP地址,且所述第一源IP地址为5.5.5.5。进而在预设的目标流表中查找所述第一源IP地址。

其中,在预设的目标流表中查找所述第一源IP地址的步骤前,还可以包括:基于第一网络设备生成并发送的第二ping请求报文,创建目标流表;所述目标流表用于记录所述第二ping请求报文的目的IP地址,所述第二ping请求报文的目的IP地址为与所述第一网络设备相通信的第二网络设备的IP地址。

另外,当所述第一网络设备生成并发送新的第二ping请求报文时,创建包含记录所述新的第二ping请求报文的目的IP地址的目标流表。其中,所述新的第二ping请求报文的目的IP地址,与已创建的目标流表中所记录的IP地址不同。

当在目标流表中能查找到所述第一源IP地址时,说明所述ping应答报文为针对所述第一网络设备生成并发送的第二ping请求报文的应答报文,将该ping应答报文发送至第一网络设备的中央处理器CPU进行输出处理。

当在目标流表中未能查找到所述第一源IP地址时,说明所述ping应答报文并不是针对所述第二ping请求报文的应答报文,丢弃所述ping应答报文,减少了需要处理的ping应答报文的数量。

另外,由于在正常情况下,所述第一网络设备不会一直向第二网络设备发送第二ping请求报文,也就是说,所述第一网络设备不会一直收到由所述第二网络设备发送的、针对所述第二ping请求报文的ping应答报文。因此,在建立保存有所述第二ping请求报文的目标IP地址的目标流表后,设置该目标流表的老化时间为第二老化时长,并实时监控该目标流表的存在时间是否超过第二老化时长(例如5秒)。

其中,在所述第二老化时长内,若所述第一网络设备再次发送所述第二ping请求报文,则将该第二ping请求报文所对应的目标流表的存在时间清零;在所述第二老化时长内,若所述第一网络设备未再次发送所述第二ping请求报文,则认为所接收的针对所述第二ping请求报文的ping应答报文为攻击报文,当该第二ping请求报文对应的目标流表的存在时长等于所述第二老化时长时,删除所述目标流表,以对该具有攻击性的ping应答报文进行丢弃。

需要说明的是,在另一种具体实现方式中,也可以在获得所述ping应答报文的第一源IP地址后,直接在预设的目标流表中查找所述第一源IP地址,这是合理的。其中,在预设的目标流表中查找所述第一源IP地址的过程,与上述所描述的查找目标流表的过程相同,在此不做赘述。

相应于上述方法实施例,本申请还提供了一种ping报文处理装置,应用于第一网络设备的网络处理器,如图2所示,该装置可以包括:

第一获得单元201,用于获得针对本机的第一ping报文;

第二获得单元202,用于获得所述第一ping报文的第一源IP地址;

第一查找单元203,用于在预设的目标流表中查找所述第一源IP地址,其中,所述目标流表记录有与所述第一网络设备相通信的第二网络设备的IP地址;

丢弃单元204,用于所述第一查找单元203在预设的目标流表中未查找到所述第一源IP地址时,丢弃所述第一ping报文。

可选地,本申请实施例提供的ping报文处理装置,还可以包括:

第二查找单元,用于所述第一查找单元203在预设的目标流表中查找所述第一源IP地址前,在预设路由表中查找所获得的第一源IP地址,所述路由表中存储有与所述第一网络设备相通信的第二网络设备的IP地址;

若未命中,触发所述丢弃单元204;

若命中,触发所述第一查找单元203。

可选地,所述第一获得单元201所获得的针对本机的第一ping报文为ping请求报文;

所述装置还可以包括:

第一判断单元,用于在预设的目标流表中查找所述第一源IP地址前,判断是否已保存有所述目标流表;

第一构建单元,用于在所述第一判断单元判断没有保存所述目标流表时,建立所述目标流表,将所述第一源IP地址保存至目标流表中。

可选地,该装置还可以包括:第二构建单元,用于在建立路由表后,建立针对ping请求报文的目标流表,将路由表中与所述第一网络设备相通信的第二网络设备的IP地址保存至目标流表中。

可选地,所述目标流表中还记录有第一次接收到第一ping报文的第一时间、本次接收到第一ping报文的第二时间及接收第一ping报文的次数;

所述装置还可以包括:第二判断单元,用于所述第一查找单元203在预设的目标流表中查找所述第一源IP地址的步骤前,根据所述目标流表,判断在预设时间内收到第一ping报文的次数是否超过预设阈值;如果超过所述预设阈值,则触发所述丢弃单元204。

可选地,本申请实施例提供的ping报文处理装置,还包括:

生成单元,用于在所述第二判断单元判断出在预设时间内收到第一ping报文的次数未超过所述预设阈值时,生成所述第一ping报文对应的第二ping应答报文,并将所述第二ping应答报文发送给所述第一源IP地址对应的第二网络设备。

可选地,所述第一获得单元201所获得的针对本机的第一ping报文为ping应答报文;所述装置还可以包括:

第三创建单元,用于所述第一查找单元203在预设的目标流表中查找所述第一源IP地址的步骤前,基于第一网络设备生成并发送的第二ping请求报文,创建目标流表;所述目标流表用于记录所述第二ping请求报文的目的IP地址;所述目的IP地址为与所述第一网络设备相通信的第二网络设备的IP地址。

在本申请实施例中,第一网络设备获得针对本机的第一ping报文,并在预设的目标流表中,查找是否存在所述第一ping报文的第一源IP地址。由于在所述目标流表中,记录有与所述第一网络设备相通信的第二网络设备的IP地址,因此当在所述目标流表中未命中所述第一源IP地址时,认为所述第一ping报文为非法报文,丢弃所述第一ping报文,减少了需要处理的第一ping报文的数量。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1