实现地址解析和实现二层通信的方法、系统和路由器转让专利

申请号 : CN200910078219.2

文献号 : CN101488964B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 苏佳周迪

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明公开了一种实现二层通信的方法。该方法主要是在分别连接属于同一二层网络的不同主机的路由器之间建立GRE隧道,并在所述各路由器上启用ARP监听功能,将收到的ARP报文封装入GRE隧道传输到另一端,并在GRE隧道两端维护相应的转发关系,以实现二层网络报文通过GRE隧道的透传。本发明还公开了一种实现地址解析的方法以及实现地址解析和实现二层通信的系统和路由器。本发明的技术方案对传输网络的要求不高,对业务的可控性强。

权利要求 :

1.一种实现地址解析方法,其特征在于,第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一个二层网络,第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该方法包括:第一路由器从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;

第二路由器从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;

第二路由器从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输;

第一路由器从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表。

2.一种实现二层通信的方法,其特征在于,第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一个二层网络,第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该方法包括:第一路由器从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;

第二路由器从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去;

第二路由器从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,将该ARP响应报文从第四接口发送至GRE隧道传输,并建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表;

第一路由器从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;

之后,第一路由器和第二路由器根据各自建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。

3.如权利要求2所述的方法,其特征在于,

所述预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系中,相互对应的三层接口和GRE接口满足如下条件:三层接口下的主机与对应的GRE接口对端路由器下的主机属于同一个二层网络;

所述预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系中,相互对应的三层接口和GRE接口满足如下条件:三层接口下的主机与对应的GRE接口对端路由器下的主机属于同一个二层网络。

4.如权利要求2所述的方法,其特征在于,所述第一路由器和第二路由器根据各自建立的ARP表和流转发表转发第一主机和第二主机之间的业务流包括:

第一路由器从第一接口收到目的IP地址为第二主机IP地址的业务报文时,根据自身的流转发表从第三接口转发至GRE隧道传输;从第三接口收到通过GRE隧道传输的目的IP地址为第一主机IP地址的业务报文时,根据自身的ARP表和流转发表,将业务报文的源MAC地址设置为第一接口的MAC地址后从第一接口转发出去;

第二路由器从第四接口收到通过GRE隧道传输的目的IP地址为第二主机IP地址的业务报文时,根据自身的ARP表和流转发表,将业务报文的源MAC地址设置为第二接口的MAC地址后从第二接口转发出去;从第二接口收到目的IP地址为第一主机IP地址的业务报文时,根据自身的流转发表从第四接口转发至GRE隧道传输。

5.一种实现地址解析的系统,其特征在于,该系统包括第一路由器和第二路由器,第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络;第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口;

第一路由器,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;

第二路由器,用于从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;用于从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输;

第一路由器,用于从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表。

6.一种实现二层通信的系统,其特征在于,该系统包括第一路由器和第二路由器,第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络;第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口;

第一路由器,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;

第二路由器,用于从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去;用于从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,将该ARP响应报文从第四接口发送至GRE隧道传输,并建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表;

第一路由器,用于从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;

第一路由器和第二路由器用于根据各自建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。

7.如权利要求6所述的系统,其特征在于,

所述第一路由器,用于从第一接口收到目的IP地址为第二主机IP地址的业务报文时,根据自身的流转发表从第三接口转发至GRE隧道传输;从第三接口收到通过GRE隧道传输的目的IP地址为第一主机IP地址的业务报文时,根据自身的ARP表和流转发表,将业务报文的源MAC地址设置为第一接口的MAC地址后从第一接口转发出去;

所述第二路由器,用于从第四接口收到通过GRE隧道传输的目的IP地址为第二主机IP地址的业务报文时,根据自身的ARP表和流转发表,将业务报文的源MAC地址设置为第二接口的MAC地址后从第二接口转发出去;从第二接口收到目的IP地址为第一主机IP地址的业务报文时,根据自身的流转发表从第四接口转发至GRE隧道传输。

