CN101572664A - 一种通用路由封装隧道的配置方法及路由器 - Google Patents
一种通用路由封装隧道的配置方法及路由器 Download PDFInfo
- Publication number
- CN101572664A CN101572664A CNA2009100852462A CN200910085246A CN101572664A CN 101572664 A CN101572664 A CN 101572664A CN A2009100852462 A CNA2009100852462 A CN A2009100852462A CN 200910085246 A CN200910085246 A CN 200910085246A CN 101572664 A CN101572664 A CN 101572664A
- Authority
- CN
- China
- Prior art keywords
- address
- router
- interface
- route
- tunnel
- 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.)
- Granted
Links
Images
Abstract
本发明提供了一种通用路由封装隧道的配置方法及路由器。本发明通过隧道一端为另一端分配IP地址,在隧道两端生成精细的主机路由,从而避免了GRE隧道中的路由环路问题并提高GRE隧道配置的灵活性。
Description
技术领域
本发明涉及数据通信技术领域中的通用路由封装(GRE,Generic RoutingEncapsulation)技术领域,具体涉及一种GRE隧道的配置方法及路由器。
背景技术
GRE协议用于对某些网络层协议(如网际协议IP和包交换协议IPX)的报文进行封装,使这些被封装的报文能够在另一个网络层协议(如IP)中传输。GRE协议是虚拟专用网(VPN,Virtual Private Network)的第三层(网络层)隧道协议,在协议层之间采用了一种被称之为隧道(tunnel)的技术。隧道是一个虚拟的点对点的连接,在实际中可以看成支持点对点连接的虚拟接口,这个接口提供了一条通路使封装的报文能够在这个通路上传输,并且在一个隧道的两端分别对报文进行封装及解封装。
图1所示为现有技术中GRE技术的一种典型应用场景。图1中示,本地网1和本地网2是运行X协议(如Novell IPX协议)的本地网。在路由器1和路由器2上配置好GRE隧道之后,本地网1和本地网2之间就可以通过运行IP协议的因特网进行通信。
GRE隧道的配置包括配置GRE隧道的隧道接口(tunnel interface)和配置GRE隧道的源端和目的端,还可以包括配置隧道接口的识别关键字、隧道接口使用校验和校验等参数。隧道接口通常是虚拟的逻辑接口,GRE的源端和目的端是隧道两端设备,源端地址和目的端地址为两端设备上相应的物理接口的网际协议(IP,Internet Protocol)地址。现有技术中在配置GRE隧道时,需要分别在隧道两端设备上手工进行上述配置,手工配置工作量大且不够灵活。
现有技术的GRE协议存在一个缺陷,就是隧道接口之间虽然相当于直连,但由于缺乏相应的发现机制,GRE隧道的一端无法感知对端隧道接口的具体IP地址,从而也就不能区分哪些IP地址是对端隧道接口真实存在的IP地址。为了能够在隧道两端之间传输流量,现有的GRE协议中要求两端隧道接口的IP地址配置成在同一网段,并且在隧道两端设备的全局路由表中分别生成去往隧道接口IP地址所在网段的一个直连路由,该直连路由的出接口为隧道接口。上述配置可能导致GRE隧道发生路由环路,影响到隧道的正常使用,带来严重的安全问题。
以图1为例进行说明,假设图1中GRE隧道的隧道接口配置的掩码为24位,路由器1配置的隧道接口的IP地址为10.1.2.2,路由器2配置的隧道接口的IP地址为10.1.2.1,路由器1和2均无法感知隧道对端的隧道接口的IP地址。当从路由器1发出一个数据包,该数据包的目的地址为隧道接口IP地址所在网段中的一个不存在的主机地址,假设为10.1.2.3,该数据包通过GRE隧道到达路由器2;路由器2收到该数据包后进行解GRE封装,然后继续解析出内层IP头的目标地址10.1.2.3,然后查找自身全局路由表进行转发。由于缺乏发现机制,路由器2不知道10.1.2.3是一个不存在的主机地址,并且在路由器2进行GRE隧道配置时,路由器2在自身的全局路由表中生成了去往隧道接口IP地址所在网段的一个直连路由,该直连路由的出接口为隧道接口,从而路由器2根据该直连路由,将该数据包发给本设备的隧道接口,隧道接口收到该数据包后将进行GRE封装,然后再封装IP报文头,最后通过GRE隧道发送给路由器1,造成路由环路。同样的,路由器1在GRE隧道上接收到该数据包后也会进行类似的处理,这样,该数据包将会在GRE隧道内往复传输,直到该数据包的生存时间值(TTL,Time To Live)超时为止。假设发包的初始TTL值为255,该数据包将在GRE隧道内循环往复传输127次,这样相当于一个数据包被放大了127倍。如果恶意攻击者在GRE隧道所跨越的中间网络中构造并发送大量的具有上述目的地址的网络流量,将会严重消耗隧道所跨越网络之间的网络带宽资源,影响到GRE隧道的稳定性和安全性。
发明内容
本发明实施例所要解决的技术问题是提供一种GRE隧道的配置方法及路由器,避免GRE隧道中的路由环路问题并提高GRE隧道配置的灵活性。
为解决上述技术问题,本发明实施例提供方案如下:
一种通用路由封装GRE隧道的配置方法,包括:
步骤A,第一路由器接收第二路由器发送的第一网际协议IP地址和第二IP地址,所述第一IP地址是第二路由器为GRE隧道在第一路由器上的隧道接口所分配的IP地址,所述第二IP地址是所述GRE隧道在第二路由器上的隧道接口的IP地址;
步骤B,第一路由器配置所述GRE隧道的源端和目的端分别为自身和第二路由器、配置自身的第一接口为所述GRE隧道在本路由器上的隧道接口、以及配置所述第一接口的IP地址为所述第一IP地址,并根据所述第一IP地址和第二IP地址生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述第一接口的主机路由。
优选地,上述配置方法中,所述步骤B中还包括:
第一路由器根据所述第一IP地址生成第二路由,所述第二路由是目的地址为所述第一IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由。
优选地,上述配置方法中,所述第一路由器进一步在接收到所述第二路由器发送的用于触发GRE隧道配置的第一消息后,执行所述步骤B。
优选地,上述配置方法中,所述第一路由器进一步从所述第二路由器发送的地址宣告消息中获取所述第二IP地址。
优选地,上述配置方法中,所述第一路由器进一步向所述第二路由器发送用于请求GRE隧道接口地址的地址请求消息,接收所述第二路由器返回的地址响应消息并获取其中携带的所述第一IP地址,所述第一IP地址是所述第二路由器在接收到所述地址请求消息后,将从自身配置的地址池中选择出的。
优选地,上述配置方法中,所述第二路由器在分配所述第一IP地址之后,进一步根据所述第一IP地址生成第三路由,所述第三路由是目的地址为所述第一IP地址、下一跳为所述第二IP地址、出接口为所述第二接口的主机路由。
优选地,上述配置方法中,所述步骤A之前还包括:
第二路由器配置GRE隧道的源端和目的端分别为自身和第一路由器,将自身的第二接口配置为所述GRE隧道在自身的隧道接口,配置所述第二接口的IP地址为所述第二IP地址,并生成第四路由和第五路由,所述第四路由是目的地址为所述第二IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由,所述第五路由是目的地址为所述第二IP地址所在网段、下一跳为所述第二IP地址、出接口为所述第二接口的路由。
本发明实施例还提供了一种路由器,包括:
地址接收单元,用于接收第二路由器发送的第一网际协议IP地址和第二IP地址,所述第一IP地址是第二路由器为GRE隧道在本路由器上的隧道接口所分配的IP地址,所述第二IP地址是所述GRE隧道在所述第二路由器上的隧道接口的IP地址;
配置单元,用于配置所述GRE隧道的源端和目的端分别为本路由器和所述第二路由器、配置本路由器的第一接口为所述GRE隧道在本路由器上的隧道接口、以及配置所述第一接口的IP地址为所述第一IP地址;
路由生成单元,用于根据所述第一IP地址和第二IP地址生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述第一接口的主机路由。
优选地,上述路由器中,
所述路由生成单元,还用于根据所述第一IP地址生成第二路由,所述第二路由是目的地址为所述第一IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由。
优选地,上述路由器中,还包括:
启动单元,用于接收第二路由器发送的用于触发GRE隧道配置的第一消息,并在接收到所述第一消息后,启动所述配置单元和所述路由生成单元。
优选地,上述路由器中,所述地址接收单元包括:
第二地址获取子单元,用于接收所述第二路由器发送的地址宣告消息并从获取其中携带的所述第二IP地址;
第一地址请求子单元,用于向所述第二路由器发送用于请求GRE隧道接口地址的地址请求消息;
第一地址获取子单元,用于接收所述第二路由器返回的地址响应消息并获取其中携带的所述第一IP地址,所述第一IP地址是所述第二路由器在接收到所述请求消息后,将从自身配置的地址池中选择出的。
本发明实施例还提供了另一种路由器,包括:
配置单元,用于配置GRE隧道的源端和目的端分别为自身和第一路由器,并配置所述GRE隧道在本路由器上的隧道接口的IP地址为第二IP地址;
地址分配单元,用于为所述GRE隧道在第一路由器上的隧道接口分配第一IP地址;
地址发送单元,用于向第一路由器发送的所述第一IP地址和第二IP地址,其中,所述第一IP地址和第二IP地址用于触发所述第一路由器在自身的全局路由表中生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述GRE隧道在第一路由器上的隧道接口的主机路由。
优选地,上述路由器中,还包括:
路由生成单元,用于根据所述第一IP地址生成第三路由,所述第三路由是目的地址为所述第一IP地址、下一跳为所述第二IP地址、出接口为所述第二接口的主机路由。
优选地,上述路由器中,所述路由生成单元,还用于生成第四路由和第五路由,所述第四路由是目的地址为所述第二IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由,所述第五路由是目的地址为所述第二IP地址所在网段、下一跳为所述第二IP地址、出接口为所述第二接口的路由。
从以上所述可以看出,本发明提供的GRE隧道的配置方法及路由器,GRE隧道的一端向对端通告本端隧道接口的IP地址,并为对端分配隧道接口的IP地址,使得隧道两端都能够感知到彼此隧道接口的IP地址配置情况,使得隧道两端能够产生精细的主机路由,从而可以避免GRE隧道中的路由环路问题,提高GRE隧道的安全性和稳定性。并且,由于隧道两端能够针对对端的隧道接口地址生成精细的主机路由,使得两端隧道接口可以使用不同网段的IP地址,提高了GRE隧道配置和应用的灵活性。另外,本实施例所述方法中,隧道另一端可以根据对端的触发,自动进行GRE隧道的配置,可以简化GRE隧道配置的工作量。最后,本实施例所述方法,通过使用Protocol Type字段为预定值的GRE协议报文在路由器之间传递信息,可以充分利用现有GRE协议的资源,继承现有协议栈中的GRE模块的实现结果,以降低实现本发明给设备增加的系统资源开销。
附图说明
图1为现有技术中GRE技术的一种典型应用场景;
图2为本发明实施例所述GRE隧道的配置方法的流程示意图;
图3为本发明实施例所述GRE隧道的配置方法的应用举例示意图;
图4为本发明实施例中路由器之间消息交互的流程示意图;
图5为本发明实施例提供的一种路由器的结构示意图;
图6为本发明实施例提供的另一种路由器的结构示意图。
具体实施方式
本发明的核心思想是,通过GRE隧道的一端向对端通告本端隧道接口的IP地址,并为对端分配隧道接口的IP地址,使得隧道两端都能够感知到彼此隧道接口的IP地址配置情况,从而使得隧道两端能够产生精细的主机路由,从而可以避免GRE隧道中的路由环路问题并提高GRE隧道配置和应用的灵活性。以下结合附图通过具体实施例对本发明做进一步的说明。
请参照图2,本实施例所述GRE隧道的配置方法,包括以下步骤:
步骤21,第二路由器配置GRE隧道的源端和目的端分别为自身和第一路由器,并配置所述GRE隧道在本路由器上的隧道接口(第二接口)的IP地址为第二IP地址。
这里,上述步骤21中第二路由器需要指定GRE隧道的远端和目的端。如果GRE隧道配置在第一路由器和第二路由器之间,则上述远端和目的端分别为第一路由器和第二路由器。远端和目的端的具体IP地址通常是第一路由器和第二路由器上真实的物理接口的IP地址。而GRE隧道在第二路由器上的隧道接口则可以是一个虚拟的逻辑接口。
步骤22,第二路由器为所述GRE隧道在第一路由器上的隧道接口分配第一IP地址,并将所述第一IP地址和第二IP地址发送给所述第一路由器。
上述步骤22中,第二路由器可以事先配置一个地址池,该地址池中包括有多个IP地址。在分配IP地址时,第二路由器可以从该地址池中选择出一个IP地址作为所述第一IP地址,分配给所述GRE隧道在第一路由器上的隧道接口。
步骤23,第一路由器接收第二路由器发送的第一IP地址和第二IP地址后,在自身配置所述GRE隧道的源端和目的端分别为自身和第二路由器、配置自身的第一接口为所述GRE隧道在本路由器上的隧道接口、以及配置所述第一接口的IP地址为所述第一IP地址,并根据所述第一IP地址和第二IP地址,在全局路由表中生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述第一接口的主机路由。
从以上所述可以看出,图2所示的配置方法中,第二路由器作为主动端,第一路由器作为被动端。主动端的隧道接口地址可以是由用户手工配置的,被动端的隧道接口地址是由主动端进行分配的。在实际使用中,主动端和被动端可以由用户自由指定。主动端为被动端分配隧道接口的IP地址、并向被动端通告本端隧道接口的IP地址,使得被动端能获取隧道两端的隧道接口IP地址,从而可以生成上述步骤24中的第一路由。与现有技术不同的是,本实施例中的第一路由是一条主机路由,而非去往隧道接口所在网段的路由。在所述第二IP地址为IPv4地址时,该第一路由的目的地址的掩码是32位;在所述第二IP地址为IPv6地址时,该第一路由的目的地址的掩码则是128位。
在采用图2所示的上述配置方法之后,如果第一路由器从GRE隧道上接收到某个数据包,对该数据包进行解GRE封装,然后继续解析出内层IP头的目的地址,如果该目的地址为第一接口所在网段中的一个不存在的主机地址(不同于上述第二IP地址),那么第一路由器在查找自身全局路由表进行转发时,不能找到相匹配的路由,于是将该数据包丢弃,从而避免了现有技术中GRE隧道存在的路由环路问题。
本实施例中,为降低GRE隧道的手工配置工作量,第一路由器上的GRE隧道的相关配置还可以由第一路由器自动进行配置。例如,在步骤22中,第二路由器分配所述第一地址之后,可以向第一路由器发送一用于触发GRE隧道配置的第一消息;第一路由器在接收到该第一消息后,自动执行步骤23中的GRE隧道配置,而无需人工在第一路由器进行手工配置。其中,第一路由器可以根据接收到的所述第一消息的源、目的IP地址,获知所述GRE隧道的远端和目的端的IP地址,用以在自身配置所述GRE隧道的源端和目的端。所述第一消息携带所述第一IP地址和/或第二IP地址,用以将第一IP地址和/或第二IP地址的信息发送给第一路由器,当然,也可以利用其它消息向第一路由器发送所述第一IP地址和第二IP地址;第一路由器在获得所述第一IP地址和第二IP地址之后,即可以配置第一接口以及生成所述第一路由。
当然,也可以在第一路由器上手工执行步骤23中的相关GRE隧道配置,还可以通过不同于上述实施例步骤21~步骤23中的动作执行次序来实现本发明。例如,第二路由器在配置完第二接口的第二IP地址之后,就可以通过发送地址宣告消息将所述第二IP地址发送给第一路由器;第一路由器可以根据预先确定的GRE隧道的源端和目的端地址,首先在自身配置GRE隧道的源端和目的端,还可以配置GRE隧道的其它一些参数,如隧道接口的识别关键字、隧道接口使用校验和校验等参数,然后再向第二路由器发送一地址请求消息;第二路由器接收到所述地址请求消息后,从自身配置的地址池中选择出一个IP地址(即第一IP地址),并将第一IP地址携带在地址响应消息中发送给第一路由器。上述地址宣告消息、地址请求消息和地址响应消息可以是特定的GRE协议报文,该特定的GRE协议报文的GRE报文头的协议类型(Protocol Type)字段为一预定值。
另外,与现有技术相类似的,第一路由器在配置第一接口的第一IP地址之后,还可以在全局路由表中生成一第二路由,该第二路由是目的地址为所述第一IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由。相同的,第二路由器上在配置第二接口的第二IP地址之后,还可以在全局路由表中生成一第四路由,该第四路由是目的地址为所述第二IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由。并且,第二路由器在所述GRE隧道在第一路由器上的隧道接口分配了第一IP地址之后,还可以在自身全局路由表中增加一第五路由,该第五路由是目的地址为所述第二IP地址所在网段、下一跳为所述第二IP地址、出接口为所述第二接口的路由。
根据背景技术中的分析可知,现有技术的GRE隧道配置中,由于没有二层发现机制,两端隧道接口不能感知对端的隧道接口,从而只有将两端隧道接口配置成同一网段的IP地址,并在两端设备上分别生成去往上述网段的路由,将该路由的出接口指向本端设备上的隧道接口,才能够保证去往对端隧道接口的流量能够通过GRE隧道上发送。显然,现有技术中的两端隧道接口必须使用同一网段的IP地址,而不能使用不同网段的地址,这对GRE隧道的实际应用带来了限制。而在本实施例中,由于隧道两端彼此都能够感知对端隧道接口的IP地址,因此可以在两端设备上分别生成去往对端隧道接口的主机路由,使得两端隧道接口可以使用不同网段的IP地址。为达到此目的,本实施例在上述步骤22中,所述第二路由器在分配第一IP地址之后,进一步在自身的全局路由表中增加一第三路由,所述第三路由是目的地址为所述第一IP地址、下一跳为所述第二IP地址、出接口为所述第二接口的主机路由,使得隧道两端均有到达对端隧道接口的精细的主机路由,从而两端隧道接口可以使用不同网段的IP地址。在所述第一IP地址为IPv4地址时,该第三路由的目的地址的掩码是32位;在所述第一IP地址为IPv6地址时,该第三路由的目的地址的掩码则是128位。
以下通过一个具体例子,来对上述配置方法进行更为直观的说明,以帮助更好地理解上述实施例。
如图3所示,本地网1连接到路由器1的以太网接口Eth1/1(IP地址为10.1.3.1),本地网2连接到路由器2的以太网接口Eth1/1(IP地址为10.1.1.1)。GRE隧道的两端设备分别为路由器1和路由器2。按照本实施例所述的GRE隧道的配置方法,假设路由器2为主动端,路由器1为被动端,路由器1和路由器2之间通过图4所示的消息交互流程实现隧道接口IP地址的通告和分配。消息交互的主体是需要建立GRE隧道的两端设备,本实施例中消息主要采用请求/响应(Request/Response)方式进行交互,这里共定义了4种通信消息。
1)DECL_ADDR:地址宣告消息,当主动端隧道接口地址配置好之后,向隧道对端通告本端隧道接口地址配置情况。
2)REQU_ADDR:地址请求消息,向主动端请求分配本端隧道接口的IP地址;
3)RESP_ADDR:地址响应消息,将为被动端分配的隧道接口的IP地址发送给被动端;
4)ACK:确认消息。
上述消息是基于GRE协议的报文头格式进行扩展定义来实现的。GRE报文头中包括有协议类型(Protocol Type)字段,这里将Protocol Type字段定义为:0xAAFF,用以标识上述4种通信消息,并在GRE报文中的载荷部分承载属性值对(AVP:Attribute Value Pair)属性字段。这些AVP属性字段主要定义为长度类型值(TLV,TYPE LENGTH VALUE)格式的属性值。
例如,对于REQU_ADDR消息,该消息携带的属性值为空的地址:TYPE为1,LENGTH为该属性的实际所占字节的长度,VALUE为全0,表示IP地址为空。
对于RESP_ADDR消息,该消息携带的属性值为主动端为被动端分配的隧道接口的IP地址:TYPE=2,LENGTH为该属性的实际所占字节的长度,VALUE为分配给被动端隧道接口的具体IP地址;
对于ACK消息,该消息携带的属性值会根据所应答的信息而有所不同:当TYPE=3的时候,表示是被动端确认收到主动端的RESP_ADDR消息;当TYPE=4的时候,表示是被动端确认收到主动端的DECL_ADDR消息;LENGTH为该属性的实际所占字节的长度,VALUE为GRE隧道的主动端所配置的该GRE隧道的源端和目的端的IP地址(分别为1.1.1.1和2.2.2.2),该VALUE的值是用于唯一标识一条GRE隧道;
对于DECL_ADDR消息,该消息携带的属性值为主动端的隧道接口的IP地址:TYPE=5,LENGTH为该属性的实际所占字节的长度。VALUE为主动端的隧道接口的IP地址。
主动端路由器2配置GRE隧道源端和目的端,对应于图4,路由器2配置的GRE隧道的源端和目的端的IP地址分别为1.1.1.1/24和2.2.2.2/24;路由器2还要配置GRE隧道在自身的隧道接口(Tunnel0),并配置该隧道接口的IP地址为10.1.2.1/24,24表示隧道接口配置的掩码位数;路由器2还可以配置其它的一些GRE相关参数。在自身的GRE隧道的相关配置完成之后,路由器2还要配置一个地址池,该地址池中包括有多个IP地址,这些IP地址用于向被动端分配隧道接口的IP地址。然后,路由器2发送DECL_ADDR消息,通知隧道对端本端隧道接口的IP地址10.1.2.1,该消息外层IP头封装的源、目的IP地址分别为GRE隧道的源端和目的端IP地址。
路由器2在上述配置过程中所生成的路由如表1所示,其中,表1中的第1、2条路由是配置本端隧道接口10.1.2.1/24后生成的,第3条路由是为对端隧道接口分配完IP地址后生成的主机路由。第1条路由的目的地址/掩码为10.1.2.0/24,用以表示10.1.2.1/24所在网段,下一跳为10.1.2.1、出接口为路由器2上的隧道接口的路由。这样,路由器2上去往隧道接口所在网段的任意地址的IP报文,将被发送给路由器2的隧道接口,然后通过GRE隧道发送到路由器1。第2条路由是本地主机路由,其中127.0.0.1和InLoop0分别表示本地环回地址和本地环回接口。第3条路由是去往对端隧道接口的主机路由,对于IPv4,该路由的目的地址的掩码是32位。
目的地址/掩码 | 下一跳地址 | 出接口 | |
第1条路由 | 10.1.2.0/24 | 10.1.2.1 | Tunnel0 |
第2条路由 | 10.1.2.1/32 | 127.0.0.1 | InLoop0 |
第3条路由 | 10.1.2.2/32 | 10.1.2.1 | Tunnel0 |
表1
被动端路由器1收到DECL_ADDR消息后,回应ACK消息。这时,路由器1可以根据DECL_ADDR消息得到GRE隧道的源端、目的端IP地址以及隧道对端的隧道接口的IP地址;路由器1在本端配置GRE隧道的相关参数,包括配置GRE隧道的源端和目的端的IP地址分别为2.2.2.2/24和1.1.1.1/24,然后主动向路由器2发送REQU_ADDR消息,用以向路由器2请求本端隧道接口的IP地址;路由器2从自身配置的地址池中选择一个IP地址(第一IP地址,假设为10.1.2.2)后回应RESP_ADDR消息,该消息中携带有分配给路由器1的隧道接口地址10.1.2.2;路由器1接收到RESP_ADDR消息后会向路由器2回应ACK消息,以确认收到。这时,路由器1已经获得本端和对端的隧道接口的IP地址信息,则可以配置GRE隧道在本路由器上的隧道接口(Tunnel0),并将该隧道接口的IP地址配置为10.1.2.2/24,并在自身全局路由表中加入两条直连路由,表2列出了这两条直连路由的主要参数,它们的目的地址的掩码位数都是32位(对应于IPv4协议),其中,第1条路由是去往对端隧道接口的主机路由,下一跳和出接口分别为本端隧道接口的IP地址和本端隧道接口;第2条是本地主机路由,127.0.0.1和InLoop0分别表示本地环回地址和本地环回接口。
目的地址/掩码 | 下一跳地址 | 出接口 | |
第1条路由 | 10.1.2.1/32 | 10.1.2.2 | Tunnel0 |
第2条路由 | 10.1.2.2/32 | 127.0.0.1 | InLoop0 |
表2
可以看出,路由器1和路由器2上都生成了指向对端隧道接口的32掩码的主机路由,所以即使两端隧道接口的IP地址不属于同一网段,也可以根据这两条主机路由在两个路由器之间通过GRE隧道进行通信。
这里,路由器1或路由器2向隧道对端发送地址请求消息/地址宣告消息时,还可以进一步启动定时器等待对端的回应,并且设计上述地址请求消息/地址宣告消息的重传机制。在发送上述地址请求消息/地址宣告消息后,如果收到对端的回应,则立即停止发送。否则,在等待一定时间后重传。可以预先规定上述地址请求消息/地址宣告消息的最多发送次数,如最多一共发送4次。各次之间的间隔时间分别为:T,2T,4T。(T代表一个预定的时间间隔)。
以上所述为本发明实施例提供的GRE隧道的配置方法。可以看出,本发明实施例所述方法中,GRE隧道的一端向对端通告本端隧道接口的IP地址,并为对端分配隧道接口的IP地址,使得隧道两端都能够感知到彼此隧道接口的IP地址配置情况,进而隧道两端能够产生精细的主机路由,从而可以避免GRE隧道中的路由环路问题,提高GRE隧道的安全性和稳定性。并且,由于隧道两端能够针对对端的隧道接口地址生成精细的主机路由,使得两端隧道接口可以使用不同网段的IP地址,提高了GRE隧道配置和应用的灵活性。另外,本实施例所述方法中,隧道另一端可以根据对端的触发,自动进行GRE隧道的配置,从而可以简化GRE隧道配置的工作量。最后,本实施例所述方法,通过使用Protocol Type字段为预定值的GRE协议报文在路由器之间传递信息,可以充分利用现有GRE协议的资源,继承现有协议栈中的GRE模块的实现结果,以降低实现本实施例所述方法给设备增加的系统资源开销。
基于上述GRE隧道的配置方法,本发明实施例还提供了GRE隧道两端的路由器,用以实现上述配置方法。图5所示为本实施例提供的一种路由器的结构示意图,如图5所示,该路由器包括:
地址接收单元,用于接收第二路由器发送的第一网际协议IP地址和第二IP地址,所述第一IP地址是第二路由器为GRE隧道在本路由器上的隧道接口所分配的IP地址,所述第二IP地址是所述GRE隧道在所述第二路由器上的隧道接口的IP地址;
配置单元,用于配置所述GRE隧道的源端和目的端分别为本路由器和所述第二路由器、配置本路由器的第一接口为所述GRE隧道在本路由器上的隧道接口、以及配置所述第一接口的IP地址为所述第一IP地址;
路由生成单元,用于根据所述第一IP地址和第二IP地址生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述第一接口的主机路由。
优选地,图5所示的路由器中,所述路由生成单元,还可以用于根据所述第一IP地址生成第二路由,所述第二路由是目的地址为所述第一IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由。
优选地,图5所示的路由器中,还可以包括一启动单元,用于接收第二路由器发送的用于触发GRE隧道配置的第一消息,并在接收到所述第一消息后,启动所述配置单元和所述路由生成单元。
优选地,上述第一消息中携带有所述第一IP地址和/或所述第二IP地址,第一路由器从第一消息中获取所述第一IP地址和/或所述第二IP地址。
优选地,图5所示的路由器中,所述地址接收单元具体可以包括:
第二地址获取子单元,用于接收所述第二路由器发送的地址宣告消息并从获取其中携带的所述第二IP地址;
第一地址请求子单元,用于向所述第二路由器发送用于请求GRE隧道接口地址的地址请求消息;
第一地址获取子单元,用于接收所述第二路由器返回的地址响应消息并获取其中携带的所述第一IP地址,所述第一IP地址是所述第二路由器在接收到所述请求消息后,将从自身配置的地址池中选择出的。
上述地址宣告消息、地址请求消息和地址响应消息均为GRE协议报文,所述GRE协议报文的GRE报文头的协议类型Protocol Type字段为预定值。
图6所示为本实施例提供的另一种路由器的结构示意图,如图6所示,该路由器包括:
配置单元,用于配置GRE隧道的源端和目的端分别为自身和第一路由器,并配置所述GRE隧道在本路由器上的隧道接口的IP地址为第二IP地址;
地址分配单元,用于为所述GRE隧道在第一路由器上的隧道接口分配第一IP地址;
地址发送单元,用于向第一路由器发送的所述第一IP地址和第二IP地址,其中,所述第一IP地址和第二IP地址用于触发所述第一路由器在自身的全局路由表中生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述GRE隧道在第一路由器上的隧道接口的主机路由。
优选地,图6所示的路由器中,还可以包括:路由生成单元,用于根据所述第一IP地址生成第三路由,所述第三路由是目的地址为所述第一IP地址、下一跳为所述第二IP地址、出接口为所述第二接口的主机路由。所述路由生成单元,还可以用于生成第四路由和第五路由,所述第四路由是目的地址为所述第二IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由,所述第五路由是目的地址为所述第二IP地址所在网段、下一跳为所述第二IP地址、出接口为所述第二接口的路由。这里,所述第一IP地址和所述第二IP地址可以属于不同网段,也可以属于同一网段。
综上所述,本发明实施例提供的GRE隧道的配置方法及路由器,可以避免GRE隧道中的路由环路问题并提高GRE隧道配置和应用的灵活性。
以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种通用路由封装GRE隧道的配置方法,其特征在于,包括:
步骤A,第一路由器接收第二路由器发送的第一网际协议IP地址和第二IP地址,所述第一IP地址是第二路由器为GRE隧道在第一路由器上的隧道接口所分配的IP地址,所述第二IP地址是所述GRE隧道在第二路由器上的隧道接口的IP地址;
步骤B,第一路由器配置所述GRE隧道的源端和目的端分别为自身和第二路由器、配置自身的第一接口为所述GRE隧道在本路由器上的隧道接口、以及配置所述第一接口的IP地址为所述第一IP地址,并根据所述第一IP地址和第二IP地址生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述第一接口的主机路由。
2.如权利要求1所述的配置方法,其特征在于,所述步骤B中还包括:
第一路由器根据所述第一IP地址生成第二路由,所述第二路由是目的地址为所述第一IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由。
3.如权利要求2所述的方配置法,其特征在于,所述第一路由器进一步在接收到所述第二路由器发送的用于触发GRE隧道配置的第一消息后,执行所述步骤B。
4.如权利要求2所述的配置方法,其特征在于,所述第一路由器进一步从所述第二路由器发送的地址宣告消息中获取所述第二IP地址。
5.如权利要求4所述的配置方法,其特征在于,所述第一路由器进一步向所述第二路由器发送用于请求GRE隧道接口地址的地址请求消息,接收所述第二路由器返回的地址响应消息并获取其中携带的所述第一IP地址,所述第一IP地址是所述第二路由器在接收到所述地址请求消息后,将从自身配置的地址池中选择出的。
6.如权利要求1至5任一项所述的配置方法,其特征在于,
所述第二路由器在分配所述第一IP地址之后,进一步根据所述第一IP地址生成第三路由,所述第三路由是目的地址为所述第一IP地址、下一跳为所述第二IP地址、出接口为所述第二接口的主机路由。
7.如权利要求6所述的配置方法,其特征在于,所述步骤A之前还包括:
第二路由器配置GRE隧道的源端和目的端分别为自身和第一路由器,将自身的第二接口配置为所述GRE隧道在自身的隧道接口,配置所述第二接口的IP地址为所述第二IP地址,并生成第四路由和第五路由,所述第四路由是目的地址为所述第二IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由,所述第五路由是目的地址为所述第二IP地址所在网段、下一跳为所述第二IP地址、出接口为所述第二接口的路由。
8.一种路由器,其特征在于,包括:
地址接收单元,用于接收第二路由器发送的第一网际协议IP地址和第二IP地址,所述第一IP地址是第二路由器为GRE隧道在本路由器上的隧道接口所分配的IP地址,所述第二IP地址是所述GRE隧道在所述第二路由器上的隧道接口的IP地址;
配置单元,用于配置所述GRE隧道的源端和目的端分别为本路由器和所述第二路由器、配置本路由器的第一接口为所述GRE隧道在本路由器上的隧道接口、以及配置所述第一接口的IP地址为所述第一IP地址;
路由生成单元,用于根据所述第一IP地址和第二IP地址生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述第一接口的主机路由。
9.如权利要求8所述的路由器,其特征在于,
所述路由生成单元,还用于根据所述第一IP地址生成第二路由,所述第二路由是目的地址为所述第一IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由。
10.如权利要求9所述的路由器,其特征在于,还包括:
启动单元,用于接收第二路由器发送的用于触发GRE隧道配置的第一消息,并在接收到所述第一消息后,启动所述配置单元和所述路由生成单元。
11.如权利要求9所述的路由器,其特征在于,所述地址接收单元包括:
第二地址获取子单元,用于接收所述第二路由器发送的地址宣告消息并从获取其中携带的所述第二IP地址;
第一地址请求子单元,用于向所述第二路由器发送用于请求GRE隧道接口地址的地址请求消息;
第一地址获取子单元,用于接收所述第二路由器返回的地址响应消息并获取其中携带的所述第一IP地址,所述第一IP地址是所述第二路由器在接收到所述请求消息后,将从自身配置的地址池中选择出的。
12.一种路由器,其特征在于,包括:
配置单元,用于配置GRE隧道的源端和目的端分别为自身和第一路由器,并配置所述GRE隧道在本路由器上的隧道接口的IP地址为第二IP地址;
地址分配单元,用于为所述GRE隧道在第一路由器上的隧道接口分配第一IP地址;
地址发送单元,用于向第一路由器发送的所述第一IP地址和第二IP地址,其中,所述第一IP地址和第二IP地址用于触发所述第一路由器在自身的全局路由表中生成第一路由,所述第一路由是目的地址为所述第二IP地址、下一跳为所述第一IP地址、出接口为所述GRE隧道在第一路由器上的隧道接口的主机路由。
13.如权利要求12所述的路由器,其特征在于,还包括:
路由生成单元,用于根据所述第一IP地址生成第三路由,所述第三路由是目的地址为所述第一IP地址、下一跳为所述第二IP地址、出接口为所述第二接口的主机路由。
14.如权利要求13所述的路由器,其特征在于,
所述路由生成单元,还用于生成第四路由和第五路由,所述第四路由是目的地址为所述第二IP地址、下一跳和出接口分别为本地环回地址和本地环回接口的本地主机路由,所述第五路由是目的地址为所述第二IP地址所在网段、下一跳为所述第二IP地址、出接口为所述第二接口的路由。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100852462A CN101572664B (zh) | 2009-05-27 | 2009-05-27 | 一种通用路由封装隧道的配置方法及路由器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100852462A CN101572664B (zh) | 2009-05-27 | 2009-05-27 | 一种通用路由封装隧道的配置方法及路由器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101572664A true CN101572664A (zh) | 2009-11-04 |
CN101572664B CN101572664B (zh) | 2011-11-09 |
Family
ID=41231903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100852462A Expired - Fee Related CN101572664B (zh) | 2009-05-27 | 2009-05-27 | 一种通用路由封装隧道的配置方法及路由器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101572664B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103825795A (zh) * | 2013-12-05 | 2014-05-28 | 青岛海信电子设备股份有限公司 | Ipip隧道自动识别创建的方法 |
WO2015003348A1 (zh) * | 2013-07-10 | 2015-01-15 | 华为技术有限公司 | Gre隧道实现方法、接入点和网关 |
CN104683210A (zh) * | 2015-03-10 | 2015-06-03 | 杭州华三通信技术有限公司 | 一种自动建立隧道的方法和装置 |
CN106936795A (zh) * | 2015-12-31 | 2017-07-07 | 华为技术有限公司 | 建立互联网协议安全性隧道的方法和网关设备 |
US10212004B2 (en) | 2013-07-12 | 2019-02-19 | Huawei Technologies Co., Ltd. | Method for implementing GRE tunnel, access device and aggregation gateway |
EP3425955A4 (en) * | 2016-03-16 | 2019-02-27 | Huawei Technologies Co., Ltd. | COMMUNICATION METHOD BASED ON TUNNEL LINK AND NETWORK DEVICE |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770766A (zh) * | 2004-11-02 | 2006-05-10 | 华为技术有限公司 | 二层报文传输方法 |
CN100518126C (zh) * | 2007-08-14 | 2009-07-22 | 杭州华三通信技术有限公司 | 配置gre隧道的方法及路由器 |
CN101262407B (zh) * | 2008-04-14 | 2011-05-11 | 中兴通讯股份有限公司 | 一种虚拟路由器建立隧道的方法 |
-
2009
- 2009-05-27 CN CN2009100852462A patent/CN101572664B/zh not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109921973A (zh) * | 2013-07-10 | 2019-06-21 | 华为技术有限公司 | Gre隧道实现方法、接入点和网关 |
WO2015003348A1 (zh) * | 2013-07-10 | 2015-01-15 | 华为技术有限公司 | Gre隧道实现方法、接入点和网关 |
US11824685B2 (en) | 2013-07-10 | 2023-11-21 | Huawei Technologies Co., Ltd. | Method for implementing GRE tunnel, access point and gateway |
CN105324961A (zh) * | 2013-07-10 | 2016-02-10 | 华为技术有限公司 | Gre隧道实现方法、接入点和网关 |
CN105324961B (zh) * | 2013-07-10 | 2019-03-19 | 华为技术有限公司 | Gre隧道实现方法、接入点和网关 |
US10855491B2 (en) | 2013-07-10 | 2020-12-01 | Huawei Technologies Co., Ltd. | Method for implementing GRE tunnel, access point and gateway |
US10212004B2 (en) | 2013-07-12 | 2019-02-19 | Huawei Technologies Co., Ltd. | Method for implementing GRE tunnel, access device and aggregation gateway |
US11032105B2 (en) | 2013-07-12 | 2021-06-08 | Huawei Technologies Co., Ltd. | Method for implementing GRE tunnel, home gateway and aggregation gateway |
CN103825795A (zh) * | 2013-12-05 | 2014-05-28 | 青岛海信电子设备股份有限公司 | Ipip隧道自动识别创建的方法 |
CN104683210B (zh) * | 2015-03-10 | 2018-10-09 | 新华三技术有限公司 | 一种自动建立隧道的方法和装置 |
CN104683210A (zh) * | 2015-03-10 | 2015-06-03 | 杭州华三通信技术有限公司 | 一种自动建立隧道的方法和装置 |
CN106936795A (zh) * | 2015-12-31 | 2017-07-07 | 华为技术有限公司 | 建立互联网协议安全性隧道的方法和网关设备 |
EP3425955A4 (en) * | 2016-03-16 | 2019-02-27 | Huawei Technologies Co., Ltd. | COMMUNICATION METHOD BASED ON TUNNEL LINK AND NETWORK DEVICE |
US10904932B2 (en) | 2016-03-16 | 2021-01-26 | Huawei Technologies Co., Ltd. | Tunnel binding based communication method and network device |
Also Published As
Publication number | Publication date |
---|---|
CN101572664B (zh) | 2011-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108075987B (zh) | 一种多路径数据传输方法及设备 | |
KR102570925B1 (ko) | 가상 네트워크 그룹을 위한 브로드캐스트 방법 및 디바이스, 장치, 및 시스템 | |
CN101572664B (zh) | 一种通用路由封装隧道的配置方法及路由器 | |
JP4103816B2 (ja) | ルータ設定方法及びルータ装置 | |
EP2378720B1 (en) | Extranet networking method, system and device for multicast virtual private network | |
JP6501967B2 (ja) | データ伝送方法、関連装置、およびシステム | |
CN112584393B (zh) | 一种基站配置方法、装置、设备及介质 | |
CN102547592A (zh) | 一种数据传输方法及装置 | |
CN102130813B (zh) | 伪线建立方法、系统及设备 | |
CN103916275A (zh) | 一种bfd检测装置和方法 | |
CN102325076A (zh) | 一种路径最大传输单元发现方法和节点 | |
CN101394333A (zh) | 转发报文的方法、装置以及网络系统 | |
CN108206783B (zh) | 一种软件定义网络系统中地址配置方法及其装置 | |
CN107277190A (zh) | 一种sdn设备自动上线的方法、sdn设备和控制器 | |
CN116192726A (zh) | 转发路径建立方法、装置以及计算机可读存储介质 | |
CN103401954B (zh) | 虚拟dhcp的实现方法 | |
CN106375211B (zh) | Vrrp负载均衡场景中的交换机数据处理方法和交换机 | |
US9503418B2 (en) | Method and apparatus for obtaining remote IP address | |
CN109150711B (zh) | 点到多点二层组播业务的保护倒换方法、装置及存储介质 | |
JP2006222659A (ja) | 無線通信装置、無線通信システム及び方法 | |
CN102761477B (zh) | 组播协议报文发送方法及装置 | |
CN107113229B (zh) | 一种通告消息处理方法和装置 | |
CN103442450A (zh) | 无线通信方法和无线通信设备 | |
CN107592261A (zh) | 报文处理方法、装置及路由器 | |
CN115314569B (zh) | 一种基于udp的轻量级mqtt设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111109 Termination date: 20200527 |