首页> 中国专利> 一种基于免费ARP实现代理ARP的方法及系统

一种基于免费ARP实现代理ARP的方法及系统

摘要

本发明公开一种基于免费ARP实现代理ARP的方法,包括如下步骤:A、接入交换机通过监听IP主机的免费ARP过程,创建和保存主机IP地址信息,并将该主机IP地址信息发送至汇聚交换机;B、汇聚交换机接收所述主机IP地址信息,并将其保存到主机IP地址信息表中;C、汇聚交换机在接收到IP主机发送的ARP请求报文后,检测该报文中的目标IP地址是否在所述主机IP地址信息表中,如果在,则向IP主机发送ARP回应报文,如果不在,则丢弃该ARP请求报文。本发明实现了代理ARP中目标终端的可达性检测。

著录项

  • 公开/公告号CN102572013A

    专利类型发明专利

  • 公开/公告日2012-07-11

    原文格式PDF

  • 申请/专利权人 神州数码网络(北京)有限公司;

    申请/专利号CN201210034934.8

  • 发明设计人 梁小冰;

    申请日2012-02-16

  • 分类号H04L29/12(20060101);H04L12/56(20060101);

  • 代理机构11332 北京品源专利代理有限公司;

  • 代理人宋松

  • 地址 100085 北京市海淀区上地九街9号数码科技广场一段三层A区

  • 入库时间 2023-12-18 06:08:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-17

    授权

    授权

  • 2013-06-05

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

    实质审查的生效

  • 2012-07-11

    公开

    公开

说明书

技术领域

本发明涉及计算机数据通信领域,尤其涉及一种基于免费ARP实现代理ARP 的方法及系统。

背景技术

地址解析协议(Address Resolution Protocol,ARP)实现了通过IP地址 得知其物理地址。免费ARP(Gratuitous ARP)报文是一种特殊的ARP报文,该 报文中携带的发送端互联网协议(Internet Protocol,IP)地址和目标IP地 址都是本机IP地址,源介质访问控制(Media Access Control,MAC)地址是 本机MAC地址,目的MAC地址是广播地址。

主机通过对外发送免费ARP报文来实现以下功能:(1)确定其它主机的IP 地址是否与本机的IP地址冲突。当其它主机收到免费ARP报文后,如果发现该 报文中的IP地址和自己的IP地址相同,则返回一个ARP回应给发送免费ARP 报文的主机,告知该主机所用的IP地址有冲突。(2)当主机改变MAC地址时, 通过发送免费ARP报文通知其它主机更新ARP缓存表。其中,ARP缓存表用于存 储网络中各主机和路由器的IP地址到MAC地址映射关系。

在主机的ARP缓存表中没有存储需要与其通信的主机的MAC地址时,则向 该主机发送ARP请求报文。如果ARP请求报文是从一个网络的主机发往同一网 段却不在同一物理网络上的另一台主机,那么连接它们的具有代理ARP功能的 设备就可以回答该请求,这个过程称作代理ARP(Proxy ARP)。代理ARP功能屏 蔽了分离的物理网络这一事实,使用户使用起来好像在同一个物理网络上,可 以只被应用在一个设备上(此时该设备的作用相当于网关),不会影响到网络中 其他设备的路由表。而且代理ARP功能可以在主机没有配置缺省网关或者主机 没有任何路由能力的情况下使用。

但是,代理ARP存在如下不足:具有代理ARP功能的设备在没有检测目标 IP的可达性的情况下,就直接向发送ARP请求报文的请求端发送ARP回应,使 得请求端的ARP缓存表中存在目标终端的IP地址和硬件地址的映射关系,请求 端根据这种硬件关系发起与目标终端的通信,然而,由于没有检测目标IP的可 达性,目标终端可能并不存在,最终无法完成通信。

发明内容

针对上述技术问题,本发明的目的在于提供一种基于免费ARP实现代理ARP 的方法及系统,其实现了代理ARP中目标终端的可达性检测。

为达到上述目的,本发明是通过以下技术方案来实现的:

一种基于免费ARP实现代理ARP的方法,包括如下步骤:

