通用路由封装协议隧道建立方法、通信设备及通信系统的制作方法

文档序号:7996087阅读:182来源:国知局
通用路由封装协议隧道建立方法、通信设备及通信系统的制作方法
【专利摘要】本发明实施例公开了一种GRE隧道建立方法,用于在GRE隧道两端设备自动协商配置设备端口的IP地址。本发明实施例方法包括:第一设备通过第一接口接收第二设备的第二接口发送的第一组播GRE协议通知报文,其中携带该第二接口的网际协议IP地址,该第一接口与该第二接口之间配置GRE隧道,该第一接口与该第二接口配置有GRE隧道对端地址学习功能,记录该第二接口的IP地址作为该GRE隧道的目的IP地址,并通过该第一接口向该第二接口发送第一GRE协议答复报文,其中携带该第一接口的IP地址,使得该第二接口将该第一接口的IP地址记录为该GRE隧道的目的IP地址。
【专利说明】通用路由封装协议隧道建立方法、通信设备及通信系统
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种通用路由封装协议隧道建立方法、通信设备及通信系统。
【背景技术】
[0002]通用路由封装(generic routing encapsulation,简称GRE)协议,是对某些网络层协议,如网络之间互连的协议(Internet protocol,简称IP)或互联网分组交换协议(internetwork packet exchange protocol,简称IPX)数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议中传输,如在IP层中传输。GRE是虚拟专用网(virtual private network,简称VPN)的第三层隧道协议,即在协议层之间采用了一种被称之为隧道(Tunnel)的技术。Tunnel是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够通过该通路上传输,并且在一个Tunnel的两端分别对数据报文进行封装及解封装。
[0003]现有技术中,首先通过静态路由或者动态路由协议实现两台路由器之间的互通,然后在该两台路由器之间创建配置GRE隧道,指定该GRE隧道的源IP地址、目的IP地址,为使GRE隧道在传输数据报文时支持动态路由协议,需要在该两台路由器上配置GRE隧道的接口地址并手动选定该接口的源IP地址和目的IP地址。
[0004]在上述现有技术中,当GRE隧道的目的IP地址,即隧道对端设备的接口配置的IP地址动态变化时,如对端设备接口的IP地址是由点对点协议(point-to-point protocol,简称PPP)协商得到的IP地址,再如手动更改该对端设备接口的IP地址,都只能手动修改GRE隧道的对端设备接口的IP地址。特别是对于3G接口,由于网络原因会存在对端设备接口的IP地址振荡的情况,使得GRE隧道的目的IP地址需要频繁更改,而造成GRE隧道无法正常通信。

【发明内容】

