一种自动建立隧道的方法和装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,特别是涉及一种自动建立隧道的方法和装置。
【背景技术】
[0002]隧道技术是一种通过互联网络基础设施在网络之间传递数据的方式。使用隧道传递的数据可以是不同协议的数据帧或包,隧道协议将这些其它协议的数据帧或包重新封装在新的包头中发送,被封装的数据包在隧道的两个端点之间通过公共互联网络进行路由,一旦到达网络终点,数据将被解包并转发到最终目的地。整个传递过程中,被封装的数据包在公共互联网络上传递时所经过的逻辑路径称为隧道。
[0003]通用路由封装(Generic Routing Encapsulat1n,GRE)协议是一种典型的隧道协议,用来对任意一种网络层协议(例如IPv6协议)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如IPv4网络)中传输。封装前后数据报文的网络层协议可以相同,也可以不同。封装后的数据报文在网络中传输的路径,称为GRE隧道。GRE隧道是一个虚拟的点到点的连接,其两端的设备分别对数据报文进行封装及解封装。
[0004]在通过隧道在互联网中传输数据之前,首先要在进行数据传输的本端节点和对端节点之间建立隧道,目前,一般通过手工配置的方式,在节点之间建立隧道,因此,当组网中需要建立大量隧道,或者需要创建点到多点的隧道时,将导致建立隧道所需的配置工作越发复杂,工作量过大。
【发明内容】
[0005]有鉴于此,本发明提出了一种自动建立隧道的方法和装置,能够实现自动建立隧道,减小建立隧道所需的配置工作量。
[0006]本发明提出的技术方案是:
[0007]一种自动建立隧道的方法,该方法包括:
[0008]本端节点查询路由表,得到下一跳为隧道的路由表项;
[0009]所述本端节点发送隧道探测报文,所述隧道探测报文的目的地址为所述路由表项的目的地址,源地址为所述隧道的源地址,以使接收到所述隧道探测报文的节点在确定自身已配置隧道且所述目的地址可达时,将所述源地址记录为该已配置的隧道的目的地址,向所述本端节点发送隧道探测响应报文,所述隧道探测响应报文的源地址为所述接收到所述隧道探测报文的节点已配置的隧道的源地址;
[0010]所述本端节点接收所述隧道探测响应报文,将所述隧道探测响应报文的源地址记录为所述本端节点的隧道的目的地址。
[0011 ] 一种自动建立隧道的方法,该方法包括:
[0012]本端节点接收隧道探测报文,所述隧道探测报文的目的地址是发送所述隧道探测报文的节点中下一跳为隧道的路由表项的目的地址,源地址是发送所述隧道探测报文的节点为隧道配置的源地址;
[0013]所述本端节点在确定自身已配置隧道且所述目的地址可达时,将所述源地址记录为该已配置的隧道的目的地址,返回隧道探测响应报文,所述隧道探测响应报文的源地址为所述本端节点已配置的隧道的源地址,以使得发送所述隧道探测报文的节点将所述本端节点已配置的隧道的源地址记录为隧道的目的地址。
[0014]一种自动建立隧道的装置,该装置包括探测模块和建立模块,所述装置位于本端节点中;
[0015]所述探测模块,用于查询路由表,得到下一跳为隧道的路由表项,发送隧道探测报文,所述隧道探测报文的目的地址为所述路由表项的目的地址,源地址为所述隧道的源地址,以使接收到所述隧道探测报文的节点在确定自身已配置隧道且所述目的地址可达时,将所述源地址记录为该已配置的隧道的目的地址,向所述本端节点发送隧道探测响应报文,所述隧道探测响应报文的源地址为所述接收到所述隧道探测报文的节点已配置的隧道的源地址;
[0016]所述建立模块,用于接收所述隧道探测响应报文,将所述隧道探测响应报文的源地址记录为所述本端节点的隧道的目的地址。
[0017]一种自动建立隧道的装置,该装置包括接收模块和探测响应模块,所述装置位于本端节点中;
[0018]所述接收模块,用于接收隧道探测报文,所述隧道探测报文的目的地址是发送所述隧道探测报文的节点中下一跳为隧道的路由表项的目的地址,源地址是发送所述隧道探测报文的节点为隧道配置的源地址;
[0019]所述探测响应模块,用于在确定自身已配置隧道且所述目的地址可达时,将所述源地址记录为该已配置的隧道的目的地址,返回隧道探测响应报文,所述隧道探测响应报文的源地址为所述本端节点已配置的隧道的源地址,以使得发送所述隧道探测报文的节点将所述本端节点已配置的隧道的源地址记录为隧道的目的地址。
[0020]由上述技术方案可见,本发明实施例通过发送和响应隧道探测报文来自动建立隧道,其中发送隧道探测报文的节点可以称为探测节点,响应隧道探测报文的节点可以称为被探测节点。
[0021]通过发送和响应隧道探测报文,可以使得探测节点能够探测出被探测节点是否能够到达下一跳为隧道的路由表项中的目的地址、以及被探测节点中是否已配置所述隧道,换言之,探测节点能够探测出在到达所述路由表项中的目的地址的各条路径上、与探测节点配置有相同隧道的被探测节点,所述被探测节点将自身已配置的隧道的源地址作为探测响应报文的源地址,能够将自身的已配置的隧道的源地址告知探测节点,探测节点将该被探测节点已配置的隧道的源地址记录为本端的隧道的目的地址,从而实现根据探测响应报文自动建立隧道。
[0022]可见,本发明实施例中,在节点之间建立隧道时,能够由各个节点自动获取隧道的目的地址,从而实现自动建立隧道,由于不需要手工配置各个节点的隧道目的地址,因此减小了建立隧道所需的配置工作量,而且,本发明实施例也不需要将节点区分为分支设备、中心设备、或者设立专门的服务器设备,各个节点之间地位对等,因此组网也更加简单。
【附图说明】
[0023]图1是本发明实施例提供的自动建立隧道的方法中探测节点的处理流程图。
[0024]图2是本发明实施例提供的自动建立隧道的方法中被探测节点的处理流程图。
[0025]图3是本发明实施例提供的自动建立隧道的应用实例示意图。
[0026]图4是GRE报文头部的格式示意图。
[0027]图5是本发明实施例提供的GRE隧道探测报文的结构示意图。
[0028]图6是本发明实施例提供的节点设备的硬件结构连接图。
[0029]图7是本发明实施例提供的自动建立隧道的装置的第一结构示意图。
[0030]图8是本发明实施例提供的自动建立隧道的装置的第二结构示意图。
【具体实施方式】
[0031]目前,通过手工配置的方式在节点之间建立隧道时,首先在各个节点上配置隧道的源地址,当源地址配置完成后,网络配置人员配置隧道的目的地址,因此,当网络中需要建立大量隧道、或者需要创建点到多点的隧道时,采用手工配置的方式配置隧道的目的地址时,网络配置人员需要进行大量而复杂的配置操作。
[0032]实现自动建立隧道的一种方式是,预先确定网络中的分支设备和中心设备,由分支设备首先向中心设备发送隧道流量,中心设备接收所述隧道流量,记录所述隧道流量携带的隧道信息,从而生成加封装表,即通过中心设备建立各个分支设备之间的隧道,这种方式需要明确设备的角色是分支设备还是中心设备,并且必须由分支设备发起隧道流量。
[0033]实现自动建立隧道的另一种方式是,通过自动发现虚拟专用网(Auto DiscoveryVirtual Private Network,ADVPN)组网实现自动建立隧道,在ADVPN组网中,需要在网络中明确一台或多台服务器(Server)设备,所有隧道设备向server设备注册自身的隧道源地址,然后由server统一管理各个隧道设备的源地址,各个隧道设备向Server查询对端节点的隧道源地址,根据查询结果建立到对端节点的隧道。
[0034]可见,上述两种实现自动建立隧道的方法,或者需要明确各个设备的角色是