A、接入交换机通过监听IP主机的免费ARP过程,创建和保存主机IP地址 信息,并将该主机IP地址信息发送至汇聚交换机;

B、汇聚交换机接收所述主机IP地址信息,并将其保存到主机IP地址信息 表中;

C、汇聚交换机在接收到IP主机发送的ARP请求报文后,检测该报文中的 目标IP地址是否在所述主机IP地址信息表中,如果在,则向IP主机发送ARP 回应报文,如果不在,则丢弃该ARP请求报文。

特别的,所述步骤A中接入交换机监听IP主机的免费ARP过程包括:

接入交换机向交换芯片下发规则,在交换芯片收到ARP报文后,均将其复 制一份发送给接入交换机处理器进行软件解析,然后,ARP报文由交换芯片执行 硬件转发,其中,所述ARP报文包括免费ARP报文、ARP请求报文及ARP回应报 文。

特别的,所述步骤A具体包括:

接入交换机通过监听IP主机的免费ARP过程,创建和保存主机IP地址信 息,将所述主机IP地址信息加入到主机IP地址信息报文中,并对该报文进行 加密和散列处理,然后,根据接入交换机配置的接收主机IP地址信息的汇聚交 换机的地址,将所述主机IP地址信息报文发送至汇聚交换机。

特别的,所步骤B具体包括:

汇聚交换机解析出与所述汇聚交换机连接的所有接入交换机传入的主机IP 地址信息报文中的主机IP地址信息,并将该主机IP地址信息保存到本地的主 机IP地址信息表中。

特别的,所述步骤C具体包括:

汇聚交换机在接收到IP主机发送的ARP请求报文后,判断ARP请求是否满 足代理ARP的条件,如果满足代理ARP的条件,则检测该报文中的目标IP地址 是否在所述主机IP地址信息表中,如果在,则向IP主机发送ARP回应报文, 如果不在,则丢弃该ARP请求报文;其中,所述代理ARP的条件是指:ARP请求 报文中的目标IP地址处在该汇聚交换机另一个三层接口的网段中,与发送ARP 请求报文的IP主机不在同一个广播域。

本发明还公开了一种基于免费ARP实现代理ARP的系统,包括:

接入交换机,与IP主机连接,通过监听IP主机的免费ARP过程,创建和 保存主机IP地址信息,并将该主机IP地址信息发送至汇聚交换机;

汇聚交换机,与接入交换机连接,在其接口上使能ARP代理功能,将收到 的主机IP地址信息保存到主机IP地址信息表中;并在接收到IP主机发送的ARP 请求报文后,检测该报文中的目标IP地址是否在所述主机IP地址信息表中, 如果在,则向IP主机发送ARP回应报文,如果不在,则丢弃该ARP请求报文。

特别的,所述接入交换机还用于

向交换芯片下发规则,在交换芯片收到ARP报文后,均将其复制一份发送 给接入交换机处理器进行软件解析,然后,ARP报文由交换芯片执行硬件转发。

特别的,所述接入交换机具体用于

通过监听IP主机的免费ARP过程,创建和保存主机IP地址信息,将所述 主机IP地址信息加入到主机IP地址信息报文中,并对该报文进行加密和散列 处理,然后,根据接入交换机配置的接收主机IP地址信息的汇聚交换机的地址, 将所述主机IP地址信息报文发送至汇聚交换机。

特别的,所述汇聚交换机,在其接口上使能ARP代理功能后,解析出与所 述汇聚交换机连接的所有接入交换机传入的主机IP地址信息报文中的主机IP 地址信息,并将该主机IP地址信息保存到本地的主机IP地址信息表中。

特别的,所述汇聚交换机,在接收到IP主机发送的ARP请求报文后,判断 ARP请求是否满足代理ARP的条件,如果满足代理ARP的条件,则检测该报文中 的目标IP地址是否在所述主机IP地址信息表中,如果在,则向IP主机发送ARP 回应报文,如果不在,则丢弃该ARP请求报文;其中,所述代理ARP的条件是 指:ARP请求报文中的目标IP地址处在该汇聚交换机另一个三层接口的网段中, 与发送ARP请求报文的IP主机不在同一个广播域。