8.一种实现地址解析的路由器,其特征在于,该路由器通过自身的第一接口与第一主机相连,并与对端路由器通过通用路由封装GRE隧道通信,所述对端路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络,该路由器和对端第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该路由器包括:ARP报文处理模块和存储模块;

所述ARP报文处理模块,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;用于从第三接口接收通过GRE隧道传输的ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表;

其中,对端路由器从第四接口接收通过GRE隧道传输的所述ARP报文处理模块发送的ARP请求报文,根据预先配置的该对端路由器的三层接口与该对端路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;然后从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输,使得ARP报文处理模块从第三接口接收所述ARP响应报文;

所述存储模块,用于保存所述预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系。

9.一种实现二层通信的路由器,其特征在于该路由器通过自身的第一接口与第一主机相连,并与对端路由器通过通用路由封装GRE隧道通信,所述对端路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络,该路由器和对端第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该路由器包括:ARP报文处理模块、存储模块和业务报文处理模块;

所述ARP报文处理模块,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;用于从第三接口接收通过GRE隧道传输的ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;

其中,对端路由器从第四接口接收通过GRE隧道传输的所述ARP报文处理模块发送的ARP请求报文,根据预先配置的该对端路由器的三层接口与该对端路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去;然后从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表,并将该ARP响应报文从第四接口发送至GRE隧道传输,使得ARP报文处理模块从第三接口接收所述ARP响应报文;

所述存储模块,用于保存所述预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系以及所述ARP报文处理模块建立的ARP表和流转发表;

所述业务报文处理模块,用于根据存储模块中的ARP表和流转发表转发第一主机和第二主机之间的业务流;其中,对端路由器根据自身建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。

10.如权利要求9所述的路由器,其特征在于,

所述业务报文处理模块,用于从第一接口收到目的IP地址为第二主机IP地址的业务报文时,根据ARP报文处理模块建立的流转发表将所述业务报文从第三接口转发至GRE隧道传输;用于从第三接口收到通过GRE隧道传输的目的IP地址为第一主机IP地址的业务报文时,根据ARP报文处理模块建立的ARP表和流转发表,将业务报文的源MAC地址设置为第一接口的MAC地址后从第一接口转发出去;

其中,对端路由器,用于在从第四接口收到通过GRE隧道传输的目的IP地址为第二主机IP地址的业务报文时,根据自身的ARP表和流转发表,将业务报文的源MAC地址设置为第二接口的MAC地址后从第二接口转发出去;从第二接口收到目的IP地址为第一主机IP地址的业务报文时,根据自身的流转发表从第四接口转发至GRE隧道传输。

说明书 :

实现地址解析和实现二层通信的方法、系统和路由器

技术领域

[0001] 本发明涉及网络通信技术领域,尤指一种实现地址解析的方法、系统和路由器,以及实现二层通信的方法、系统和路由器。

背景技术

[0002] 虚拟私有网络(VPN,Virtual Private Network)是近年来随着因特网(Internet)的广泛应用而迅速发展起来的一种新技术,实现在公共网络上构建私有网络,“虚拟”主要指所构建的私有网络是一种逻辑上的网络。
[0003] 伴随企业和公司的不断扩张,员工出差日益频繁,驻外机构及客户群分布日益分散,合作伙伴日益增多,越来越多的现代企业迫切需要利用公共因特网资源来进行促销、销售、售后服务、培训、合作及其他咨询活动,这为VPN的应用奠定了广阔的市场基础。
[0004] 在一些业务组网下,需要两台位于不同路由器接口下的主机之间实现二层通信。图1是包含位于不同路由器接口下的两台需要进行二层通信的主机的组网示意图。如图1所示,路由器A和路由器B均连接至公网,路由器A接口下的主机A和路由器B接口下的主机B需要进行二层通信。但是根据现有的地址解析方法,主机A和主机B之间无法进行地址解析,进而无法实现通信。
[0005] 对于图1所示的不同路由器接口下的两台主机需要进行通信的问题,现有技术中给出了VPN方案和地址解析协议(ARP,Address Resolution Protocol)方案。
[0006] VPN方案是在路由器A和路由器B之间建立L2VPN,以承载主机A和主机B之间的二层通信报文。L2VPN主要有L2TP与MPLS。其中,L2TP基于PPP链路封装,主机的业务必须承载在PPP报文或PPPoE报文上,当现实情况是有些主机或业务并不支持PPP链路封装;MPLS则要求路由A和路由器B之间路径上的路由器均支持MPLS转发功能,对传输网络要求高。
[0007] ARP代理方案是在路由器A和路由器B上启动ARP代理功能,欺骗主机A和主机B,将主机A和主机B之间的二层通信在路由器上当作三层转发处理。但是在ARP代理方案中,主机的掩码必须比路由器相应接口的掩码短,且两个路由器连接主机的接口网段必须在主机的掩码内。这使得整网的规划变得太繁琐,而且主机地址完全可能由用户来随意指定或是通过其他DHCP机制获取,则主机之间的二层通信将无法实施。因此,这种方案对业务的可控性不强。
[0008] 综上所述,不同路由器下的两台主机之间无法进行地址解析,更无法实现二层通信,而现有的实现不同路由器接口下的两台主机之间通信的方案对传输网络要求高,对业务的可控性不强。

