一种检测地址解析协议arp报文合法性的方法及装置的制作方法

文档序号:7710159阅读:203来源:国知局
专利名称:一种检测地址解析协议arp报文合法性的方法及装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种检测地址解析协议ARP报文合 法性的方法及装置。
背景技术
在当前网络技术中,对网络的破坏呈现多元化发展,对网络可靠性、安 全性的攻击就是其中的一种,该种攻击不以盗取信息为目的,而是针对网络 中的漏洞,对网络中的设备进行破坏或进行配置的更改,破坏网络的正常通 信,甚至造成网络瘫痪,其中,对以太网的攻击就是该种攻击的一种常见方 式。
以太网中,IP (Internet Protocol,因特网协议)设备之间要进行相互通信, 发起通信的源IP设备需要获取目标IP设备的MAC (Media Access Control,媒 体访问控制)地址,IP设备之间实际传输帧数据,帧数据中包括目标IP设备的 MAC地址,而IP设备在网络中是以IP地址来区分的,则需要在发送帧数据前 实现从目标IP设备的IP地址到MAC地址的转换,该转换由ARP ( Address Resolution Protocol,地址解析协议)实现,即ARP通过目标IP设备的IP地址, 查询目标IP设备的MAC地址,以保证通信的顺利进行。
网络中每台支持IP协议的IP设备,其内部均保存有ARP表,该ARP表中的 IP地址与MAC地址——对应,代表了 IP设备IP地址与MAC地址的映射关系, 该映射关系可以通过ARP报文动态学习的方式获取。ARP协议报文分为ARP 请求报文和ARP应答报文, 一般情况下,ARP请求报文是广播发送的,在整个 局域网内请求目标IP地址对应的MAC地址,并且通告自身的IP地址和MAC地 址对应关系;ARP应答报文是单播发送的,IP设备收到来自发送端得ARP请求 报文,并发现发送端请求自身的MAC地址,则向该发送端发送ARP应答I艮文, 将自身的MAC地址告知发送端。如图l所示,为ARP报文结构示意图,包括以太网目的地址、以太网源地 址、帧类型、硬件类型、协议类型、硬件地址长度、协议地址长度、搡作类
型(OP)、发送端MAC地址、发送端IP地址、目标MAC地址和目标IP地址。 其中,以太网目的地址为以太网帧头的目的MAC地址,用于表示该ARP才艮文 为广播报文或者单播报文;以太网源地址为以太网帧头的源MAC地址,即发 送方设备的MAC地址;帧类型表示报文的类型;硬件类型表示硬件地址的类 型,该值为l时表示硬件地址的类型为以太网地址;协议类型表示需要映射的 协议地址类型,该值为0x0800时表示需要映射的协议地址类型为IP地址;硬件 地址长度和协议地址长度分别表示硬件地址和协议地址的长度,以字节为单 位,对于以太网上IP地址的ARP请求报文或ARP应答报文来说,它们的值分别 为6和4;操作类型(OP)用于表示ARP报文的类型,该值为1时表示该ARP报 文为ARP请求报文,该值为2时表示该ARP报文为ARP应答报文;发送端MAC 地址为发送方设备的硬件地址;发送端IP地址为发送方设备的IP地址;目标 MAC地址为接收方设备的硬件地址;目标IP地址为接收方设备的IP地址。
如图2所示,为现有技术中的ARP报文处理过程示意图,主才几A向主机B 发送IP数据包之前,需要获取主机(即IP地址为192.168.1.2的设备)对应的 MAC地址。主机A首先查找自身存储的ARP表,确定其中是否包含有主机B对 应的ARP表项,如果在ARP表中查找到主机B对应的MAC地址,则主机A直接 利用ARP表中的MAC地址,对IP数据包进行帧封装,并将封装后的数据包发 送到主才几B。
如果主机A在自身存储的ARP表中查找不到主机B对应的MAC地址,则缓 存IP数据包,以广播方式向主机B发送ARP请求报文,该ARP请求报文中的发 送端IP地址和发送端MAC地址分别为主机A的IP地址和MAC地址,目标IP地 址和目标MAC地址分别为主机B的IP地址和全O的MAC地址。由于ARP请求才艮 文以广播方式发送,该网段上的所有主机都可以接收到该报文,但只有主机B 会对该报文进行处理。具体地,主机B比较自身的IP地址和接收到的ARP请求 报文中的目标IP地址,当两者相同时将该ARP请求报文中的发送端(即主机A) 的IP地址和MAC地址存入自身的ARP表中,并以单播方式发送ARP响应报文给主机A,该ARP响应报文中包含了主机B的MAC地址。主机A收到ARP响应 报文后,将主机B的MAC地址加入到自身存储的ARP表中以用于后续报文的转 发,同时将IP数据包进行封装发送。由于在ARP设计之初没有考虑安全机制问题,因此ARP是一个非常容易受 攻击的协议,对以太网的攻击也以ARP报文攻击为主。现有4支术中,网关设 备被配置为对接收到的ARP报文不进行解析处理,而进行该ARP报文的直接二 层转发,即直接将源IP设备发送的ARP报文转发至目标IP设备。网关设备在网 络中运行时,经常会遭受"ARP才艮文的发送端IP地址不在本接口范围内,,的 ARP4艮文的攻击,并需要将该类ARP4艮文交由CPU ( Central Processing Unit, 中央处理单元)处理。由于网关设备的资源是有限的,网关设备的CPU处理 上述ARP报文时,会导致大量正常的ARP报文得不到处理,引起网络中断和异 常。发明内容本发明提供了一种检测ARP报文合法性的方法及装置,实现了对非法 ARP报文的检测。本发明提供了一种检测地址解析协议ARP报文合法性的方法,应用于包 括网关设备的系统中,所述方法包括以下步骤所述网关设备接收ARP报文,判断所述ARP报文的入接口是否为三层接D ;如果所述ARP报文对应的入接口为三层接口 ,则所述网关设备提取所述 ARP报文中的发送端互联网协议IP地址,以所述ARP报文中的发送端IP地 址为目的地址进行路由查找,获取对应的出接口信息;当获取的出接口信息与接收所述ARP报文的入接口信息一致时,所述 ARP报文为合法的ARP报文;当获取的出接口信息与接收所述ARP报文的入接口信息不一致时,所述 ARP报文为攻击报文。优选地,所述网关设备以所述ARP报文中的发送端IP地址为目的地址进行路由查找,获取对应的出接口信息,包括所述网关设备查找路由表中的直连路由,获取目的IP地址为发送端IP地 址对应的出接口信息。优选地,所述网关设备以所述ARP报文中的发送端IP地址为目的地址进 行路由查找时,没有查找到对应的出接口信息,则在严格检查模式下,认为 该ARP报文为攻击报文,在松散模式下,认为该ARP报文为合法ARP报文。设备对该ARP报文进行二层转发或者将该ARP才艮文送上层软件处理;当所述 网关设备认为所述ARP报文为攻击才艮文时,该网关设备将该ARP才艮文进行过 滤或者,既进行过滤又进行告警或者,既进行过滤又进行计数。 本发明还提供了 一种检测ARP报文合法性的装置,包括 收发模块,用于接收ARP报文,判断所述ARP报文的入接口是否为三层 接口;提取模块,用于在所述收发;f莫块判断所述ARP报文对应的入接口为三层 接口时,提取所述ARP报文中的发送端IP地址;获取模块,用于以所述提取模块提取的所述ARP报文中的发送端IP地址 为目的地址进行^^由查找,获取对应的出"l妄口信息;检测模块,用于当所述获取模块获取的出接口信息与接收所述ARP报文 的入接口信息一致时,认为所述ARP报文为合法的ARP报文;当所述获取模 块获取的出接口信息与接收所述ARP报文的入接口信息不一致时,认为所述 ARP 4艮文为攻击纟艮文。优选地,所述获取模块,具体用于查找路由表中的直连路由,获取目的 IP地址为发送端IP地址对应的出4妄口信息。优选地,所述的装置,还包括标识模块,用于预先对所述路由表中的直连路由进行标记,以便于所述 获取模块查找所述直连路由。优选地,所述检测模块,还用于当所述获取模块以所述ARP报文中的发送端IP地址为目的地址进行路由查找时,没有查找到对应的出接口信息,则在严格检查模式下,认为该ARP报文为攻击报文,在松散模式下,认为该 ARP报文为合法ARP报文。优选地,所述检测模块,还用于当认为所述ARP报文为合法ARP报文时, 对该ARP报文进行二层转发或者将该ARP报文送上层软件处理;当认为所述 ARP报文为攻击报文时,将该ARP报文进行过滤或者,既进行过滤又进行告 警或者,既进行过滤又进行计数。本发明根据ARP报文中的发送端IP地址路由查找该ARP报文对应的出 端口信息,并将该出端口信息与接收该ARP报文时记录的入端口信息进行比 较,根据查找结果和比较结果判断该ARP报文是否为正常的ARP报文,能够 较大限度地检测并过滤非法ARP报文,降低网络设备遭受ARP报文攻击的可 能性。


图1为ARP报文结构示意图;图2为现有技术中的ARP报文处理过程示意图;图3为本发明中的一种检测ARP报文合法性的方法流程图;图4为本发明的应用场景中的检测ARP报文合法性的过程示意图;图5为本发明的应用场景一中的检测ARP报文合法性的流程图;图6为本发明的应用场景二中的检测ARP报文合法性的流程图;图7为本发明中的一种检测ARP报文合法性的装置结构示意图。
具体实施方式
本发明提供了一种检测ARP报文合法性的方法,其核心思想在于,对接 收到的ARP报文进行发送端IP地址反向路径一致性检查,由网关设备识别 ARP报文,根据ARP报文中的发送端IP地址为目的地址查找路由表,获取 对应的出接口信息,并根据路由表中的出接口信息和ARP报文的入接口信息 进行比较,如果比较结果为不一致,则判断接收到的ARP报文为ARP攻击报文,并对该报文进行过滤等异常处理;如果比较结果为一致,则判断接收到的ARP报文为正常的ARP报文,并对该报文进行转发等正常处理。下面将结合本发明中的附图,对本发明的技术方案进行清楚、完整地描 述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。 基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下 所获得的所有其他实施例,都属于本发明保护的范围。如图3所示,为本发明中的一种检测ARP报文合法性的方法流程图,应 用于包括网关设备的系统中,该方法包括以下步骤步骤301,网关设备接收ARP报文,并判断该ARP报文的入接口是否为 三层接口。如果ARP报文对应的入接口为三层接口,则执行步骤303;如果 ARP报文对应的入接口不是三层接口 ,则执行步骤302。具体地,网关设备记录接收到的ARP报文的入接口信息,根据该入接口 信息判断该ARP报文的入接口是否为三层接口。其中,ARP报文的入接口信 息为该ARP报文进入的VLAN ( Virtual Local Area Network,虚拟局域网)、 端口号或其他类型的逻辑标识符。网关设备可以通过检测接收ARP报文的入 接口是否设有固定的IP地址,区分该入接口为三层接口还是二层接口。三层 接口为网关设备中用于二层转发和三层转发的接口 ,设有固定的IP地址;二 层接口为网关设备中仅用于二层转发的接口 ,没有设置IP的值,不能用于三 层转发。步骤302,网关设备对接收到的ARP报文进行二层转发,或者将接收到 的ARP报文送上层软件处理。具体地,如果接收到的ARP报文对应的入接口不是三层接口 ,网关设备 不启动ARP报文的检测机制,而是直接对接收到的ARP报文进行正常处理, 对该ARP报文进行二层转发,或者将该ARP报文交由上层软件处理。步骤303,网关设备提取ARP报文中的发送端IP地址,以该ARP报文 中的发送端IP地址为目的地址进行路由查找,获耳又对应的出接口信息。提取该报文中的发送端IP地址,生成该报文对应的基本数据段,并在该基本 数据段中标识发送端IP地址,用于表示该才艮文为ARP报文。网关设备以ARP报文中的发送端IP地址为目的地址查找路由表中的直连 路由,获取目的IP地址为该发送端IP地址对应的出接口信息,该出接口信息 表示通过该网关设备向该ARP报文的发送端发送数据包时,需要使用的接口 信息,包括对应的VLAN、端口号或其他类型的逻辑标识符。其中,直连路由是网关设备接口所连接的子网的路由信息,由链路层协 议发现, 一般指去往网关设备的接口地址所在网段的路径信息,该路径信息 不需要由网络管理员维护,也不需要网关设备通过计算获得,只要该接口处 于活动(Active)状态,网关设备就会将通向该网段的路由信息填写到路由表 中去。直连路由包括主机路由和网段路由,主机路由是目的IP地址为主机的 路由;网段路由,也称接口路由,其目的IP地址为某段IP地址,指向的下一 跳为本机,在正常情况下IP报文到网段路由的匹配需要由网关设备的CPU处 理。由于主机路由和网段路由的特殊性,网关设备根据ARP报文中的发送端 IP地址查找ARP报文的出接口信息之前,需要预先对路由表中的直连路由进 行标记,即在路由表中对所有的主机路由和/或网段路由设置标记位,以便于 后续的路由查找。步骤304,当获取的出接口信息与接收ARP报文的入接口信息一致时, 该ARP报文为合法的ARP报文;当获取的出接口信息与接收ARP报文的入 接口信息不一致时,该ARP报文为攻击报文。具体地,当网关i殳备认为ARP才艮文为合法ARP才艮文时,该网关设备对该 ARP报文进行二层转发或者将该ARP报文送上层软件处理;当网关设备认为 ARP报文为攻击报文时,该网关设备将该ARP报文进行过滤或者,既进行过 滤又进行告警或者,既进行过滤又进行计数。另夕卜,网关设备以ARP报文中的发送端IP地址为目的地址进行路由查找 时,没有查找到对应的出接口信息,则在严格^险查^^莫式下,认为该ARP"^艮文 为攻击报文,在松散模式下,认为该ARP报文为合法ARP报文。需要说明的是,本发明中的网关设备可以为硬件转发芯片、NP (NetworkProcessor,网络处理器)或者多核CPU等设备。以下结合具体的应用场景对上述检测ARP才艮文合法性的方法进行详细、 具体的描述,如图4所示,为本发明的应用场景中的检测ARP报文合法性的 过程示意图。其中,Rl、 R2为网关设备,R2对接收到的ARP报文进行检观'J, Rl和R2通过VLAN 100中的接口进行连接,R2还通过VLAN 10中的接口 与VLAN 10中IP地址为192.158.1.2的主沖几连4妻。如图5所示,为本发明的应用场景一中的检测ARP报文合法性的流程图, 具体包括以下步骤步骤501 ,网关设备R2接收发送端IP地址为192.168.1.2的ARP报文, 记录该ARP报文的入接口信息为VLAN 10,并判断该ARP报文对应的入接 口为三层4妾口 。具体地,网关设备R2获耳又接收ARP报文的接口对应的IP地址为 192.168.1.1/24,从而确定该接口为三层接口 。步骤502,网关设备R2识别接收到的报文为ARP报文,提取该报文的发 送端IP地址192.168.1.2,并在3各由表中查找到目的IP地址为该发送端IP地 址对应的出4妻口信息为VLAN 10 。其中,路由表的内容包括目的IP地址和VLAN等信息,网关设备R2将 提取到的发送端IP地址作为目的IP地址,查找对应的VLAN,获取向ARP 报文的发送端发送数据包时对应的出接口信息。步骤503,网关设备R2对ARP报文进行二层转发,或者将该ARP报文 交由上层软件处理。具体地,由于ARP报文对应的入接口信息和出接口信息均为VLAN 10, 网关设备R2判断该ARP报文对应的入接口信息和出接口信息 一致、该ARP 报文为正常ARP报文,并对该ARP才艮文进行正常处理。如图6所示,为本发明的应用场景二中的检测ARP报文合法 的流程图, 具体包括以下步骤步骤601 ,网关设备R2接收发送端IP地址为202.10.1.2的ARP报文, 记录该ARP报文的入接口信息为VLAN 10,并判断该ARP报文对应的入接 口为三层4妻口。具体地,网关设备R2获取接收ARP报文的接口对应的IP地址为 192.168.1.1/24,从而确定该接口为三层接口 。步骤602,网关设备R2识别接收到的报文为ARP报文,提取该报文的发 送端IP地址202.10.1.2,并在路由表中查找到目的IP地址为该发送端IP地址 对应的出接口信息为VLAN 100。其中,路由表的内容包括目的IP地址和VLAN等信息,网关设备R2将 提取到的发送端IP地址作为目的IP地址,查找对应的VLAN,获取向ARP 报文的发送端发送数据包时对应的出接口信息。步骤603,网关设备R2对ARP报文进行过滤、告警和统计计数。具体地,由于ARP报文对应的入接口信息为VLAN 10,出接口信息为 VLAN 100 ,网关设备R2判断该ARP报文对应的入接口信息和出接口信息不 一致、该ARP报文为ARP攻击报文,并对该ARP报文进行异常处理。提供了一种应用上述方法的装置。如图7所示,为本发明中的一种检测ARP报文合法性的装置结构示意图, 包括收发模块710,用于接收ARP报文,判断该ARP报文的入接口是否为三 层接口。提取模块720,用于在收发模块710判断ARP报文对应的入接口为三层 接口时,提取该ARP报文中的发送端IP地址。获取模块730,用于以提取模块720提取的ARP报文中的发送端IP地址 为目的地址进行路由查找,获取对应的出接口信息。上述获取模块730,具体用于查找路由表中的直连路由,获取目的IP地 址为发送端IP地址对应的出接口信息。检测模块740,用于当获取模块730获取的出接口信息与接收ARP报文 的入接口信息一致时,认为该ARP报文为合法的ARP报文;当获取模块730 获取的出接口信息与接收ARP报文的入接口信息不一致时,认为该ARP报文 为攻击才艮文。
上述检测模块740,还用于当荻取模块730以ARP报文中的发送端IP地 址为目的地址进行路由查找时,没有查找到对应的出接口信息,则在严格检 查模式下,认为该ARP报文为攻击报文,在松散模式下,认为该ARP报文为 合法ARP纟艮文。
上述检测模块740,还用于当认为ARP报文为合法ARP报文时,对该 ARP报文进行二层转发或者将该ARP报文送上层软件处理;当认为ARP报 文为攻击报文时,将该ARP报文进行过滤或者,既进行过滤又进行告警或者, 既进行过滤又进行计数。
标识模块750,用于预先对路由表中的直连路由进行标记,以便于获取模 块730查找该直连路由。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件, 但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案
该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算 机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明所述的 方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的 模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解本发明中的装置中的模块可以按照实施例描述 进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一 个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆 分成多个子模块。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此, 任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种检测地址解析协议ARP报文合法性的方法,应用于包括网关设备的系统中,其特征在于,所述方法包括以下步骤所述网关设备接收ARP报文,判断所述ARP报文的入接口是否为三层接口;如果所述ARP报文对应的入接口为三层接口,则所述网关设备提取所述ARP报文中的发送端互联网协议IP地址,以所述ARP报文中的发送端IP地址为目的地址进行路由查找,获取对应的出接口信息;当获取的出接口信息与接收所述ARP报文的入接口信息一致时,所述ARP报文为合法的ARP报文;当获取的出接口信息与接收所述ARP报文的入接口信息不一致时,所述ARP报文为攻击报文。
2、 如权利要求1所述的方法,其特征在于,所述网关设备以所述ARP 报文中的发送端IP地址为目的地址进行路由查找,获取对应的出接口信息, 包括所述网关设备查找路由表中的直连路由,获取目的IP地址为发送端IP地 址对应的出接口信息。
3、 如权利要求2所述的方法,其特征在于,所述网关设备预先对所述路 由表中的直连路由进行标记。
4、 如权利要求1所述的方法,其特征在于,所述网关设备以所述ARP 报文中的发送端IP地址为目的地址进行路由查找时,没有查找到对应的出接 口信息,则在严格检查模式下,认为该ARP报文为攻击报文,在松散模式下, 认为该ARP才艮文为合法ARP报文。
5、 如权利要求1所述的方法,其特征在于,当所述网关设备认为所述 ARP 4艮文为合法ARP 4艮文时,该网关"i殳备对该ARP才艮文进行二层转发或者 将该ARP报文送上层软件处理;当所述网关设备认为所述ARP报文为攻击报 文时,该网关设备将该ARP报文进行过滤或者,既进行过滤又进行告警或者, 既进行过滤又进行计数。
6、 一种检测ARP报文合法性的装置,其特征在于,包括 收发模块,用于接收ARP报文,判断所述ARP报文的入接口是否为三层接口;提取模块,用于在所述收发模块判断所述ARP报文对应的入接口为三层 接口时,提取所述ARP报文中的发送端IP地址;获取模块,用于以所述提取模块提取的所述ARP报文中的发送端IP地址 为目的地址进行路由查找,获取对应的出接口信息;检测模块,用于当所述获取模块获取的出接口信息与接收所述ARP报文 的入接口信息一致时,认为所述ARP报文为合法的ARP报文;当所述荻取模 块获取的出接口信息与接收所述ARP报文的入接口信息不一致时,认为所述 ARP 4艮文为攻击才艮文。
7、 如权利要求6所述的装置,其特征在于,所述获取模块,具体用于查找路由表中的直连路由,获取目的IP地址为 发送端IP地址对应的出4妻口信息。
8、 如权利要求7所述的装置,其特征在于,还包括标识模块,用于预先对所述路由表中的直连路由进行标记,以便于所述 获取模块查找所述直连路由。
9、 如权利要求6所述的装置,其特征在于,所述检测模块,还用于当所述获取模块以所述ARP报文中的发送端IP 地址为目的地址进行路由查找时,没有查找到对应的出接口信息,则在严格 检查模式下,认为该ARP报文为攻击报文,在松散模式下,认为该ARP报文 为合法ARP报文。
10、 如权利要求6所述的装置,其特征在于,所述4企测才莫块,还用于当认为所述ARP才艮文为合法ARP报文时,对该 ARP报文进行二层转发或者将该ARP报文送上层软件处理;当认为所述ARP 报文为攻击报文时,将该ARP报文进行过滤或者,既进行过滤又进行告警或 者,既进行过滤又进行计数。
全文摘要
本发明公开了一种检测地址解析协议ARP报文合法性的方法及装置,应用于包括网关设备的系统中,所述方法包括以下步骤所述网关设备接收ARP报文,判断所述ARP报文的入接口是否为三层接口;如果所述ARP报文对应的入接口为三层接口,则所述网关设备提取所述ARP报文中的发送端互联网协议IP地址,以所述ARP报文中的发送端IP地址为目的地址进行路由查找,获取对应的出接口信息;当获取的出接口信息与接收所述ARP报文的入接口信息一致时,所述ARP报文为合法的ARP报文;当获取的出接口信息与接收所述ARP报文的入接口信息不一致时,所述ARP报文为攻击报文。本发明实现了对非法ARP报文的检测。
文档编号H04L29/12GK101610266SQ20091015737
公开日2009年12月23日 申请日期2009年7月28日 优先权日2009年7月28日
发明者汪洪远 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1