本发明的技术方案根据通过监听IP主机的免费ARP过程获得的主机IP地 址信息表,判断ARP请求报文中的目标IP地址是否在主机IP地址信息表中, 实现了代理ARP中目标终端的可达性检测。

附图说明

图1为本发明实施例提供的基于免费ARP实现代理ARP的方法流程图;

图2为本发明实施例提供的主机IP地址信息报文格式示意图;

图3为本发明实施例提供的基于免费ARP实现代理ARP的系统框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对 本发明作进一步说明。

请参照图1所示,图1为本发明实施例提供的基于免费ARP实现代理ARP 的方法流程图。

本实施例中基于免费ARP实现代理ARP的方法包括如下步骤:

步骤101、在接入交换机上使能免费地址解析协议(ARP)监听,并配置接 收主机互联网协议(IP)地址信息的汇聚交换机的地址。

接入交换机使能免费ARP监听后,向交换芯片下发规则,具体规则如下: 在交换芯片收到ARP报文后,均将其复制一份发送给接入交换机处理器进行软 件解析,但是,所述汇聚交换机处理器不转发复制的ARP报文,交换芯片收到 的ARP报文依然由交换芯片执行硬件转发,其中,所述ARP报文是指所有传入 交换芯片的与地址解析协议相关的报文,例如,免费ARP报文,ARP请求报文, ARP回应报文。

步骤102、接入交换机监听IP主机的免费ARP过程,并创建和保存主机IP 地址信息。

具体监听过程如下:接入交换机接收到IP主机发送的免费ARP报文后,根 据该免费ARP报文中携带的信息,例如,源IP地址和源介质访问控制(MAC) 地址,对自身维护的主机IP地址表进行修改。接入交换机先判断主机IP地址 表中是否存在与该免费ARP报文中的源IP地址对应的主机IP地址表项,如果 不存在对应的主机IP地址表项,则接入交换机将根据该免费ARP报文中携带的 信息,新建主机IP地址表项,新建的主机IP地址信息中记录了IP主机的MAC 地址、IP地址、虚拟局域网(VLAN)号和端口号;如果存在对应的主机IP地址表 项,则接入交换机将根据该免费ARP报文中携带的信息更新对应的主机IP地址 表项。

步骤103、接入交换机将主机IP地址信息加入到主机IP地址信息报文中, 并对该报文进行加密和散列处理,然后,根据接入交换机配置的接收主机IP地 址信息的汇聚交换机的地址,将所述主机IP地址信息报文发送至汇聚交换机。

接入交换机和汇聚交换机之间的主机IP地址信息报文使用用户数据包协议 (User Datagram Protocol,UDP)连接在网络上传播。为了保证安全性和防篡 改,可以对主机IP地址信息报文进行加密和散列处理。本发明的加密采用共享 密钥的数据加密标准(Data Encryption Standard,DES)方式,散列采用消息 摘要算法第五版(Message Digest Algorithm MD5,简称MD5)方式。

如图2所示,图2为本发明实施例提供的主机IP地址信息报文格式示意图。

主机IP地址信息报文承载于用户数据包协议中,该报文各字段的含义如下:

Version:版本号,目前为1;

Type:类型,目前为1,表示包含主机IP地址信息;

SeqNo:序列号,每发送一个报文,加1;

SecretLen:被加密报文的长度;

Signature:主机IP地址信息报文所有字段的MD5散列结果,其中16octets 代表16个位组;

SwitchIPAddr:交换机的IP地址;

SwitchID:交换机标识号(ID),一般取交换机处理器的介质访问控制地址, 其中6octets代表6个位组;

Count:主机IP地址数量;

HostMAC:租用地址的IP主机的介质访问控制地址,其中6octets代表6 个位组;

Reserved:保留,填入0;

HostVlanId:IP主机接入交换机的虚拟局域网标识号(Vlan ID);

PortNum:IP主机所在的交换机端口号;

HostIP:IP主机的IPv4地址;

DES密钥由用户配置,而且接入交换机与汇聚交换机的密钥必须确保一致。 发送主机IP地址信息报文前,先进行加密,后进行散列处理,具体过程如下:

自SwitchIPAddr字段开始,一直到结尾的所述主机IP地址信息报文的内 容进行DES加密,密文与明文等长,密文放入主机IP地址信息报文中的 SwitchIPAddr字段开始的报文区域,密文长度置于主机IP地址信息报文的 SecretLen字段,然后交给散列处理单元。对于交换机DES加密后的主机IP地 址信息报文,在计算MD5散列时,Signature字段首先清零,然后对整个主机 IP地址信息报文作散列运算,散列操作完成后,将散列值填入Signature字段, 这时主机IP地址信息报文就可以发出接入交换机了。

步骤104、汇聚交换机解析出与所述汇聚交换机连接的所有接入交换机传入 的主机IP地址信息报文中的主机IP地址信息,并将该主机IP地址信息保存到 本地的主机IP地址信息表中。

汇聚交换机在接收到主机IP地址信息报文后,先进行散列计算,再解密, 最终解析出其中的主机IP地址信息,具体过程如下:

在进行散列计算时,先备份Signature字段的值,再将Signature字段清 零,然后计算整个报文的MD5散列值;如果散列值与备份的Signature字段的 值一样,则散列验证成功,继续对主机IP地址信息报文作DES解密处理。如果 散列验证失败,则丢弃该主机IP地址信息报文。对于接收到的MD5散列验证成 功的主机IP地址信息报文,汇聚交换机对从Signature字段之后位置开始,且 长度由SecretLen字段指定的主机IP地址信息报文的内容进行DES解密处理, 还原出自SwitchIPAddr字段开始的主机IP地址信息报文的内容。

步骤105、汇聚交换机在接收到IP主机发送的ARP请求报文后,检测该报 文中的目标IP地址是否在主机IP地址信息表中,如果在,则向IP主机发送ARP 回应报文,如果不在,则丢弃该ARP请求报文。

IP主机发送ARP请求报文,ARP请求报文通过接入交换机传入汇聚交换机。 汇聚交换机在接收到ARP请求报文后,判断ARP请求是否满足代理ARP的条件。 如果接收ARP请求报文的三层接口使能了代理ARP,并且IP主机的ARP请求报 文中的目标IP地址处在汇聚交换机的另一个三层接口的网段中,与发送ARP请 求报文的IP主机不在同一个广播域,则满足代理ARP的条件。汇聚交换机将根 据ARP请求报文中的目标IP地址,查询主机IP地址信息表,如果目标IP地址 在主机IP地址信息表中,说明与目标IP地址对应的目标终端可达,则发送ARP 回应报文给IP主机,其中,ARP回应报文中的目标MAC地址为接收该ARP请求 报文的三层接口的MAC地址;如果目标IP地址不在主机IP地址信息表中,说 明与目标IP地址对应的目标终端不可达,则丢弃该ARP请求报文,不做处理。

请参照图3所示,图3为本发明实施例提供的基于免费ARP实现代理ARP 的系统框图。

本实施例中基于免费ARP实现代理ARP的系统包括:接入交换机302和汇 聚交换机303。其中,所述汇聚交换机303为三层网络交换设备。

所述接入交换机302,与IP主机301连接,通过监听IP主机301的免费 ARP过程,创建和保存主机IP地址信息,并将主机IP地址信息发送至汇聚交换 机303。

接入交换机302使能免费ARP监听后,向交换芯片下发规则,具体规则如 下:在交换芯片收到ARP报文后,均将其复制一份发送给接入交换机302处理 器进行软件解析,但是,所述汇聚交换机303处理器不转发复制的ARP报文, 交换芯片收到的ARP报文依然由交换芯片执行硬件转发,其中,所述ARP报文 是指所有传入交换芯片的与地址解析协议相关的报文,例如,免费ARP报文, ARP请求报文,ARP回应报文。

监听的具体过程:接入交换机302接收到IP主机301发送的免费ARP报文 后,根据该免费ARP报文中携带的源IP地址和源MAC地址,对自身维护的主机 IP地址表进行修改。接入交换机302先判断主机IP地址表中是否存在与该免费 ARP报文中的源IP地址对应的主机IP地址表项,如果不存在对应的主机IP地 址表项,则接入交换机302将根据该免费ARP报文中携带的信息,新建主机IP 地址表项,新建的主机IP地址信息中记录了IP主机301的MAC地址、IP地址、 虚拟局域网号和端口号;如果存在对应的主机IP地址表项,则接入交换机302 将根据该免费ARP报文中携带的信息更新对应的主机IP地址表项。