[0005]本发明实施例提供了 一种通用路由封装协议隧道建立方法、通信设备及通信系统,用以通过动态学习GRE隧道的对端IP地址建立GRE隧道。
[0006]第一方面,本发明提供一种通用路由封装协议隧道建立方法,可包括:
[0007]第一设备通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能;
[0008]记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。[0009]在第一方面的第一种可能的实现方式中,所述通过所述第一接口向所述第二接口发送GRE协议答复报文之后包括:通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接;
[0010]若检测到所述第一接口与所述第二接口之间的所述GRE隧道未保持连接,则发送第二组播GRE协议通知报文,所述第二组播GRE通知报文中携带所述第一接口的IP地址,用以通知所述第二接口将所述第二组播GRE通知报文中携带的所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0011]结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第一设备通过第一接口接收第二设备的第二接口发送的第一组播GRE协议通知报文之前,还包括:激活所述第一接口预先配置的GRE隧道对端地址学习功能。
[0012]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:若所述第一设备与所述第二设备之间存在中间设备,则所述第一设备通过第一接口接收所述中间设备的对应接口透传的所述第二设备的第二接口发送的与GRE协议相关报文,或,通过所述中间设备的对应接口透传向所述第二接口发送的GRE协议相关报文;
[0013]其中,所述中间设备的对应接口上配置GRE动态代理功能,使得所述中间设备通过所述对应接口透传接收的GRE协议相关报文。
[0014]第二方面,本发明提供一种通信设备,可包括:
[0015]接收单元,用于通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能;
[0016]记录单元,用于记录所述接收单元接收的所述第二接口的IP地址作为所述GRE隧道的目的IP地址;
[0017]发送单元,用于通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0018]在第二方面的第一种可能的实现方式中,所述设备还包括:检测单元,用于通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接;
[0019]所述发送单元,还用于若所述检测单元检测到所述第一接口与所述第二接口之间的所述GRE隧道未保持连接,则发送第二组播GRE协议通知报文,所述第二组播GRE通知报文中携带所述第一接口的IP地址,用以通知所述第二接口将所述第二组播GRE通知报文中携带的所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0020]结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述设备还包括:激活单元,用于激活所述第一接口预先配置的GRE隧道对端地址学习功能。
[0021]结合第二方面或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收单元,还用于若所述第一设备与所述第二设备之间存在中间设备,则通过第一接口接收所述中间设备的对应接口透传的所述第二设备的第二接口发送的与GRE协议相关报文;
[0022]所述发送单元,还用于若所述第一设备与所述第二设备之间存在中间设备,则通过所述中间设备的对应接口透传向所述第二接口发送的GRE协议相关报文;
[0023]其中,所述中间设备的对应接口上配置GRE动态代理功能,使得所述中间设备通过所述对应接口透传接收的GRE协议相关报文。
[0024]第三方面,本发明提供一种通信系统,可包括:第一设备和第二设备;
[0025]其中,所述第一设备用于通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能,记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址;
[0026]所述第二设备用于通过第二接口发送所述第一组播GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的IP地址,接收所述第一接口发送的所述第一GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,记录所述第一接口的IP地址作为所述GRE隧道的目的IP地址。
[0027]从以上技术方案可以看出,本发明实施例具有以下优点:第一设备的第一接口与第二设备的第二接口均配置有GRE隧道对端地址学习功能,第一设备通过第一接口接收第二设备的第二接口发送的第一组播GRE协议通知报文,将其中携带的第二接口的IP地址记录为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送GRE协议答复报文,此时,第一设备与第二设备之间建立了 GRE隧道。那么,当第一设备或第二设备的IP地址动态变化时,配置了 GRE隧道对端地址学习功能的GRE隧道两端设备自动协商配置设备端口的IP地址,更新改变后的IP地址,从而实现不需要手动配置GRE隧道的目的IP地址,而使得所述对端设备获取改变后的IP地址,解决了 IP地址频繁变动造成GRE业务不可用的问题,同时可降低设备配置成本。
【专利附图】

