首页> 中国专利> 一种防范ARP报文攻击的方法及设备

一种防范ARP报文攻击的方法及设备

摘要

本发明公开一种防范ARP报文攻击的方法及设备,涉及通信网络技术领域,解决了控制平面处理器处理ARP报文占用较多处理资源的问题。本发明实施例包括:地址解析协议ARP控制模块接收交换芯片发送的第一ARP报文,然后获取第一ARP报文中的第一地址信息;当ARP控制模块确定第一地址信息合法、存在于ARP表并且ARP表中第一地址信息对应的状态为第一预设状态时,ARP控制模块调用交换芯片驱动模块,指示交换芯片驱动模块将第一地址信息写入交换芯片中;交换芯片对接收的携带有第一地址信息的ARP报文进行限速。本发明实施例提供的方案适于防范ARP报文攻击时采用。

著录项

  • 公开/公告号CN103347031A

    专利类型发明专利

  • 公开/公告日2013-10-09

    原文格式PDF

  • 申请/专利权人 迈普通信技术股份有限公司;

    申请/专利号CN201310320304.1

  • 发明设计人 罗向征;

    申请日2013-07-26

  • 分类号H04L29/06;H04L29/12;H04L12/741;

  • 代理机构北京中博世达专利商标代理有限公司;

  • 代理人申健

  • 地址 610041 四川省成都市高新技术开发区九兴大道16号

  • 入库时间 2024-02-19 20:21:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-16

    授权

    授权

  • 2013-11-06

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20130726

    实质审查的生效

  • 2013-10-09

    公开

    公开

说明书

技术领域

本发明涉及通信网络技术领域,尤其涉及一种防范ARP报文攻击的方法及 设备。

背景技术

地址解析协议(Address Resolution Protocol,ARP)用于在以太网环境下通 过因特网协议(Internet Protocol,IP)地址获取对应媒体访问控制(Media Access  Control,MAC)地址的协议。由于ARP没有提供安全认证、通信终端合法性鉴 别等功能。在以太网实际应用的过程中,出现了各种各样与ARP相关的攻击, 比如网关欺骗、ARP报文泛洪以及ARP扫描等。

现有技术中,控制平面处理器上运行的软件模块规定在预定的时间范围内 接收到终端发送的ARP报文流量和/或报文数量上限作为是否受到ARP攻击的 判断依据。例如,当控制平面处理器接收某一ARP报文时,对接收的ARP报文 按照来源终端进行报文数量和/或流量的统计,然后在预定的时间范围内检测接 收的报文数量和/或流量是否超过上限。当接收的报文数量和/或流量超过上限之 后,控制平面处理器将发送上述ARP报文的终端标记为攻击终端。则控制平面 处理器在接收到该攻击终端发送的ARP报文时,丢弃该攻击终端发送的全部 ARP报文,或者丢弃该攻击终端发送的部分ARP报文。

然而,通过控制平面处理器对接收的ARP报文进行流量统计、丢弃等处理 操作,占用了控制平面处理器大量的处理资源,从而影响控制平面处理器的处 理效率,以及由于攻击终端发送大量ARP报文流量影响其它终端与控制平面处 理器之间正常的ARP报文交互。

发明内容

本发明的实施例提供一种防范ARP报文攻击的方法及设备,解决了控制平 面处理器处理ARP报文占用较多处理资源的问题。

一方面,本发明的实施例提供一种防范ARP报文攻击的方法,包括:

地址解析协议ARP控制模块接收交换芯片发送的第一ARP报文;

所述ARP控制模块获取所述第一ARP报文中的第一地址信息;

当所述ARP控制模块确定所述第一地址信息合法、存在于ARP表并且所述 ARP表中所述第一地址信息对应的状态为第一预设状态时,所述ARP控制模块 调用交换芯片驱动模块,指示所述交换芯片驱动模块将所述第一地址信息写入 所述交换芯片中;

所述交换芯片对接收的携带有所述第一地址信息的ARP报文进行限速。

在本发明的另一实施例中,在所述地址解析协议ARP控制模块接收交换芯 片发送的第一ARP报文之前,所述方法还包括:

所述ARP控制模块接收所述交换芯片发送的第二ARP报文;

所述ARP控制模块获取所述第二ARP报文中的第二地址信息,所述第二地 址信息与所述第一地址信息相同;

当所述ARP控制模块确定所述第二地址信息合法并且不存在于所述ARP 表时,所述ARP控制模块将所述第二地址信息写入所述ARP表中,并将所述第 二地址信息对应的状态写为所述第一预设状态,所述第一预设状态用于指示所 述ARP控制模块确定未收到第一ARP报文;

所述ARP控制模块通知所述第二ARP报文对应的终端发送第一ARP报文。

在本发明的另一实施例中,所述方法还包括:

所述ARP控制模块获取所述ARP表中的所述第一地址信息;

所述ARP控制模块更新所述ARP表中的所述第一地址信息对应的老化值;

所述ARP控制模块判断所述第一地址信息对应的老化值是否超过预设门 限;

当所述第一地址信息对应的老化值大于等于所述预设门限时,所述ARP控 制模块删除所述ARP表中的第一地址信息,或者,所述ARP控制模块删除所述 ARP表中的所述第一地址信息以及调用所述交换芯片驱动模块,指示所述交换 芯片驱动模块删除所述交换芯片中的所述第一地址信息。

在本发明的另一实施例中,所述第一地址信息包括所述第一ARP报文源 MAC地址、所述第一地址信息对应的终端源MAC地址以及源IP地址;

在所述ARP控制模块调用交换芯片驱动模块之前,还包括:

所述ARP控制模块检测所述第一地址信息是否合法;

当所述第一地址信息中所述第一ARP报文源MAC地址与所述第一地址信 息对应的终端源MAC地址一致时,所述ARP控制模块确定所述第一地址信息 合法。

在本发明的另一实施例中,在所述ARP控制模块调用交换芯片驱动模块之 前,还包括:

在所述ARP控制模块确定所述第一地址信息合法并且存在于ARP表之后, 所述ARP控制模块清除所述ARP表中所述第一地址信息对应的老化值;

所述ARP控制模块检测所述ARP表中所述第一地址信息对应的状态是否为 所述第一预设状态;

当所述ARP表中所述第一地址信息对应的状态为所述第一预设状态时,将 所述第一预设状态修改为第二预设状态,所述第二预设状态用于所述ARP控制 模块确定已收到第一ARP报文。

在本发明的另一实施例中,在所述交换芯片对接收携带所述第一地址信息 的ARP报文进行限速之前,还包括:

所述交换芯片接收输入的ARP报文特征、限速规则,所述ARP报文特征用 于指示所述交换芯片检测接收的报文是否为ARP报文;所述限速规则用于对所 述交换芯片进行交互的终端发送的ARP报文进行限速。

另一方面,本发明的实施例提供一种防范ARP报文攻击的设备,所述设备 包括控制平面处理器和交换芯片,所述控制平面处理器上运行的软件模块包括 地址解析协议ARP控制模块和交换芯片驱动模块;

所述交换芯片,用于接收终端发送的第一ARP报文,并将所述第一ARP 报文发送给所述ARP控制模块;

所述ARP控制模块,用于接收交换芯片发送的第一ARP报文;获取所述第 一ARP报文中的第一地址信息;

所述ARP控制模块,还用于当所述ARP控制模块确定所述第一地址信息合 法、存在于ARP表并且所述ARP表中所述第一地址信息对应的状态为第一预设 状态时,调用交换芯片驱动模块,指示所述交换芯片驱动模块将所述第一地址 信息写入所述交换芯片中;

所述交换芯片驱动模块,用于根据所述ARP控制模块的指示,将所述第一 地址信息写入所述交换芯片中;

所述交换芯片,还用于对接收的携带有所述第一地址信息的ARP报文进行 限速。

在本发明的另一实施例中,所述交换芯片,还用于接收所述终端发送的第 二ARP报文,并将所述第二ARP报文发送给所述ARP控制模块;

所述ARP控制模块,还用于接收所述交换芯片发送的所述第二ARP报文; 以及获取所述第二ARP报文中的第二地址信息,所述第二地址信息与所述第一 地址信息相同;当所述ARP控制模块确定所述第二地址信息合法并且不存在于 所述ARP表时,将所述第二地址信息写入所述ARP表中,并将所述第二地址信 息对应的状态写为所述第一预设状态,所述第一预设状态用于所述ARP控制模 块确定未收到第一ARP报文;

所述ARP控制模块,还用于通知所述第二ARP报文对应的终端发送第一 ARP报文。

在本发明的另一实施例中,所述ARP控制模块,还用于获取所述ARP表中 的所述第一地址信息;以及更新所述ARP表中的所述第一地址信息对应的老化 值,判断所述第一地址信息对应的老化值是否超过预设门限;当所述第一地址 信息对应的老化值大于等于所述预设门限时,删除所述ARP表中的第一地址信 息,或者,删除所述ARP表中的所述第一地址信息以及调用所述交换芯片驱动 模块,指示所述交换芯片驱动模块删除所述交换芯片中的所述第一地址信息;

所述交换芯片驱动模块,还用于根据所述ARP控制模块的删除指示,删除 所述交换芯片中的所述第一地址信息。

在本发明的另一实施例中,所述第一地址信息包括所述第一ARP报文源 MAC地址、所述第一地址信息对应的终端源MAC地址以及源IP地址;

所述ARP控制模块,还用于检测所述第一地址信息是否合法;当所述第一 地址信息中所述第一ARP报文源MAC地址与所述第一地址信息对应的终端源 MAC地址一致时,确定所述第一地址信息合法。

在本发明的另一实施例中,所述ARP控制模块,还用于在所述ARP控制模 块确定所述第一地址信息合法并且存在于ARP表之后,清除所述ARP表中所述 第一地址信息对应的老化值;

所述ARP控制模块,还用于检测所述ARP表中所述第一地址信息对应的状 态是否为第一预设状态;当所述ARP表中所述第一地址信息对应的状态为第一 预设状态时,将所述第一预设状态修改为第二预设状态,所述第二预设状态用 于所述ARP控制模块确定已收到第一ARP报文。

在本发明的另一实施例中,所述交换芯片包括报文匹配引擎模块和报文限 速引擎模块;

所述报文匹配引擎模块,还用于接收输入的ARP报文特征,所述ARP报文 特征用于指示所述交换芯片检测接收的报文是否为ARP报文;

所述报文限速引擎模块,还用于接收输入的限速规则,所述限速规则用于 对所述交换芯片进行交互的终端发送的ARP报文进行限速。

本发明实施例提供的一种防范ARP报文攻击的方法及设备,通过ARP控制 模块接收交换芯片发送的第一ARP报文,然后获取第一ARP报文中的第一地址 信息;当ARP控制模块确定第一地址信息合法、存在于ARP表并且ARP表中 第一地址信息对应的状态为第一预设状态时,ARP控制模块调用交换芯片驱动 模块,指示交换芯片驱动模块将第一地址信息写入交换芯片中,ARP表用于存 储与交换芯片进行交互的终端的地址信息;交换芯片对接收的携带有第一地址 信息的ARP报文进行限速。现有技术中控制平面处理器通过规定在预定的时间 范围内接收的流量和/或报文数量上限的方法,对接收的ARP报文进行流量统 计、丢弃等处理操作,占用了控制平面处理器大量的处理资源,从而影响控制 平面处理器的处理效率。与现有技术相比,本发明实施例可以提高控制平面处 理器的处理效率。

附图说明

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

图1为本发明实施例提供的一种防范ARP报文攻击的方法的流程图;

图2为本发明实施例提供的另一种防范ARP报文攻击的方法的流程图;

图3为本发明实施例提供的又一种防范ARP报文攻击的方法的流程图;

图4为图1提供的防范ARP报文攻击的方法中的对接收的ARP报文进行限 速的一种方法的流程图;

图5为图1提供的防范ARP报文攻击的方法中的对接收的ARP报文进行限 速的另一种方法的流程图;

图6为本发明实施例提供的一种防范ARP报文攻击的设备的结构示意图。

具体实施方式

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

本发明实施例提供一种防范ARP报文攻击的方法,该方法实现于一种防范 ARP报文攻击的设备上,该设备可以为交换机或者具有交换功能的设备等。该 设备包括控制平面处理器和交换芯片。其中控制平面处理器用于检测、收集ARP 报文的地址信息,控制平面处理器运行包括ARP控制模块和交换芯片驱动模块 在内的软件模块。ARP控制模块用于处理与终端之间的ARP报文交互、以及本 地存储区域中ARP表的管理。交换芯片驱动模块用于根据所述ARP控制模块的 指示,与交换芯片进行交互。交换芯片用于识别ARP报文,以及对识别的ARP 报文进行限速或者丢弃处理。交换芯片包括报文匹配引擎模块和报文限速引擎 模块。报文匹配引擎模块用于识别接收的报文是否是ARP报文,以及识别ARP 报文中包含的终端源MAC地址信息,并将识别结果提供给报文限速引擎模块。 报文限速引擎模块用于按照限速规则对识别结果中的ARP报文进行限速或者丢 弃处理。

实施例1

如图1所示,本发明实施例提供一种防范ARP报文攻击的方法,该方法包 括:

101,ARP控制模块接收交换芯片发送的第一ARP报文。

交换芯片通过交换机网关接口接收终端发送的第一ARP报文。具体的,第 一ARP报文为ARP响应报文。ARP控制模块根据获取第一ARP报文中的操作 字段确定第一ARP报文是否为ARP响应报文。当该操作字段的值为0x0002时, 表明第一ARP报文为ARP响应报文。

102,ARP控制模块获取第一ARP报文中的第一地址信息。

具体的,ARP控制模块从第一ARP报文的以太报文头部中获取报文源MAC 地址(可以记为SMAC-h),从第一ARP报文的发送方硬件地址字段中获取终端 源MAC地址(可以记为SMAC-d)以及从第一ARP报文的发送方IP地址字段 中获取终端源IP地址(可以记为SIP-d)。即第一地址信息包括:SMAC-h、SMAC-d 以及SIP-d。例如,报文源MAC地址(SMAC-h)为00.01.7a.00.00.10,终端对 应的源MAC地址(SMAC-d)为00.01.7a.00.00.10,终端对应的源IP地址(SIP-d) 为192.168.10。

在ARP控制模块获取第一ARP报文中的第一地址信息之后,可选的,ARP 控制模块为了节约本地存储的资源将第一ARP报文丢弃。

103,当ARP控制模块确定第一地址信息合法、存在于ARP表并且ARP 表中第一地址信息对应的状态为第一预设状态时,ARP控制模块调用交换芯片 驱动模块,指示交换芯片驱动模块将第一地址信息写入交换芯片中,ARP表用 于存储与交换芯片进行交互的终端的地址信息。

在ARP控制模块调用交换芯片驱动模块之前,ARP控制模块对第一地址信 息进行合法性检测。具体实现过程为:ARP控制模块将SMAC-h的内容与 SMAC-d的内容进行对比,检测SMAC-h的内容与SMAC-d的内容是否一致。 当SMAC-h的内容与SMAC-d的内容一致(如均为00.01.7a.00.00.10)时,ARP 控制模块确定第一地址信息合法;当SMAC-h的内容与SMAC-d的内容不一致 时,ARP控制模块确定第一地址信息不合法。

在ARP控制模块确定第一地址信息合法之后,ARP控制模块查询第一地址 信息是否存在于ARP表中,当第一地址信息存在于ARP表时,继续执行103; 当第一地址信息不存在于ARP表时,终止此次处理。

ARP控制模块查询第一地址信息是否存在于ARP表的具体过程为:ARP 控制模块使用第一地址信息中的终端源MAC地址00.01.7a.00.00.10和终端源IP 地址192.168.10作为关键值,来查询ARP表中是否存在第一地址信息。当ARP 表中存在第一地址信息时,ARP控制模块清除ARP表中第一地址信息对应的老 化值。然后ARP控制模块检测ARP表中第一地址信息对应的状态是否为第一预 设状态;当ARP表中第一地址信息对应的状态为第一预设状态时,将第一预设 状态修改为第二预设状态,第二预设状态用于ARP控制模块确定已收到第一 ARP报文。可以理解的是,ARP表中至少包括的表项有地址信息、老化值、状 态。其中,地址信息可以包括终端源MAC地址、终端源IP地址、终端与设备 连接对应的物理端口号等。老化值用于ARP控制模块检测ARP控制模块所在的 设备与终端间的互动性。状态为有标识或者无标识两种形式。本实施例不限制 第一预设状态和第二预设状态的具体内容。例如,第一预设状态可以为1,第二 预设状态可以为0。或者第一预设状态可以为待确认,第二预设状态为空/已确 认均可。

104,交换芯片对接收的携带有第一地址信息的ARP报文进行限速。

在交换芯片中的报文匹配引擎模块和报文限速引擎模块对携带有第一地址 信息的ARP报文进行限速之前,交换芯片中的报文匹配引擎模块接收输入的 ARP报文特征,交换芯片中的报文限速引擎模块接收输入的限速规则。其中, ARP报文特征用于报文匹配引擎模块识别接收的报文是否为ARP报文。当报文 匹配引擎模块接收的以太报文中以太类型字段为0x0806时,确定该报文为ARP 报文。限速规则用于对交换芯片进行交互的终端发送的ARP报文进行限速。具 体的,交换芯片中的报文限速引擎模块将报文匹配引擎模块识别出来的ARP报 文按照限速规则进行限速。

报文匹配引擎模块的本地存储区域存储终端源MAC地址和终端源IP地址 以及对应的序号。限速规则包括限速值以及限速值对应的序号。可以理解的是, 报文匹配引擎模块的本地存储中存储的地址信息对应的序号与报文限速引擎模 块中的限速规则中限速值对应的序号一致。

例如,报文匹配引擎模块的本地存储区域包括第一地址信息中的终端源 MAC地址00.01.7a.00.00.10、终端源IP地址192.168.10以及对应的序号1;其 他发送ARP报文的终端以及对应的序号2。报文限速引擎模块中的限速规则包 括序号1以及对应序号1的速率为5pps,序号2以及对应序号2的速率为100pps。 其中,速率5pps表示当地址信息为终端源MAC地址00.01.7a.00.00.10、终端源 IP地址192.168.10的终端发送ARP报文时,该交换芯片每秒至多接收5个ARP 报文;速率100pps表示所有地址信息不存在与报文匹配引擎模块的本地存储区 域的终端发送ARP报文时,该交换芯片每秒至多接收100个ARP报文。

本发明实施例提供的一种防范ARP报文攻击的方法,通过ARP控制模块接 收交换芯片发送的第一ARP报文,然后获取第一ARP报文中的第一地址信息; 当ARP控制模块确定第一地址信息合法、存在于ARP表并且ARP表中第一地 址信息对应的状态为第一预设状态时,ARP控制模块调用交换芯片驱动模块, 指示交换芯片驱动模块将第一地址信息写入交换芯片中,ARP表用于存储与交 换芯片进行交互的终端的地址信息;交换芯片对接收的携带有第一地址信息的 ARP报文进行限速。现有技术中控制平面处理器通过规定在预定的时间范围内 接收的ARP报文流量和/或报文数量上限的方法,对接收的ARP报文进行流量 统计、丢弃等处理操作,占用了控制平面处理器大量的处理资源,从而影响控 制平面处理器的处理效率。与现有技术相比,本发明实施例可以通过交换芯片 识别并处理ARP报文,从而提高控制平面处理器的处理效率,以及避免由于攻 击终端大量ARP报文流量影响其它终端与控制平面处理器之间的正常通信。

在本发明的一种实现方式中,提供交换芯片对接收的ARP报文进行限速的 一种方法,设置第一地址信息对应的终端为终端A,如图2所示,该方法如下:

201,终端A向交换芯片发送报文A。

202,交换芯片中的报文匹配引擎模块接收该报文A。

203,报文匹配引擎模块检测该报文A是否为ARP报文。

报文匹配引擎模块获取报文A中的以太类型字段,当该以太类型字段值为 0x0806时,确定报文A为ARP报文,然后继续执行204;当该以太类型字段值 不是0x0806时,确定报文A不是ARP报文,然后结束此次操作。

204,报文匹配引擎模块获取该报文A的地址信息,查看该报文A的地址 信息是否存在于本地存储中。

报文匹配引擎模块获取该报文A中的地址信息(报文源MAC地址 00.01.7a.00.00.10、终端源MAC地址00.01.7a.00.00.10、终端源IP地址 192.168.10)。然后使用终端源MAC地址00.01.7a.00.00.10和终端源IP地址 192.168.10作为关键值查看本地存储区域是否存在该终端源MAC地址和终端源 IP地址,由于本地存储区域存在00.01.7a.00.00.10和192.168.10,确定 00.01.7a.00.00.10和192.168.10存在于报文匹配引擎模块的本地存储区域中。当 报文A的地址信息存在于本地存储区域时,报文A的地址信息对应的序号为序 号1。

205,报文匹配引擎模块将该报文A的地址信息对应的序号发送给报文限速 引擎模块中。

206,报文限速引擎模块按照接收的序号对应限速规则中的速率对该报文A 进行限速。

具体的,报文限速引擎模块接收序号1之后,在限速规则中查找序号1对 应的速率(5pps),然后按照该速率对报文A进行限速。比如,当交换芯片在该 秒内未接收完终端A发送的5个ARP报文时,则交换芯片接收该报文A;当交 换芯片在该秒内已接收完终端A发送的5个ARP报文时,则交换芯片丢弃该报 文A。

本发明实施例可以对ARP控制模块认证的终端(具有第二预设状态的地址 信息对应的终端)进行保护,保证每秒接收来自该终端发送的一定数量的ARP 报文,同时防止该终端发送大量的报文。本发明实施例采用交换芯片对接收的 报文进行识别和限速,从而提高了处理平面处理器的处理效率。

在本发明的另一种实现方式中,如图3所示,提供交换芯片对接收的ARP 报文进行限速的一种方法,该方法如下:

301,终端B向交换芯片发送报文B。

302,交换芯片中的报文匹配引擎模块接收该报文B。

303,报文匹配引擎模块检测该报文B是否为ARP报文。

报文匹配引擎模块获取报文B中的eth type字段,当该eth type字段值为 0x0806时,确定报文B为ARP报文,然后继续执行404;当该eth type字段值 不是0x0806时,确定报文B不是ARP报文,然后结束此次操作。

304,报文匹配引擎模块获取该报文B的地址信息,查看该报文B的地址信 息是否存在于本地存储中。

报文匹配引擎模块获取该报文B中的地址信息(报文源MAC地址 00.01.7a.00.00.11、终端源MAC地址00.01.7a.00.00.11、终端源IP地址 192.168.11)。然后使用终端源MAC地址00.01.7a.00.00.10和终端源IP地址 192.168.11作为关键值查看本地存储区域是否存在该终端源MAC地址和终端源 IP地址,由于本地存储区域不存在00.01.7a.00.00.11和192.168.11,确定 00.01.7a.00.00.11和192.168.11不存在于报文匹配引擎模块的本地存储区域中。 当报文B的地址信息不存在与报文匹配引擎模块时,报文B的地址信息对应的 序号为序号2。

305,报文匹配引擎模块将该报文B的地址信息对应的序号发送给报文限速 引擎模块中。