接入交换机302将监听得到的主机IP地址信息加入到主机IP地址信息报 文中,并对该报文进行加密和散列处理,然后,根据接入交换机302配置的接 收主机IP地址信息的汇聚交换机303的地址,将所述主机IP地址信息报文发 送至汇聚交换机303。

由于接入交换机302和汇聚交换机303之间的主机IP地址信息报文使用用 户数据包协议连接在网络上传播。为了保证安全性和防篡改,可以对主机IP地 址信息报文进行加密和散列处理。本发明的加密采用共享密钥的数据加密标准 方式,散列采用消息摘要算法第五版方式。

DES密钥由用户配置,而且接入交换机302与汇聚交换机303的密钥必须确 保一致。发送主机IP地址信息报文前,先进行加密,后进行散列处理,具体过 程如下:

自SwitchIPAddr字段开始,一直到结尾的所述主机IP地址信息报文的内 容进行DES加密,密文与明文等长,密文放入主机IP地址信息报文中的 SwitchIPAddr字段开始的报文区域,密文长度置于主机IP地址信息报文的 SecretLen字段,然后交给散列处理单元。对于交换机DES加密后的主机IP地 址信息报文,在计算MD5散列时,Signature字段首先清零,然后对整个主机 IP地址信息报文作散列运算,散列操作完成后,将散列值填入Signature字段, 这时主机IP地址信息报文就可以发出接入交换机302了。

所述汇聚交换机303,与若干个接入交换机302连接,在其接口上使能ARP 代理功能,将收到的主机IP地址信息保存到主机IP地址信息表中;并在接收 到IP主机301发送的ARP请求报文后,检测该报文中的目标IP地址是否在所 述主机IP地址信息表中,如果在,则向IP主机301发送ARP回应报文,如果 不在,则丢弃该ARP请求报文。

汇聚交换机303在接收到主机IP地址信息报文后,先进行散列计算,再解 密,最终解析出其中的主机IP地址信息,具体过程如下:

在进行散列计算时,先备份Signature字段的值,再将Signature字段清 零,然后计算整个报文的MD5散列值;如果散列值与备份的Signature字段的 值一样,则散列验证成功,继续对主机IP地址信息报文作DES解密处理。如果 散列验证失败,则丢弃该主机IP地址信息报文。对于接收到的MD5散列验证成 功的主机IP地址信息报文,汇聚交换机303对从Signature字段之后位置开始, 且长度由SecretLen字段指定的主机IP地址信息报文的内容进行DES解密处理, 还原出自SwitchIPAddr字段开始的主机IP地址信息报文的内容。

汇聚交换机303在接收到ARP请求报文后,判断ARP请求是否满足代理ARP 的条件。如果接收ARP请求报文的三层接口使能了代理ARP,并且IP主机301 的ARP请求报文中的目标IP地址处在汇聚交换机303的另一个三层接口的网段 中,与发送ARP请求报文的IP主机301不在同一个广播域,则满足代理ARP的 条件。此时,汇聚交换机303将根据ARP请求报文中的目标IP地址,查询主机 IP地址信息表,如果目标IP地址在主机IP地址信息表中,则发送ARP回应报 文给IP主机301,其中,ARP回应报文中的目标MAC地址为接收该ARP请求报 文的三层接口的MAC地址;如果目标IP地址不在主机IP地址信息表中,则丢 弃该ARP请求报文。

本发明实施例提供的基于免费ARP实现代理ARP的系统,根据通过监听IP 主机301的免费ARP过程获得的主机IP地址信息表,判断ARP请求报文中的目 标IP地址是否在主机IP地址信息表中,实现了代理ARP中目标终端的可达性 检测。

上述仅为本发明的较佳实施例及所运用技术原理,任何熟悉本技术领域的 技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在 本发明的保护范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号