【附图说明】
[0028]图1为本发明实施例中通用路由封装协议隧道通信系统结构示意图;
[0029]图2为本发明实施例中通用路由封装协议隧道建立方法的示意图;
[0030]图3为本发明实施例中通用路由封装协议隧道建立方法的另一示意图;
[0031]图4为本发明实施例中存在中间设备时通用路由封装协议隧道通信系统结构示意图;
[0032]图5为本发明实施例中通信设备的结构示意图;
[0033]图6为本发明实施例中通信设备的另一结构示意图;
[0034]图7为本发明实施例中通信设备的硬件结构示意图;
[0035]图8为本发明实施例中通信系统的一个实施例示意图。
【具体实施方式】[0036]本发明实施例提供了 一种通用路由封装协议隧道建立方法、通信设备及通信系统,用于在GRE隧道两端设备自动协商配置设备端口的IP地址,可以降低设备配置成本,并可以解决IP地址频繁变动造成GRE业务不可用的问题。
[0037]请参阅图1,通用路由封装协议隧道通信系统中,第一设备101与第二设备102的通过隧道103相连,首先通过静态路由或者动态路由协议实现所述第一设备101与所述第二设备102的通过所述隧道103互通,然后在隧道103两端配置GRE隧道,指定第一设备101及第二设备102相对于GRE隧道的接口地址。
[0038]本发明实施例中的第一设备及第二设备是支持GRE隧道功能的设备,可以是路由器,也可以是交换机、防火墙等。
[0039]下面介绍本发明实施例中的通用路由封装协议隧道建立方法,请参阅图2,本发明实施例中的通用路由封装协议隧道建立方法包括:
[0040]201、第一设备通过第一接口接收第二设备的第二接口发送的第一组播GRE协议通知报文;
[0041 ] 所述第一组播GRE协议通知报文中携带所述第二设备的第二接口的IP地址,组播GRE协议通知报文表示GRE协议通知报文是以组播形式发送的,所述第一接口与所述第二接口之间配置了 GRE隧道,所述第一接口与所述第二接口互为所述GRE隧道的对端设备接口,所述第一接口与所述第二接口配置了 GRE隧道对端地址学习功能,所述GRE隧道对端地址学习功能是指GRE隧道两端的设备可以通过GRE协议交互,动态学习对端设备的接口 IP地址;也就是,第一设备和第二设备相互作为所述GRE隧道的对端设备,第一设备通过发送携带第一接口的IP地址的组播GRE协议通知报文、接收第二设备回复的携带第二接口的IP地址的GRE协议答复报文,或者,接收第二设备发送的携带第二接口的IP地址的组播GRE协议通知报文、向第二设备发送携带第一接口的IP地址的GRE协议答复报文,动态学习对端设备的接口的IP地址。
[0042]在第一设备及第二设备内都设置有定时器,第一设备中的定时器使得所述第一设备可通过所述第一接口定期以组播的形式发送GRE协议通知报文,在GRE协议通知报文中携带第一接口的IP地址,这样接收到组播GRE协议通知报文的第二接口可以获取所述第一接口的IP地址,从而将所述第一接口的IP地址通知到GRE隧道的对端设备接口,同样的,所述第二设备中的定时器可使得所述第二设备通过所述第二接口定期以组播的形式发送GRE协议通知报文,在GRE协议通知报文中携带第二接口的IP地址,这样接收到组播GRE协议通知报文的第一接口可以获取所述第二接口的IP地址,从而将所述第二接口的IP地址通知到GRE隧道的对端设备接口。
[0043]202、记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送GRE协议答复报文。
[0044]第一设备记录接收的所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送GRE协议答复报文,至此,在第一设备与第二设备之间建立了 GRE隧道。
[0045]本实施例中,第一设备和第二设备互为所述GRE隧道的对端设备,可以理解的是,第二设备的第二接口具有与第一设备的第一接口相同的接收、发送及处理报文的功能,具体处理过程和实现原理相同。[0046]可选地,当所述第二接口的IP地址发生改变时,所述第二设备可通过第二接口发送组播GRE协议通知报文,以通知作为对端设备的第一设备,所述第二接口改变后的IP地址,使得所述第一设备将所述第二接口改变后的IP地址作为GRE隧道的目的IP地址发送数据。
[0047]本发明实施例中,第一设备的第一接口与第二设备的第二接口均配置GRE隧道对端地址学习功能,第一设备通过第一接口接收第二设备的第二接口发送的第一组播GRE协议通知报文,将其中携带的第二接口的IP地址记录为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送GRE协议答复报文,此时,第一设备与第二设备之间建立了 GRE隧道。那么,当第一设备或第二设备的IP地址动态变化时,配置了 GRE隧道对端地址学习功能的GRE隧道两端设备自动协商配置设备端口的IP地址,更新改变后的IP地址,从而实现不需要手动配置GRE隧道的目的IP地址,而使得所述对端设备获取改变后的IP地址,解决了 IP地址频繁变动造成GRE业务不可用的问题,同时可降低设备配置成本。
[0048]下面详细介绍本发明实施例中的通用路由封装协议隧道建立方法,请参阅图3,本发明实施例中的通用路由封装协议隧道建立方法包括:
[0049]301、第一设备激活第一接口预先配置的GRE隧道对端地址学习功能;
[0050]第一设备的第一接口预先配置了 GRE隧道对端地址学习功能,通过激活指令可以激活所述GRE隧道对端地址学习功能。
[0051]302、通过第一接口接收第二设备的第二接口发送的第一组播GRE协议通知报文;
[0052]所述第一组播GRE协议通知报文中携带所述第二接口的IP地址,组播GRE协议通知报文表示GRE协议通知报文是以组播形式发送的,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置GRE隧道对端地址学习功能,所述GRE隧道对端地址学习功能是指向所述GRE隧道的对端设备发送GRE隧道通知报文,以及应答所述对端设备发送的GRE隧道通知报文、向所述对端设备发送GRE协议答复报文。
[0053]在第一设备及第二设备都设置有定时器,使得所述第一设备通过第一接口及所述第二设备通过第二接口定期,例如60秒,以组播的形式向所述GRE隧道对应的各自的对端设备接口发送组播GRE协议通知报文,在组播GRE协议通知报文中携带各自的IP地址,这样接收到组播GRE协议通知报文的接口可以获取其中的IP地址,从而将获取的IP地址通知到GRE隧道的对端设备接口。
[0054]第一设备通过第一接口接收第二设备的第二接口发送的第一组播GRE协议通知报文后,判断第一接口是否配置了 GRE隧道对端地址学习功能,若配置了,则执行步骤302,若未配置,则对接收的所述第一组播GRE协议通知报文不作处理,这样,提高整个系统处理所述第一组播GRE协议通知报文的效率。判断的具体方式可以是通过查询设备中保存的接口属性表,在所述接口属性表中记录了设备的接口中是否配置有GRE隧道地址学习功能。
[0055]303、对所述第一组播GRE协议通知报文进行验证;
[0056]当确定第一设备的第一接口配置GRE隧道对端地址学习功能,则解析所述第一组播GRE协议通知报文,根据其中携带的身份标示字段,验证根据所述第一组播GRE协议通知报文的类型。具体地,在本实施例中,将所述第一组播GRE协议通知报文的报文头中身份标识字段flag字段的标志值设置为1,表明当前的报文为GRE协议通知报文。通常GRE协议相关报文的报文头中身份标识字段flag字段为预留字段,不具有任何标识意义。[0057]当第一设备验证接收到的报文类型为组播GRE协议通知报文,进一步校验所述第一组播GRE协议通知报文中携带的验证键值(Key)与第一接口上预先配置的验证键值(Key)是否相同,若相同,则通过验证,记录所述第一组播GRE协议通知报文中携带的所述第二接口的IP地址,在第一设备与第二设备之间建立GRE隧道。
[0058]进一步地,所述第一设备通过所述第一接口向所述第二接口发送GRE协议答复报文,所述GRE协议答复报文中携带所述GRE协议答复报文的身份标识字段,具体地,所述GRE协议答复报文的身份标识字段flag字段的标志值设置为2。
[0059]304、当验证通过,记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送GRE协议答复报文;
[0060]第一设备将记录的所述第二接口的IP地址作为所述GRE隧道的目的IP地址发送数据,并通过所述第一接口向所述第二接口发送GRE协议答复报文,至此,在第一设备与第二设备之间建立了 GRE隧道。
[0061]若未通过验证,则将接收到的所述第一组播GRE协议通知报文丢弃不作处理。
[0062]305、通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接;
[0063]第一设备通过第一接口与第二设备的第二接口在所述GRE隧道中实现数据交互后,所述第一设备通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接。检测所述GRE隧道通信状况是否正常。当第一接口的IP地址或第二接口的IP地址发生改变时,即GRE隧道两端设备接口的目的IP地址动态变化时,第一设备便可检测到所述第一接口与所述第二接口之间通过GRE隧道保持的连接已不能正常通信。
[0064]检测的具体方式可以是,在预置时长内,例如30秒,第一设备检测是否接收到所述第二设备发送的保活消息,所述保活消息是检测第一接口与第二接口间是否保持与GRE隧道对应的连接。所述第一设备通过第一接口可以每隔30秒通过所述GRE隧道向所述第二设备的第二接口发送保活消息,如果所述保活消息可到达所述第二接口,所述第二设备通过第二接口发送响应报文,便可确认所述第一接口与所述第二接口之间的GRE隧道是存活的,保持正常的GRE隧道连接。否则,则可确定所述第一接口与所述第二接口之间通过GRE隧道保持的连接已不能正常通信。
[0065]306、若检测到所述第一接口与所述第二接口之间的所述GRE隧道未保持连接,则发送第二组播GRE协议通知报文,所述第二组播GRE通知报文中携带所述第一接口的IP地址,用以通知所述第二接口将所述第二组播GRE通知报文中携带的所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0066]需要说明的是,所述第二组播GRE通知报文中携带的所述第一接口的IP地址可能已改变,也可能未改变,所述第二接口可直接将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0067]若所述第一设备检测到第一接口与所述第二接口之间的所述GRE隧道未保持连接,所述第一接口与所述第二接口已不能通过所述GRE隧道正常通信,则可能是由于所述第一接口的IP地址发生改变,或,所述GRE隧道的对端设备第二设备的第二接口 IP地址发生改变,而导致所述第一接口无法继续与所述第二接口通过所述GRE隧道的保持连接。则发送第二组播GRE协议通知报文,所述第二组播GRE通知报文中携带IP地址,用以通知所述第二接口将所述第二组播GRE通知报文中携带的IP地址作为所述GRE隧道的目的IP地址。
[0068]需要说明的是,若所述第一接口接收到所述第二接口发送的第三组播GRE协议通知报文,所述第二组播GRE协议通知报文中携带的第二接口的IP地址与所述第一组播GRE协议通知报文中携带的所述第二接口的IP地址不同,表示第二接口的IP地址发生了改变,则第一设备将接收的所述第三组播GRE协议通知报文中携带的所述第二接口的IP地址作为所述GRE隧道的目的IP地址。
[0069]本实施例中,第一设备的第一接口与第二设备的第二接口具有相同的接收、发送及处理报文的功能,本发明实施例中的第一设备通过第一接口所执行的操作过程也可由第二设备通过第二接口完成,具体过程相同。那么,对于第二设备而言,当所述第二接口的IP地址发生改变时,可通过第二接口发送组播GRE协议通知报文,以通知作为对端设备的第一设备改变后的IP地址,使得所述第一设备将改变后的IP地址作为GRE隧道的目的IP地址发送数据。需要说明的是,第一设备通过第一接口发送组播GRE隧道通知报文之前,检测所述第一接口是否配置GRE隧道对端地址学习功能,这样,所有未配置GRE隧道对端地址学习功能的设备接口节省发送组播GRE协议通知报文的处理过程,提高系统处理组播GRE协议通知报文的效率,若是,则以组播的形式发送组播GRE隧道通知报文。
[0070]本发明实施例中,第一设备对接收到的第二接口的第一组播GRE隧道通知报文进行验证,增加建立GRE隧道的正确率,通过验证后第一设备将所述第一组播GRE隧道通知报文中的第二接口的IP地址作为所述GRE隧道的目的IP地址发送数据,通过保活消息检测所述第一接口与所述第二接口之间是否通过GRE隧道保持连接,那么,当第一接口的IP地址动态变化时,可检测到所述第一接口与所述第二接口之间通过GRE隧道未保持连接,所述第一接口与所述第二接口已不能通过所述GRE隧道正常通信,第一设备可通过GRE隧道对端地址学习功能请求发送第二组播GRE隧道通知报文,在所述第二组播GRE隧道通知报文中携带所述第一接口改变后的IP地址,使得接收到所述第二组播GRE隧道通知报文的第二接口将其中携带的改变后的IP地址作为GRE隧道的目的IP地址发送数据,若所述第一设备接收到所述第二接口发送的第三组播GRE协议通知报文,所述第二组播GRE协议通知报文中携带与所述第一组播GRE协议通知报文中携带的不同于所述第二接口的IP地址,表示第二接口的IP地址发生了改变,则将接收的所述第三组播GRE协议通知报文中携带的所述第二接口的IP地址作为所述GRE隧道的目的IP地址,从而实现GRE隧道两端设备自动协商配置设备端口的IP地址,不需要手动配置GRE隧道的目的IP地址,而使得所述对端设备获取改变后的IP地址,解决了 IP地址频繁变动造成GRE业务不可用的问题,同时可降低设备配置成本。
[0071]在实际应用中,更为常见的应用场景是在所述第一设备与所述第二设备之间存在中间设备,请参阅图4,中间设备403包括两个代理接口,第一代理接口和第二代理接口,其中第一代理接口与所述第一设备401的第一接口通信,第二代理接口与所述第二设备402的第二接口通信。
[0072]具体地,中间设备403通过第一代理接口收发所述第一设备通过第一接口收发的GRE协议相关报文,通过第二代理接口收发所述第二设备通过第二接口收发的GRE协议相关报文,在所述第一代理接口和所述第二代理接口上配置GRE动态代理功能,而后将所述第一代理接口和所述第二代理接口加入同一网桥内,形成代理接口对,并保存该代理接口对信息。由于在中间设备的代理接口上配置GRE动态代理功能,那么,当中间设备的接口收到GRE协议相关报文,如GRE协议通知报文、GRE协议答复报文时,验证接收到的GRE协议相关报文的Key值是否与中间设备的接口上配置的Key值相等,若通过验证,则将上述GRE协议相关报文根据接口对信息重定向后从对应接口发出。根据该接口对信息,中间设备完成代理功能,透传接收到的GRE协议相关报文,例如,当第一代理接口接收到GRE协议相关报文,由于第一代理接口与第二代理接口是一组接口对,则第一代理接口不对GRE协议相关报文进行任何更改,将该GRE协议相关报文从第二代理接口中透传出去,发送给第二设备的第二接口 ;反之,当第二代理接口接收到GRE协议相关报文,由于第二代理接口与第一代理接口是一组接口对,则第二代理接口不对GRE协议相关报文进行任何更改,将该GRE协议相关报文从第一代理接口中透传出去,发送给第一设备的第一接口。
[0073]网络中可能存在多个中间设备,在每个中间设备的两个对应接口上配置GRE动态代理功能,并加入同一个网桥,形成代理接口对,使得中间设备可以通过代理接口对,透传接收到GRE协议相关报文。
[0074]可以理解的,在多个中间设备,也可指定其中一个中间设备作为GRE动态代理的中间设备,在所述中间设备的两个代理接口上配置GRE动态代理功能,并加入同一个网桥,形成代理接口对,使得所述中间设备通过所述代理接口对透传接收到的GRE协议相关报文。使得所述第一设备和所述第二设备可以通过作为GRE动态代理的中间设备进行通信。系统中所有设备都知道该中间设备是配置了 GRE动态代理功能的中间设备,因此,只向该中间设备发送GRE协议相关报文,而不需要在各个中间设备中均配置GRE动态代理功能。
[0075]除上述通过代理设备进行代理通信的过程之外,所述第一设备通过所述第一接口与所述第二设备通过所述第二接口进行的其他通信过程,与图2及图3所示实施例相同,此处不再赘述。
[0076]下面详细介绍本发明实施例中的实施图1至图4任一实施例中通信设备,请参阅图5,所述通信设备包括:
[0077]接收单元501,用于通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能;
[0078]记录单元502,用于记录所述接收单元接收的所述第二接口的IP地址作为所述GRE隧道的目的IP地址;
[0079]发送单元503,用于通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0080]本发明实施例中通信设备的各功能单元实现功能的具体过程,请参阅前述图2所示实施例中描述的具体内容,此处不再赘述。
[0081]本发明实施例中,接收单元501通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能,记录单元502记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,发送单元503通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。那么,当第一设备或第二设备的IP地址动态变化时,配置了 GRE隧道对端地址学习功能的GRE隧道两端设备自动协商配置设备端口的IP地址,更新改变后的IP地址,从而实现不需要手动配置GRE隧道的目的IP地址,而使得所述对端设备获取改变后的IP地址,解决了 IP地址频繁变动造成GRE业务不可用的问题,同时可降低设备配置成本。
[0082]请参阅图6,本发明实施例中的通信设备的另一个实施例包括:
[0083]接收单元601,用于通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能;
[0084]记录单元602,用于记录所述接收单元601接收的所述第二接口的IP地址作为所述GRE隧道的目的IP地址;
[0085]发送单元603,用于通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0086]进一步地,本发明实施例中的通信设备还可以包括:
[0087]检测单元604,用于通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接;
[0088]所述发送单元603,还用于若所述检测单元604检测到所述第一接口与所述第二接口之间的所述GRE隧道未保持连接,则发送第二组播GRE协议通知报文,所述第二组播GRE通知报文中携带所述第一接口的IP地址,用以通知所述第二接口将所述第二组播GRE通知报文中携带的所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0089]进一步地,本发明实施例中的通信设备还可以包括:
[0090]激活单元605,用于激活所述第一接口预先配置的GRE隧道对端地址学习功能。
[0091]进一步地,所述接收单元601,还用于若所述第一设备与所述第二设备之间存在中间设备,则通过第一接口接收所述中间设备的对应接口透传的所述第二设备的第二接口发送的与GRE协议相关报文;
[0092]所述发送单元602,还用于若所述第一设备与所述第二设备之间存在中间设备,则通过所述中间设备的对应接口透传向所述第二接口发送的GRE协议相关报文;
[0093]其中,所述中间设备的对应接口上配置GRE动态代理功能,使得所述中间设备通过所述对应接口透传接收的所述GRE协议相关报文。
[0094]本发明实施例中通信设备的各功能单元实现功能的具体过程,请参阅前述图2及图3所示实施例中描述的具体内容,此处不再赘述。
[0095]本发明实施例中,检测单元604通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接,那么,当第一接口的IP地址动态变化时,检测单元604可检测到所述第一接口与所述第二接口之间的GRE隧道断开,发送单元603可通过GRE隧道对端地址学习功能请求发送第二组播GRE隧道通知报文,在所述第二组播GRE隧道通知报文中携带所述第一接口改变后的IP地址,使得接收到所述第二组播GRE隧道通知报文的第二接口将其中携带的IP地址作为GRE隧道的目的IP地址发送数据,同理,所述GRE隧道的对端设备的第二接口也可实现与第一接口同样的功能,从而实现GRE隧道两端设备自动协商配置设备端口的IP地址,不需要手动配置GRE隧道的目的IP地址,而使得所述对端设备获取改变后的IP地址,解决了 IP地址频繁变动造成GRE业务不可用的问题,同时可降低设备配置成本。
[0096]本发明实施例还提供了一种通信设备,请参阅图7,所述通信设备包括:
[0097]处理器701、存储器702、通信接口 703和总线704。
[0098]处理器701、存储器702、通信接口 703通过总线704相互连接;总线704可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0099]存储器702,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器702可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0100]处理器701执行存储器702所存放的程序,用于通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能;
[0101]记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0102]进一步地,还用于通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接;
[0103]若检测到所述第一接口与所述第二接口之间的所述GRE隧道未保持连接,则发送第二组播GRE协议通知报文,所述第二组播GRE通知报文中携带所述第一接口的IP地址,用以通知所述第二接口将所述第二组播GRE通知报文中携带的所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
[0104]还用于激活所述第一接口预先配置的GRE隧道对端地址学习功能。
[0105]还用于若所述第一设备与所述第二设备之间存在中间设备,则所述第一设备通过第一接口接收所述中间设备的对应接口透传的所述第二设备的第二接口发送的与GRE协议相关报文,或,通过所述中间设备的对应接口透传向所述第二接口发送的GRE协议相关报文,其中,所述中间设备的对应接口上配置GRE动态代理功能,使得所述中间设备通过所述对应接口透传接收的GRE协议相关报文。
[0106]本实施例中,通信设备的第一接口与GRE隧道对端设备的第二接口均配置GRE隧道对端地址学习功能,通信设备将接收的第二接口的IP地址作为所述GRE隧道的目的IP地址发送数据,那么,当GRE隧道对端设备的目的IP地址动态变化时,通信设备可通过GRE隧道对端地址学习功能以组播方式发送组播GRE协议通知报文,将改变后的IP地址通过第一接口通知给第二接口,以使所述GRE隧道对端设备将所述第一接口改变后的IP地址作为GRE隧道的目的IP地址,从而实现GRE隧道两端设备自动协商配置设备端口的IP地址,不需要手动配置GRE隧道的目的IP地址,而使得所述对端设备获取改变后的IP地址,解决了IP地址频繁变动造成GRE业务不可用的问题,同时可降低设备配置成本。
[0107]下面介绍本发明实施例中的实施图1至图4任一实施例中的通信系统,请参阅图8,所述通信系统包括:
[0108]第一设备801和第二设备802 ;
[0109]其中,所述第一设备801用于通过第一接口接收第二设备802的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能,记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址;
[0110]所述第二设备802用于通过第二接口发送所述第一组播GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的IP地址,接收所述第一接口发送的所述第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,记录所述第一接口的IP地址作为所述GRE隧道的目的IP地址。
[0111]本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0112]以上对本发明所提供的一种通用路由封装协议隧道建立方法、通信设备及通信系统进行了详细介绍,对于本领域的技术人员,依据本发明实施例的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种通用路由封装协议隧道建立方法,其特征在于,包括: 第一设备通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能; 记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
2.根据权利要求1所述的方法,其特征在于,所述通过所述第一接口向所述第二接口发送GRE协议答复报文之后包括: 通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接; 若检测到所述第一接口与所述第二接口之间的所述GRE隧道未保持连接,则发送第二组播GRE协议通知报文,所述第二组播GRE通知报文中携带所述第一接口的IP地址,用以通知所述第二接口将所述第二组播GRE通知报文中携带的所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
3.根据权利要求1或2所述的方法,其特征在于,所述第一设备通过第一接口接收第二设备的第二接 口发送的第一组播GRE协议通知报文之前,还包括: 激活所述第一接口预先配置的GRE隧道对端地址学习功能。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括: 若所述第一设备与所述第二设备之间存在中间设备,则所述第一设备通过第一接口接收所述中间设备的对应接口透传的所述第二设备的第二接口发送的与GRE协议相关报文,或,通过所述中间设备的对应接口透传向所述第二接口发送的GRE协议相关报文; 其中,所述中间设备的对应接口上配置GRE动态代理功能,使得所述中间设备通过所述对应接口透传接收的GRE协议相关报文。
5.一种通信设备,其特征在于,包括: 接收单元,用于通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能; 记录单元,用于记录所述接收单元接收的所述第二接口的IP地址作为所述GRE隧道的目的IP地址; 发送单元,用于通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
6.根据权利要求5所述的设备,其特征在于,所述设备还包括: 检测单元,用于通过所述第一接口向所述第二接口发送保活消息,以检测所述第一接口与所述第二接口之间的所述GRE隧道是否保持连接;所述发送单元,还用于若所述检测单元检测到所述第一接口与所述第二接口之间的所述GRE隧道未保持连接,则发送第二组播GRE协议通知报文,所述第二组播GRE通知报文中携带所述第一接口的IP地址,用以通知所述第二接口将所述第二组播GRE通知报文中携带的所述第一接口的IP地址记录为所述GRE隧道的目的IP地址。
7.根据权利要求5或6所述的设备,其特征在于,所述设备还包括: 激活单元,用于激活所述第一接口预先配置的GRE隧道对端地址学习功能。
8.根据权利要求7所述的设备,其特征在于, 所述接收单元,还用于若所述第一设备与所述第二设备之间存在中间设备,则通过第一接口接收所述中间设备的对应接口透传的所述第二设备的第二接口发送的与GRE协议相关报文; 所述发送单元,还用于若所述第一设备与所述第二设备之间存在中间设备,则通过所述中间设备的对应接口透传向所述第二接口发送的GRE协议相关报文; 其中,所述中间设备的对应接口上配置GRE动态代理功能,使得所述中间设备通过所述对应接口透传接收的GRE协议相关报文。
9.一种通信系统,其特征在于,包括: 第一设备和第二设备; 其中,所述第一设备用于通过第一接口接收第二设备的第二接口发送的第一组播通用路由封装协议GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的网际协议IP地址,所述第一接口与所述第二接口之间配置GRE隧道,所述第一接口与所述第二接口配置有GRE隧道对端地址学习功能,记录所述第二接口的IP地址作为所述GRE隧道的目的IP地址,并通过所述第一接口向所述第二接口发送第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,使得所述第二接口将所述第一接口的IP地址记录为所述GRE隧道的目的IP地址; 所述第二设备用于通过第二接口发送所述第一组播GRE协议通知报文,所述第一组播GRE协议通知报文中携带所述第二接口的IP地址,接收所述第一接口发送的所述第一 GRE协议答复报文,所述第一 GRE协议答复报文中携带所述第一接口的IP地址,记录所述第一接口的IP地址作为所述GRE隧道的目的IP地址。
【文档编号】H04L29/06GK103973555SQ201310034528
【公开日】2014年8月6日 申请日期:2013年1月29日 优先权日:2013年1月29日
【发明者】万睿, 柏俊 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1