一种数据传输的方法和设备与流程

文档序号:17356873发布日期:2019-04-09 21:45阅读:119来源:国知局
一种数据传输的方法和设备与流程

本发明涉及通信技术领域,尤其涉及一种数据传输的方法和设备。



背景技术:

FRR(Fast Reroute,快速重路由)广泛应用于各种组网,用于解决高可靠性网络中,故障发生后信令协议收敛较慢的问题,保证流量较少丢失。FRR路由表中记录的转发信息包括:目的地址和下一跳地址。为了在网络出现故障后保证流量的快速切换,下一跳地址包括主下一跳地址和备下一跳地址。

如图1所示,为FRR的组网示意图,设备A上维护的FRR路由表中有目的地址为设备D的IP地址,主下一跳地址为设备B的IP地址,备下一跳地址为设备E的IP地址路由。其中,在设备A-设备B-设备C-设备D之间的流量未发生故障时,设备A基于主下一跳地址将数据发送给设备D。在设备A-设备B-设备C-设备D之间的流量发生故障时,设备A基于备下一跳地址将数据发送给设备D。

为实现上述过程,设备A维护的FRR路由表中需要学习到备下一跳地址,且备下一跳地址需要满足无环不等式:Distance_opt(N,D)<Distance_opt(N,S)+Distance_opt(S,D)。其中,Distance_opt(N,D)为备下一跳地址所在路径上任意设备到目的设备的cost(开销)值,Distance_opt(N,S)为该设备到源设备的cost值,Distance_opt(S,D)为源设备到目的设备在主下一跳地址所在路径上的cost值。显然,在图1所示的应用场景下,设备F到设备D(即目的设备)的cost值为20,设备F到设备A(即源设备)的cost值为2,设备A到设备D在主下一跳地址所在路径上的cost值为3,因此,备下一跳地址(设备E的IP地址)所在路径上的设备F不满足无环不等式,设备E的IP地址不能作为备下一跳地址,路由表中无法学习设备E的IP地址作为备下一跳地址。

综上所述,设备A维护的FRR路由表中将无法学习到备下一跳地址,在设备A-设备B-设备C-设备D之间的流量发生故障时,设备A将无法基于备下一跳地址将数据发送给设备D,从而造成流量的丢失,并降低网络的可靠性。



技术实现要素:

本发明实施例提供一种数据传输的方法,所述方法包括以下步骤:

源设备生成快速重路由FRR路由表,所述FRR路由表的目的地址为目的设备的IP地址,下一跳地址包括主下一跳地址和隧道入接口;

所述源设备在需要向目的设备发送数据时,利用所述数据的目的地址以及FRR路由表的目的地址,确定所述数据对应的FRR路由表;

当确定的FRR路由表的主下一跳地址对应的链路未发生故障时,则所述源设备通过所述主下一跳地址向目的设备发送所述数据;

当确定的FRR路由表的主下一跳地址对应的链路发生故障时,则所述源设备通过所述隧道入接口向目的设备发送所述数据。

所述源设备生成下一跳地址包括主下一跳地址和隧道入接口的FRR路由表的过程,具体包括:

所述源设备在FRR路由表中记录目的设备的IP地址以及主下一跳地址;

如果所述FRR路由表中无法学习到备下一跳地址,则所述源设备在排除所述主下一跳地址对应的源设备与目的设备之间的主路径之后,计算源设备与目的设备之间的备份路径,并得到所述备份路径上的各设备的地址信息;

所述源设备利用所述各设备的地址信息生成所述源设备与所述目的设备之间的隧道,并在所述FRR路由表中记录所述隧道的隧道入接口。

所述源设备利用所述各设备的地址信息生成所述源设备与所述目的设备之间的隧道的过程,具体包括:

