CN101488902A - 一种gre隧道的动态建立方法和设备 - Google Patents
一种gre隧道的动态建立方法和设备 Download PDFInfo
- Publication number
- CN101488902A CN101488902A CNA2009100094671A CN200910009467A CN101488902A CN 101488902 A CN101488902 A CN 101488902A CN A2009100094671 A CNA2009100094671 A CN A2009100094671A CN 200910009467 A CN200910009467 A CN 200910009467A CN 101488902 A CN101488902 A CN 101488902A
- Authority
- CN
- China
- Prior art keywords
- tunnel
- gre tunneling
- address
- gre
- opposite equip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种GRE隧道的动态建立方法和设备。该方法包括:需要建立GRE隧道的端设备将自身用于建立GRE隧道的GRE隧道信息传递出去,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址;所述端设备根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述GRE隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道。通过使用本发明,可以在GRE隧道两端IP地址动态变化的情况下,在GRE两端的设备之间动态建立和维护GRE隧道并实时检测调整GRE隧道状态,使得GRE隧道的建立和维护更加灵活。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种GRE隧道的动态建立方法和设备。
背景技术
GRE(Generic Routing Encapsulation,通用路由封装协议)协议是对某些网络层协议如IP/IPX等的数据报文进行封装,使这些被封装的数据报文能够在另一个网络层协议如IP中传输。GRE协议实质上一种封装协议,它提供了将一种协议的报文封装在另一种协议报文中的机制,使报文能够在异种网络中传输。异种报文传输的通道称为Tunnel(隧道)。Tunnel是一个虚拟的点对点的连接,提供了一条通路使封装的数据报文能够在这个通路上传输,并且在一个Tunnel的两端分别对数据报进行封装及解封装。GRE采用了Tunnel技术,是VPN的第三层隧道协议。GRE隧道不能配置二层信息,但可以配置IP地址。
GRE利用为隧道指定的实际物理接口完成转发,下面以图1所示的网络场景为例。Net1中所有发送到Net2的原始报文,首先被发送到隧道源端,隧道源端根据报文头中的目的地址域来确定如何路由此包;报文的目的地址为Net2网段地址,要经过Tunnel接口,则设备将此报文发给相应的Tunnel接口。原始报文在隧道源端进行GRE封装,填写隧道建立时确定的隧道源地址和目的地址,然后再通过公共IP网络转发到远端VPN网络。
现有技术中建立GRE建立隧道时必须知道对端设备的IP地址。这样GRE隧道连接建立依赖于固定的IP地址,一旦隧道两端有一端设备IP地址更换就必须手动更改隧道另一端的GRE Tunnel配置。另外,传统的GRE隧道建立必须知道对方的IP地址,这样就使得使用动态IP地址的设备无法正常建立GRE隧道。
发明内容
本发明提供一种GRE隧道的动态建立方法和设备,用于在GRE隧道两端IP地址动态变化的情况下,在GRE两端的设备之间动态建立GRE隧道。
为达到上述目的,本发明提供一种GRE隧道的动态建立方法,包括:
需要建立GRE隧道的端设备将自身用于建立GRE隧道的GRE隧道信息传递出去,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址;
所述端设备根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述GRE隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道。
其中,所述需要建立GRE隧道的端设备将自身用于建立GRE隧道的GRE隧道信息传递出去包括:
需要建立GRE隧道的端设备向预先设置的组播组地址发送发现报文,所述发现报文中携带自身用于建立GRE隧道的GRE隧道信息,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址;加入到所述组播组的其他设备接收到所述发现报文。
其中,所述端设备根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道包括:
所述端设备接收对端设备通过组播方式发送的发现报文;
所述端设备获取所述发现报文中携带的所述对端设备的GRE隧道信息所包括的关键字Key;
当所述对端设备的隧道关键字Key与所述端设备上预先配置的隧道关键字Key相同、且所述对端设备的隧道接口IP地址与所述端设备的隧道接口IP地址处于同一网段时,所述端设备将所述对端设备的隧道源IP地址作为所述对端设备建立GRE隧道所使用的IP地址,与所述对端设备建立GRE隧道;
所述端设备向所述对端设备发送所述端设备的隧道源IP地址。
其中,所述与所述对端设备建立GRE隧道后,还包括:
所述端设备接收所述对端设备发送的更新报文;
所述端设备获取所述更新报文中GRE隧道信息所包括的所述对端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址;
所述端设备根据所述对端设备的变化后的隧道源IP地址,更新与所述对端设备建立的所述GRE隧道,并向所述对端设备发送响应。
其中,所述与所述对端设备建立GRE隧道后,还包括:
所述端设备建立GRE隧道所使用的隧道源IP地址发生变化时,向所述GRE隧道的对端设备发送更新报文,所述更新报文中的GRE隧道信息包括所述端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址;
所述对端设备根据所述更新报文,更新与所述端设备建立的所述GRE隧道。
其中,还包括:
所述端设备向预先设置的组播组地址发送发现报文后,在预先设置的时间内未接收到响应时,重新发送所述发现报文;重新发送所述发现报文的次数超过预设的门限时,所述端设备进入休眠,直至配置发生变化或接收到对端设备发送的发现报文;休眠期间内所述端设备不发送报文;和/或
所述端设备向所述GRE隧道的对端设备发送更新报文后,在预先设置的时间内未接收到响应时,重新发送所述更新报文;重新发送所述更新报文的次数超过预设的门限时,所述端设备进入休眠,直至配置发生变化或接收到所述对端设备发送的发现报文;休眠期间内所述端设备不发送报文。
其中,所述需要建立GRE隧道的端设备将自身用于建立GRE隧道的GRE隧道信息传递出去包括:
需要建立GRE隧道的端设备向网络中的GRE服务器发送注册报文,所述注册报文的GRE隧道信息中包括隧道关键字Key、隧道接口IP地址和隧道源IP地址。
其中,所述需要建立GRE隧道的端设备向网络中的GRE服务器发送注册报文后还包括:
所述GRE服务器根据所述注册报文存储关于所述端设备的GRE隧道信息的表项;
所述GRE服务器查询本地已存储的其他设备的GRE隧道信息的表项中,是否存在与所述端设备具有相同隧道关键字Key的表项;
所述GRE服务器将具有相同隧道关键字Key的表项中的GRE隧道信息添加在通告报文中并发送给所述端设备。
其中,所述GRE服务器将具有相同隧道关键字Key的表项中的GRE隧道信息添加在通告报文中并发送给所述端设备后,还包括:
所述GRE服务器将所述端设备的GRE隧道信息添加在通告报文中,向与所述端设备具有相同隧道关键字Key的表项所对应的设备发送。
其中,所述端设备根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道包括:
所述端设备接收网络中GRE服务器发送的通告报文;
所述端设备获取所述通告报文中携带的对端设备的GRE隧道信息所包括的关键字Key;
当所述对端设备的隧道关键字Key与所述端设备上预先配置的隧道关键字Key相同、且所述对端设备的隧道接口IP地址与所述端设备的隧道接口IP地址处于同一网段时,所述端设备将所述对端设备的隧道源IP地址作为所述对端设备建立GRE隧道所使用的IP地址,与所述对端设备建立GRE隧道。
其中,所述与所述对端设备建立GRE隧道后,还包括:
所述端设备在隧道源IP地址发生变化时,向所述GRE服务器发送通告报文,所述通告报文中携带隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
所述GRE服务器根据所述通告报文更新已存储的所述端设备的表项。
其中,所述与所述对端设备建立GRE隧道后,还包括:
所述端设备接收所述GRE服务器发送的通告报文,所述通告报文中携带所述对端设备的隧道关键字Key、隧道接口IP地址和隧道源IP地址;
所述端设备检测到所述对端设备建立GRE隧道的隧道源IP地址发生变化时,更新与所述对端设备建立的所述GRE隧道。
其中,所述端设备接收所述GRE服务器发送的通告报文包括:
所述端设备接收所述GRE服务器在检测到所述对端设备建立GRE隧道所使用的隧道源IP地址发生变化时发送的通告报文;或
所述端设备接收所述GRE服务器定期向本端设备发送的通告报文;或
所述端设备接收所述GRE服务器通过组播方式向本端设备发送的通告报文,所述通告报文中携带所述GRE服务器中已存储的所有表项。
本发明还提供一种网络设备,用于GRE隧道的动态建立,包括:
隧道信息发送单元,用于将自身用于建立GRE隧道的GRE隧道信息传递出去,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址;
隧道建立单元,用于根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述GRE隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道。
其中,所述隧道信息发送单元包括:第一隧道信息发送子单元,用于向预先设置的组播组地址发送发现报文,所述发现报文中携带自身用于建立GRE隧道的GRE隧道信息,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址,使得加入到所述组播组的其他设备接收到所述发现报文。
其中,所述隧道建立单元包括:
第一隧道信息获取子单元,用于接收所述对端设备通过组播方式发送的发现报文时,获取所述发现报文中携带的所述对端设备的GRE隧道信息所包括的关键字Key;
第一隧道建立子单元,用于当所述第一隧道信息获取子单元获取的对端设备的隧道关键字Key与所述端设备上预先配置的隧道关键字Key相同、且所述对端设备的隧道接口IP地址与所述端设备的隧道接口IP地址处于同一网段时,将所述对端设备的隧道源IP地址作为所述对端设备建立GRE隧道所使用的IP地址,与所述对端设备建立GRE隧道;
隧道信息通知子单元,用于向所述对端设备发送所述端设备的隧道源IP地址。
其中,还包括:第一隧道更新单元,用于接收所述对端设备发送的更新报文时,获取所述更新报文中GRE隧道信息所包括的所述对端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址;根据所述第一隧道更新信息获取子单元获取的对端设备的变化后的隧道源IP地址,更新与所述对端设备建立的所述GRE隧道,并向所述对端设备发送响应;
第一隧道更新信息发送单元,用于在建立GRE隧道所使用的隧道源IP地址发生变化时,向所述GRE隧道的对端设备发送更新报文,所述更新报文中的GRE隧道信息包括所述端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址,触发所述对端设备更新已建立的GRE隧道;
休眠控制单元,用于所述隧道信息发送单元向预先设置的组播组地址发送发现报文后,在预先设置的时间内未接收到响应时,重新发送所述发现报文;重新发送所述发现报文的次数超过预设的门限时,控制自身设备进入休眠,直至配置发生变化或接收到所述对端设备发送的发现报文;休眠期间内自身设备不发送报文;和/或所述第一隧道更新信息发送单元向所述GRE隧道的对端设备发送更新报文后,在预先设置的时间内未接收到响应时,重新发送所述更新报文;重新发送所述更新报文的次数超过预设的门限时,控制自身设备进入休眠,直至配置发生变化或接收到所述对端设备发送的发现报文;休眠期间内自身设备不发送报文。
其中,所述隧道信息发送单元包括:第二隧道信息发送子单元,用于向网络中的GRE服务器发送注册报文,所述注册报文的GRE隧道信息中包括隧道关键字Key、隧道接口IP地址和隧道源IP地址。
其中,所述隧道建立单元包括:
第二隧道信息获取子单元,用于接收到网络中GRE服务器发送的通告报文时,获取所述通告报文中携带的对端设备的GRE隧道信息所包括的关键字Key;
第二隧道建立子单元,用于当所述第二隧道信息获取子单元获取的对端设备的隧道关键字Key与所述端设备上预先配置的隧道关键字Key相同、且所述对端设备的隧道接口IP地址与所述端设备的隧道接口IP地址处于同一网段时,所述端设备将所述对端设备的隧道源IP地址作为所述对端设备建立GRE隧道所使用的IP地址,与所述对端设备建立GRE隧道。
其中,还包括:第二隧道更新信息发送单元,用于在自身设备的隧道源IP地址发生变化时,向所述GRE服务器发送通告报文,所述通告报文的GRE隧道信息中携带隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
第二隧道更新单元,用于接收所述GRE服务器发送的通告报文,所述通告报文的GRE隧道信息中携带所述对端设备的隧道关键字Key、隧道接口IP地址和隧道源IP地址;当检测到所述对端设备建立GRE隧道的隧道源IP地址发生变化时,更新与所述对端设备建立的所述GRE隧道。
本发明还提供一种GRE服务器,包括:
通告报文生成单元,用于生成通告报文,所述通告报文中携带GRE隧道目的端设备的GRE隧道信息,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
通告报文发送单元,用于将所述通告报文向所述GRE隧道的源端设备发送。
其中,还包括:注册报文接收单元,用于接收网络设备发送的注册报文,所述注册报文中携带网络设备的GRE隧道信息,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
表项存储单元,用于根据所述注册报文存储关于所述网络设备的GRE隧道信息的表项;
表项更新单元,用于在接收到关于GRE隧道一端的网络设备在建立GRE隧道所使用的隧道源IP地址发生变化的通告报文时,根据所述通告报文更新已存储的所述网络设备的GRE隧道信息的表项。
其中,所述通告报文生成单元包括:
表项查询子单元,用于查询本地已存储的网络设备的GRE隧道信息的表项中,是否存在与GRE隧道的源端设备具有相同隧道关键字Key的表项;
通告报文生成子单元,用于根据所述表项查询子单元查询到的表项,将查找到的具有相同隧道关键字Key的表项中的GRE隧道信息添加在通告报文中,并通过所述通告报文发送单元向所述GRE隧道的源端设备发送;还用于将所述源端设备的GRE隧道信息添加在通告报文中,并通过所述通告报文发送单元向与所述源端设备所述具有相同隧道关键字Key的表项所对应的设备发送。
其中,所述通告报文发送单元包括:
第一通告报文发送子单元,用于在检测到GRE隧道一端的设备建立GRE隧道所使用的IP地址发生变化时,向所述GRE另隧道一端的设备发送通告报文;或
第二通告报文发送子单元,用于定期向GRE隧道两端的设备发送通告报文;或
第三通告报文发送子单元,用于通过组播方式向GRE隧道两端的设备发送通告报文,所述通告报文中携带所述表项存储单元中已存储的所有表项。
与现有技术相比,本发明具有以下优点:
通过使用本发明,通过报文中携带的GRE隧道信息,在GRE隧道两端IP地址动态变化的情况下,在GRE两端的设备之间建立GRE隧道,使得GRE隧道的建立和更新更加灵活,可以实时检测调整GRE隧道状态,提高GRE隧道数据传输有效性和网络带宽的有效利用率。另外,实现了通过组播方式和在网络中部署GRE服务器的方法,在网络中建立GRE隧道的设备间传递GRE隧道信息。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中部署了GRE隧道的网络示意图;
图2是本发明GRE隧道的动态建立方法流程图;
图3是本发明中一应用场景的网络结构示意图;
图4是本发明中GRE隧道的发现阶段的流程图;
图5是本发明中GRE隧道的更新阶段的流程图;
图6是本发明中另一应用场景的网络结构示意图;
图7是本发明中GRE隧道的动态建立方法流程图;
图8是本发明中网络设备的结构示意图;
图9是本发明中网络设备的另一结构示意图;
图10是本发明中网络设备的再一结构示意图;
图11是本发明中GRE服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种GRE隧道的动态建立方法,如图2所示,包括:
步骤s201、需要建立GRE隧道的端设备将自身用于建立GRE隧道的GRE隧道信息传递出去,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址。
步骤s202、端设备根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断GRE隧道信息是否属于自己需要建立的隧道,如果是,则根据GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与对端设备建立GRE隧道。
本发明中通过报文中携带的GRE隧道信息,可以在GRE隧道两端IP地址动态变化的情况下,在GRE两端的设备之间建立GRE隧道,使得GRE隧道的建立和更新更加灵活。具体的,本发明采用两种方式实现动态GRE隧道的建立和维护。一是采用组播方式传递GRE隧道信息;另一种方式采用GREServer收集并传递GRE隧道信息,从而维护及时更新GRE隧道两端动态IP地址的方式实现动态GRE隧道。以下分别对这两种GRE隧道的建立方式进行描述。
(一)采用组播方式实现GRE隧道的动态建立和维护
采用组播方式实现动态GRE隧道时,需要在GRE隧道两端的路由器上配置能唯一标识此GRE隧道的关键字Key,使用关键字Key以及组播方式实现GRE隧道建立和维护的流程主要分为三个阶段:发现阶段、更新阶段、休眠阶段。发现阶段主要是GRE隧道源端发现GRE隧道目的端并建立GRE隧道的过程;更新阶段为GRE隧道建立后,GRE隧道两端IP地址变化时对GRE隧道的IP进行更新的过程;休眠阶段是指由于网络故障或配置错误等原因导致GRE隧道建立失败时,GRE隧道源端和目的端进入休眠阶段。
以下以图3所示的应用场景为例,描述本发明中采用组播方式实现GRE隧道动态建立的方法。图3中所示的路由器A、路由器B和路由器C位于同一网段。以需要在路由器A和路由器B之间建立GRE隧道Tunnel0、路由器A和路由器C之间建立GRE隧道Tunnel1为例,则预先在路由器A、路由器B和路由器C上分别配置GRE隧道的关键字Key,假设路由器A上配置的关键字Key为{0001,0002},路由器B上配置的关键字Key为{0001},路由器C上配置的关键字Key为{0002}。
则GRE隧道的发现阶段如图4所示,包括以下流程:
步骤s401、路由器A获取到建立Tunnel0所需的源IP地址后,以特定的组播地址向网络发送发现(Discovery)报文,传递自身的GRE隧道信息,GRE隧道信息包括路由器A的隧道关键字Key、隧道接口IP地址以及所获取的GRE隧道源IP地址,对于路由器A,假设Tunnel0对应的关键字Key为0001,隧道接口IP地址为1.1.1.1,GRE隧道源IP地址为10.1.1.1,则发现报文中传递的GRE隧道信息包括(0001,1.1.1.1,10.1.1.1)。网络中需要建立GRE隧道的各路由器加入到该组播组,可以接收到路由器A通过组播方式发送的发现报文。
步骤s402、加入到该组播组的路由器B收到发现报文后,判断发现报文中的关键字Key与本设备上配置的关键字Key相同,且根据发现报文中携带的隧道接口IP地址判断与路由器A位于同一网段,则将该发现报文中携带的GRE隧道源IP地址写入本设备隧道目的IP地址。
若路由器C也收到了路由器A发送的发现报文,由于发现报文中的关键字Key与本设备上配置的关键字Key不同,因此路由器C不会对该发现报文进行任何响应。
步骤s403、路由器B以单播方式向路由器A回应本设备建立GRE隧道所使用的隧道源IP地址信息,路由器A获得路由器B的隧道源IP地址信息后,路由器B与路由器A之间建立GRE隧道。
同理可知,如需要在路由器A和路由器C之间建立GRE隧道,则路由器A获取到Tunnel1的源IP地址后(假设为20.1.1.1),以特定的组播地址向网络发送发现报文,发现报文中传递的GRE隧道信息包括(0002,1.1.2.1,20.1.1.1),则路由器C收到该发现报文后所进行的处理与上述步骤s401~s403中路由器B所执行的流程相似,最终将在路由器C与路由器A之间建立GRE隧道,对此流程在此不进行重复描述。
基于相似的流程,路由器B和路由器C也通过特定的组播地址向网络发送发现(Discovery)报文,传递自身的GRE隧道信息。路由器A获取到路由器B和路由器C的GRE隧道信息后,会通过单播方式分别向路由器B和路由器C回应本设备建立GRE隧道所使用的隧道源IP地址,从而在路由器B与路由器A之间、路由器C与路由器A之间分别建立GRE隧道。该过程与上述步骤s401~s403中所描述的流程相似,对此流程在此不进行重复描述。
另外,如果路由器A在一定时间内没有收到任何响应,则认为网络出现了异常情况导致发现报文被丢弃或GRE隧道目的端配置失败,则重新发送发现报文。连续发送多个周期没有收到响应,则认为GRE隧道建立失败,路由器A进入休眠阶段,直至路由器A上的配置发生变化或接收到对端设备发送的发现报文;休眠期间内路由器A不发送报文。
以路由器A建立隧道Tunnel0所使用的IP地址发生变化为例,GRE隧道的更新阶段如图5所示,包括以下流程:
步骤s501、路由器A通过单播方式向作为GRE隧道目的端的路由器B发送更新(Update)报文,更新报文中传递的GRE隧道信息包括隧道关键字Key、隧道接口IP地址以及所获取的GRE隧道源IP地址。假设路由器A建立隧道Tunnel0所使用的GRE隧道源IP地址变为10.1.1.2,则更新报文中传递的GRE隧道信息包括(0001,1.1.1.1,10.1.1.2)
步骤s502、路由器B收到此更新报文,则更新对应GRE隧道的目的IP地址信息,并回应确认消息给路由器A。
基于相似的流程,路由器B在建立隧道所使用的源IP地址发生变化时,同样可以通过单播方式向路由器A发送更新报文,使得路由器A根据该更新报文更新GRE隧道的IP地址,从而实现GRE隧道的更新。该流程与上述图5所示的流程相似,在此不进行重复描述。
另外,一种特殊情况是GRE隧道两端IP同时变化,则由于GRE隧道目的端路由器B的IP地址变化,路由器A发出的更新报文不能到达路由器B。或者由于网络原因导致路由器B没有收到更新报文,路由器A在一定时间内没有收到确认消息时,重新发送更新报文。如连续发送三到四个周期后仍然没有收到回应报文,则路由器A判断GRE隧道的更新失败,进入发现阶段。
建立GRE隧道的设备在休眠阶段中对各种异常情况进行处理。建立GRE隧道的设备处于休眠阶段时,标识GRE隧道处于故障状态,此时GRE隧道两端不转发GRE报文,以免造成网络带宽的浪费。此时,如出现GRE隧道配置更改,或收到GRE隧道另一端发送的发现报文,GRE隧道两端的设备自动进入发现阶段发现并建立GRE隧道。否则,GRE隧道两端的设备定期发送发现报文监测GRE隧道状态。
上述实施例的描述中均主要以路由器A为例说明GRE隧道建立和维护的发现阶段、更新阶段和休眠阶段,可以理解的是该应用于路由器A上的流程同样可以应用于路由器B、路由器C以及网络中的其他路由器上,例如将路由器B和路由器A的角色对调,通过向网络通过组播方式发送发现报文、向已建立GRE隧道的对端设备发送更新报文、接收对端设备对发现报文的响应报文以及对端设备在建立GRE隧道的地址发生变化时的更新报文的方式,实现基于组播方式的GRE隧道的动态建立和维护。
(二)采用GRE Server方式实现GRE隧道的动态建立和维护
实现动态建立隧道的两端路由器之间的报文可以通过自身发送的报文来传递建立和更新隧道所需的信息,同时,也可以将信息集中传递给第三方设备如GRE Server的方式实现GRE隧道的动态建立,在这种情况下,隧道两端均将携带建立隧道所需信息的报文传递给GRE Server,同时,在GRE隧道两端配置指定GRE Server的IP地址,以及能唯一标识一条GRE隧道的关键字Key,同一隧道两端配置相同的关键字Key。
GRE Server用于GRE隧道的管理,为网络中GRE隧道两端均可达的设备,可以由网络中已有的路由器充当GRE Server,也可由接入网络的其他设备如PC充当。GRE隧道源端和目的端均需要在GRE Server设备上进行注册,注册成功后由GRE Server监控GRE隧道两端动态IP变化情况,从而维持GRE隧道。GRE Server与GRE隧道两端处于一种弱管理关系,二者之间的交互简单,从而不会对网络负载造成较大负担。
GRE Server中通过建立和维护更新GRE表项,实现对GRE隧道两端的管理。本发明中,GRE Server设备维护的GRE隧道表项中包括GRE隧道信息,其结构可以如下表1所示:
表1 GRE隧道表项结构
Key | 接口IP | Source IP |
隧道关键字 | GRE隧道接口IP地址 | GRE隧道源端IP地址 |
以下以图6所示的应用场景为例,描述本发明中GRE隧道的动态建立方法。图3中所述的路由器A、路由器B和路由器C位于同一网段。以需要在路由器A和路由器B之间建立GRE隧道Tunnel0、路由器A和路由器C之间建立GRE隧道Tunnel1为例,则预先在路由器A、路由器B和路由器C上分别配置GRE隧道的关键字Key,假设路由器A上配置的关键字Key为{0001,0002},路由器B上配置的关键字Key为{0001},路由器C上配置的关键字Key为{0002}。另外,网络中还存在GRE Server,路由器A、路由器B和路由器C上均配置有GREServer的地址。GRE Server也可以位于路由器A、路由器B或路由器C上。
该应用场景中,以GRE Server对路由器A发送的报文的处理为例,则GRE隧道的动态建立方法如图7所示,包括:
步骤s701、网络中需要建立GRE隧道的路由器A以单播方式向GRE Server发送注册报文,在GRE Server上进行注册。注册报文中携带的GRE隧道信息包括路由器A的隧道关键字Key、隧道接口IP地址和所获取的GRE隧道源IP地址。
步骤s702、GRE Server收到路由器A发送的注册报文后,根据注册报文中携带的关键字Key,查询本地是否存在包括此关键字Key的GRE隧道表项,不存在时则进行步骤s703,存在时则进行步骤s704。
步骤s703、GRE Server新建GRE隧道表项,记录注册报文中携带的关键字Key、路由器上隧道接口的IP地址和路由器A获取的GRE隧道源IP地址。之后GRE Server向路由器A返回响应报文。此时响应报文中携带的GRE隧道目的IP地址可以为0.0.0.0。
步骤s704、GRE Server新建GRE隧道表项,记录注册报文中携带的关键字Key、路由器A上隧道接口的IP地址和路由器A获取的GRE隧道源IP地址。之后GRE Server向路由器A返回响应报文。此时响应报文中携带的GRE隧道信息,为GRE Server上已经保存的与路由器A要建立的GRE隧道相符的GRE隧道信息。例如,GRE Server曾经收到路由器B发送的注册报文,则GRE Server的本地表项中已存在路由器B的隧道关键字Key、隧道接口I的P地址和路由器B获取的GRE隧道源IP地址。此时GRE Server收到路由器A发送的注册报文后,同样新建GRE表项,记录注册报文中携带的关键字Key、路由器A上隧道接口的IP地址和路由器A获取的GRE隧道源IP地址。之后由于关于路由器B的表项和关于路由器A的表项具有相同的Key,则GRE Server根据本地已经建立的关于路由器B的表项,向路由器A端发送回应报文,回应报文中携带路由器B的GRE隧道信息,即表项中已存在的I路由器B的关键字Key、隧道接口IP地址和隧道源IP地址。同时GRE Server会向路由器B发送GRE通告报文,将路由器A的GRE隧道信息通告路由器B,路由器B收到发现报文后,判断发现报文中的关键字Key与本设备上配置的关键字Key相同,且根据发现报文中携带的隧道接口IP地址判断与路由器A位于同一网段,则将该报文中携带的隧道源IP地址作为待建立GRE隧道的目的IP地址。这样隧道两端均知道GRE隧道的源端IP和目的端IP,GRE隧道建立。以GRE Server向路由器B发送携带路由器A的GRE隧道信息的GRE通告报文为例,该报文在传输过程中可能经过待建立GRE隧道的路由器C,则路由器C在转发该GRE通告报文时,发现其中携带的GRE隧道信息中的关键字Key与自身配置的Key不同,则不会处理该报文,只会将该GRE通告报文向目的地址即路由器B进行转发。
基于相似的流程,路由器A和路由器C之间也可以通过与GRE Server的交互获取到对方的隧道接口IP地址和源IP地址,从而在路由器A和路由器C之间建立GRE隧道,该过程与上述路由器A与路由器B之间建立GRE隧道的过程相似,在此不进行重复描述。
使用上述流程建立GRE隧道后,当GRE隧道任一端的隧道源IP地址发生改变时,IP地址发生变化的设备向GRE Server主动发送隧道源IP地址变化的通告(Update)报文。GRE Server收到此通告报文后根据报文携带的Tunnel接口IP地址检索到相应表项后更新设备表项中该设备的GRE隧道信息,并向同一网段的其他设备通告这一变化,触发其他设备根据更新后的隧道源IP地址进行GRE隧道的更新。例如,对于路由器A与路由器B之间建立的GRE隧道,当路由器A建立隧道使用的隧道源IP地址发生变化时,主动向GRE Server发送通告报文,报文中携带路由器A的GRE隧道信息,GRE Server根据该通告报文更新本地存储的关于路由器A的GRE隧道信息的表项,并将更新后的路由器A的GRE隧道信息发送给路由器B,触发路由器B根据路由器A中变化后的隧道源IP地址更新已建立的GRE隧道。
GRE隧道任一端如配置取消隧道,主动以单播方式向GRE Server发送隧道撤消报文。GRE Server收到报文后即清空此GRE表项,并向GRE隧道另一端发送隧道撤销报文。
另外,上述GRE隧道的建立和更新流程均由GRE隧道两端主动发起。为避免由于网络问题导致GRE隧道两端GRE配置失效或GRE Server端GRE表项过时,GRE Server还可以定期向GRE隧道两端发送IP通告报文。GRE隧道Client端收到此报文后与自身配置进行比较,如发现不同则更新GRE隧道目的IP地址,并发送确认消息给GRE Server。GRE Server如连续三个或多个周期均没有收到相应的确认消息,则在设备上清空此GRE表项。
另外,如果网络规模较小且GRE隧道配置相对稳定时,GRE Server也可采用组播模式定期向所有GRE隧道的源端和目的端通告其所维护的GRE表项。GRE隧道源端或目的端根据表项中的关键字和Tunnel接口检索更新GRE隧道的目的IP地址,而且不需发送确认消息给GRE Server。
上述实施例的描述中均主要以路由器A为例说明GRE隧道建立和维护的发现阶段、更新阶段和休眠阶段,可以理解的是该应用于路由器A上的流程同样可以应用于路由器B以及网络中的其他路由器上,例如将路由器B和路由器A的角色对调,通过以单播方式向GRE Server发送注册报文、在建立隧道的IP地址发生变化时向GRE Server主动发送通告报文、接收GRE Server根据注册报文返回的响应报文以及接收GRE Server在对端建立隧道的IP地址发生变化时发送的通告报文的方式,实现基于GRE Server方式的GRE隧道的动态建立和维护。
通过使用本发明提供的方法,在GRE隧道两端IP地址动态变化的情况下,在GRE两端的设备之间动态建立和维护GRE隧道,使得GRE隧道的建立和更新更加灵活,可以实时检测调整GRE隧道状态,提高GRE隧道数据传输有效性和网络带宽的有效利用率。另外,实现了通过组播方式和在网络中部署GRE服务器的方法,在网络中建立GRE隧道的设备间传递GRE隧道信息。
本发明中还提供一种网络设备,用于GRE隧道的动态建立,如图8所示,包括:
隧道信息发送单元10,用于将自身用于建立GRE隧道的GRE隧道信息传递出去,GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址;
隧道建立单元20,用于根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断GRE隧道信息是否属于自己需要建立的隧道,如果是,则根据GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与对端设备建立GRE隧道。
本发明提供的上述网络设备中,可以通过组播方式实现GRE隧道信息的传递。使用该方式时,网络设备的结构如图9所示:
具体的,隧道信息发送单元10可以包括:第一隧道信息发送子单元11,用于向预先设置的组播组地址发送发现报文,发现报文中携带自身用于建立GRE隧道的GRE隧道信息,GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址,使得加入到组播组的其他设备接收到发现报文。
隧道建立单元20可以进一步包括:
第一隧道信息获取子单元21,用于接收对端设备通过组播方式发送的发现报文时,获取发现报文中携带的对端设备的GRE隧道信息所包括的关键字Key;
第一隧道建立子单元22,用于当第一隧道信息获取子单元21获取的对端设备的隧道关键字Key与端设备上预先配置的隧道关键字Key相同、且对端设备的隧道接口IP地址与端设备的隧道接口IP地址处于同一网段时,将对端设备的隧道源IP地址作为对端设备建立GRE隧道所使用的IP地址,与对端设备建立GRE隧道;
隧道信息通知子单元23,用于向对端设备发送端设备的隧道源IP地址。
另外,该网络设备还可以包括:
第一隧道更新单元30,用于接收对端设备发送的更新报文时,获取更新报文中GRE隧道信息所包括的对端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址;根据第一隧道更新信息获取子单元获取的对端设备的变化后的隧道源IP地址,更新与对端设备建立的GRE隧道,并向对端设备发送响应。
第一隧道更新信息发送单元40,用于在建立GRE隧道所使用的隧道源IP地址发生变化时,向GRE隧道的对端设备发送更新报文,更新报文中的GRE隧道信息包括端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址,触发对端设备更新已建立的GRE隧道。
休眠控制单元50,用于隧道信息发送单元10向预先设置的组播组地址发送发现报文后,在预先设置的时间内未接收到响应时,重新发送发现报文;重新发送发现报文的次数超过预设的门限时,控制自身设备进入休眠,直至配置发生变化或接收到对端设备发送的发现报文;休眠期间内自身设备不发送报文;和/或第一隧道更新信息发送单元40向GRE隧道的对端设备发送更新报文后,在预先设置的时间内未接收到响应时,重新发送更新报文;重新发送更新报文的次数超过预设的门限时,控制自身设备进入休眠,直至配置发生变化或接收到对端设备发送的发现报文;休眠期间内自身设备不发送报文。
本发明提供的上述网络设备中,还可以通过在网络中部署GRE服务器的方式实现GRE隧道信息的传递。使用该方式时,网络设备的结构如图10所示:
具体的,隧道信息发送单元10可以包括:第二隧道信息发送子单元12,用于向网络中的GRE服务器发送注册报文,注册报文的GRE隧道信息中包括隧道关键字Key、隧道接口IP地址和隧道源IP地址。
隧道建立单元20可以进一步包括:
第二隧道信息获取子单元25,用于接收到网络中GRE服务器发送的通告报文时,获取通告报文中携带的对端设备的GRE隧道信息所包括的关键字Key;
第二隧道建立子单元26,用于当第二隧道信息获取子单元21获取的对端设备的隧道关键字Key与端设备上预先配置的隧道关键字Key相同、且对端设备的隧道接口IP地址与端设备的隧道接口IP地址处于同一网段时,端设备将对端设备的隧道源IP地址作为对端设备建立GRE隧道所使用的IP地址,与对端设备建立GRE隧道。
另外,该网络设备还可以包括:
第二隧道更新信息发送单元60,用于在自身设备的隧道源IP地址发生变化时,向GRE服务器发送通告报文,通告报文的GRE隧道信息中携带隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址。
第二隧道更新单元70,用于接收GRE服务器发送的通告报文,通告报文的GRE隧道信息中携带对端设备的隧道关键字Key、隧道接口IP地址和隧道源IP地址;当检测到对端设备建立GRE隧道的隧道源IP地址发生变化时,更新与对端设备建立的GRE隧道。
本发明中还提供一种GRE服务器,用于在网络中通过部署GRE服务器的方式实现GRE隧道信息的传递,如图11所示,该GRE服务器包括:
通告报文生成单元91,用于生成通告报文,通告报文中携带GRE隧道目的端设备的GRE隧道信息,GRE隧道信息包括隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
通告报文发送单元92,用于将通告报文生成单元91生成的通告报文向GRE隧道的源端设备发送。
另外,该GRE服务器中还可以包括:
注册报文接收单元93,用于接收网络设备发送的注册报文,注册报文中携带网络设备的GRE隧道信息,GRE隧道信息包括隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
表项存储单元94,用于根据注册报文接收单元93接收的注册报文存储关于网络设备的GRE隧道信息的表项。
表项更新单元95,用于在接收到关于GRE隧道一端的网络设备在建立GRE隧道所使用的隧道源IP地址发生变化的通告报文时,根据通告报文更新已存储的网络设备的GRE隧道信息的表项。
具体的,通告报文生成单元91可以包括:
表项查询子单元911,用于查询本地已存储的网络设备的GRE隧道信息的表项中,是否存在与GRE隧道的源端设备具有相同隧道关键字Key的表项;
通告报文生成子单元912,用于根据表项查询子单元911查询到的表项,将查找到的具有相同隧道关键字Key的表项中的GRE隧道信息添加在通告报文中,并通过通告报文发送单元92向GRE隧道的源端设备发送;另外,还可以用于,将源端设备的GRE隧道信息添加在通告报文中,并通过通告报文发送单元92向与源端设备具有相同隧道关键字Key的表项所对应的设备发送。
具体的,通告报文发送单元92可以包括:
第一通告报文发送子单元921,用于在检测到GRE隧道一端的设备建立GRE隧道所使用的IP地址发生变化时,向GRE另隧道一端的设备发送的通告报文;或
第二通告报文发送子单元922,用于向GRE隧道两端的设备发送的通告报文;或
第三通告报文发送子单元923,用于通过组播方式向GRE隧道两端的设备发送通告报文,通告报文中携带表项存储单元中已存储的所有表项。
通过使用本发明提供的设备,可以在GRE隧道两端IP地址动态变化的情况下,在GRE两端的设备之间动态建立和维护GRE隧道,使得GRE隧道的建立和更新更加灵活,可以实时检测调整GRE隧道状态,提高GRE隧道数据传输有效性和网络带宽的有效利用率。另外,实现了通过组播方式和在网络中部署GRE服务器的方法,在网络中建立GRE隧道的设备间传递GRE隧道信息。
上述模块可以分布于一个装置,也可以分布于多个装置。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (24)
1、一种GRE隧道的动态建立方法,其特征在于,包括:
需要建立GRE隧道的端设备将自身用于建立GRE隧道的GRE隧道信息传递出去,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址;
所述端设备根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述GRE隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道。
2、如权利要求1所述的方法,其特征在于,所述需要建立GRE隧道的端设备将自身用于建立GRE隧道的GRE隧道信息传递出去包括:
需要建立GRE隧道的端设备向预先设置的组播组地址发送发现报文,所述发现报文中携带自身用于建立GRE隧道的GRE隧道信息,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址;加入到所述组播组的其他设备接收到所述发现报文。
3、如权利要求2所述的方法,其特征在于,所述端设备根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道包括:
所述端设备接收对端设备通过组播方式发送的发现报文;
所述端设备获取所述发现报文中携带的所述对端设备的GRE隧道信息所包括的关键字Key;
当所述对端设备的隧道关键字Key与所述端设备上预先配置的隧道关键字Key相同、且所述对端设备的隧道接口IP地址与所述端设备的隧道接口IP地址处于同一网段时,所述端设备将所述对端设备的隧道源IP地址作为所述对端设备建立GRE隧道所使用的IP地址,与所述对端设备建立GRE隧道;
所述端设备向所述对端设备发送所述端设备的隧道源IP地址。
4、如权利要求2所述的方法,其特征在于,所述与所述对端设备建立GRE隧道后,还包括:
所述端设备接收所述对端设备发送的更新报文;
所述端设备获取所述更新报文中GRE隧道信息所包括的所述对端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址;
所述端设备根据所述对端设备的变化后的隧道源IP地址,更新与所述对端设备建立的所述GRE隧道,并向所述对端设备发送响应。
5、如权利要求2所述的方法,其特征在于,所述与所述对端设备建立GRE隧道后,还包括:
所述端设备建立GRE隧道所使用的隧道源IP地址发生变化时,向所述GRE隧道的对端设备发送更新报文,所述更新报文中的GRE隧道信息包括所述端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址;
所述对端设备根据所述更新报文,更新与所述端设备建立的所述GRE隧道。
6、如权利要求2或5所述的方法,其特征在于,还包括:
所述端设备向预先设置的组播组地址发送发现报文后,在预先设置的时间内未接收到响应时,重新发送所述发现报文;重新发送所述发现报文的次数超过预设的门限时,所述端设备进入休眠,直至配置发生变化或接收到对端设备发送的发现报文;休眠期间内所述端设备不发送报文;和/或
所述端设备向所述GRE隧道的对端设备发送更新报文后,在预先设置的时间内未接收到响应时,重新发送所述更新报文;重新发送所述更新报文的次数超过预设的门限时,所述端设备进入休眠,直至配置发生变化或接收到所述对端设备发送的发现报文;休眠期间内所述端设备不发送报文。
7、如权利要求1所述的方法,其特征在于,所述需要建立GRE隧道的端设备将自身用于建立GRE隧道的GRE隧道信息传递出去包括:
需要建立GRE隧道的端设备向网络中的GRE服务器发送注册报文,所述注册报文的GRE隧道信息中包括隧道关键字Key、隧道接口IP地址和隧道源IP地址。
8、如权利要求7所述的方法,其特征在于,所述需要建立GRE隧道的端设备向网络中的GRE服务器发送注册报文后还包括:
所述GRE服务器根据所述注册报文存储关于所述端设备的GRE隧道信息的表项;
所述GRE服务器查询本地已存储的其他设备的GRE隧道信息的表项中,是否存在与所述端设备具有相同隧道关键字Key的表项;
所述GRE服务器将具有相同隧道关键字Key的表项中的GRE隧道信息添加在通告报文中并发送给所述端设备。
9、如权利要求8所述的方法,其特征在于,所述GRE服务器将具有相同隧道关键字Key的表项中的GRE隧道信息添加在通告报文中并发送给所述端设备后,还包括:
所述GRE服务器将所述端设备的GRE隧道信息添加在通告报文中,向与所述端设备具有相同隧道关键字Key的表项所对应的设备发送。
10、如权利要求7或8或9所述的方法,其特征在于,所述端设备根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道包括:
所述端设备接收网络中GRE服务器发送的通告报文;
所述端设备获取所述通告报文中携带的对端设备的GRE隧道信息所包括的关键字Key;
当所述对端设备的隧道关键字Key与所述端设备上预先配置的隧道关键字Key相同、且所述对端设备的隧道接口IP地址与所述端设备的隧道接口IP地址处于同一网段时,所述端设备将所述对端设备的隧道源IP地址作为所述对端设备建立GRE隧道所使用的IP地址,与所述对端设备建立GRE隧道。
11、如权利要求10所述的方法,其特征在于,所述与所述对端设备建立GRE隧道后,还包括:
所述端设备在隧道源IP地址发生变化时,向所述GRE服务器发送通告报文,所述通告报文中携带隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
所述GRE服务器根据所述通告报文更新已存储的所述端设备的表项。
12、如权利要求10所述的方法,其特征在于,所述与所述对端设备建立GRE隧道后,还包括:
所述端设备接收所述GRE服务器发送的通告报文,所述通告报文中携带所述对端设备的隧道关键字Key、隧道接口IP地址和隧道源IP地址;
所述端设备检测到所述对端设备建立GRE隧道的隧道源IP地址发生变化时,更新与所述对端设备建立的所述GRE隧道。
13、如权利要求11所述的方法,其特征在于,所述端设备接收所述GRE服务器发送的通告报文包括:
所述端设备接收所述GRE服务器在检测到所述对端设备建立GRE隧道所使用的隧道源IP地址发生变化时发送的通告报文;或
所述端设备接收所述GRE服务器定期向本端设备发送的通告报文;或
所述端设备接收所述GRE服务器通过组播方式向本端设备发送的通告报文,所述通告报文中携带所述GRE服务器中已存储的所有表项。
14、一种网络设备,用于GRE隧道的动态建立,其特征在于,包括:
隧道信息发送单元,用于将自身用于建立GRE隧道的GRE隧道信息传递出去,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址;
隧道建立单元,用于根据收到的其他端设备发送的报文中GRE隧道信息所包括的关键字Key,判断所述GRE隧道信息是否属于自己需要建立的隧道,如果是,则根据所述GRE隧道信息包括的对端设备隧道接口IP地址和隧道源IP地址,并结合自身的隧道信息与所述对端设备建立GRE隧道。
15、如权利要求14所述的网络设备,其特征在于,所述隧道信息发送单元包括:第一隧道信息发送子单元,用于向预先设置的组播组地址发送发现报文,所述发现报文中携带自身用于建立GRE隧道的GRE隧道信息,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址和隧道源IP地址,使得加入到所述组播组的其他设备接收到所述发现报文。
16、如权利要求15所述的网络设备,其特征在于,所述隧道建立单元包括:
第一隧道信息获取子单元,用于接收所述对端设备通过组播方式发送的发现报文时,获取所述发现报文中携带的所述对端设备的GRE隧道信息所包括的关键字Key;
第一隧道建立子单元,用于当所述第一隧道信息获取子单元获取的对端设备的隧道关键字Key与所述端设备上预先配置的隧道关键字Key相同、且所述对端设备的隧道接口IP地址与所述端设备的隧道接口IP地址处于同一网段时,将所述对端设备的隧道源IP地址作为所述对端设备建立GRE隧道所使用的IP地址,与所述对端设备建立GRE隧道;
隧道信息通知子单元,用于向所述对端设备发送所述端设备的隧道源IP地址。
17、如权利要求15所述的网络设备,其特征在于,还包括:
第一隧道更新单元,用于接收所述对端设备发送的更新报文时,获取所述更新报文中GRE隧道信息所包括的所述对端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址;根据所述第一隧道更新信息获取子单元获取的对端设备的变化后的隧道源IP地址,更新与所述对端设备建立的所述GRE隧道,并向所述对端设备发送响应;
第一隧道更新信息发送单元,用于在建立GRE隧道所使用的隧道源IP地址发生变化时,向所述GRE隧道的对端设备发送更新报文,所述更新报文中的GRE隧道信息包括所述端设备的隧道关键字Key、隧道接口IP地址和变化后的隧道源IP地址,触发所述对端设备更新已建立的GRE隧道;
休眠控制单元,用于所述隧道信息发送单元向预先设置的组播组地址发送发现报文后,在预先设置的时间内未接收到响应时,重新发送所述发现报文;重新发送所述发现报文的次数超过预设的门限时,控制自身设备进入休眠,直至配置发生变化或接收到所述对端设备发送的发现报文;休眠期间内自身设备不发送报文;和/或所述第一隧道更新信息发送单元向所述GRE隧道的对端设备发送更新报文后,在预先设置的时间内未接收到响应时,重新发送所述更新报文;重新发送所述更新报文的次数超过预设的门限时,控制自身设备进入休眠,直至配置发生变化或接收到所述对端设备发送的发现报文;休眠期间内自身设备不发送报文。
18、如权利要求14所述的网络设备,其特征在于,所述隧道信息发送单元包括:第二隧道信息发送子单元,用于向网络中的GRE服务器发送注册报文,所述注册报文的GRE隧道信息中包括隧道关键字Key、隧道接口IP地址和隧道源IP地址。
19、如权利要求18所述的网络设备,其特征在于,所述隧道建立单元包括:
第二隧道信息获取子单元,用于接收到网络中GRE服务器发送的通告报文时,获取所述通告报文中携带的对端设备的GRE隧道信息所包括的关键字Key;
第二隧道建立子单元,用于当所述第二隧道信息获取子单元获取的对端设备的隧道关键字Key与所述端设备上预先配置的隧道关键字Key相同、且所述对端设备的隧道接口IP地址与所述端设备的隧道接口IP地址处于同一网段时,所述端设备将所述对端设备的隧道源IP地址作为所述对端设备建立GRE隧道所使用的IP地址,与所述对端设备建立GRE隧道。
20、如权利要求18或19所述的网络设备,其特征在于,还包括:
第二隧道更新信息发送单元,用于在自身设备的隧道源IP地址发生变化时,向所述GRE服务器发送通告报文,所述通告报文的GRE隧道信息中携带隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
第二隧道更新单元,用于接收所述GRE服务器发送的通告报文,所述通告报文的GRE隧道信息中携带所述对端设备的隧道关键字Key、隧道接口IP地址和隧道源IP地址;当检测到所述对端设备建立GRE隧道的隧道源IP地址发生变化时,更新与所述对端设备建立的所述GRE隧道。
21、一种GRE服务器,其特征在于,包括:
通告报文生成单元,用于生成通告报文,所述通告报文中携带GRE隧道目的端设备的GRE隧道信息,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
通告报文发送单元,用于将所述通告报文向所述GRE隧道的源端设备发送。
22、如权利要求21所述的GRE服务器,其特征在于,还包括:
注册报文接收单元,用于接收网络设备发送的注册报文,所述注册报文中携带网络设备的GRE隧道信息,所述GRE隧道信息包括隧道关键字Key、隧道接口IP地址以及变化后的隧道源IP地址;
表项存储单元,用于根据所述注册报文存储关于所述网络设备的GRE隧道信息的表项。
表项更新单元,用于在接收到关于GRE隧道一端的网络设备在建立GRE隧道所使用的隧道源IP地址发生变化的通告报文时,根据所述通告报文更新已存储的所述网络设备的GRE隧道信息的表项。
23、如权利要求22所述的GRE服务器,其特征在于,所述通告报文生成单元包括:
表项查询子单元,用于查询本地已存储的网络设备的GRE隧道信息的表项中,是否存在与GRE隧道的源端设备具有相同隧道关键字Key的表项;
通告报文生成子单元,用于根据所述表项查询子单元查询到的表项,将查找到的具有相同隧道关键字Key的表项中的GRE隧道信息添加在通告报文中,并通过所述通告报文发送单元向所述GRE隧道的源端设备发送;还用于将所述源端设备的GRE隧道信息添加在通告报文中,并通过所述通告报文发送单元向与所述源端设备所述具有相同隧道关键字Key的表项所对应的设备发送。
24、如权利要求21所述的GRE服务器,其特征在于,所述通告报文发送单元包括:
第一通告报文发送子单元,用于在检测到GRE隧道一端的设备建立GRE隧道所使用的IP地址发生变化时,向所述GRE另隧道一端的设备发送通告报文;或
第二通告报文发送子单元,用于定期向GRE隧道两端的设备发送通告报文;或
第三通告报文发送子单元,用于通过组播方式向GRE隧道两端的设备发送通告报文,所述通告报文中携带所述表项存储单元中已存储的所有表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100094671A CN101488902A (zh) | 2009-02-25 | 2009-02-25 | 一种gre隧道的动态建立方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100094671A CN101488902A (zh) | 2009-02-25 | 2009-02-25 | 一种gre隧道的动态建立方法和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101488902A true CN101488902A (zh) | 2009-07-22 |
Family
ID=40891587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100094671A Pending CN101488902A (zh) | 2009-02-25 | 2009-02-25 | 一种gre隧道的动态建立方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101488902A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332986A (zh) * | 2010-07-13 | 2012-01-25 | 杭州华三通信技术有限公司 | 一种地址处理方法、系统和设备 |
CN102710745A (zh) * | 2012-04-25 | 2012-10-03 | 浙江宇视科技有限公司 | 一种实况轮切方法及装置 |
CN102739521A (zh) * | 2012-06-04 | 2012-10-17 | 杭州华三通信技术有限公司 | 一种组播业务实现方法及其设备 |
CN102868586A (zh) * | 2012-09-25 | 2013-01-09 | 杭州华三通信技术有限公司 | 一种建立隧道转发表项的方法、中心节点和分支节点 |
CN103391296A (zh) * | 2013-07-29 | 2013-11-13 | 北京华为数字技术有限公司 | 一种控制器、转发器及通道建立方法和系统 |
CN103973555A (zh) * | 2013-01-29 | 2014-08-06 | 华为技术有限公司 | 通用路由封装协议隧道建立方法、通信设备及通信系统 |
CN104022936A (zh) * | 2014-06-20 | 2014-09-03 | 杭州华三通信技术有限公司 | 一种隧道建立方法和装置 |
CN104243270A (zh) * | 2014-09-25 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种建立隧道的方法和装置 |
CN104301133A (zh) * | 2014-08-08 | 2015-01-21 | 杭州华三通信技术有限公司 | 一种通用路由封装键值的管理方法及设备 |
CN104683210A (zh) * | 2015-03-10 | 2015-06-03 | 杭州华三通信技术有限公司 | 一种自动建立隧道的方法和装置 |
CN106559360A (zh) * | 2015-09-24 | 2017-04-05 | 成都鼎桥通信技术有限公司 | Lte宽带集群系统gre级联组网的实现方法及系统 |
CN109450796A (zh) * | 2018-11-13 | 2019-03-08 | 北京华三通信技术有限公司 | 一种报文转发方法、装置及转发设备 |
CN109600293A (zh) * | 2018-12-24 | 2019-04-09 | 青岛海信电子设备股份有限公司 | 一种gre隧道建立方法及系统 |
CN110401679A (zh) * | 2019-08-27 | 2019-11-01 | 北京指掌易科技有限公司 | 基于网络环境的移动应用安全隧道建立的控制方法和装置 |
WO2021093641A1 (zh) * | 2019-11-13 | 2021-05-20 | 中兴通讯股份有限公司 | 报文传输方法及系统,发送端vpn设备及gre拼接设备 |
CN113905109A (zh) * | 2021-12-08 | 2022-01-07 | 深圳竹云科技有限公司 | 零信任网络数据传输方法、装置、设备及计算机存储介质 |
WO2022166464A1 (zh) * | 2021-02-07 | 2022-08-11 | 华为技术有限公司 | 一种报文传输方法、系统及设备 |
-
2009
- 2009-02-25 CN CNA2009100094671A patent/CN101488902A/zh active Pending
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102332986A (zh) * | 2010-07-13 | 2012-01-25 | 杭州华三通信技术有限公司 | 一种地址处理方法、系统和设备 |
CN102332986B (zh) * | 2010-07-13 | 2013-08-14 | 杭州华三通信技术有限公司 | 一种地址处理方法、系统和设备 |
CN102710745A (zh) * | 2012-04-25 | 2012-10-03 | 浙江宇视科技有限公司 | 一种实况轮切方法及装置 |
CN102710745B (zh) * | 2012-04-25 | 2015-10-14 | 浙江宇视科技有限公司 | 一种实况轮切方法及装置 |
CN102739521A (zh) * | 2012-06-04 | 2012-10-17 | 杭州华三通信技术有限公司 | 一种组播业务实现方法及其设备 |
CN102868586A (zh) * | 2012-09-25 | 2013-01-09 | 杭州华三通信技术有限公司 | 一种建立隧道转发表项的方法、中心节点和分支节点 |
CN102868586B (zh) * | 2012-09-25 | 2015-06-10 | 杭州华三通信技术有限公司 | 一种建立隧道转发表项的方法、中心节点和分支节点 |
WO2014117475A1 (zh) * | 2013-01-29 | 2014-08-07 | 华为技术有限公司 | 通用路由封装协议隧道建立方法、通信设备及通信系统 |
CN103973555A (zh) * | 2013-01-29 | 2014-08-06 | 华为技术有限公司 | 通用路由封装协议隧道建立方法、通信设备及通信系统 |
CN103391296B (zh) * | 2013-07-29 | 2016-08-24 | 北京华为数字技术有限公司 | 一种控制器、转发器及通道建立方法和系统 |
CN103391296A (zh) * | 2013-07-29 | 2013-11-13 | 北京华为数字技术有限公司 | 一种控制器、转发器及通道建立方法和系统 |
WO2015014269A1 (zh) * | 2013-07-29 | 2015-02-05 | 华为技术有限公司 | 一种控制器、转发器及通道建立方法和系统 |
CN104022936B (zh) * | 2014-06-20 | 2018-02-06 | 新华三技术有限公司 | 一种隧道建立方法和装置 |
CN104022936A (zh) * | 2014-06-20 | 2014-09-03 | 杭州华三通信技术有限公司 | 一种隧道建立方法和装置 |
CN104301133A (zh) * | 2014-08-08 | 2015-01-21 | 杭州华三通信技术有限公司 | 一种通用路由封装键值的管理方法及设备 |
CN104301133B (zh) * | 2014-08-08 | 2018-03-16 | 新华三技术有限公司 | 一种通用路由封装键值的管理方法及设备 |
CN104243270A (zh) * | 2014-09-25 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种建立隧道的方法和装置 |
CN104243270B (zh) * | 2014-09-25 | 2017-11-24 | 新华三技术有限公司 | 一种建立隧道的方法和装置 |
CN104683210A (zh) * | 2015-03-10 | 2015-06-03 | 杭州华三通信技术有限公司 | 一种自动建立隧道的方法和装置 |
CN104683210B (zh) * | 2015-03-10 | 2018-10-09 | 新华三技术有限公司 | 一种自动建立隧道的方法和装置 |
CN106559360A (zh) * | 2015-09-24 | 2017-04-05 | 成都鼎桥通信技术有限公司 | Lte宽带集群系统gre级联组网的实现方法及系统 |
CN109450796A (zh) * | 2018-11-13 | 2019-03-08 | 北京华三通信技术有限公司 | 一种报文转发方法、装置及转发设备 |
CN109450796B (zh) * | 2018-11-13 | 2019-07-09 | 北京华三通信技术有限公司 | 一种报文转发方法、装置及转发设备 |
CN109600293A (zh) * | 2018-12-24 | 2019-04-09 | 青岛海信电子设备股份有限公司 | 一种gre隧道建立方法及系统 |
CN109600293B (zh) * | 2018-12-24 | 2021-06-04 | 青岛海信电子设备股份有限公司 | 一种gre隧道建立方法及系统 |
CN110401679A (zh) * | 2019-08-27 | 2019-11-01 | 北京指掌易科技有限公司 | 基于网络环境的移动应用安全隧道建立的控制方法和装置 |
WO2021093641A1 (zh) * | 2019-11-13 | 2021-05-20 | 中兴通讯股份有限公司 | 报文传输方法及系统,发送端vpn设备及gre拼接设备 |
WO2022166464A1 (zh) * | 2021-02-07 | 2022-08-11 | 华为技术有限公司 | 一种报文传输方法、系统及设备 |
CN113905109A (zh) * | 2021-12-08 | 2022-01-07 | 深圳竹云科技有限公司 | 零信任网络数据传输方法、装置、设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101488902A (zh) | 一种gre隧道的动态建立方法和设备 | |
EP3012999B1 (en) | Method, apparatus and system for creating virtual interfaces based on network characteristics | |
US10027574B2 (en) | Redundant pathways for network elements | |
CN102739534B (zh) | 使用移动路由器来保持抗移动性ip隧道的方法、装置和系统 | |
CN103534993A (zh) | 连接低功率网络域的标签交换路由选择 | |
CN104426681A (zh) | 端点的分布式多播 | |
CN104506408A (zh) | 基于sdn的数据传输的方法及装置 | |
CN101405994A (zh) | 使用mac网桥来连接多跳网状网络 | |
CN101827039B (zh) | 一种负载分担的方法和设备 | |
CN102739497A (zh) | 一种路由自动生成方法及其装置 | |
CN103209108A (zh) | 一种基于dvpn的路由生成方法和设备 | |
CN102790811A (zh) | 一种在监控网络中穿越nat设备的方法和装置 | |
CN107615710A (zh) | Sdn交换机中的直接回复动作 | |
CN103188153B (zh) | 一种广播网链路上bfd报文发送方法和设备 | |
JP2004274737A (ja) | 複数ルータ間調停方法、ルータ優先度計算装置及びルータ装置 | |
CN103354525A (zh) | 基于OpenFlow实现广域网任播负载均衡的系统和方法 | |
CN103220228A (zh) | 一种bgp路由的发送方法和设备 | |
CN101771604A (zh) | 路由探测方法、系统以及中间路由装置 | |
CN105075196A (zh) | 控制器、通信系统、路径切换方法和程序 | |
JPH11215174A (ja) | ネットワーク接続装置 | |
CN102201996A (zh) | 网络地址转换环境中报文转发的方法及设备 | |
CN102238244A (zh) | 用于网络地址配置的方法和设备 | |
CN102104533B (zh) | Rrpp单环网络数据发送路径优化方法及环网节点 | |
CN108632777A (zh) | 矿用无线节点在mesh网络中进行点对点数据传输方法 | |
CN101635685B (zh) | 一种学习获得pmtu的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090722 |