一种隧道链路检测方法及相关设备
技术领域
本发明涉及网络技术领域,尤其涉及一种隧道链路检测方法及相关设备。
背景技术
由于通用路由封装协议(Generic Routing Encapsulation,GRE)并不具备检测链路状态的功能,GRE隧道的链路状态检测依赖保活(Keepalive,KA)检测。KA检测功能有两个:在正常场景下,当链路发生故障时,使用KA检测快速路由收敛相比较于仅仅依靠自身路由收敛要快很多,KA依旧配置检测周期和重传次数可以达到秒级和毫秒级收敛。在异常场景下,主要用于时刻检测隧道链路状态,即检测隧道是否可以到达对端,如果可以到达对端,隧道连接就会及时关闭,避免形成数据空洞。
KA检测利用GRE嵌套封装的功能,在发送端,封装两层GRE报文,其中,内层报文的目的地址指向发送端自身。发送端将报文发送到对端设备之后,对端设备剥离外层GRE封装,发现内层的IP协议仍然是GRE封装,因而按照GRE封装的目的地地址返回给发送端。发送端接收到回复的报文后,可以确认整个GRE隧道是连通可达的。目前GRE单层隧道和GRE单一虚拟专用网络(Virtual Private Network,VPN)嵌套的情况下都可以配置KA来快速检测链路故障,但是,在GRE跨VPN嵌套的情况下,如果在隧道上配置KA检测,不仅不会帮助检测链路状态,而且会直接导致GRE隧道断开,导致业务流量中断。
发明内容
本发明实施例提供一种隧道链路检测方法及相关设备,实现了隧道链路检测,保障业务流量。
第一方面,本发明实施例提供了一种隧道链路检测方法,包括:
第一设备首先向第二设备发送请求报文,请求报文包括最内层的保活报文;然后接收第二设备发送的回复报文,回复报文包括封装有外层隧道的保活报文;然后使用外联口的第一虚拟专用网络的标识、外层隧道的目的地址和源地址查找解封装表,若查找成功,则解除回复报文的外层封装,并从解封装表中获取外层隧道所绑定的第二虚拟专用网络的标识和外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识;最后将外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识修改为内层隧道的源地址和目的地址对应的第二虚拟专用网络的标识,并使用第二虚拟专用网络的标识和内层隧道的目的地址查找解封装表,从而保证查找解封装表成功,保证检测隧道的可达性,保证业务快速切换和收敛。通过使用VPN重定向技术对KA报文进行处理,解除GRE迭代跨VPN的场景限制。
在另一种可能的设计中,第一设备使用外联口接收到回复报文之后,使用外联口VPN1+目的地址IP1查路由表,确定该回复报文是发送给第二设备,在上报给第一设备处理之前,根据报文的protocol和GRE头的protocol type,判断该回复报文的外层报文为数据报文,因此使用外联口VPN1+目的地址IP1+源地址IP2查解封装表,当查找成功时,解除外层的两层封装,并从解封装表中获取到tunnel1所绑定的VPN2、以及tunnel1的源地址和目的地址对应的VPN1。
在另一种可能的设计中,第一设备在解除外层封装之后,如果确定内层报文为KA报文,则根据从解封装表中获取到的tunnel1的源地址和目的地址对应的VPN1+tunnel2的源地址IP4(获取VPN2)查主机路由:判断VPN1!=VPN2,则对获取到的tunnel1的目的IP进行VPN重定向,将VPN1重定向到VPN2中,使用VPN2+目的地址IP3查解封装表,由于tunnel2的源地址和目的地址对应VPN2,因此采用重定向的VPN2查封装表成功。
在另一种可能的设计中,在从解封装表中获取外层隧道所绑定的第二虚拟专用网络的标识和外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识之后,第一设备可以获取回复报文中内层报文的通用路由封装协议头部的协议信息;然后根据协议信息,确定回复报文中的内层报文是否为保活报文。实现不同的报文类型按照不同的方式查解封装表。
在另一种可能的设计中,当所述回复报文中的内层报文为所述保活报文时,所述第一设备将所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识修改为内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识,并使用修改后的所述第二虚拟专用网络的标识和所述内层隧道的目的地址查找所述解封装表。
在另一种可能的设计中,当回复报文中的内层报文为数据报文时,使用从解封装表中获取到的外层隧道所绑定的第二虚拟专用网络的标识、内层隧道的目的地址和源地址查找封装表;若查找成功,则将数据报文上报给第一设备中的控制器进行处理。
在另一种可能的设计中,从解封装表中获取外层隧道所绑定的第二虚拟专用网络的标识和外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识之后,第一设备可以获取回复报文中外层报文的通用路由封装协议头部的接收字段;然后根据接收字段,确定回复报文中是否存在内层报文。如果不存在内层报文,可以减少报文处理流程。
在另一种可能的设计中,当接收字段为非0时,第一设备确定回复报文存在内层报文,当接收字段为0时,第一设备确定回复报文不存在内层报文
在另一种可能的设计中,当外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识与内层隧道的源地址和目的地址对应的第二虚拟专用网络的标识相同时,使用第一虚拟专用网络的标识查找解封装表。
第二方面,本申请实施例提供了一种隧道链路检测装置,该隧道链路检测装置被配置为实现上述第一方面中第一设备所执行的方法和功能,由硬件/软件实现,其硬件/软件包括与上述功能相应的单元。
第三方面,本申请提供了一种隧道链路检测设备,包括:处理器、存储器和通信总线,其中,通信总线用于实现处理器和存储器之间连接通信,处理器执行存储器中存储的程序用于实现上述第一方面提供的一种隧道链路检测方法中的步骤。
在一个可能的设计中,本申请提供的隧道链路检测设备可以包含用于执行上述方法设计中第一设备行为相对应的模块。模块可以是软件和/或是硬件。
第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
附图说明
为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
图1是本发明实施例提供的一种隧道链路检测系统的结构示意图;
图2是本发明实施例提供了一种单层隧道KA报文转发的流程示意图;
图3是本发明实施例提供的一种请求报文的示意图;
图4是本发明实施例提供的一种回复报文的示意图;
图5是本发明实施例提供的一种隧道链路检测方法的流程示意图;
图6是本发明实施例提供的一种GRE跨VPN嵌套场景的示意图;
图7是本发明实施例提供的一种报文格式的结构示意图;
图8是本申请实施例提供的一种隧道链路检测装置的结构示意图;
图9是本申请实施例提供的一种隧道链路检测设备的结构示意图。
具体实施方式
下面结合本发明实施例中的附图对本发明实施例进行描述。
请参见图1,图1是本发明实施例提供的一种隧道链路检测系统的结构示意图,应用于GRE跨VPN嵌套场景下,该隧道链路检测系统可以包括多个网元,多个网元包括第一设备和第二设备,在第一设备到第二设备的链路上配置至少一个隧道1。多个网元可以为一个或多个接入终端网元提供一种或多种服务(例如网络连接),还可以安装于或漫游过相关联的地理区域中,还可以与一个或多个网络管理实体通信以促成广域网络连接。例如,该网元可以为用户设备、路由器或交换机等等。
基于上述隧道链路检测系统,如图2所示,图2是本发明实施例提供了一种单层隧道KA报文转发的流程示意图。第一设备DUT1配置源地址SIP=LP1,VPN1;目的地址DIP=LP2,VPN1,隧道1所绑定的VPN2。第二设备配置源地址SIP=LP2,VPN1,目的地址DIP=LP1,VPN1,隧道1所绑定的VPN2。数据转发的流程如下:
S1,DUT1向DUT2发送请求(request)报文,如图3所示,图3是本发明实施例提供的一种请求报文的示意图。该请求报文从外向内依次为eth头、Tunnel1、Gre头、Tunnel1反转以及KA报文。
S2,DUT2从外联口收到请求报文之后,使用外联口VPN1+目的地址LP2查找路由表,确定该请求报文是发送给DUT2,在上报给DUT进行处理之前确定报文protocol=47为GRE报文,且GRE头中protocol type为0x800,从而判断内层报文为数据报文,继续使用外联口VPN1+tunnel1的LP1+LP2查解封装表,如果查找成功,则解除外层隧道和Gre头,并从解封装表中获取tunnel1所绑定的VPN2、以及源地址及目的地址对应的VPN1。
S3,DUT2根据内层tunne1(反转)的DIP,使用获取的源地址及目的地址对应的VPN1+LP1向DUT1发送回复(reply)报文。如图4所示,图4是本发明实施例提供的一种回复报文的示意图。从内向外依次包括eth头、Tunnel1反转以及KA报文。
S4,DUT1接收到回复报文之后,使用外联口VPN1+LP1查找路由表,确定请求报文是发送给DUT1,在上报给DUT1进行处理之前确定protocol为Gre报文,且Gre报文的protocoltype为0X0000,因此确定内层报文为KA报文,由此可以检测到隧道链路连通可达。最后使用tunnel1的源地址和目的地址对应的VPN1+反转的LP1查路由表,将报文上报给DUT1进行处理。
综上所述,隧道接口配置KA报文具有如下作用:第一,有主隧道和备隧道的正常场景下,且无攻击或者其他到目的地的路由,隧道上配置保活报文可以实现秒级或者毫秒级的快速路由切换到备隧道。第二,在异常场景下,如果存在攻击者或者其他网络(图1中的粗线)的非隧道的路由、且到网络2不通,这时在链路2或者链路3出现故障的情况下,对于DUT1设备的tunnel来说到目的地有可达的路由,隧道就会建立,一旦隧道建立,那么流量转发报文的路由表就存在,流量通过图1中的粗线进行转发,导致报文没有到达网络2而被丢弃。第三,如果配置KA报文,DUT1沿着粗线发送请求报文,由于对端无隧道、隧道配置错误或其他原因,DUT1接收不到对端返回的回复报文,因此DUT1检测到链路故障,将tunne1接口直接断开,那么流量转发路由就不存在,进而不再发给该隧道流量,避免数据空洞。第四,在嵌套隧道的情况下(tunnel2的目的地路由出接口为tunnel1隧道),如果tunnel1上配置了保活报文,正常情况可以通过tunnel1检测到的链路故障,tunnel1断开,这样隧道2的目的地会发现路由不可达,进而实现联动切换到备链路或者路由收敛的目的。但是,当到tunne2的目的地存在其他不可控的路由或者攻击存在的异常情况下,无法检测到链路故障而依旧保持隧道2导致丢包,因此内层隧道和外层隧道均需要配置KA。
但是,目前在GRE跨VPN嵌套的场景下,如果在内外隧道上配置KA报文,接收到回复报文之后,使用外层VPN1+外层隧道的source1+外层隧道的destination1查解封装表,且将外层隧道的source1和destination1的VPN1作为内层隧道解封装的VPN,而内层隧道的source2和destination2使用的为VPN2,这样导致在跨VPN嵌套的情况下,由于查不到路由表项,转发丢包,这样不仅不会帮助检测链路状态,而且会直接导致GRE隧道断开,导致业务流量全部中断。为了解决上述问题,提供了如下解决方案。
请参考图5,图5是本发明实施例提供的一种隧道链路检测方法的流程示意图。如图所示,该方法包括但不限于:
S501,第一设备向第二设备发送请求报文,所述请求报文包括最内层的保活报文。
如图6所示,图6是本发明实施例提供的一种GRE跨VPN嵌套场景的示意图,第一设备DTA与第二设备DTB之间存在两条隧道Tunnel1和Tunnel2,DTA的Tunnel1上配置源地址Source=vpn1,IP1;目的地址Destination=vpn1,IP2;Tunnel1所绑定的vpn2。DTB的Tunnel1上配置源地址Source=vpn1,IP12;目的地址Destination=vpn1,IP1,Tunnel1所绑定的vpn2。DTA的Tunnel2上配置源地址Source=vpn2,IP3;目的地址Destination=vpn2,IP4,Tunnel2所绑定的vpn3。DTB的Tunnel2上配置源地址Source=vpn2,IP4;目的地址Destination=vpn2,IP3,Tunnel2所绑定的vpn3。并且,在DTA上配置Tunnel1和Tunnel2的路由地址以及Tunnel2接口下配置KA检测,在DTB上配置Tunnel1和Tunnel2的路由地址。
如图7所示,图7是本发明实施例提供的一种报文格式的结构示意图。DTA向DTB发送的请求报文中包括三层报文,外层报文的IP头包括tunnel1的源地址、目的地址和protocol type,内层报文的IP头包括tunnel2的源地址、目的地址和protocol type,最内层报文的IP头是封装的是保活报文的IP头。
首先,DTB从外联口接收到DTA发送的请求报文之后,使用外联口VPN1+外层报文的目的地址IP2查找路由表,确定该请求报文是发送给DTB自己的,在上报给DTB进行处理之前判断外层报文的protocol为Gre(协议=47),且判断Gre头的protocol type为0X0800,进而确定外层报文为GRE数据报文,因此使用外联口VPN1+tunnel1的源地址和目的地址查解封装表,在查找成功后,解除外层的两层封装,且从解封装表中获取tunnel1所绑定的VPN2、以及tunnel1的源地址和目的地址对应的VPN1。
然后,DTB继续解析报文,判断内层报文的protocol为Gre(协议=47),且判断Gre头的protocol type为0X0800,因此确定内层报文为GRE数据报文,通过获取到的tunnel1所绑定的VPN2+tunnel2的源地址和目的地址查找解封装表,如果查找成功,解除内层的两层封装,且从解封装表中获取tunnel2所绑定的VPN3以及tunnel2的源地址和目的地址对应的VPN2。
最后,DTB解析最内层报文确定最内层报文为KA报文,使用tunnel2的源地址和目的地址对应的VPN2+目的地址IP3查路由表,确定tunnel2的目的地路由出接口为tunnel1,因此封装一层tunnel1,并向DTA发送封装后的报文(回复报文)。
S502,所述第一设备接收所述第二设备发送的回复报文,所述回复报文包括封装有外层隧道的所述保活报文。
如图7所示,在DTB向DTA发送的请求报文中包括二层报文,外层报文的IP头包括tunnel1的源地址、目的地址和protocol type,内层报文的IP头包括tunnel2的源地址、目的地址和protocol type。
S503,所述第一设备使用外联口的第一虚拟专用网络的标识、所述外层隧道的目的地址和源地址查找解封装表,若查找成功,则解除所述回复报文的外层封装,并从所述解封装表中获取所述外层隧道所绑定的第二虚拟专用网络的标识和所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识。
具体实现中,DTA使用外联口接收到回复报文之后,同样使用外联口VPN1+目的地址IP1查路由表,确定该回复报文是发送给DTA,在上报给DTA处理之前,根据报文的protocol和GRE头的protocol type,判断该回复报文的外层报文为数据报文,因此使用外联口VPN1+目的地址IP1+源地址IP2查解封装表,当查找成功时,解除外层的两层封装,并从解封装表中获取到tunnel1所绑定的VPN2、以及tunnel1的源地址和目的地址对应的VPN1。
S504,所述第一设备将所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识修改为内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识,并使用所述第二虚拟专用网络的标识和所述内层隧道的目的地址查找所述解封装表,若查找成功,则确定所述隧道链路连通可达。
具体实现中,在从所述解封装表中获取所述外层隧道所绑定的第二虚拟专用网络的标识和所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识之后,所述第一设备可以获取所述回复报文中内层报文的通用路由封装协议头部的协议信息;然后根据所述协议信息,确定所述回复报文中的内层报文是否为所述保活报文。
进一步的,当所述回复报文中的内层报文为所述保活报文时,所述第一设备将所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识修改为内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识,并使用修改后的所述第二虚拟专用网络的标识和所述内层隧道的目的地址查找所述解封装表。当所述回复报文中的内层报文为数据报文时,使用从所述解封装表中获取到的所述外层隧道所绑定的第二虚拟专用网络的标识、所述内层隧道的目的地址和源地址查找所述封装表;若查找成功,则将所述数据报文上报给所述第一设备中的控制器进行处理。
例如,DTA在解除外层封装之后,如果确定内层报文为KA报文,则根据从解封装表中获取到的tunnel1的源地址和目的地址对应的VPN1+tunnel2的源地址IP4(获取VPN2)查主机路由:判断VPN1!=VPN2,则对获取到的tunnel1的目的IP进行VPN重定向,将VPN1重定向到VPN2中,使用VPN2+目的地址IP3查解封装表,由于tunnel2的源地址和目的地址对应VPN2,因此采用重定向的VPN2查封装表成功,最后将报文上报给DTA进行处理;如果确定内层报文为数据报文,跳过VPN重定向,根据从解封装表中获取到的tunnel1所绑定的VPN2+tunnel2的目的地址IP3+源地址IP4查解封装表,查找成功。
可选的,从所述解封装表中获取所述外层隧道所绑定的第二虚拟专用网络的标识和所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识之后,所述第一设备可以获取所述回复报文中外层报文的通用路由封装协议头部的接收字段;然后根据所述接收字段,确定所述回复报文中是否存在内层报文。当所述接收字段为非0时,所述第一设备确定所述回复报文存在所述内层报文,当所述接收字段为0时,所述第一设备确定所述回复报文不存在所述内层报文
可选的,当所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识与所述内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识相同时,使用所述第一虚拟专用网络的标识查找所述解封装表。
例如,如果VPN1==VPN2(VPN标识),则将VPN1作为内层解析的依据,如果内层报文是KA报文,则继续使用VPN1+目的地址IP3查解封装表、或者如果内层报文是数据报文,则使用VPN1+目的地址IP3+源地址IP4查解封装表,均能查找成功。
在本发明实施例中,在GRE迭代跨VPN场景下,在第一设备接收到第二设备发送的回复报文之后,在解析内层报文时,将外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识重定向位内层隧道的源地址和目的地址对应的第二虚拟专用网络的标识,然后根据内层隧道的源地址和目的地址对应的第二虚拟专用网络的标识和内层隧道的目的地址查找所述解封装表,从而保证查找解封装表成功,保证检测隧道的可达性,保证业务快速切换和收敛。通过使用VPN重定向技术对KA报文进行处理,解除GRE迭代跨VPN的场景限制。
上述详细阐述了本发明实施例的方法,下面提供了本发明实施例的装置。
请参见图8,图8是本申请实施例提供的一种隧道链路检测装置的结构示意图,该终端可以包括发送模块801、接收模块802和处理模块803,其中,各个模块的详细描述如下。
发送模块801,用于向第二设备发送请求报文,所述请求报文包括最内层的保活报文;
接收模块802,用于接收所述第二设备发送的回复报文,所述回复报文包括封装有外层隧道的所述保活报文;
处理模块803,用于使用外联口的第一虚拟专用网络的标识、所述外层隧道的目的地址和源地址查找解封装表,若查找成功,则解除所述回复报文的外层封装,并从所述解封装表中获取所述外层隧道所绑定的第二虚拟专用网络的标识和所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识;
处理模块803,还用于将所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识修改为内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识,并使用所述第二虚拟专用网络的标识和所述内层隧道的目的地址查找所述解封装表,若查找成功,则确定所述隧道链路连通可达。
可选的,处理模块803,还用于获取所述回复报文中内层报文的通用路由封装协议头部的协议信息;根据所述协议信息,确定所述回复报文中的内层报文是否为所述保活报文。
可选的,处理模块803具体用于:当所述回复报文中的内层报文为所述保活报文时,将所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识修改为内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识。
可选的,处理模块803具体用于:当所述回复报文中的内层报文为数据报文时,使用从所述解封装表中获取到的所述外层隧道所绑定的第二虚拟专用网络的标识、所述内层隧道的目的地址和源地址查找所述封装表;
若查找成功,则将所述数据报文上报给所述第一设备中的控制器进行处理。
可选的,处理模块803,还用于获取所述回复报文中外层报文的通用路由封装协议头部的接收字段;根据所述接收字段,确定所述回复报文中是否存在内层报文。
可选的,处理模块803,还用于当所述接收字段为非0时,确定所述回复报文存在所述内层报文。
可选的,处理模块803,还用于当所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识与所述内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识相同时,使用所述第一虚拟专用网络的标识查找所述解封装表。
需要说明的是,各个模块的实现还可以对应参照图5所示的方法实施例的相应描述,执行上述实施例中终端所执行的方法和功能。
请继续参考图9,图9是本申请提出的一种隧道链路检测设备的结构示意图。如图所示,该隧道链路检测设备可以包括:至少一个处理器901,至少一个通信接口902,至少一个存储器903和至少一个通信总线904。
其中,处理器901可以是中央处理器单元,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。通信总线904可以是外设部件互连标准PCI总线或扩展工业标准结构EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信总线904用于实现这些组件之间的连接通信。其中,本申请实施例中设备的通信接口902用于与其他节点设备进行信令或数据的通信。存储器903可以包括易失性存储器,例如非挥发性动态随机存取内存(Nonvolatile Random Access Memory,NVRAM)、相变化随机存取内存(PhaseChange RAM,PRAM)、磁阻式随机存取内存(Magetoresistive RAM,MRAM)等,还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、闪存器件,例如反或闪存(NORflash memory)或是反及闪存(NAND flash memory)、半导体器件,例如固态硬盘(SolidState Disk,SSD)等。存储器903可选的还可以是至少一个位于远离前述处理器901的存储装置。存储器903中存储一组程序代码,且处理器901执行存储器903中上述第一设备所执行的程序。
向第二设备发送请求报文,所述请求报文包括最内层的保活报文;
接收所述第二设备发送的回复报文,所述回复报文包括封装有外层隧道的所述保活报文;
使用外联口的第一虚拟专用网络的标识、所述外层隧道的目的地址和源地址查找解封装表,若查找成功,则解除所述回复报文的外层封装,并从所述解封装表中获取所述外层隧道所绑定的第二虚拟专用网络的标识和所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识;
将所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识修改为内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识,并使用所述第二虚拟专用网络的标识和所述内层隧道的目的地址查找所述解封装表,若查找成功,则确定所述隧道链路连通可达。
可选的,处理器901还用于执行如下操作:
获取所述回复报文中内层报文的通用路由封装协议头部的协议信息;
根据所述协议信息,确定所述回复报文中的内层报文是否为所述保活报文。
可选的,处理器901还用于执行如下操作:
当所述回复报文中的内层报文为所述保活报文时,将所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识修改为内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识。
可选的,处理器901还用于执行如下操作:
当所述回复报文中的内层报文为数据报文时,使用从所述解封装表中获取到的所述外层隧道所绑定的第二虚拟专用网络的标识、所述内层隧道的目的地址和源地址查找所述封装表;
若查找成功,则将所述数据报文上报给所述第一设备中的控制器进行处理。
可选的,处理器901还用于执行如下操作:
获取所述回复报文中外层报文的通用路由封装协议头部的接收字段;
根据所述接收字段,确定所述回复报文中是否存在内层报文。
可选的,处理器901还用于执行如下操作:
当所述接收字段为非0时,确定所述回复报文存在所述内层报文。
可选的,处理器901还用于执行如下操作:
当所述外层隧道的源地址和目的地址对应的第一虚拟专用网络的标识与所述内层隧道的源地址和目的地址对应的所述第二虚拟专用网络的标识相同时,使用所述第一虚拟专用网络的标识查找所述解封装表。
进一步的,处理器还可以与存储器和通信接口相配合,执行上述申请实施例中上述第一设备的操作。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。