CN103986637B - 一种差错报文处理方法及隧道设备 - Google Patents
一种差错报文处理方法及隧道设备 Download PDFInfo
- Publication number
- CN103986637B CN103986637B CN201410205769.7A CN201410205769A CN103986637B CN 103986637 B CN103986637 B CN 103986637B CN 201410205769 A CN201410205769 A CN 201410205769A CN 103986637 B CN103986637 B CN 103986637B
- Authority
- CN
- China
- Prior art keywords
- source
- data
- tunnel
- address
- source device
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种差错报文处理方法及隧道设备。该方法包括:隧道源设备接收中间设备发送的差错报文,所述差错报文为中间设备无法成功转发所述隧道源设备发送的隧道报文时生成的,所述差错报文中携带有数据源标识信息;所述隧道源设备根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址;基于所述源IP地址,重新构造所述差错报文并发送至所述数据源设备,实现将差错报文精准地发送给对应的数据源设备。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种差错报文处理方法及隧道设备。
背景技术
GRE(Generic Routing Encapsulation,通用路由封装)协议用来对任意一种网络层协议(如IPv6)的数据报文进行封装,使这些被封装的数据报文能够在另一个网络(如IPv4)中传输。封装前后数据报文的网络层协议可以相同,也可以不同。封装后的数据报文在网络中传输的路径,称为GRE隧道。GRE隧道是一个虚拟的点到点的连接,其两端的设备分别对数据报文进行封装及解封装,封装后在GRE隧道中传输的报文可称为隧道报文。
如图1所示,IPv4GRE隧道对报文的处理过程如下:
(1)IPv4网络中的数据源设备发送IPv4报文,到达隧道的隧道源设备Device A。
(2)Device A根据路由表判定该报文要通过隧道进行转发,将会在IPv4报文前封装上IPv4的报文头以及GRE头(如图2所示),得到封装后的隧道报文,并通过隧道的实际物理接口将报文转发出去。
(3)隧道报文通过隧道到达隧道的隧道目的设备Device B,Device B对隧道报文进行解封装。
(4)Device B根据解封装后的IPv4报文的目的地址将报文进行转发;如果目的地就是本设备,则将IPv4报文转给上层协议处理。
(5)出隧道后的IPv4报文在IPv4网络中转发到达目的端IPv4主机。
对于GRE隧道而言,当隧道报文在GRE隧道传输过程中出现故障,导致报文无法传输到隧道目的设备时,出现隧道报文转发故障的中间设备会生成ICMP(Internet ControlMessage Protocol,Internet控制报文协议)差错报文,并返回给隧道源设备Device A。由于ICMP差错报文仅包括隧道IPv4头以及 GRE头,无法获取到内层数据对应的数据源的源IP地址,也就是无法将ICMP差错报文通告给内层数据对应的数据源设备。
在现有技术方案中,隧道源设备接收到中间设备发送的ICMP差错报文后,通常会将其暂时记录下来,并在接收到由数据源设备发送的需要封装的报文时,就将该ICMP差错报文发送给相应的数据源设备,但是,这种数据源设备返回差错报文是一种被动方式,这种被动式返回差错报文的方法无法确认具体的数据源,仅仅取决于哪个数据源先将报文发送到隧道源设备,如果有多个数据源通过此隧道发送报文,例如数据源A的隧道报文在传输路径上产生的差错控制信息可能会被错误地返回给数据源B,无法保证准确将差错控制信息返回给对应的数据源。
发明内容
本发明提供了一种差错报文处理方法及隧道设备,用以将差错报文准确地发送给对应的数据源。
为了达到上述目的,本发明实施例提供了一种差错报文处理方法,包括:
隧道源设备接收中间设备发送的差错报文,所述差错报文为中间设备无法成功转发所述隧道源设备发送的隧道报文时生成的,所述差错报文中携带有数据源标识信息;
所述隧道源设备根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址;
所述隧道源设备基于所述源IP地址,重新构造所述差错报文并发送至所述数据源设备。
优选的,上述的方法还可包括:所述隧道源设备在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,在所述隧道报文的封装报文头中携带所述数据源标识信息。
其中,所述数据源标识信息具体为数据源设备的源IP地址。
优选的,所述数据源标识信息具体为标识字段;
所述隧道源设备上存储有标识字段与IP地址的映射关系表;
所述隧道源设备根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址,具体为:
所述隧道源设备根据作为所述数据源标识信息的标识字段,在标识字段与IP地址的映射关系表中查询得到与所述标识字段对应的IP地址,所述IP地址就是所述隧道报文对应的数据源设备的源IP地址。
优选的,上述方法还可包括:所述隧道源设备在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,获取所述报文中携带的数据源设备的源IP地址,并分配对应的标识字段,将所述数据源设备的IP地址与标识字段的对应关系存储在标识字段与IP地址之间的映射关系表中。
优选的,在所述封装报文头中的GRE-Key字段中携带所述数据源标识信息。
本发明实施例还公开了一种隧道设备,,包括:
接收模块,用于接收中间设备发送的差错报文,所述差错报文为中间设备无法成功转发所述隧道设备发送的隧道报文时生成的,所述差错报文中携带有数据源标识信息;
确定模块,用于根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址;
发送模块,用于基于所述源IP地址,重新构造所述差错报文并发送至所述数据源设备。
其中,所述隧道设备还包括:封装模块,用于在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,在所述隧道报文的封装报文头中携带所述数据源标识信息。
其中,所述数据源标识信息具体为数据源设备的源IP地址。
所述数据源标识信息具体为标识字段;还包括:
存储模块,用于存储有标识字段与IP地址的映射关系表;
所述确定模块,具体用于:根据作为所述数据源标识信息的标识字段,在标识字段与IP地址的映射关系表中查询得到与所述标识字段对应的IP地址,所述IP地址就是所述隧道报文对应的数据源设备的源IP地址。
其中,所述隧道设备还包括:处理模块,用于在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,获取所述报文中携带的数据源设备的源IP地址,并分配对应的标识字段,将所述数据源设备的IP地址与标识字段的对应关系存储在所述存储模块中。
优选的,在所述封装报文头中的GRE-Key字段中携带所述数据源标识信息。
本发明实施例通过在封装报文时直接设置数据源标识信息,以使得差错报文到达隧道源设备时,隧道源设备能获取源IP地址,以构造新的差错报文发送给数据源设备;从而能准确地将差错报文发送给对应的数据源。
附图说明
图1为IPv4GRE隧道基本组网的示意图;
图2为IPv4GRE封装后的报文格式示意图;
图3为本发明实施例中的一种差错报文处理方法流程示意图;
图4为中间设备无法成功转发隧道报文的组网示意图;
图5为本发明实施例中的差错报文的报文格式示意图;
图6A为本发明实施例中的一种隧道源设备的结构示意图;
图6B为本发明实施例中的一种隧道源设备的结构示意图。
具体实施方式
下面结合本发明的附图,对本发明的技术方案进行清楚,完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例一提出了一种差错报文处理方法,如图3所示,包括以下步骤:
步骤301,隧道源设备接收中间设备发送的差错报文,差错报文为中间设 备无法成功转发所述隧道源设备发送的隧道报文时生成的,所述差错报文中携带有数据源标识信息。
本实施例中,在隧道源设备接收中间设备发送的差错报文之前,还可包括:隧道源设备在对数据源设备发送的报文进行封装,得到所述隧道报文时,在所述隧道报文的封装报文头中携带所述数据源标识信息;具体的,可在封装报文头中的GRE-Key字段中携带数据源标识信息;而生成的差错报文中也包含有隧道报文的封装报文头,因此差错报文中会携带有数据源标识信息。
步骤302,所述隧道源设备根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址。
其中,确定所述隧道报文对应的数据源设备的源IP地址可包括两种方式,包括:
方式一,当数据源标识信息中包括数据源设备的源IP地址信息时;在这种情况下,隧道源设备根据之前封装于隧道报文的封装报文头中,后续存在于差错报文中的数据源标识信息可以直接得到数据源设备的源IP地址。
方式二,当隧道源设备上存储有标识字段与IP地址的映射关系表,且数据源标识信息具体为标识字段时,隧道源设备根据作为所述数据源标识信息的标识字段,在标识字段与IP地址的映射关系表中进行查询,可以得到与所述标识字段对应的IP地址,该IP地址即为数据源设备的源IP地址。
其中,所述隧道源设备在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,获取所述报文中携带的数据源设备的源IP地址,并分配对应的标识字段,将所述数据源设备的IP地址与标识字段的对应关系存储在标识字段与IP地址之间的映射关系表中;而所述数据源标识信息具体为标识字段,由于隧道源设备上存储有标识字段与IP地址的映射关系表,所述隧道源设备根据作为所述数据源标识信息的标识字段,在标识字段与IP地址的映射关系标中查询得到与所述标识字段对应的IP地址,得到的IP地址就是所述隧道报文对应的数据源设备的源IP地址;
步骤303,隧道源设备基于所述源IP地址,重新构造所述差错报文并发送至所述数据源设备。
隧道源设备根据前述步骤得到的数据源设备的源IP地址,根据该数据源设备的源IP地址和之前中间设备生成的差错报文重新构造一个新的差错报文,并发送新的差错报文给源IP地址对应的数据源设备。
可以看出,本发明实施例中,作为GRE隧道的隧道源设备,例如图1中的Device A可在将与其连接的隧道源设备发送的数据,无法成功转发到目的隧道设备,例如Device B时,隧道的中间设备就会返回差错报文,这时,隧道源设备就可以根据差错报文中携带的标识信息,来确定对应的数据源设备,从而可将该差错报文发送给数据源设备。
以下结合具体的应用场景对本发明实例进行详细说明,如图4-图5所示,本发明实施例二中提出了在具体应用场景下的差错报文处理方法,包括:
数据源设备Host1发送报文,该报文的源地址为IP1,目的地址为IP3;
该报文路由到隧道源设备Device A上,Device A查找路由,发现该报文需要走IPv4GRE隧道;
Device A上根据IP1和IP3地址对分配一个GRE Key,将报文的源地址也即数据源设备的IP地址IP1存储于该GRE-Key中,或者建立IP1与GRE-Key的对应表项IP-GRE Key,然后给原始报文添加一个GRE头,该GRE头中包括分配的GRE Key,再添加一个IP头(其中,携带GRE Key的GRE头长度为8字节),以对该报文进行加封装,并在封装完成之后,将封装后的报文,也即隧道报文(其隧道报文格式如图2所示,该隧道报文包括外层IP头,GRE头,原始IP头,和原始数据)从Device A发送出去。
IPv4GRE隧道中的中间设备Device C收到来自Device A的隧道报文,查找路由,由于Device C和Device B之间的链路断开,所以,Device C给Device A回应一个ICMP差错报文,该ICMP差错报文携带隧道报文不可达的信息,其具体表示为:IPv4GRE隧道中从DeviceC到设备Device B之间的链路断开了,隧道报文无法从Device C送达Device B;其中该ICMP差错报文格式如图5所示:包括:
IP头1:源地址为IPC,目的地址为IPA;
IP头2:源地址为IP A,目的地址为IPB;
GRE头:包含GRE-Key;其中,该GRE头的格式如下:
其中,GRE头的具体内容在此不再赘述,本实施例中,只是在GRE头的GRE Key中增加了可便于隧道源设备识别数据源设备的信息,也就是上述的数据源标识信息。
当DeviceA收到DeviceC发送过来的ICMP差错报文时DeviceA解析ICMP差错报文,根据差错报文数据字段IP头后的8字节内容,获取到GRE头,并从GRE头中获取GRE-Key;
DeviceA根据GRE-Key查询IP–GREKey,获取到数据源设备源IP地址IP1,或者直接查询存储于GRE–Key中的数据源设备的源IP地址IP1;
DeviceA根据数据源设备的源IP地址IP1,重新构造ICMP差错报文,其中,具体为根据数据源的源IP地址IP1以及由中间设备Device C生成的ICMP差错报文中包含的报文无法从Device C送达Device B的信息,来对ICMP差错报文进行重新构造,重新构造的ICMP差错报文中包含数据源的源IP地址IP1和关于报文无法从Device C送达Device B的信息,从而使得该重新构造的ICMP差错报文可以准确地返回给真实的数据源Host1。
本发明实施例三还提出了一种隧道设备,该隧道设备具体可以是隧道源设备,例如图1或图3中所示的Device A。如图6A所示,该隧道设备包括:
接收模块61,用于接收中间设备发送的差错报文,所述差错报文为中间设备无法成功转发所述隧道设备发送的隧道报文时生成的,所述差错报文中携带有数据源标识信息;
确定模块62,用于根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址;
发送模块63,用于基于所述源IP地址,重新构造所述差错报文并发送至 所述数据源设备。
本实施例提供的隧道设备可对数据源设备发送的报文进行隧道封装,通过隧道传输至目的设备,在此过程中,其可以在隧道的中间设备无法转发隧道报文而返回差错报文时,可将差错报文返回给数据源设备,其具体实现过程可参见上述方法实施例的说明,在此不再赘述。
在上述图6A所示实施例方案基础上,如图6B所示,隧道设备还可包括:封装模块64,用于在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,在所述隧道报文的封装报文头中携带所述数据源标识信息。所述数据源标识信息具体可为数据源设备的源IP地址;而数据源标识信息具体为标识字段。
此外,隧道设备还可包括存储模块65,用于存储有标识字段与IP地址的映射关系表;
确定模块62具体可用于:根据作为所述数据源标识信息的标识字段,在标识字段与IP地址的映射关系表中查询得到与所述标识字段对应的IP地址,所述IP地址就是所述隧道报文对应的数据源设备的源IP地址。
隧道设备还可包括:处理模块66,用于在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,获取所述报文中携带的数据源设备的源IP地址,并分配对应的标识字段,将所述数据源设备的IP地址与标识字段的对应关系存储在所述存储模块中。
优选的,在所述封装报文头中的GRE-Key字段中携带所述数据源标识信息。
本发明实施例通过在封装报文时直接设置数据源标识信息为数据源设备的源IP地址或建立IP地址与标识字段的对应关系,以使得差错报文到隧道源设备时,隧道源设备能获取源IP地址,以构造新的差错报文发送给数据源设备;从而能准确地将差错报文发送给对应的数据源。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景 描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (4)
1.一种差错报文处理方法,其特征在于,包括:
隧道源设备接收中间设备发送的差错报文,所述差错报文为中间设备无法成功转发所述隧道源设备发送的隧道报文时生成的,所述差错报文中携带有数据源标识信息;
所述隧道源设备根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址;
所述隧道源设备基于所述源IP地址,重新构造所述差错报文并发送至所述数据源设备;
其中,所述隧道源设备在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,在所述隧道报文的封装报文头中的GRE-Key字段中携带所述数据源标识信息;
其中,所述数据源标识信息具体为标识字段;
所述隧道源设备上存储有标识字段与IP地址的映射关系表;
所述隧道源设备根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址,具体为:
所述隧道源设备根据作为所述数据源标识信息的标识字段,在标识字段与IP地址的映射关系表中查询得到与所述标识字段对应的IP地址,所述IP地址就是所述隧道报文对应的数据源设备的源IP地址。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述隧道源设备在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,获取所述报文中携带的数据源设备的源IP地址,并分配对应的标识字段,将所述数据源设备的IP地址与标识字段的对应关系存储在标识字段与IP地址之间的映射关系表中。
3.一种隧道设备,其特征在于,包括:
接收模块,用于接收中间设备发送的差错报文,所述差错报文为中间设备无法成功转发所述隧道设备发送的隧道报文时生成的,所述差错报文中携带有数据源标识信息;
确定模块,用于根据所述数据源标识信息,确定所述隧道报文对应的数据源设备的源IP地址;
发送模块,用于基于所述源IP地址,重新构造所述差错报文并发送至所述数据源设备;
封装模块,用于在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,在所述隧道报文的封装报文头中的GRE-Key字段中携带所述数据源标识信息;
其中,所述数据源标识信息具体为标识字段;还包括:
存储模块,用于存储有标识字段与IP地址的映射关系表;
所述确定模块,具体用于:根据作为所述数据源标识信息的标识字段,在标识字段与IP地址的映射关系表中查询得到与所述标识字段对应的IP地址,所述IP地址就是所述隧道报文对应的数据源设备的源IP地址。
4.根据权利要求3所述的设备,其特征在于,还包括:
处理模块,用于在对所述数据源设备发送的报文进行封装,得到所述隧道报文时,获取所述报文中携带的数据源设备的源IP地址,并分配对应的标识字段,将所述数据源设备的IP地址与标识字段的对应关系存储在所述存储模块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410205769.7A CN103986637B (zh) | 2014-05-15 | 2014-05-15 | 一种差错报文处理方法及隧道设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410205769.7A CN103986637B (zh) | 2014-05-15 | 2014-05-15 | 一种差错报文处理方法及隧道设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103986637A CN103986637A (zh) | 2014-08-13 |
CN103986637B true CN103986637B (zh) | 2018-11-27 |
Family
ID=51278464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410205769.7A Active CN103986637B (zh) | 2014-05-15 | 2014-05-15 | 一种差错报文处理方法及隧道设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103986637B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017101085A1 (zh) * | 2015-12-17 | 2017-06-22 | 华为技术有限公司 | 确定通用路由封装gre隧道标识的方法、设备和系统 |
CN111131496A (zh) * | 2019-12-31 | 2020-05-08 | 易票联支付有限公司 | 一种基于标识信息的通讯中转方法、系统、装置及介质 |
CN115604369A (zh) * | 2021-07-09 | 2023-01-13 | 华为技术有限公司(Cn) | 报文传输方法、装置和系统、网络设备及存储介质 |
-
2014
- 2014-05-15 CN CN201410205769.7A patent/CN103986637B/zh active Active
Non-Patent Citations (1)
Title |
---|
The Locator/ID Separation Protocol(LISP);D.Farinacci等;《IETF》;20130131;正文第58-60页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103986637A (zh) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102301663B (zh) | 一种报文处理方法及相关设备 | |
CN104639414B (zh) | 一种报文转发方法和设备 | |
US11627070B2 (en) | Data packet processing method and apparatus, storage medium, and electronic device | |
WO2017193758A1 (zh) | 一种数据传输的方法、设备和系统 | |
CN103973574B (zh) | 位置与身份分离协议网络中的数据报文转发方法及装置 | |
CN105577413A (zh) | 操作、管理和维护oam报文处理方法及装置 | |
CN110535768B (zh) | 组播数据传输方法及相关设备 | |
US20160149795A1 (en) | Overlay network-based original packet flow mapping apparatus and method therefor | |
CN102694738B (zh) | 在虚拟专用网网关转发报文的方法以及虚拟专用网网关 | |
CN103957161B (zh) | 一种报文转发方法及其装置 | |
CN108512758A (zh) | 报文处理方法、控制器以及转发设备 | |
EP3113425B1 (en) | Encapsulation method for service routing packet, service forwarding entity and control plane | |
WO2015184771A1 (zh) | 一种业务功能链操作、管理和维护方法及节点设备 | |
CN112737954B (zh) | 报文处理方法、装置、系统、设备及存储介质 | |
CN104683210A (zh) | 一种自动建立隧道的方法和装置 | |
CN108270673A (zh) | 报文发送方法、装置以及系统 | |
CN105591834A (zh) | Vxlan中的流量监控方法和装置 | |
CN109936492A (zh) | 一种通过隧道传输报文的方法、装置和系统 | |
CN109379241A (zh) | 一种路径信息确定方法及装置 | |
CN104993993A (zh) | 一种报文处理方法、设备和系统 | |
CN108390812B (zh) | 报文转发方法及装置 | |
CN105553810A (zh) | 一种转发专线业务报文的方法及装置 | |
CN103986637B (zh) | 一种差错报文处理方法及隧道设备 | |
CN109246016A (zh) | 跨vxlan的报文处理方法和装置 | |
CN106453204B (zh) | 一种处理数据报文的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |