专利名称:一种上送地址解析协议报文的方法和装置的制作方法
技术领域:
本发明涉及通信领域,特别涉及一种上送地址解析协议报文的方法和装置。
背景技术:
ARP(地址解析协议,Address Resolution Protocol)是一种将IP(因特网协议, Internet Protocol)地址映射到MAC (媒体接入控制,Media Access Control)地址的协 议。其基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺 利进行。但是在现有网络中通常会存在基于ARP的网络攻击行为,下面简单介绍几中基于 ARP的网络攻击场景1. ARP泛洪攻击攻击者不断的发送大量的ARP请求报文和ARP应答报文,报文的 源IP地址,源MAC地址,VLAN(虚拟局域网,Virtual Local Area Network)等随机变化。 这种攻击的目的有两个,一个是通过大量的ARP报文导致接收方(例如网关设备)的ARP 上送带宽被挤占,挤掉正常用户的ARP报文;另外一个就是让接收方大量学习错误的ARP表 项,将接收方的ARP表占满。2. ARP网关欺骗攻击攻击者冒充网关设备向同一网段内的其他主机发送ARP报 文,该ARP报文的源IP地址为网关的IP地址,而该ARP报文的源MAC地址则为攻击者自己 的MAC地址。同一网段内其他主机接收到上述攻击者发送的ARP报文后,学习到错误的网 关ARP表项,后续同一网段内其他主机发送给网关设备的数据将被错误的发送到攻击者。3. ARP用户欺骗攻击攻击者冒充同一网段内其他正常主机向网关设备发送ARP 报文,该ARP报文的源IP地址是同一网段内其他正常主机的IP地址,但是该ARP报文的 源MAC地址则是攻击者自己的MAC地址或者是随机封装的MAC地址。网关设备接收到上述 ARP报文后,学习到错误的ARP表项,后续网关设备发往同一网段内其他正常主机的数据将 被错误的发送到攻击者或者其他的地方。为了防止上述基于ARP的网络攻击行为对用户或者网关设备造成损失,现有技术 中,提供了多种解决方案。例如,在一种现有技术中,接收方收到ARP请求报文之后,利用转发平面中NP(网 络处理器,Network Processor)的高速处理能力,直接在转发平面中回应该ARP请求报文, 不将该ARP请求报文上送CPU (中央处理单元,Central Processor Unit)。从而避免了攻 击者发送的大量ARP请求报文上送至CPU,造成ARP泛洪攻击。又例如,在另一种现有技术中,接收方接收到ARP请求报文(此处称为第一 ARP请 求报文)之后,根据接收到的第一 ARP请求报文,构造一个新的ARP请求报文(此处称为第 二 ARP请求报文)并发送;当接收方再次接收到第一 ARP请求报文的发送方针对第二 ARP 请求报文回应的第三ARP应答报文时,根据第一 ARP请求报文以及第三ARP应答报文携带 的发送方的信息,确认该发送方的地址映射关系的正确性。从而避免了攻击者发送的伪造 的ARP请求报文上送至CPU,造成ARP欺骗攻击。[oo10] 可以看到,上述现有技术的技术方案中,接收方接收到ARP报文尤其是ARP请求报文之后,均不上送至CPU进行处理,而是在转发层面直接进行处理(例如,回应ARP应答报文或者回应一个新的ARP请求报文),对于一些必须将ARP报文上送至CPU进行处理的应用,例如ARP Pr。Xy(ARP代理),QinQ(802.1Q in 802.1Q)等,上述技术方案无法支持。发明内容[oo11] 有鉴于此,本发明的实施例提供了一种上送ARP报文的方法和装置,能够解决现有技术中对于一些必须将ARP报文上送至CPU进行处理的应用无法支持的问题。[oo12] 一种上送ARP报文的方法,包括接收第一ARP应答报文;判断在第一映射关系表中是否存在第一ARP应答报文携带的源因特网协议工P地址和源媒体接入控制MAC地址的映射关系表项,其中,第一映射关系表中至少包括接收到的ARP请求报文携带的源工P地址和源MAC地址的映射关系表项;当在第一映射关系表中存在第一ARP应答报文携带的源工P地址和源MAC地址的映射关系表项时,根据第一ARP应答报文获得第一ARP请求报文,将第一ARP请求报文上送中央处理单元CPU进行处理;其中,第一ARP请求报文携带的源工P地址与第一ARP应答报文携带的源工P地址相同,第一ARP请求报文携带的源MAC地址与第一ARP应答报文携带的源MAC地址相同。[oo13] 一种上送ARP报文的装置,包括第一接收模块,用于接收第一ARP应答报文;第一判断模块,用于判断在第一映射关系表中是否存在第一ARP应答报文携带的源工P地址和源MAC地址的映射关系表项;其中,第一映射关系表中至少包括接收到的ARP请求报文携带的源工P地址以及源MAC地址的映射关系表项;第一上送模块,用于当在第一映射关系表中存在第一ARP应答报文携带的源工P地址和源MAC地址的映射关系表项时,根据第一ARP应答报文获得第一ARP请求报文,将第一ARP请求报文上送CPU进行处理;其中,第一ARP请求报文携带的源工P地址与第一ARP应答报文携带的源工P地址相同,第一ARP请求报文携带的源MAC地址与第一ARP应答报文携带的源MAC地址相同。[oo14] 采用本发明的实施例提供的上送ARP报文的方法和装置,能够在确定ARP报文合法性的情况下,将ARP报文上送至CPU进行处理,从而实现支持一些必须将ARP报文上送至CPU进行处理的应用。
[oo15] 图l为本发明的一个实施例提供的一种上送ARP报文的方法流程示意图;[oo16] 图2为本发明的又一个实施例提供的一种上送ARP报文的方法流程示意图;[oo17] 图3为本发明的又一个实施例提供的一种上送ARP报文的方法流程示意图;[oo18] 图4为本发明的又一个实施例提供的一种上送ARP报文的方法流程示意图;[oo19] 图5为本发明的又一个实施例提供的一种上送ARP报文的方法流程示意 图6为本发明的一个实施例提供的一种上送ARP报文的装置结构示意 图7为本发明的又一个实施例提供的一种上送ARP报文的装置结构示意 图8为本发明的又一个实施例提供的一种上送ARP报文的装置结构示意 图9为本发明的又一个实施例提供的一种上送ARP报文的装置结构示意 图lo为本发明的实施例的一个具体应用场景;
图11为本发明的实施例的又一个具体应用场景。
具体实施例方式为使本发明实施例的目的、技术方案及优点更加清楚明白,以下参照附图,对本发 明的实施例作进一步地详细说明。如图1所示,图1为本发明的一个实施例提供的一种上送ARP报文的方法流程示 意图,该方法包括100,接收 ARP 报文;在现有技术中,ARP报文包括ARP请求报文和ARP应答报文。在本实施例中,当接 收到的ARP报文为ARP应答报文(以下称为第一 ARP应答报文)时,执行110 ;110,判断在第一映射关系表中是否存在上述第一 ARP应答报文携带的源IP地址 和源MAC地址的映射关系表项;在本发明的实施例中,第一映射关系表中至少包括接收到的ARP请求报文携带的 源IP地址以及源MAC地址表项。根据第一映射关系表,就能够判断出接收到的第一 ARP应 答报文是否为合法用户发出的。可选的,第一映射关系表中还可以包括接收到的ARP请求报文携带的VLAN等其他 fn息ο可选的,第一映射关系表中还可以包括上送状态信息,例如,上送状态信息可以 是某一个映射关系表项对应的ARP报文是否已经上送CPU处理,若是,可将上送状态信息 记录为Sl ;若否,可将上送状态信息记录为SO。可选的,在实际的应用中,第一映射关系表中的表项,可以是内存中的一条记录; 或者,可以是数据库中的一条记录;或者,可以是TCAM(Ternary Content Addressable Memory,三态内容寻址存储器)中的一条记录。120,当在第一映射关系表中存在第一 ARP应答报文携带的源IP地址和源MAC地 址的映射关系表项时,根据第一 ARP应答报文获得第一 ARP请求报文,将第一 ARP请求报文 上送CPU进行处理;其中,第一 ARP请求报文携带的源IP地址与第一 ARP应答报文携带的 源IP地址相同,第一 ARP请求报文携带的源MAC地址与第一 ARP应答报文携带的源MAC地 址相同在本实施例中,当在第一映射关系表中存在第一 ARP应答报文携带的源IP地址和 源MAC地址的映射关系表项时,可以认为该第一 ARP应答报文是合法用户所发出的,此时, 将第一 ARP请求报文上送到CPU进行处理。可选的,在本发明的实施例中,可以将第一 ARP应答报文携带的源IP地址和源MAC 地址保留,将第一 ARP应答报文携带的目的IP地址和目的MAC地址去掉,并将报文类型转 换为请求报文,得到第一 ARP请求报文,也就是将第一 ARP应答报文转换为同源的第一 ARP 请求报文,并且上送该第一 ARP请求报文到CPU进行处理。当然,在实际的应用中,并不局限于通过上述方式得到第一 ARP请求报文,后面的 实施例中会有详细介绍。如图2所示,图2为本发明的一个实施例提供的又一种上送ARP报文的方法流程 示意图,该方法包括
200,接收 ARP 报文;在现有技术中,ARP报文包括ARP请求报文和ARP应答报文。在本实施例中,当接 收到的ARP报文为第一 ARP应答报文时,执行210 220 ;210,判断在第一映射关系表中是否存在上述第一 ARP应答报文携带的源IP地址 和源MAC地址的映射关系表项;220,当在第一映射关系中存在第一 ARP应答报文携带的源IP地址和源MAC地址 的映射关系表项时,根据第一 ARP应答报文获得第一 ARP请求报文,将第一 ARP请求报文上 送CPU进行处理;其中,第一 ARP请求报文携带的源IP地址与第一 ARP应答报文携带的源 IP地址相同,第一 ARP请求报文携带的源MAC地址与第一 ARP应答报文携带的源MAC地址 相同。可选的,如果第一映射关系表包括了上送状态信息,例如,上送状态信息可以是 某一个映射关系表项对应的ARP报文是否已经上送CPU处理,若是,可将上送状态信息记录 为Sl ;若否,可将上送状态信息记录为SO。还可以在第一映射关系表中存在第一 ARP应答 报文携带的源IP地址和源MAC地址的映射关系表项时,判断该上送状态信息是SO还是Sl。 若为Si,则说明该映射关系表项对应的ARP报文已经上送过了,此时可以不再做任何处理, 以减轻CPU的负担;若为S0,则仍可执行220中的“将第一 ARP请求报文上送CPU进行处 理”,然后,将该上送状态信息置为Si。当接收到的ARP报文为ARP请求报文(以下称为第二 ARP请求报文)时,执行 230 240 ;230,判断在第一映射关系表中是否存在第二 ARP请求报文携带的源IP地址和源 MAC地址的映射关系表项;240,当第一映射关系表中不存在第二 ARP请求报文携带的源IP地址和源MAC地 址的映射关系表项时,根据第二 ARP请求报文,生成并发送第三ARP请求报文;在本实施例中,第三ARP请求报文携带的目的IP地址与第二 ARP请求报文携带的 源IP地址相同。可选的,在本发明的又一实施例中,上述第一 ARP应答报文,可以为上述第三ARP 请求报文的接收方针对上述第三ARP请求报文的回应,此时,本发明的实施例提供的一种 上送ARP报文的方法流程示意图如图3所示,该方法包括300、接收第二 ARP请求报文;310,判断在第一映射关系表中是否存在第二 ARP请求报文携带的源IP地址和源 MAC地址的映射关系表项;320,当第一映射关系表中不存在第二 ARP请求报文携带的源IP地址和源MAC地 址的映射关系表项时,根据第二 ARP请求报文,生成并发送第三ARP请求报文;其中,第三 ARP请求报文携带的目的IP地址与第二 ARP请求报文携带的源IP地址相同;330,接收第一 ARP应答报文;本实施例中,第一 ARP应答报文为上述第三ARP请求报文的接收方针对上述第三 ARP请求报文的回应;340,判断在第一映射关系表中是否存在第一 ARP应答报文携带的源IP地址和源 MAC地址的映射关系表项;
350,当在第一映射关系表中存在第一 ARP应答报文携带的源IP地址和源MAC地 址的映射关系表项时,根据第一 ARP应答报文获得第一 ARP请求报文,将第一 ARP请求报文 上送CPU进行处理;其中,第一 ARP请求报文携带的源IP地址与第一 ARP应答报文携带的 源IP地址相同,第一 ARP请求报文携带的源MAC地址与第一 ARP应答报文携带的源MAC地 址相同。可选的,可以将第一ARP应答报文携带的源IP地址和源MAC地址保留,将第一ARP 应答报文携带的目的IP地址和目的MAC地址去掉,并将报文类型转换为请求报文,得到350 中的第一 ARP请求报文。当然,在本实施例中,还可以将300中接收到的第二 ARP请求报文缓存起来,当350 中判断出在第一映射关系表中存在第一 ARP应答报文携带的源IP地址和源MAC地址的映 射关系表项时,可以将之前缓存的第二 ARP请求报文上送CPU进行处理。这种情况下,350 中的第一 ARP请求报文,就是300中的第二 ARP请求报文。可选的,在本实施例中,当第一映射关系表中存在第二 ARP请求报文携带的源IP 地址和源MAC地址的映射关系表项时,说明在此之前已经收到过该第二 ARP请求报文,此时 对该第二 ARP请求报文不做任何处理。可选的,在本发明的又一实施例中,在接收上述第一 ARP应答报文之前,还可以发 送一个ARP请求报文(以下称为第四ARP请求报文),则第一 ARP应答报文,为第四ARP请 求报文的接收方针对第四ARP请求报文的回应。此时,本发明的实施例提供的一种上送ARP 报文的方法流程示意图如图4所示,该方法包括400,发送第四ARP请求报文;410,接收第一 ARP应答报文;本实施例中,第一 ARP应答报文,为第四ARP请求报文的接收方针对第四ARP请求 报文的回应。420,判断在第一映射关系表中是否存在第一 ARP应答报文携带的源IP地址和源 MAC地址的映射关系表项;430,当在第一映射关系表中存在第一 ARP应答报文携带的源IP地址和源MAC地 址的映射关系表项时,根据第一 ARP应答报文获得第一 ARP请求报文,将第一 ARP请求报文 上送CPU进行处理;其中,第一 ARP请求报文携带的源IP地址与第一 ARP应答报文携带的 源IP地址相同,第一 ARP请求报文携带的源MAC地址与第一 ARP应答报文携带的源MAC地 址相同。可选的,在本发明的又一实施例中,提供了一种上送ARP报文的方法流程示意图, 如图5所示,该方法包括510,接收第一 ARP应答报文;520,判断在第一映射关系表中是否存在第一 ARP应答报文携带的源IP地址和源 MAC地址的映射关系表项;530,当在第一映射关系表中存在第一 ARP应答报文携带的源IP地址和源MAC地 址的映射关系表项时,根据第一 ARP应答报文获得第一 ARP请求报文,将第一 ARP请求报文 上送CPU进行处理;其中,第一 ARP请求报文携带的源IP地址与第一 ARP应答报文携带的 源IP地址相同,第一 ARP请求报文携带的源MAC地址与第一 ARP应答报文携带的源MAC地址相同。540,当在第一映射关系表中不存在第一 ARP应答报文携带的源IP地址和源MAC 地址的映射关系表项时,判断在第二映射关系表中是否存在第一 ARP应答报文携带的源IP 地址表项;在本发明的实施例中,第二映射关系表至少包括发送的ARP请求报文携带的目的 IP地址表项;可选的,第二映射关系表中还可以包括上送状态信息,例如,上送状态信息可以 是某一个映射关系表项对应的ARP报文是否已经上送CPU处理,若是,可将上送状态信息 记录为Sl ;若否,可将上送状态信息记录为SO。可选的,在实际的应用中,第二映射关系表的表项,可以是内存中的一条记录;或 者,可以是数据库中的一条记录;或者,可以是TCAM中的一条记录。550,当在第二映射关系表中存在第一 ARP应答报文携带的源IP地址表项时,将第 一 ARP应答报文上送至CPU进行处理。可选的,如果第二映射关系表包括了上送状态信息,例如,上送状态信息可以是 某一个映射关系表项对应的ARP报文是否已经上送CPU处理,若是,可将上送状态信息记录 为Sl ;若否,可将上送状态信息记录为SO。还可以在第二映射关系表中存在第一 ARP应答 报文携带的源IP地址表项时,判断该上送状态信息是SO还是Si。若为Si,则说明该映射 关系表项对应的ARP报文已经上送过了,此时可以不再做任何处理,以减轻CPU的负担;若 为S0,则仍可执行550中的“将第一 ARP应答报文上送CPU进行处理”,然后,将该上送状态 信息置为Si。采用本发明的实施例提供的上述上送ARP报文的方法,能够在确定ARP报文合法 性的情况下,将ARP报文上送至CPU进行处理,从而实现支持一些必须将ARP报文上送至 CPU进行处理的应用。本发明的一个实施例提供了一种上送ARP报文的装置,如图6所示,该装置包括第一接收模块600,用于接收第一 ARP应答报文;第一判断模块610,用于判断在第一映射关系表中是否存在上述第一 ARP应答报 文携带的源IP地址和源MAC地址的映射关系表项;其中,第一映射关系表中至少包括接收 到的ARP请求报文携带的源IP地址以及源MAC地址的映射关系表项。第一上送模块620,用于当在第一映射关系表中存在第一 ARP应答报文携带的源 IP地址和源MAC地址的映射关系表项时,根据第一 ARP应答报文获得第一 ARP请求报文,将 第一 ARP请求报文上送CPU进行处理;其中,第一 ARP请求报文携带的源IP地址与第一 ARP应答报文携带的源IP地址 相同,第一 ARP请求报文携带的源MAC地址与第一 ARP应答报文携带的源MAC地址相同。可选的,如图7所示,该装置还可以进一步包括第二接收模块630,用于接收第二 ARP请求报文;第二判断模块640,用于判断在第一映射关系表中是否存在第二 ARP请求报文携 带的源IP地址和源MAC地址的映射关系表项;反向探测模块650,用于当第一映射关系表中不存在第二 ARP请求报文携带的源 IP地址和源MAC地址的映射关系表项时,根据第二 ARP请求报文,生成并发送第三ARP请求报文;其中,第三ARP请求报文携带的目的IP地址与第二 ARP请求报文携带的源IP地 址相同。在图7所示实施例中,第一 ARP应答报文可以为第三ARP请求报文的接收方针对 该第三ARP请求报文的回应。可选的,如图8所示,该装置还可以进一步包括发送模块660,用于发送第四ARP请求报文。在图8所示的实施例中,第一 ARP应答报文可以为第四ARP请求报文的接收方针 对该第四ARP请求报文的回应。可选的,如图9所示,该装置还可以进一步包括第三判断模块670,用于当在第一映射关系表中不存在第一 ARP应答报文携带的 源IP地址和源MAC地址的映射关系表项时,判断在第二映射关系表中是否存在第一 ARP应 答报文携带的源I P地址表项;其中,第二映射关系表至少包括发送的ARP请求报文携带的目的IP地址表项;第二上送模块680,用于当在第二映射关系表中存在第一 ARP应答报文携带的源 IP地址表项时,将上述第一 ARP应答报文上送至CPU进行处理。在实际应用中,上述上送ARP报文的装置可以是任何支持ARP协议的网络设备,例 如网关等网络设备。采用本发明的实施例提供的上送ARP报文的装置,能够在确定ARP报文合法性的 情况下,将ARP报文上送至CPU进行处理,从而实现支持一些必须将ARP报文上送至CPU进 行处理的应用。为更好的说明本发明实施例提供的方法和装置,下面结合几个具体的应用场景, 做详细的说明。应用场景一如图10所示,在本应用场景中,网关设备接收到用户A发送的ARP请求报文。网关 设备接收到该ARP请求报文之后,可以将该ARP请求报文携带的源IP地址、源MAC地址等 信息记录下来,形成第一映射关系表(以下称为Tl表),或者在已有的Tl表中增加该ARP 请求报文携带的源IP地址与源MAC地址的映射关系表项。在本场景中,网关设备将该ARP 请求报文携带的源IP地址、源MAC地址以及VLAN等信息记录下来,增加到Tl表中。同时,在本场景中,网关设备接收到该ARP请求报文之后,并没有将该ARP请求报 文直接上送至CPU进行处理,而是判断在Tl表中是否存在该ARP请求报文携带的源IP地 址和源MAC地址的映射关系表项,如果存在,则说明之前已经收到过该ARP请求报文,此时 可以对该ARP请求报文不做任何处理;如果不存在,则说明之前网关设备没有收到过该ARP 请求报文,网关设备并不确定该ARP请求报文的合法性。这种情况下,网关设备根据该ARP 请求报文构造一个反向探测的ARP请求报文,并发送该反向探测的ARP请求报文。其中,该 反向探测的ARP请求报文携带的目的IP地址与接收到的ARP请求报文携带的源IP地址相 同。可选的,在本场景中,网关设备还可以将发送的反向探测的ARP请求报文携带的 目的IP地址记录下来,形成第二映射关系表(以下称为T2表)或增加至已有的T2表中。
用户A接收到网关设备发送的反向探测的ARP请求报文后,会向网关设备回应一 个ARP应答报文。网关设备接收到该ARP应答报文后,根据该ARP应答报文携带的源IP地址和源 MAC地址,判断在Tl表中是否存在该ARP应答报文携带的源IP地址和源MAC地址的映射关 系表项,如果存在,则说明之前网关设备收到的ARP请求报文是合法用户发出的,这种情况 下,网关设备根据该ARP应答报文重新构造同源的ARP请求报文,例如,可以将该ARP应答 报文携带的源IP地址和源MAC地址保留,将该ARP应答报文携带的目的IP地址和目的MAC 地址去掉,并将报文类型转换为请求报文,重新得到一个ARP请求报文,并将该重新得到的 ARP请求报文上送至CPU进行处理。网关设备的CPU对上送的ARP请求报文进行处理后,根据ARP协议的规定,会向用 户A回应一个ARP应答报文。此时,既确定了 ARP请求报文的合法性,保护了网关设备的CPU不受到非法ARP报 文的攻击;又能够将合法的ARP请求报文上送至CPU进行处理,支持了一些必须将ARP报文 上送至CPU进行处理的应用。当然,在本场景中,如果在Tl表中不存在该ARP应答报文携带的源IP地址和源 MAC地址的映射关系表项,这时,有多种可能,例如,可能之前网关设备接收到的ARP请求报 文并不是真实的用户A发送的,而是攻击者伪造的ARP请求报文,因此,网关设备在接收到 ARP请求报文后记录下的源IP地址是用户A的IP地址,而记录下的源MAC地址则是攻击者 的MAC地址。当网关设备发送反向探测ARP请求报文后(反向探测的ARP请求报文携带的目的 IP地址与接收到的ARP请求报文携带的源IP地址相同),由于是广播发送,因此,用户A自 然会回应一个ARP应答报文。此时,网关设备接收到的ARP应答报文携带的源IP地址和源 MAC地址均为用户A的IP地址和MAC地址,自然与Tl表中记录的“用户A的IP地址、攻击 者的MAC”表项不匹配。此时,可选的,可以进一步的判断在T2表中是否存在该ARP应答报文携带的源IP 地址表项,如果存在,则至少说明,该ARP应答报文的发送方,确实接收到了网关设备发出 的ARP请求报文,此时,也可以认为该ARP应答报文的发送方是合法的。因此,也可以将该 ARP应答报文上送至CPU进行处理。应用场景二如图11所示,在本场景中,网关设备主动发送ARP请求报文,请求获取用户B的 MAC地址。可选的,在本场景中,网关设备将发送的ARP请求报文携带的目的IP地址记录下 来,形成T2表或增加至已有T2表中。用户B收到上述网关设备发送的ARP请求报文后,向该网关设备回应一个ARP应 答报文。网关设备接收到用户B回应的ARP应答报文后,根据该ARP应答报文携带的源IP 地址和源MAC地址,判断在Tl表中是否存在该ARP应答报文携带的源IP地址和源MAC地址 的映射关系表项,如果存在,则说明之前网关设备至少收到过来自该用户的ARP请求报文, 可以认为该用户是合法的,这种情况下,网关设备根据该ARP应答报文重新构造同源的ARP请求报文,并将该重新构造的ARP请求报文上送至CPU进行处理。网关设备的CPU对上送的ARP请求报文进行处理后,根据ARP协议的规定,会向用 户B回应一个ARP应答报文。但是,在本场景中,是网关设备主动发送的ARP请求报文,因此,实际应用中,网关 设备很有可能没有收到过来自该用户的ARP请求报文。这种情况下,在Tl表中就不存在该 ARP应答报文携带的源IP地址和源MAC地址的映射关系表项。此时,可以进一步的判断在 T2表中是否存在该ARP应答报文携带的源IP地址表项,如果存在,则至少说明,该ARP应答 报文的发送方,确实接收到了网关设备发出的ARP请求报文,此时,也可以认为该ARP应答 报文的发送方是合法的。因此,也可以将该ARP应答报文上送至CPU进行处理。通过以上的实施方式的描述,本领域的普通技术人员可以清楚地了解到本发明实 施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于 这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产 品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设 备、或者服务器、或者其他网络设备执行本发明各个实施例或者实施例的某些部分所述的 方法。以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种上送地址解析协议ARP报文的方法,其特征在于,所述方法包括接收第一 ARP应答报文;判断在第一映射关系表中是否存在所述第一 ARP应答报文携带的源因特网协议IP地 址和源媒体接入控制MAC地址的映射关系表项,其中,所述第一映射关系表中至少包括接 收到的ARP请求报文携带的源IP地址和源MAC地址的映射关系表项;当在所述第一映射关系表中存在所述第一 ARP应答报文携带的源IP地址和源MAC地 址的映射关系表项时,根据所述第一 ARP应答报文获得第一 ARP请求报文,将所述第一 ARP 请求报文上送中央处理单元CPU进行处理;其中,所述第一 ARP请求报文携带的源IP地址 与所述第一 ARP应答报文携带的源IP地址相同,所述第一 ARP请求报文携带的源MAC地址 与所述第一 ARP应答报文携带的源MAC地址相同。
2.根据权利要求1所述的方法,其特征在于,在所述接收第一ARP应答报文之前,所述 方法还包括接收第二 ARP请求报文;所述第一映射关系表中不存在所述第二 ARP请求报文携带的源IP地址和源MAC地址 的映射关系表项时,根据所述第二 ARP请求报文,生成并发送第三ARP请求报文,其中,所述 第三ARP请求报文携带的目的IP地址与所述第二 ARP请求报文携带的源IP地址相同;其中,所述第一 ARP应答报文,为所述第三ARP请求报文的接收方针对所述第三ARP请 求报文的回应。
3.根据权利要求1所述的方法,其特征在于,在所述接收第一ARP应答报文之前,所述 方法还包括发送第四ARP请求报文;其中,所述第一 ARP应答报文,为所述第四ARP请求报文的接 收方针对所述第四ARP请求报文的回应。
4.根据权利要求1至3中任一项所述的方法,其特征在于,当在所述第一映射关系表中 不存在所述第一 ARP应答报文携带的源IP地址和源MAC地址的映射关系表项时,判断在第 二映射关系表中是否存在第一 ARP应答报文携带的源IP地址表项,其中,所述第二映射关 系表至少包括发送的ARP请求报文携带的目的IP地址表项;当在所述第二映射关系表中存在所述第一 ARP应答报文携带的源IP地址表项时,将所 述第一 ARP应答报文上送至CPU进行处理。
5.一种上送地址解析协议ARP报文的装置,其特征在于,所述装置包括第一接收模块,用于接收第一 ARP应答报文;第一判断模块,用于判断在第一映射关系表中是否存在所述第一 ARP应答报文携带的 源IP地址和源MAC地址的映射关系表项;其中,所述第一映射关系表中至少包括接收到的 ARP请求报文携带的源IP地址以及源MAC地址的映射关系表项;第一上送模块,用于当在所述第一映射关系表中存在所述第一 ARP应答报文携带的源 IP地址和源MAC地址的映射关系表项时,根据所述第一 ARP应答报文获得第一 ARP请求报 文,将所述第一 ARP请求报文上送CPU进行处理;其中,所述第一 ARP请求报文携带的源IP地址与所述第一 ARP应答报文携带的源IP 地址相同,所述第一 ARP请求报文携带的源MAC地址与所述第一 ARP应答报文携带的源MAC 地址相同。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括第二接收模块,用于接收第二 ARP请求报文;第二判断模块,用于判断在所述第一映射关系表中是否存在所述第二 ARP请求报文携 带的源IP地址和源MAC地址的映射关系表项;反向探测模块,用于当所述第一映射关系表中不存在所述第二 ARP请求报文携带的源 IP地址和源MAC地址的映射关系表项时,根据所述第二 ARP请求报文,生成并发送第三ARP 请求报文;其中,所述第三ARP请求报文携带的目的IP地址与所述第二 ARP请求报文携带的源IP 地址相同;所述第一 ARP应答报文,为所述第三ARP请求报文的接收方针对所述第三ARP请 求报文的回应。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括发送模块,用于发送第四ARP请求报文;其中所述第一 ARP应答报文,为所述第四ARP 请求报文的接收方针对所述第四ARP请求报文的回应。
8.根据权利要求5至7中任一项所述的装置,其特征在于,所述装置还包括第三判断模块,用于当在所述第一映射关系表中不存在所述第一 ARP应答报文携带的 源IP地址和源MAC地址的映射关系表项时,判断在第二映射关系表中是否存在第一 ARP应 答报文携带的源IP地址表项;其中,所述第二映射关系表至少包括发送的ARP请求报文携 带的目的IP地址表项;第二上送模块,用于当在所述第二映射关系表中存在第一 ARP应答报文携带的源IP地 址表项时,将所述第一 ARP应答报文上送至CPU进行处理。
全文摘要
本发明涉及通信领域,公开了一种上送ARP报文的方法,以解决现有技术中对于一些必须将ARP报文上送至CPU进行处理的应用无法支持的问题。该方法包括接收第一ARP应答报文;判断在第一映射关系表中是否存在第一ARP应答报文携带的源IP和源MAC的映射关系表项;当在第一映射关系表中存在第一ARP应答报文携带的源IP和源MAC的映射关系表项时,根据第一ARP应答报文获得第一ARP请求报文,将第一ARP请求报文上送中央处理单元CPU进行处理;其中,第一ARP请求报文携带的源IP、源MAC分别与第一ARP应答报文携带的源IP、源MAC相同。本发明的实施例还公开了一种上送ARP报文的装置。
文档编号H04L29/12GK101997768SQ20091018961
公开日2011年3月30日 申请日期2009年8月21日 优先权日2009年8月21日
发明者宋璇 申请人:华为技术有限公司