306,报文限速引擎模块按照接收的序号对应限速规则中的速率对该报文B 进行限速。

具体的,报文限速引擎模块接收序号2之后,在限速规则中查找序号2对 应的速率(100pps),然后按照该速率对报文B进行限速。比如,当交换芯片该 秒未接收完其他终端(其他终端的地址信息均不存在于报文匹配引擎模块的本 地存储区域中)发送的100个ARP报文时,则交换芯片接收该报文B;当交换 芯片该秒已接收完其他终端发送的100个ARP报文时,则交换芯片丢弃该报文 B。

本发明实施例可以对ARP控制模块认证之后的终端进行保护,保证每秒接 收来自该终端发送的一定数量的ARP报文,防止该终端发送大量的报文。同时 对未认证的终端(具有第一预设状态的地址信息对应的终端或者该终端的地址 信息不存在于报文匹配引擎模块中的终端)进行限速,使得每秒接收这些未认 证的终端发送的报文不超过预设值。本发明实施例采用交换芯片对接收的报文 进行识别和限速,从而提高了处理平面处理器的处理效率。

需要说明的是,终端在两种情况下发送第一ARP报文。

第一种情况,ARP控制模块在ARP表中写入该终端的第一地址信息之后, ARP控制模块构造第三ARP报文,并通过交换芯片发送给该终端。第三ARP 报文用于通知终端发送第一ARP报文。该终端接收该第三ARP报文之后,通过 交换芯片向ARP控制模块发送第一ARP报文。当ARP控制模块接收到第一ARP 报文之后,调用交换芯片驱动模块,指示交换芯片驱动模块将第一ARP报文的 第一地址信息写入交换芯片中。

第二种情况,ARP控制模块在检查ARP表中长时间没有交互的终端的地址 信息时,ARP控制模块构造第四ARP报文,并通过交换芯片发送给该终端。第 四ARP报文用于通知终端发送第一ARP报文。该终端接收该第四ARP报文之 后,通过交换芯片向ARP控制模块发送第一ARP报文。当ARP控制模块在预 定的时间内未收到第一ARP报文时,删除ARP表中的第一ARP报文的第一地 址信息。

根据图1中101包括的ARP控制模块接收交换芯片发送的第一ARP报文, 在本发明的一种实现方式中,提供一种防范ARP报文攻击的方法,在本实现方 式中,终端在采用第一种情况发送第一ARP报文。如图4所示,该方法包括:

401,终端通过交换机网关接口向交换芯片发送第二ARP报文。

该第二ARP报文为ARP请求报文。ARP控制模块根据获取第二ARP报文 中的操作字段,当该字段的值为0x0001时,表明第二ARP报文为ARP请求报 文。

402,交换芯片向ARP控制模块发送第二ARP报文。

具体的,交换芯片将接收第二ARP报文转发给ARP控制模块。

403,ARP控制模块接收交换芯片发送的第二ARP报文,获取第二ARP报 文中的地址信息。

可以理解的是,该第二ARP报文中的地址信息与图1中101的第一地址信 息内容相同。即第二ARP报文中的地址信息包括以太报文源MAC地址 (SMAC-h)、终端对应的源MAC地址(SMAC-d)、终端对应的源IP地址(SIP-d)。 例如,报文源MAC地址(SMAC-h)为00.01.7a.00.00.10,终端对应的源MAC 地址(SMAC-d)为00.01.7a.00.00.10,终端对应的源IP地址(SIP-d)为192.168.10。

在ARP控制模块获取第二ARP报文中的第一地址信息之后,可选的,将第 二ARP报文丢弃。

404,当ARP控制模块确定第二地址信息合法并且不存在于ARP表时,ARP 控制模块将第二地址信息写入ARP表中,并将第二地址信息对应的状态写为第 一预设状态,第一预设状态用于指示ARP控制模块确定未收到第一ARP报文。

ARP控制模块对第二ARP报文的地址信息进行合法性检测的方法,以及检 测第二ARP报文的地址信息是否存在于ARP表中的方法,可参考图1的102 中ARP控制模块对第一ARP报文的地址信息进行合法性检测,以及第一ARP 报文的地址信息是否存在于ARP表的详细描述。

405,ARP控制模块构造第三ARP报文,并发送给交换芯片。

在ARP控制模块将第二ARP报文中的地址信息写入ARP表中,并对第二 ARP报文中的地址信息添加标识之后,ARP控制模块构造一个第三ARP报文, 该第三ARP报文为ARP请求报文。

具体的,第三ARP报文的以太报文头部地址字段包括目的MAC地址 SMAC-h(如00.01.7a.00.00.10)、源MAC地址为ARP控制模块所在的交换机网 关接口对应的MAC地址(如00.01.7a.00.00.01),以太报文头部以太类型字段为 0x0806。第三ARP报文的报文格式包括协议类型字段(0x0800)、操作字段 (0x0001)、发送硬件地址字段为交换机网关接口对应的MAC地址(如 00.01.7a.00.00.01),发送方IP地址为交换机网关接口对应的IP地址(如 192.168.1.1)。

该第三ARP报文用于第三ARP报文对应的终端发送第一ARP报文。

406,交换芯片将接收的第三ARP报文发送给第二ARP报文对应的终端。

该终端在接收第三ARP报文之后,若终端在正常运行中,会按照第三ARP 报文的地址信息向交换芯片发送第一ARP报文。

本发明实施例提高了处理平面控制器的处理效率,以及避免由于攻击终端 大量ARP报文流量影响其它终端与控制平面处理器之间的正常通信。

根据图1中101包括的ARP控制模块接收交换芯片发送的第一ARP报文, 在本发明的一种实现方式中,提供一种防范ARP报文攻击的方法,在本实现方 式中,终端在采用第二种情况发送第一ARP报文。如图5所示,该方法包括:

501,ARP控制模块获取ARP表中的第一地址信息。

ARP控制模块为了避免某终端与ARP控制模块所在的交换机长时间不进行 交互,却占用ARP表资源的情况时,ARP控制模块对ARP表中存储的地址信 息进行检测。具体的,以第一地址信息为例进行说明。

502,ARP控制模块根据第一地址信息的内容,构造第四ARP报文,并发 送给交换芯片,在发送所述第四ARP报文之后,更新所述ARP表中的所述第一 地址信息对应的老化值。

第四ARP报文为ARP请求报文。该第四ARP报文构造的方式与图4的405 中ARP控制模块构造第三ARP报文的方式相同,并且第四ARP报文的内容与 第三ARP报文的内容也相同。故可参考图4的405。

需要说明的是,第四ARP报文用途与第三ARP报文的用途不同。第四ARP 报文用于ARP控制模块清除ARP表中长时间不交互的终端对应的地址信息。

503,交换芯片将第四ARP报文发送给第四ARP报文对应的终端。

504,ARP控制模块判断第一地址信息对应的老化值是否超过预设门限。

当第一地址信息对应的老化值超过预设门限时,ARP控制模块继续执行 505;当第一地址信息对应的老化值没有超过预设门限时,ARP控制模块继续执 行501,然后获取ARP表中的下一条地址信息,按照方法流程继续执行。

本实施例不限制预设门限的取值范围,例如预设门限为10或者100等均可。 根据实际情况,ARP控制模块设置预设门限的取值。

505,当第一地址信息对应的老化值大于等于预设门限时,ARP控制模块删 除ARP表中的第一地址信息,或者,ARP控制模块删除ARP表中的第一地址 信息以及调用交换芯片驱动模块,指示交换芯片驱动模块删除交换芯片中的第 一地址信息。

可选的,当第一地址信息对应的老化值大于等于预设门限时,ARP控制模 块删除ARP表中的第一地址信息,然后查看ARP表中的第一地址信息对应的状 态。当ARP表中的第一地址信息的状态为第一预设状态时,结束此次操作,ARP 控制模块获取ARP表中的下一条地址信息,并按照检测第一地址信息的方法重 新执行501。

可选的,当第一地址信息对应的老化值大于等于预设门限时,ARP控制模 块删除ARP表中的第一地址信息,然后查看ARP表中的第一地址信息对应的状 态。当ARP表中第一地址信息对应的状态为第二预设状态时,ARP控制模块调 用交换芯片驱动模块,指示交换芯片驱动模块删除交换芯片中的第一地址信息。

506,交换芯片删除第一地址信息,第一地址信息对应的序号以及对应的限 速规则。

交换芯片中的报文匹配引擎模块删除第一地址信息和第一地址信息对应的 序号;报文限速引擎模块删除第一地址信息对应的序号和对应的限速规则。

在ARP控制模块检测并处理完第一地址信息之后,对ARP表中的下一条地 址信息按照上述处理方法重新执行501。

需要说明的是,步骤503与步骤504-506没有先后顺序,本实施例可以先执 行步骤503再执行步骤504-506,或者本实施例可以先执行步骤504-506再执行 步骤503,或者本实施例可以同时执行步骤504-506和步骤503。

本发明实施例提高了处理平面控制器的处理效率。

实施例2

如图6所示,本发明实施例提供一种防范ARP报文攻击的设备60,所述设 备包括控制平面处理器601和交换芯片602,所述控制平面处理器601上运行的 软件模块包括包括ARP控制模块6011和交换芯片驱动模块6012;交换芯片602 包括报文匹配引擎模块6021和报文限速引擎模块6022;

交换芯片602,用于接收终端发送的第一ARP报文,并将所述第一ARP报 文发送给ARP控制模块6011。