所述源设备利用所述备份路径建立源设备与目的设备之间的IP隧道,并通过所述IP隧道向目的设备发送Internet控制报文协议ICMP请求报文,所述ICMP请求报文中携带严格源IP路由选路选项和记录路径选项,所述严格源IP路由选路选项中顺序记录了源设备到目的设备之间的备份路径上的各设备的地址信息;所述源设备接收来自所述目的设备的ICMP响应报文,且所述目的设备发送的ICMP响应报文中携带严格源IP路由选路选项和记录路径选项,所述严格源IP路由选路选项中记录ICMP请求报文的记录路径选项中记录的地址信息;如果所述源设备收到的ICMP响应报文的记录路径选项中记录的地址信息与所述源设备计算的源设备与目的设备之间的备份路径上的各设备的地址信息相同,则所述源设备将所述IP隧道UP;如果在预设时间内未收到ICMP响应报文或所述源设备收到的ICMP响应报文的记录路径选项中记录的地址信息与所述源设备计算的源设备与目的设备之间的备份路径上的各设备的地址信息不同,则所述源设备将所述IP隧道DOWN;

或者,所述源设备将所述各设备的地址信息作为流量工程TE隧道的约束条件,生成所述源设备与所述目的设备之间的TE隧道。

所述源设备通过所述隧道入接口向目的设备发送所述数据的过程,具体包括:所述源设备查询所述隧道入接口对应的IP隧道,利用所述IP隧道对所述数据进行封装,并通过所述隧道入接口向目的设备发送封装后的数据;或者,所述源设备查询所述隧道入接口对应的TE隧道,利用所述TE隧道对所述数据进行封装,并通过所述隧道入接口向目的设备发送封装后的数据。

所述方法进一步包括:当所述源设备在所述FRR路由表中记录新的主下一跳地址时,所述源设备通过新的主下一跳地址向所述目的设备发送数据,并从所述FRR路由表中删除所述隧道入接口。

本发明实施例提供一种源设备,所述源设备具体包括:

生成模块,用于生成快速重路由FRR路由表,所述FRR路由表的目的地址为目的设备的IP地址,下一跳地址包括主下一跳地址和隧道入接口;

确定模块,用于在需要向目的设备发送数据时,利用所述数据的目的地址以及FRR路由表的目的地址,确定所述数据对应的FRR路由表;

发送模块,用于当确定的所述FRR路由表的主下一跳地址对应的链路未发生故障时,则通过所述主下一跳地址向目的设备发送所述数据;

当确定的所述FRR路由表的主下一跳地址对应的链路发生故障时,则通过所述隧道入接口向所述目的设备发送所述数据。

所述生成模块,具体用于在所述FRR路由表中记录目的设备的IP地址以及主下一跳地址;如果所述FRR路由表中无法学习到备下一跳地址,则在排除所述主下一跳地址对应的所述源设备与所述目的设备之间的主路径之后,计算所述源设备与所述目的设备之间的备份路径,并得到所述备份路径上的各设备的地址信息;利用所述各设备的地址信息生成所述源设备与所述目的设备之间的隧道,并在所述FRR路由表中记录所述隧道的隧道入接口。

所述生成模块,进一步用于在利用所述各设备的地址信息生成所述源设备与所述目的设备之间的隧道的过程中,利用所述备份路径建立源设备与目的设备之间的IP隧道,并通过所述IP隧道向目的设备发送Internet控制报文协议ICMP请求报文,所述ICMP请求报文中携带严格源IP路由选路选项和记录路径选项,所述严格源IP路由选路选项中顺序记录了源设备到目的设备之间的备份路径上的各设备的地址信息;接收来自所述目的设备的ICMP响应报文,且所述目的设备发送的ICMP响应报文中携带严格源IP路由选路选项和记录路径选项,所述严格源IP路由选路选项中记录ICMP请求报文的记录路径选项中记录的地址信息;如果收到的ICMP响应报文的记录路径选项中记录的地址信息与计算的源设备与目的设备之间的备份路径上的各设备的地址信息相同,则将所述IP隧道UP;如果在预设时间内未收到ICMP响应报文或收到的ICMP响应报文的记录路径选项中记录的地址信息与计算的源设备与目的设备之间的备份路径上的各设备的地址信息不同,则将所述IP隧道DOWN;或者,将所述各设备的地址信息作为流量工程TE隧道的约束条件,生成所述源设备与所述目的设备之间的TE隧道。

所述发送模块,具体用于在通过所述隧道入接口向所述目的设备发送所述数据的过程中,查询所述隧道入接口对应的IP隧道,并利用所述IP隧道对所述数据进行封装,并通过所述隧道入接口向目的设备发送封装后的数据;或者,查询所述隧道入接口对应的TE隧道,并利用所述TE隧道对所述数据进行封装,并通过所述隧道入接口向目的设备发送封装后的数据。

所述发送模块,还用于当在所述FRR路由表中记录新的主下一跳地址时,通过新的主下一跳地址向所述目的设备发送数据,并从所述FRR路由表中删除所述隧道入接口。

基于上述技术方案,本发明实施例中,当源设备在FRR路由表中无法学习到备下一跳地址时,通过在FRR路由表中记录隧道入接口,以在主下一跳地址对应的链路发生故障时,通过隧道入接口向目的设备发送数据,以对主下一跳地址进行保护,从而避免造成流量的丢失,提高网络的可靠性。

附图说明

图1是FRR的组网示意图;

图2是本发明实施例提供的一种数据传输的方法流程示意图;

图3是本发明实施例提供的一种源设备的结构示意图。

具体实施方式

针对现有技术中存在的问题,本发明实施例提供了一种数据传输的方法,该方法应用于包括源设备和目的设备的FRR网络中。以图1为本发明实施例的应用场景示意图,源设备为设备A,目的设备为设备D。在上述应用场景下,如图2所示,该数据传输的方法具体可以包括以下步骤:

步骤201,源设备生成FRR路由表。其中,该FRR路由表的目的地址为目的设备的IP地址,下一跳地址包括主下一跳地址和隧道入接口。

本发明实施例中,源设备生成下一跳地址包括主下一跳地址和隧道入接口的FRR路由表的过程,具体可以包括但不限于如下方式:源设备在FRR路由表中记录目的设备的IP地址以及主下一跳地址。进一步的,如果FRR路由表中无法学习到备下一跳地址,则源设备在排除主下一跳地址对应的源设备与目的设备之间的主路径之后,计算源设备与目的设备之间的备份路径,并得到备份路径上的各设备的地址信息。源设备利用各设备的地址信息生成源设备与目的设备之间的隧道,并在FRR路由表中记录隧道的隧道入接口。

如图1所示,针对设备D的FRR路由表,设备A在FRR路由表中记录目的地址为设备D的IP地址,主下一跳地址为设备B的IP地址。由于设备E的IP地址作为备下一跳地址时不满足无环不等式,因此FRR路由表中无法学习到备下一跳地址。在此情况下,设备A在排除主下一跳地址对应的设备A与设备D之间的主路径(即路径设备A-设备B-设备C-设备D)后,计算设备A与设备D之间的备份路径(即路径设备A-设备E-设备F-设备D),得到备份路径上的各设备的地址信息,即得到设备E的IP地址(入接口IP地址)、设备F的IP地址(入接口IP地址)、设备D的IP地址(入接口IP地址)。

其中,设备A在排除主下一跳地址对应的设备A与设备D之间的主路径,并计算设备A与设备D之间的备份路径的过程中,设备A可以通过PCE(Path Computation Element,路径计算单元)技术计算得到设备A与设备D之间的备份路径(即路径设备A-设备E-设备F-设备D)。进一步的,设备A在基于PCE技术得到备份路径后,可以得到备份路径上各设备的地址信息。

本发明实施例中,源设备与目的设备之间的隧道具体可以包括但不限于IP隧道或者TE((Traffic Engineering,流量工程)隧道,源设备利用各设备的地址信息生成源设备与目的设备之间的隧道的过程,具体包括但不限于:

情况一、源设备利用备份路径建立本源设备与目的设备之间的IP隧道,并通过该IP隧道向该目的设备发送ICMP(Internet Control Message Protocol,Internet控制报文协议)请求报文,该ICMP请求报文中携带严格源IP路由选路选项和记录路径选项,该严格源IP路由选路选项中顺序记录了源设备到目的设备之间的备份路径上的各设备的地址信息。收到该ICMP请求报文的设备在记录路径选项中记录本设备的地址信息,并利用严格源IP路由选路选项中记录的地址信息发送ICMP请求报文。目的设备在收到ICMP请求报文后,向源设备发送携带严格源IP路由选路选项和记录路径选项的ICMP响应报文,该严格源IP路由选路选项中记录ICMP请求报文的记录路径选项中记录的地址信息。收到ICMP响应报文的设备在记录路径选项中记录本设备的地址信息,并利用严格源IP路由选路选项中记录的地址信息发送ICMP响应报文。源设备接收来自目的设备的ICMP响应报文,目的设备发送的ICMP响应报文中携带严格源IP路由选路选项和记录路径选项,严格源IP路由选路选项中记录ICMP请求报文的记录路径选项中记录的地址信息。如果源设备收到ICMP响应报文的记录路径选项中记录的地址信息与源设备计算的源设备与目的设备之间的备份路径上的各设备的地址信息相同,则源设备将IP隧道UP(正常)。如果在预设时间内未收到ICMP响应报文或源设备收到的ICMP响应报文的记录路径选项中记录的地址信息与源设备计算的源设备与目的设备之间的备份路径上的各设备的地址信息不同,则源设备将IP隧道DOWN(故障)。

如图1所示,设备A建立设备A与设备D之间的IP隧道,该IP隧道的隧道名称为IP_FRR_Bypass_tunnel。设备A通过该IP隧道向设备D发送ICMP请求报文,该ICMP请求报文中携带严格源IP路由选路选项和记录路径选项,该严格源IP路由选路选项中顺序记录了设备A到设备D之间的备份路径上的各设备的地址信息,即顺序记录了设备E的IP地址、设备F的IP地址、设备D的IP地址,该记录路径选项中记录设备A的IP地址。设备E在收到ICMP请求报文后,在记录路径选项中记录设备E的IP地址,从严格源IP路由选路选项中删除设备E的IP地址,并基于严格源IP路由选路选项中记录的设备F的IP地址将ICMP请求报文发送给设备F。设备F在收到ICMP请求报文后,在记录路径选项中记录设备F的IP地址,从严格源IP路由选路选项中删除设备F的IP地址,并基于严格源IP路由选路选项中记录的设备D的IP地址将ICMP请求报文发送给设备D。设备D在收到ICMP请求报文后,在记录路径选项中记录设备D的IP地址,从严格源IP路由选路选项中删除设备D的IP地址。由于设备D是ICMP请求报文的目的设备,因此,设备D向设备A发送携带严格源IP路由选路选项和记录路径选项的ICMP响应报文,该严格源IP路由选路选项中顺序记录设备F的IP地址、设备E的IP地址、设备A的IP地址(从ICMP请求报文的记录路径选项中获得),该记录路径选项中记录设备D的IP地址。设备F在收到ICMP响应报文后,在记录路径选项中记录设备F的IP地址,从严格源IP路由选路选项中删除设备F的IP地址,并基于严格源IP路由选路选项中记录的设备E的IP地址将ICMP响应报文发送给设备E。设备E在收到ICMP响应报文后,在记录路径选项中记录设备E的IP地址,从严格源IP路由选路选项中删除设备E的IP地址,并基于严格源IP路由选路选项中记录的设备A的IP地址将ICMP响应报文发送给设备A。设备A收到ICMP响应报文后,由于记录路径选项中的地址信息(设备D的IP地址、设备F的IP地址、设备E的IP地址)与设备A计算的设备A与设备D之间的备份路径上的各设备的地址信息(设备D的IP地址、设备F的IP地址、设备E的IP地址)相同,因此将IP隧道UP。

其中,设备A在通过IP隧道向设备D发送ICMP请求报文时,该ICMP请求报文的目的IP地址可以为特定IP地址(如127.0.0.1),该特定IP地址用于丢弃ICMP请求报文。基于此,收到该ICMP请求报文的设备如果支持按照严格源IP路由选路选项中记录的IP地址发送ICMP请求报文,则按照严格源IP路由选路选项中记录的IP地址发送ICMP请求报文;如果不支持按照严格源IP路由选路选项中记录的IP地址发送ICMP请求报文,则由于目的IP地址为特定IP地址,因此直接丢弃该ICMP请求报文,以防止该ICMP请求报文被传输给错误的设备。进一步的,如果该ICMP请求报文的目的IP地址不是特定IP地址,则当收到该ICMP请求报文的设备不支持按照严格源IP路由选路选项中记录的IP地址发送ICMP请求报文时,则会按照目的IP地址发送该ICMP请求报文,从而将该ICMP请求报文被传输给错误的设备。

其中,设备A在通过IP隧道向设备D发送ICMP请求报文时,设备A可以周期性的发送多个ICMP请求报文,以避免ICMP请求报文丢失,导致无法在设备A与设备D之间建立隧道的问题。

情况二、源设备将各设备的地址信息作为TE隧道的约束条件,生成源设备与目的设备之间的TE隧道,该TE隧道的生成方式在此不再详加赘述。

如图1所示,设备A将设备E的IP地址、设备F的IP地址、设备D的IP地址作为TE隧道的约束条件,生成设备A与设备D之间的TE隧道。

步骤202,源设备在需要向目的设备发送数据时,利用该数据的目的地址以及FRR路由表的目的地址,确定该数据对应的FRR路由表。当确定的FRR路由表的主下一跳地址对应的链路未发生故障时,则执行步骤203;当确定的FRR路由表的主下一跳地址对应的链路发生故障时,则执行步骤204。

步骤203,源设备通过主下一跳地址向目的设备发送数据。

步骤204,源设备通过隧道入接口向目的设备发送数据。

如图1所示,设备A在需要向设备D发送数据时,利用数据的目的地址(即设备D的IP地址)以及FRR路由表的目的地址,确定该数据对应的FRR路由表(即针对设备D的FRR路由表)。当该FRR路由表的主下一跳地址对应的链路(即设备A-设备B-设备C-设备D)未发生故障时,设备A基于设备B的IP地址向设备D发送数据。当该FRR路由表的主下一跳地址对应的链路发生故障时,设备A基于隧道入接口(即IP隧道的隧道入接口或者TE隧道的隧道入接口,即设备A上连接设备E的接口)向设备D发送数据。

本发明实施例中,源设备通过隧道入接口向目的设备发送数据的过程,具体包括但不限于如下方式:源设备查询该隧道入接口对应的IP隧道,并利用该IP隧道对数据进行封装,并通过该隧道入接口向目的设备发送封装后的数据。或者,源设备查询该隧道入接口对应的TE隧道,并利用该TE隧道对数据进行封装,并通过该隧道入接口向目的设备发送封装后的数据。

其中,设备A利用IP隧道对数据进行封装的过程中,设备A在数据外封装新的IP头,该IP头的目的IP地址为设备D的IP地址,该IP头中携带严格源IP路由选路选项,该严格源IP路由选路选项中记录设备E的IP地址、设备F的IP地址、设备D的IP地址。设备A利用TE隧道对数据进行封装的过程,与现有利用TE隧道对数据进行封装的过程类似,在此不再赘述。

本发明实施例中,当源设备在FRR路由表中记录新的主下一跳地址时,源设备可以通过新的主下一跳地址向目的设备发送数据,并可以从FRR路由表中删除隧道入接口。

其中,当FRR路由表的主下一跳地址对应的链路发生故障时,设备A会重新学习FRR路由表的主下一跳地址,即路由会重新收敛。如图1所示,设备A会重新学习到FRR路由表的主下一跳地址为设备E的IP地址。这时,设备A在FRR路由表中记录新的主下一跳地址(设备E的IP地址),并可以通过新的主下一跳地址(设备E的IP地址)向设备D发送数据,即数据从隧道入接口无缝切换到新的主下一跳地址。在切换完毕后,设备A从FRR路由表中删除隧道入接口。进一步的,在学习到新的主下一跳地址时,设备A重新计算备下一跳地址,并在计算成功后,在FRR路由表中记录备下一跳地址。

基于上述技术方案,本发明实施例中,当源设备在FRR路由表中无法学习到备下一跳地址时,通过在FRR路由表中记录隧道入接口,以在主下一跳地址对应的链路发生故障时,通过隧道入接口向目的设备发送数据,以对主下一跳地址进行保护,从而避免造成流量的丢失,提高网络的可靠性。

基于与上述方法同样的发明构思,本发明实施例中还提供了一种源设备,如图3所示,所述源设备具体包括:

生成模块11,用于生成快速重路由FRR路由表,所述FRR路由表的目的地址为目的设备的IP地址,下一跳地址包括主下一跳地址和隧道入接口;

确定模块12,用于在需要向目的设备发送数据时,利用所述数据的目的地址以及FRR路由表的目的地址,确定所述数据对应的FRR路由表;

发送模块13,用于当确定的所述FRR路由表的主下一跳地址对应的链路未发生故障时,则通过所述主下一跳地址向目的设备发送所述数据;

当确定的所述FRR路由表的主下一跳地址对应的链路发生故障时,则通过所述隧道入接口向所述目的设备发送所述数据。

所述生成模块11,具体用于在所述FRR路由表中记录目的设备的IP地址以及主下一跳地址;如果所述FRR路由表中无法学习到备下一跳地址,则在排除所述主下一跳地址对应的所述源设备与所述目的设备之间的主路径之后,计算所述源设备与所述目的设备之间的备份路径,并得到所述备份路径上的各设备的地址信息;利用所述各设备的地址信息生成所述源设备与所述目的设备之间的隧道,并在所述FRR路由表中记录所述隧道的隧道入接口。

所述生成模块11,进一步用于在利用所述各设备的地址信息生成所述源设备与所述目的设备之间的隧道的过程中,利用所述备份路径建立源设备与目的设备之间的IP隧道,并通过所述IP隧道向目的设备发送Internet控制报文协议ICMP请求报文,所述ICMP请求报文中携带严格源IP路由选路选项和记录路径选项,所述严格源IP路由选路选项中顺序记录了源设备到目的设备之间的备份路径上的各设备的地址信息;接收来自所述目的设备的ICMP响应报文,且所述目的设备发送的ICMP响应报文中携带严格源IP路由选路选项和记录路径选项,所述严格源IP路由选路选项中记录ICMP请求报文的记录路径选项中记录的地址信息;如果收到的ICMP响应报文的记录路径选项中记录的地址信息与计算的源设备与目的设备之间的备份路径上的各设备的地址信息相同,则将所述IP隧道UP;如果在预设时间内未收到ICMP响应报文或收到的ICMP响应报文的记录路径选项中记录的地址信息与计算的源设备与目的设备之间的备份路径上的各设备的地址信息不同,则将所述IP隧道DOWN;或者,将所述各设备的地址信息作为流量工程TE隧道的约束条件,生成所述源设备与所述目的设备之间的TE隧道。

所述发送模块13,具体用于在通过所述隧道入接口向所述目的设备发送所述数据的过程中,查询所述隧道入接口对应的IP隧道,并利用所述IP隧道对所述数据进行封装,并通过所述隧道入接口向目的设备发送封装后的数据;或者,查询所述隧道入接口对应的TE隧道,并利用所述TE隧道对所述数据进行封装,并通过所述隧道入接口向目的设备发送封装后的数据。

所述发送模块13,还用于当在所述FRR路由表中记录新的主下一跳地址时,通过新的主下一跳地址向所述目的设备发送数据,并从所述FRR路由表中删除所述隧道入接口。

其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1