发明内容

[0009] 本发明提供了一种实现地址解析的方法,该方法使得不同路由器下的两台主机之间能够进行地址解析。
[0010] 本发明提供了一种实现二层通信的方法,该方法对传输网络的要求不高,对业务的可控性强。
[0011] 本发明还提供了一种实现地址解析的系统和路由器,该系统和路由器使得不同路由器下的两台主机之间能够进行地址解析。
[0012] 本发明还提供了一种实现二层通信的系统和路由器,该系统和路由器能够简单方便地实现不同路由器下的两台主机之间的二层通信,且对传输网络的要求不高,对业务的可控性强。
[0013] 为达到上述目的,本发明的技术方案具体是这样实现的:
[0014] 本发明公开了一种实现地址解析方法,第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一个二层网络,第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该方法包括:
[0015] 第一路由器从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;
[0016] 第二路由器从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;
[0017] 第二路由器从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输;
[0018] 第一路由器从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表。
[0019] 本发明公开了一种实现二层通信的方法,第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一个二层网络,第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该方法包括:
[0020] 第一路由器从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;
[0021] 第二路由器从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去;
[0022] 第二路由器从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,将该ARP响应报文从第四接口发送至GRE隧道传输,并建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表;
[0023] 第一路由器从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;
[0024] 之后,第一路由器和第二路由器根据各自建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。
[0025] 本发明公开了一种实现地址解析的系统,该系统包括第一路由器和第二路由器,第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络;第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口;
[0026] 第一路由器,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;
[0027] 第二路由器,用于从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;用于从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输;
[0028] 第一路由器,用于从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表。
[0029] 本发明公开了一种实现二层通信的系统,该系统包括第一路由器和第二路由器,第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络;第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口;
[0030] 第一路由器,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;
[0031] 第二路由器,用于从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去;用于从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,将该ARP响应报文从第四接口发送至GRE隧道传输,并建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表;
[0032] 第一路由器,用于从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;
[0033] 第一路由器和第二路由器用于根据各自建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。
[0034] 本发明公开了一种实现地址解析的路由器,该路由器通过自身的第一接口与第一主机相连,并与对端路由器通过通用路由封装GRE隧道通信,所述对端路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络,该路由器和对端第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该路由器包括:ARP报文处理模块和存储模块;
[0035] 所述ARP报文处理模块,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;用于从第三接口接收通过GRE隧道传输的ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表;
[0036] 其中,对端路由器从第四接口接收通过GRE隧道传输的所述ARP报文处理模块发送的ARP请求报文,根据预先配置的该对端路由器的三层接口与该对端路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;然后从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输,使得ARP报文处理模块从第三接口接收所述ARP响应报文;
[0037] 所述存储模块,用于保存所述预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系。
[0038] 本发明还公开了一种实现二层通信的路由器,该路由器通过自身的第一接口与第一主机相连,并与对端路由器通过通用路由封装GRE隧道通信,所述对端路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络,该路由器和对端第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该路由器包括:ARP报文处理模块、存储模块和业务报文处理模块;
[0039] 所述ARP报文处理模块,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;用于从第三接口接收通过GRE隧道传输的ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;
[0040] 其中,对端路由器从第四接口接收通过GRE隧道传输的所述ARP报文处理模块发送的ARP请求报文,根据预先配置的该对端路由器的三层接口与该对端路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去;然后从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表,并将该ARP响应报文从第四接口发送至GRE隧道传输,使得ARP报文处理模块从第三接口接收所述ARP响应报文;
[0041] 所述存储模块,用于保存所述预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系以及所述ARP报文处理模块建立的ARP表和流转发表;
[0042] 所述业务报文处理模块,用于根据存储模块中的ARP表和流转发表转发第一主机和第二主机之间的业务流;其中,对端路由器根据自身建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。
[0043] 由上述技术方案可见,本发明这种在分别连接属于同一二层网络的不同主机的路由器之间建立GRE隧道,并在所述各路由器上启用ARP,将收到的ARP报文封装入GRE隧道传输到另一端,并在GRE隧道两端维护相应的转发关系,以实现二层网络报文通过GRE隧道透传的方案,对传输网络的要求不高,对业务的可控性强。

附图说明

[0044] 图1是包含位于不同路由器接口下的两台需要进行二层通信的主机的组网示意图;
[0045] 图2是本发明实施例一种实现地址解析的方法的流程图;
[0046] 图3是本发明实施例一种实现二层通信方法的流程图;
[0047] 图4是本发明实施例中的一个组网示意图;
[0048] 图5是本发明实施例一种实现地址解析的系统的组成框图
[0049] 图6是本发明实施例一种实现二层通信的系统的组成框图;
[0050] 图7是本发明实施例一种实现地址解析的路由器的组成结构框图;
[0051] 图8是本发明实施例一种实现二层通信的路由器的组成结构框图。

具体实施方式

[0052] 本发明的核心思想是:在分别连接属于同一二层网络的不同主机的路由器之间建立通用路由封装(GRE,Generic Routing Encapsulation)隧道,并在所述各路由器上启用地址解析协议(ARP,Address Resolution Protocol)监听功能,将收到的ARP报文封装入GRE隧道传输到另一端,从而使得不同路由器的主机之间能够实现地址解析,并在GRE隧道两端维护相应的转发关系,以实现二层网络报文通过GRE隧道透传。
[0053] 图2是本发明实施例一种实现地址解析的方法的流程图。第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一个二层网络,第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,则该实现地址的解析的方法包括:
[0054] 步骤201,第一路由器从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;
[0055] 步骤202,第二路由器从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;
[0056] 步骤203,第二路由器从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输;
[0057] 步骤204,第一路由器从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表。
[0058] 通过图2所示的方案可以使得不同路由器下的主机之间实现地址解析,进而为后续实现二层通信奠定了基础。
[0059] 图3是本发明实施例一种实现二层通信方法的流程图。第一路由器通过自身的第一接口与第一主机相连,第二路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络,第一路由器和第二路由器通过通用路由封装GRE隧道通信,第一路由器和第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,则如图2所示该实现二层通信的方法包括以下步骤:
[0060] 步骤301,第一路由器从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的第一路由器的三层接口与第一路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;
[0061] 步骤302,第二路由器从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的第二路由器的三层接口与第二路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去;
[0062] 步骤303,第二路由器从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,将该ARP响应报文从第四接口发送至GRE隧道传输,并建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表;
[0063] 步骤304,第一路由器从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;
[0064] 步骤305,第一路由器和第二路由器根据各自建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。
[0065] 图3所示的方案,可以简单地实现不同路由器接口下的属于同一二层网络的两台主机之间二层通信,且对传输网络的要求不高,对业务的可控性强,对用户是透明的,是不可见的。
[0066] 为使本发明的目的、技术方案及优点更加清楚明白,以下列举一个具体的例子对本发明进一步详细说明。
[0067] 图4是本发明实施例中的一个组网示意图。如图4所示,主机X、Y、Z和W属于同一二层网络,即属于同一网段内,这里将该网段称为网段AAA;主机Y连接路由器B的三层接口B1,主机W连接路由器B的三层接口B 1,主机X连接路由器A的三层接口A1,主机Z连接路由器C的三层接口C1;路由器A、B和C两两之间通过GRE隧道进行通信,且路由器B的两个GRE接口分别为B2和B3、路由器A的两个GRE接口分别为A2和A3、路由器C的两个GRE接口分别为C2和C3。各个路由器之间建立GRE隧道的过程是现有技术,这里不再详述。路由器A、B和C启用ARP监听功能,监听三层接口连接的局域网内的ARP报文。
[0068] 在各个路由器上预先静态配置其三层接口和GRE接口的对应关系,其中,所述静态配置的对应关系的三层接口和GRE接口满足如下条件:一个三层接口下的主机与其对应的GRE接口对端路由器下的主机属于同一个二层网络。例如在图4中,为路由器A、B和C分别配置如下的三层接口和GRE接口的对应关系:
[0069] 路由器A:三层接口A1<--->GRE接口A2和A3;
[0070] 路由器B:三层接口B1<--->GRE接口B2和B3;
[0071] 路由器C:三层接口C1<--->GRE接口C2和C3。
[0072] 上述对应关系可以由网管人员根据实际的组网进行配置,在本实施例中,由于路由器A的接口A1所连接的主机X与路由器A的GRE接口A2和A3的对端路由器下的主机属于同一二层网络,因此设置三层接口A1与GRE接口A2和A3之间的对应关系。路由器B和C上的对应关系设置方式同上。
[0073] 下面以主机Y和主机X之间进行地址解析并后续进行二层通信的过程为例,对本发明进行说明,具体包括以下步骤:
[0074] 步骤1,当主机Y需要和主机X进行通信时,需要先请求主机X的MAC地址,则主机Y在自身所处的二层网络内广播ARP请求报文;该ARP请求报文携带的发送者MAC地址为主机Y的MAC地址S_MAC_Y,携带的发送者IP地址为主机Y的IP地址S_IP_Y,携带的目标IP地址为主机X的IP地址T_IP_X。这里“S”表示“发送者(sender)”、“T”表示“目标(Target)”。
[0075] 步骤2,路由器B从三层接口B1接收到主机Y广播的ARP请求报文后建立相应的ARP表项:主机Y的MAC地址MAC_Y、主机Y的IP地址IP_Y和接口B1;然后路由器B根据该ARP请求报文的目标IP地址判断目标主机属于网段AAA,则根据自身预先配置的三层接口和GRE接口之间的对应关系,找到与三层接口B1对应的GRE接口B2和B3,将ARP请求报文进行GRE封装后从GRE接口B2和B3发送出去。
[0076] 这里,在路由器B可以在接收到任何目标IP地址属于网段AAA的ARP请求报文时,都查询自身的预先配置的三层接口和GRE接口之间的对应关系,将ARP请求报文通过GRE隧道转发至对端路由器;或者,路由器B只有对于目标IP地址为网络AAA中的指定IP地址(如主机X和Z的IP地址)的ARP报文才查询自身的预先配置的三层接口和GRE接口之间的对应关系,将ARP请求报文通过GRE隧道转发至对端路由器。
[0077] 步骤3,路由器A从GRE接口A2收到ARP请求报文后,除去GRE封装头,根据自身预先配置的三层接口和GRE接口之间的对应关系,找到与GRE接口A2对应的三层接口A1,将ARP请求报文中的发送者MAC地址改为自己的三层接口A1的MAC地址,并从该三层接口A1广播该ARP请求报文;此时的ARP请求报文中携带的发送者MAC地址为三层接口A1的MAC地址S_MAC_A1,发送者IP地址为主机Y的IP地址S_IP_Y,目标IP地址是主机X的IP地址T_IP_X,即路由器A欺骗网内的主机发送者的MAC地址是自己的MAC地址。
[0078] 同样,路由器C从GRE接口C2收到ARP请求报文后,除去GRE封装头,根据自身预先配置的三层接口和GRE接口之间的对应关系,找到与GRE接口C2对应的三层接口C1,将ARP请求报文中的发送者MAC地址和以太帧的源MAC地址设置为自己的三层接口C1的MAC地址,并从该三层接口C1广播该ARP请求报文;此时的ARP请求报文中携带的发送者MAC地址为三层接口C1的MAC地址S_MAC_C1,发送者IP地址为主机Y的IP地址S_IP_Y,目标IP地址是主机X的IP地址D_IP_X,即路由器C欺骗网内的主机发送者的MAC地址是自己的MAC地址。
[0079] 步骤4,主机X收到路由器A广播的ARP请求报文后,根据其中的目标IP地址确认自己就是被请求的目标主机,生成本地的ARP表:MAC_A1、IP_Y和主机X收到ARP请求报文的接口;然后向路由器A单播返回ARP响应报文,其中,该ARP响应报文携带的发送者MAC地址为S_MAC_A1、发送者IP地址为S_IP_Y、目标MAC地址为主机X自身的MAC地址T_MAC_X、目标IP地址为T_IP_X。
[0080] 对于,路由器C在三层接口C1下广播的ARP请求报文,由于实际组网当中其广播的范围内并没有目标主机X,因此路由器C不会收到相应的ARP响应报文。
[0081] 步骤5,路由器A从三层接口A1收到单播的ARP响应报文后,根据该ARP响应报文建立主机X的ARP表项:主机X的MAC地址MAC_X、主机X的IP地址IP_X和接口A1;然后将ARP响应报文进行GRE封装后从接收对应的ARP请求报文的GRE接口A2发送出去,并建立关于主机X和主机Y之间的流转发表,该流转发表包括:IP_X、IP_Y、GRE接口A2和三层接口A1。
[0082] 步骤6,路由器B从GRE接口B2收到ARP响应报文后,除去GRE封装头,将该ARP响应报文中的目标MAC地址设置为自身接收对应ARP请求报文的三层接口B1的MAC地址,并将该ARP响应报文中的以太帧的目的MAC地址根据原来学习的ARP表项填充为MAC_Y后,将该ARP响应报文从三层接口B1发送出去;此处路由器A欺骗网内的主机自己便是被请求的目标主机;同时,路由器B还建立关于主机X和主机Y之间的流转发表,该流转发表包括:IP_X、IP_Y、GRE接口B2和三层接口B1。
[0083] 步骤7,主机Y收到单播的ARP响应后,生成本地的ARP表:MAC_B1、IP_X和主机Y收到ARP响应报文的接口。
[0084] 步骤8,之后路由器A和路由器B根据各自建立的ARP表和流转发表转发主机X和主机Y之间的业务流,具体为:
[0085] 主机Y向主机X发送业务报文时,根据本地的ARP表将业务报文的源IP地址MAC地址设置为主机Y自身的IP地址和MAC地址,目的IP地址设置为IP_X,目的MAC地址设置为MAC_B1后发给路由器B;
[0086] 路由器B收到从三层接口B1收到所述目的地址为IP_X的业务报文后,根据自身的流转发表从GRE接口B2转发出去;
[0087] 路由器A从三层接口A2收到所述目的IP为IP_X的业务报文后,根据自身的流转发表确认需要从三层接口A1转发,将所述业务报文的源MAC地址设置为S_MAC_A1,并根据自身的ARP表将所述业务报文的目的MAC地址设置为D_MAC_X后从接口A1发送出去;这样该业务报文就能到达主机X。
[0088] 主机X向主机Y发送报文的流程与上述主机Y向主机X发送业务报文的流程类似,这里不再复述。
[0089] 通过上述图4所示的例子可以看出,在本发明的方案中利用GRE隧道承载ARP报文,实现GRE隧道两端的主机的发现,并将GRE隧道技术与ARP监听相结合,实现了二层报文穿越GRE隧道。而且为了实现本发明的方案,只需要对作为用户边缘(CE)设备的路由器进行相应的改进即可,而主机是不需要做任何改变的。
[0090] 此外,在图4所示的实施例中,由于各个路由器上仅在指定的GRE接口和直连的三层接口之间转发ARP表项,如果图4中的主机Y和主机W之间需要通信,即使ARP报文发送到路由器A和C上,由于没有相应的ARP响应报文,则流转发表也无法建立,主机X和W之间的业务流不会串到路由器A和C上。并且流转发表是根据路由器在指定的GER接口上侦听单播的ARP响应报文建立的,因此可以做到防ARP攻击。
[0091] 在图4中,为了保证不同路由器下直连的属于同一二层网络的主机网段一样、地址不冲突,可以在路由器上启动DHCP Relay功能,由上层的DHCP服务器统一分配IP地址。
[0092] 图5是本发明实施例一种实现地址解析的系统的组成框图。如图5所示,该系统包括路由器501和路由器502,路由器501通过自身的第一接口与第一主机相连,路由器502通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络;路由器501和路由器502通过通用路由封装GRE隧道通信,路由器501和路由器502与所述GRE隧道连接的接口分别为第三接口和第四接口;
[0093] 路由器501,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的路由器501的三层接口与路由器501的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;
[0094] 路由器502,用于从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的路由器502的三层接口与路由器502的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;用于从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输;
[0095] 路由器501,用于从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表。
[0096] 图6是本发明实施例一种实现二层通信的系统的组成框图。如图6所示,该系统包括路由器601和路由器602,路由器601通过自身的第一接口与第一主机相连,路由器602通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络;路由器601和路由器602通过通用路由封装GRE隧道通信,路由器601和路由器602与所述GRE隧道连接的接口分别为第三接口和第四接口;
[0097] 路由器601,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的路由器601的三层接口与路由器601的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;
[0098] 路由器602,用于从第四接口接收通过GRE隧道传输的所述ARP请求报文,根据预先配置的路由器602的三层接口与路由器602的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去;用于从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,将该ARP响应报文从第四接口发送至GRE隧道传输,并建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表;
[0099] 路由器601,用于从第三接口接收通过GRE隧道传输的所述ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;
[0100] 路由器601和路由器602用于根据各自建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。
[0101] 在图6中,路由器601,用于从第一接口收到目的IP地址为第二主机IP地址的业务报文时,根据自身的流转发表从第三接口转发至GRE隧道传输;从第三接口收到通过GRE隧道传输的目的IP地址为第一主机IP地址的业务报文时,根据自身的ARP表和流转发表,将业务报文的源MAC地址设置为第一接口的MAC地址后从第一接口转发出去;
[0102] 路由器602,进一步用于从第四接口收到通过GRE隧道传输的目的IP地址为第二主机IP地址的业务报文时,根据自身的ARP表和流转发表,将业务报文的源MAC地址设置为第二接口的MAC地址后从第二接口转发出去;从第二接口收到目的IP地址为第一主机IP地址的业务报文时,根据自身的流转发表从第四接口转发至GRE隧道传输。
[0103] 图7是本发明实施例一种实现地址解析的路由器的组成结构框图。图7中的该路由器通过自身的第一接口与第一主机相连,并与对端路由器通过GRE隧道通信,所述对端路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络,该路由器和对端第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口,该路由器包括:ARP报文处理模块701和存储模块702;
[0104] ARP报文处理模块701,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;用于从第三接口接收通过GRE隧道传输的ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,从而使得第一主机能够根据该ARP响应报文建立包括第二主机IP地址、第一接口MAC地址和第一主机接收该ARP响应报文的接口的ARP表;
[0105] 其中,对端路由器从第四接口接收通过GRE隧道传输的所述ARP报文处理模块发送的ARP请求报文,根据预先配置的该对端路由器的三层接口与该对端路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,从而使得第二主机能够根据该ARP请求报文建立包括第一主机IP地址、第二接口的MAC地址和第二主机接收该ARP请求报文的接口的ARP表;然后从第二接口接收第二主机返回的ARP响应报文,将该ARP响应报文从第四接口发送至GRE隧道传输,使得ARP报文处理模块701从第三接口接收所述ARP响应报文;
[0106] 存储模块702,用于保存所述预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系。
[0107] 图8是本发明实施例一种实现二层通信的路由器的组成结构框图。图8中的该路由器通过自身的第一接口与第一主机相连,并与对端路由器通过GRE隧道通信,所述对端路由器通过自身的第二接口与第二主机相连,第一主机和第二主机属于同一二层网络,该路由器和对端第二路由器与所述GRE隧道连接的接口分别为第三接口和第四接口;如图8所示,该路由器包括:ARP报文处理模块801、业务报文处理模块802和存储模块803;
[0108] ARP报文处理模块801,用于从第一接口接收第一主机广播的以第二主机的IP地址为目标地址的地址解析协议ARP请求报文,根据该ARP请求报文建立包括第一主机MAC地址、第一主机IP地址和第一接口的ARP表,根据预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系找到与第一接口对应的第三接口,并将该ARP请求报文从第三接口发送至GRE隧道传输;用于从第三接口接收通过GRE隧道传输的ARP响应报文,将所述ARP响应报文的目标MAC地址设置为第一接口的MAC地址后从第一接口发送出去,并建立包括第一主机IP地址、第二主机IP地址、第一接口和第三接口的流转发表;
[0109] 其中,对端路由器从第四接口接收通过GRE隧道传输的所述ARP报文处理模块发送的ARP请求报文,根据预先配置的对端路由器的三层接口与该对端路由器的GRE接口之间的对应关系找到与第四接口对应的第二接口,将所述ARP请求报文的发送者MAC地址设置为第二接口的MAC地址后从第二接口广播出去,然后从第二接口接收第二主机返回的ARP响应报文,根据该ARP响应报文建立包括第二主机MAC地址、第二主机IP地址和第二接口的ARP表,建立包括第一主机IP地址、第二主机IP地址、第四接口和第二接口的流转发表,并将该ARP响应报文从第四接口发送至GRE隧道传输,使得ARP请求模块从第三接口接收所述ARP响应报文;
[0110] 存储模块803,用于保存所述预先配置的该路由器的三层接口与该路由器的GRE接口之间的对应关系以及ARP报文处理模块801建立的ARP表和流转发表;
[0111] 业务报文处理模块802,用于根据存储模块803中的ARP表和流转发表转发第一主机和第二主机之间的业务流;其中,对端路由器根据自身建立的ARP表和流转发表转发第一主机和第二主机之间的业务流。
[0112] 在图8中,业务报文处理模块803,用于从第一接口收到目的IP地址为第二主机IP地址的业务报文时,根据ARP报文处理模块建立的流转发表将所述业务报文从第三接口转发至GRE隧道传输;用于从第三接口收到通过GRE隧道传输的目的IP地址为第一主机IP地址的业务报文时,根据ARP报文处理模块建立的ARP表和流转发表,将业务报文的源MAC地址设置为第一接口的MAC地址后从第一接口转发出去。相应地,对端路由器,用于在从第四接口收到通过GRE隧道传输的目的IP地址为第二主机IP地址的业务报文时,根据自身的ARP表和流转发表,将业务报文的源MAC地址设置为第二接口的MAC地址后从第二接口转发出去;从第二接口收到目的IP地址为第一主机IP地址的业务报文时,根据自身的流转发表从第四接口转发至GRE隧道传输。
[0113] 综上所述,本发明这种在分别连接属于同一二层网络的不同主机的路由器之间建立GRE隧道,并在所述各路由器上启用ARP,将收到的ARP报文封装入GRE隧道传输到另一端,并在GRE隧道两端维护相应的转发关系,以实现地址解析,并进一步实现二层网络报文通过GRE隧道透传的技术方案,只需要对作为客户端边缘设备的路由器进行改进,而不需要改变主机,因此实现起来简单方便。
[0114] 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。