ARP控制模块6011,用于接收交换芯片602发送的第一ARP报文;获取第 一ARP报文中的第一地址信息;当第一地址信息合法、存在于ARP表并且ARP 表中第一地址信息对应的状态为第一预设状态时,调用交换芯片驱动模块6012, 指示交换芯片驱动模块将第一地址信息写入交换芯片中,ARP表用于存储与交 换芯片进行交互的终端的地址信息。

交换芯片驱动模块6012,用于根据ARP控制模块601的指示,将第一地址 信息写入交换芯片602中。

交换芯片602,还用于对接收的携带有第一地址信息的ARP报文进行限速。

进一步的,在交换芯片602接收终端发送的第一ARP报文之前,交换芯片 602还用于接收终端发送的第二ARP报文,并将第二ARP报文发送给ARP控 制模块6011。

ARP控制模块6011,还用于接收交换芯片602发送的第二ARP报文;以及 获取第二ARP报文中的地址信息,第二ARP报文中的地址信息与第一地址信息 相同;当第二ARP报文中的地址信息合法并且不存在于ARP表时,ARP控制 模块6011将第二ARP报文中的地址信息写入ARP表中,并将第二地址信息对 应的状态写为第一预设状态,第一预设状态用于ARP控制模块确定未收到第一 ARP报文。

ARP控制模块6011还用于通知第二ARP报文对应的终端发送第一ARP报 文。

ARP控制模块6011通知第二ARP报文对应的终端发送第一ARP报文具体 实现方式可以为:ARP控制模块6011构造第三ARP报文,并发送给交换芯片 602;交换芯片602将接收的第三ARP报文发送给第二ARP报文对应的终端。 当然,ARP控制模块6011通知第二ARP报文对应的终端发送第一ARP报文的 具体实现方式不限于此,在此不一一赘述。

进一步的,ARP控制模块6011,还用于获取ARP表中的第一地址信息;然 后更新ARP表中的第一地址信息对应的老化值,并通知第二ARP报文对应的终 端发送第一ARP报文。

ARP控制模块6011通知第二ARP报文对应的终端发送第一ARP报文的具 体实现方式可以为:根据第一地址信息的内容,构造第四ARP报文,并将第四 ARP报文发送给交换芯片602。交换芯片602将第四ARP报文发送给第四ARP 报文对应的终端。当然,ARP控制模块6011通知第二ARP报文对应的终端发 送第一ARP报文的具体实现方式不限于此,在此不一一赘述。

ARP控制模块6011,还用于判断第一地址信息对应的老化值是否超过预设 门限;当第一地址信息对应的老化值大于等于预设门限时,ARP控制模块6011 删除ARP表中的第一地址信息,或者,ARP控制模块6011删除ARP表中的第 一地址信息以及调用交换芯片驱动模块,指示交换芯片驱动模块6012删除交换 芯片中的第一地址信息。

进一步的,第一地址信息包括第一ARP报文源MAC地址、第一地址信息 对应的终端源MAC地址以及源IP地址;

ARP控制模块6011,还用于检测第一地址信息是否合法;当第一地址信息 中第一ARP报文源MAC地址与第一地址信息对应的终端源MAC地址一致时, 确定第一地址信息合法。

当第一地址信息合法并且存在于ARP表时,ARP控制模块6011,还用于清 除ARP表中第一地址信息对应的老化值;

ARP控制模块6011还用于检测ARP表中第一地址信息对应的状态是否为 第一预设状态;当ARP表中第一地址信息对应的状态为第一预设状态时,将第 一预设状态修改为第二预设状态,第二预设状态用于ARP控制模块确定已收到 第一ARP报文。

在交换芯片602对携带第一地址信息的ARP报文进行限速之前,报文匹配 引擎模块6021,还用于接收输入的ARP报文特征,ARP报文特征用于指示交换 芯片检测接收的报文是否为ARP报文。

报文限速引擎模块6022,还用于接收输入的限速规则,限速规则用于对交 换芯片进行交互的终端发送的ARP报文进行限速。

需要说明的是,图6所示设备60中,其各个模块的具体实施过程以及各个 模块之间的信息交互等内容,由于与本发明方法实施例基于同一发明构思,可 以参见方法实施例,在此不一一赘述。

本发明实施例提供的一种防范ARP报文攻击设备,可以提高控制平面处理 器的处理速率,以及避免由于攻击终端大量ARP报文流量影响其它终端与控制 平面处理器之间的正常通信。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述 各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分 配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完 成以上描述的全部或者部分功能。上述描述的设备,装置和单元的具体工作过 程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备,装置和方 法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性 的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可 以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设 备,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦 合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信 连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为 单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者 也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部 单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中, 也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元 中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的 形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或 使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明 的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质 中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或 者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或 部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟 或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应 以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号