一种基于TRACERT命令的报文处理方法及装置与流程

文档序号:11147662阅读:641来源:国知局
一种基于TRACERT命令的报文处理方法及装置与制造工艺

本申请涉及网络通信技术领域,尤其涉及一种基于TRACERT命令的报文处理方法及装置。



背景技术:

在网络通信技术快速发展的今天,互联网络的运行维护日益成为保证网络信息可靠传输的重要组成部分。TRACERT命令是实现网络运维的重要命令之一。实际应用中,请求设备通过使用TRACERT命令,可向目的设备逐次发送一组五元组信息相同、而TTL(Time To Live,生存时间)初始值从1开始逐次递增的请求报文,其中,这些请求报文所构成的组可记为一请求组。该请求组中的请求报文在经过任一中间设备时,其初始值减1当中间设备发现接收到的请求报文的TTL当前值为1时,会直接将该请求报文丢弃,并向请求设备沿原路径返回一请求超时报文,以使请求设备在收到该超时报文后,再一次向该目的设备发送TTL初始值增1后的请求报文;当这一中间设备接收到TTL当前值大于1的请求报文时,则直接将该请求报文发送至下一跳中间设备,当然,这一中间设备依然会接收到该下一跳中间设备返回的请求超时报文,并将这一接收到的请求超时报文沿原路径返回至请求设备。则依照这一规律,如果该请求设备可以将请求报文送至目的设备,则认为本地与该目的设备之间的路径可达,否则,请求设备会依据已经接收到的、各中间设备返回的请求超时报文,对本地与该目的设备之间的检测路径进行故障定位及分析,从而达到网络运维的目的。然而,当TRACERT命令的测试路径包含一具有NAT(Network Address Translation,网络地址转换)功能的中间设备,且该中间设备具有FPGA(Field-Programmable Gate Array,现场可编程门阵列)与CPU(Central Processing Unit,中央处理单元)相结合的设计架构时,该基于TRACERT命令的网络运维,将由于此类中间设备所具有的报文选择性处理机制而无法实现对这一路径中故障的可靠定位及分析。

由于TRACERT命令中的请求报文一般为UDP(User Datagram Protocol,用户数据报协议)报文,请求超时报文一般为ICMP(Internet Control Message Protocol,互联网控制报文协议)报文,则根据此类设备的选择性处理机制,FPGA会首先接收到进入该设备的所有报文,比如UDP和ICMP报文,并将接收到的数量较少的、但需要CPU协助处理或者本地硬件无法处理的报文比如ICMP报文上送至CPU处理。则当FPGA接收到TTL当前值为1、即需要返回ICMP请求超时报文的请求报文时,FPGA会确认该报文需要CPU协助处理,即需要由CPU协助返回ICMP请求超时报文,然后直接将该请求报文上送至CPU;而当接收到TTL当前值大于1、即不需要本设备返回ICMP请求超时报文、但需要执行NAT转换的请求报文时,则直接根据该报文所对应的本地会话以及该会话所匹配的NAT信息,对该报文进行NAT转换,并将转换后的请求报文发送至下一跳中间设备,在这种情况下,FPGA在接收到该下一跳中间设备返回的ICMP请求超时报文时,会确认本地硬件无法处理ICMP报文并将该报文上送至CPU,而此时,CPU将因本地并没有建立该报文所对应的会话、或由于所对应的会话长时间未被访问而已经老化,而无法根据该会话所匹配的NAT信息对该ICMP报文执行正确的NAT还原操作,从而无法向请求设备转发该下一跳中间设备返回的ICMP请求超时报文,并导致请求设备对该测试路径中故障点的错误定位。



技术实现要素:

有鉴于此,本申请提供一种基于TRACERT命令的报文处理方法及装置,以在TRACERT命令的测试路径包含一具有NAT功能的中间设备、且该中间设备具有FPGA与CPU相结合的设计架构时,保证基于TRACERT命令的网络运维可以实现对其测试路径中故障的可靠定位及分析。

根据本申请实施例的第一方面,提供一种基于TRACERT命令的报文处理方法,所述方法应用于一接受TRACERT命令运行维护的网络系统,所述网络系统包括:请求设备、中间设备、以及目的设备,所述中间设备包含一采用现场可编程门阵列FPGA与中央处理单元CPU相结合设计架构的网络地址转换NAT设备,所述方法包括:

针对依次接收到的生存时间TTL值从2开始逐次递增的用户数据报协议UDP请求报文,FPGA根据控制表项将每一报文转发至CPU,所述控制表项由CPU预先发送至本地;

CPU根据接收到的TTL值为2的请求报文所携带的五元组信息和NAT信息,创建该五元组信息所对应的会话表项以及该表项与该NAT信息的对应关系;根据所述对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换,并将转换后的请求报文转发至下一跳中间设备;

CPU在接收到FPGA转发至本地的控制报文协议ICMP请求超时报文后,根据所述对应关系对接收到的ICMP请求超时报文进行NAT还原,并将还原后的请求超时报文返回至请求设备。

根据本申请实施例的第二方面,提供一种基于TRACERT命令的报文处理装置,所述装置应用于一网络系统中的NAT设备,所述网络系统接受TRACERT命令运行维护,包括:请求设备、中间设备、以及目的设备,所述NAT设备包含于所述中间设备,且采用现场可编程门阵列FPGA与中央处理单元CPU相结合的设计架构,所述装置包括:

FPGA,用于针对依次接收到的生存时间TTL值从2开始逐次递增的用户数据报协议UDP请求报文,根据控制表项将每一报文转发至CPU,所述控制表项由CPU预先发送至本地;

CPU,用于根据接收到的TTL值为2的请求报文所携带的五元组信息和NAT信息,创建该五元组信息所对应的会话表项以及该表项与该NAT信息的对应关系;根据所述对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换,并将转换后的请求报文转发至下一跳中间设备;

CPU,还用于在接收到FPGA转发至本地的控制报文协议ICMP请求超时报文后,根据所述对应关系对接收到的ICMP请求超时报文进行NAT还原,并将还原后的请求超时报文返回至请求设备。

本申请中,FPGA在接收到基于TRACERT命令的UDP请求报文时,可根据CPU预先发送至本地的控制表项,将接收到的请求报文转发至CPU,以使CPU在本地建立该报文所携带五元组信息对应的会话表项、以及该表项与待转换NAT信息的对应关系,从而使得CPU在接收到请求报文所对应的ICMP请求超时报文时,可以根据本地已经建立的对应关系,向请求设备返回正确的请求超时报文,由此保证基于TRACERT命令的网络运维可以实现对其测试路径中故障的可靠定位及分析。

附图说明

图1是本申请一种基于TRACERT命令的报文处理方法的场景示意图;

图2是本申请一种基于TRACERT命令的报文处理方法流程图;

图3是本申请一种基于TRACERT命令的报文处理方法的一个实施例流程图;

图4是本申请一种基于TRACERT命令的报文处理装置结构图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参见图1,图1是本申请一种基于TRACERT命令的报文处理方法的场景示意图。该示意图描述了一接受TRACERT命令运行维护的网络系统,该网络系统包括:请求设备、中间设备、以及目的设备,其中,中间设备可以为具有路由功能的三层设备,也可为防火墙等设备,请求设备、若干中间设备、以及目的设备共同构成了TRACERT命令运行维护的测试路径,本申请中的中间设备需包含一采用FPGA与CPU相结合设计架构的NAT设备。然而,当TRACERT命令的测试路径包含此类NAT设备时,此类设备所具有的报文选择性处理机制,可能会导致基于TRACERT命令的网络运维无法实现对这一路径中故障的可靠定位及分析。

针对这一问题,本申请提供一种基于TRACERT命令的报文处理方法,以在TRACERT命令的测试路径包含一具有NAT功能的中间设备、且该中间设备具有FPGA与CPU相结合的设计架构时,保证基于TRACERT命令的网络运维可以实现对其测试路径中故障的可靠定位及分析。

为了使本技术领域的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。

参见图2,图2是本申请一种基于TRACERT命令的报文处理方法流程图,该流程图可以包括以下步骤:

步骤201:FPGA针对依次接收到的生存时间TTL值从2开始逐次递增的用户数据报协议UDP请求报文,根据控制表项将每一报文转发至CPU,该控制表项由CPU预先发送至本地。

本实施例应用于一接受TRACERT命令运行维护的网络系统,该网络系统包括:请求设备、中间设备、以及目的设备,且中间设备中包含一采用FPGA与CPU相结合设计架构的NAT设备。

其中,TRACERT命令的执行原理已经在背景技术中详细说明,在此不再赘述,则由TRACERT命令的执行原理可知,本实施例的执行主体NAT设备会依次接收到TTL值从1开始逐次递增的UDP请求报文,依据此类NAT设备的选择性处理机制,FPGA会首先接收到进入该设备的所有报文,并将接收到的数量较少的、但需要CPU协助处理或者本地硬件无法处理的报文上送至CPU处理。

当FPGA接收到TTL值为1的请求报文,即发现该请求报文已经超时,需要本地返回ICMP请求报文时,FPGA会确认该请求报文需要CPU辅助处理,并将该报文转发至CPU,以使CPU向请求设备返回该请求报文所对应的ICMP请求超时报文。与此同时,接收到该报文的CPU还会向FPGA发送一条控制表项,该表项包含控制信息以及该报文所携带的五元组信息,用以FPGA根据该控制信息将携带该五元组信息的每一TTL值大于1的请求报文转发至本地。

当FPGA接收到TTL值大于1的请求报文时,FPGA会首先确认接收到的请求报文为转发报文,并在此基础上判断本地是否存在与该报文相匹配的控制表项,如果不存在,则在对该报文执行所需处理之后,直接将该报文发送至下一跳中间设备;如果存在,则根据该匹配的控制表项将接收到的请求报文转发至CPU。其中,上述转发报文是指:需要转发至下一跳设备的报文,上述匹配是指:该控制表项中记录的五元组信息与报文携带的五元组信息相一致。

这样一方面通过确认和判断的环节分别筛选掉了目的设备即为本设备的请求报文、以及TTL值虽大于1但不属于TRACERT命令的请求报文;另一方面则当存在与该报文相匹配的控制表项时,可以将该报文转发至CPU,从而使得CPU可以在本地建立相应的会话表项、或者在该会话表项已经建立时根据后续接收到的匹配该表项的请求报文及时对该表项的老化时长进行更新,以保证在接收到下一跳中间设备返回的ICMP请求超时报文时,不会因为该会话表项已经老化而无法将接收到的请求超时报文返回至请求设备,从而避免了执行TRACERT命令的请求设备对该测试路径中故障点的错误定位。

步骤202:CPU根据接收到的TTL值为2的请求报文所携带的五元组信息和NAT信息,创建该五元组信息所对应的会话表项以及该表项与该NAT信息的对应关系;根据对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换,并将转换后的请求报文转发至下一跳中间设备。

本领域技术人员可以理解的是,FPGA在接收到TTL值为2的请求报文时,会首先确认本地已经存在一会话表项,使得该表项中记录的五元组信息与该报文携带的五元组信息相一致、且该表项已经匹配了对应的NAT信息。在此基础上,FPGA在向CPU转发携带该五元组信息的请求报文时,可将上述匹配的对应NAT信息携带在该报文的尾部,作为建立或者维护CPU本地会话表项及该表项与该NAT信息之间对应关系的备用信息,从而进一步保证CPU对请求报文进行NAT转换、以及对请求超时报文进行NAT还原所使用的NAT信息相一致。

需要指出的是,由于防止UDP攻击等缘故会话表项的老化时长不能设置较长,且通常情况下需要CPU处理的报文数量相对较少,所以在本实施例中,CPU会针对接收到的每一TTL值大于1的请求报文,判断本地是否已创建该报文所携带五元组信息和NAT信息所对应的会话表项以及该表项与该NAT信息的对应关系;如果已经创建,则根据已创建的对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换;否则,则再次创建会话表项以及该表项与该NAT信息的对应关系、并根据创建后的对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换,从而最大限度地保证了会话表项的老化时长可以得到及时的更新。

本实施例中,上述对应关系包括两个客体以及这两个客体之间的联系,其中,两个客体分别是指:会话表项和NAT信息;联系是指该会话表项与该NAT信息之间的映射关系。

步骤203:CPU在接收到FPGA转发至本地的控制报文协议ICMP请求超时报文后,根据对应关系对接收到的ICMP请求超时报文进行NAT还原,并将还原后的请求超时报文返回至请求设备。

本领域技术人员可以理解的是,ICMP请求超时报文只在其对应请求报文的基础上封装ICMP头字段,而并不改变请求报文携带的五元组信息。

从以上方法可以看出,FPGA在接收到基于TRACERT命令的UDP请求报文时,可根据CPU预先发送至本地的控制表项,将接收到的请求报文转发至CPU,以使CPU在本地建立该报文所携带五元组信息对应的会话表项、以及该表项与待转换NAT信息的对应关系,从而使得CPU在接收到请求报文所对应的ICMP请求超时报文时,可以根据本地已经建立的对应关系,向请求设备返回正确的请求超时报文,由此保证基于TRACERT命令的网络运维可以实现对其测试路径中故障的可靠定位及分析。

参见图3,图3是本申请一种基于TRACERT命令的报文处理方法的一个实施例流程图,该流程图可以包括以下步骤:

步骤301:FPGA接收请求设备发送的TTL值为1的请求报文,并将该报文转发至CPU。

本实施例中,请求报文可以为UDP报文。

步骤302:CPU根据接收到的请求报文,向请求设备返回该报文所对应的ICMP请求超时报文。

本实施例中,当CPU判断该接收到的请求报文的TTL值为1时,CPU根据该报文中的源IP地址在本地查找相应的路由表项,并根据该路由表项中记录的出接口信息,向请求设备返回该报文所对应的ICMP请求超时报文。

步骤303:CPU根据接收到的请求报文所携带的五元组信息,生成控制表项并将生成的控制表项发送至FPGA。

本实施例中,关于控制表项的内容及作用已经在步骤201中详细说明,在此不再赘述。

步骤304:FPGA接收请求设备发送的TTL值大于1的请求报文,并在确定该报文为转发报文时,判断本地是否存在与该报文相匹配的控制表项,如果存在,则执行步骤305;如果不存在,则将该报文发送至下一跳中间设备。

本实施例中,关于转发报文的含义、确认报文为转发报文的意义、以及判断是否存在与接收到的报文相匹配的控制表项的作用已经在步骤201中详细说明,在此不再赘述。

步骤305:FPGA根据控制表项将接收到的每一TTL值大于1的请求报文转发至CPU。

本实施例中,关于配置控制表项的效果已经在步骤201中详细说明,在此不再赘述。

作为一个优选的实施例,FPGA也可以根据上述控制表项,为本地记录有与该控制表项同样五元组信息的会话表项设置一标记位,以在接收到匹配该会话表项的请求报文时,不用进一步查询与该报文相匹配的控制表项,而直接根据该会话表项将该报文转发至CPU处理。

步骤306:CPU判断本地是否已经创建接收到的报文所携带的五元组信息和NAT信息所对应的会话表项以及该表项与该NAT信息的对应关系,如果已经创建,则执行步骤308,否则,执行步骤307。

本实施例中,关于CPU为何会对每一接收到的报文都判断本地是否已经存在上述会话表项以及该表项与NAT信息的对应关系,已经在步骤202中详细说明,在此不再赘述。

步骤307:CPU根据接收到的报文所携带的五元组信息和NAT信息创建该五元组信息所对应的会话表项以及该表项与该NAT信息的对应关系,并执行步骤308。

本实施例中,关于对应关系的含义已经在步骤202中详细说明,在此不再赘述,则假设CPU接收到的报文所携带的五元组信息中,源IP为192.168.0.5、目的IP为220.181.28.42、源端口为5000、目的端口为6000、协议为UDP,该报文尾部携带的待转换NAT信息中,与源IP相对应的公网IP为218.22.192.21,与源端口相对应的公网端口为4000,则CPU本地创建的会话表项、以及该表项与该NAT信息的对应关系可以表示为如下表1的形式:

表1

步骤308:CPU根据已创建的对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换。

步骤309:CPU将转换后的请求报文转发至下一跳中间设备。

步骤310:CPU在接收到FPGA转发至本地的ICMP请求超时报文后,根据上述已经创建的对应关系对接收到的ICMP请求超时报文进行NAT还原。

本实施例中,CPU本地会接收到从下一跳中间设备开始所有中间设备返回的ICMP请求超时报文,并依次将该报文返回至请求设备。

步骤311:CPU将还原后的请求超时报文返回至请求设备。

从以上实施例可以看出,FPGA在接收到基于TRACERT命令的UDP请求报文时,可根据CPU预先发送至本地的控制表项,将接收到的请求报文转发至CPU,以使CPU在本地建立该报文所携带五元组信息对应的会话表项、以及该表项与待转换NAT信息的对应关系,从而使得CPU在接收到请求报文所对应的ICMP请求超时报文时,可以根据本地已经建立的对应关系,向请求设备返回正确的请求超时报文,由此保证基于TRACERT命令的网络运维可以实现对其测试路径中故障的可靠定位及分析。

与前述一种控制服务器关机的方法的实施例相对应,本申请还提供了一种控制服务器关机的装置的实施例。

本申请一种控制服务器关机的装置的实施例可以应用在负载均衡设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在负载均衡设备上的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。

参见图4,图4是本申请一种基于TRACERT命令的报文处理装置结构图,上述装置应用于一网络系统中的NAT设备,该网络系统接受TRACERT命令运行维护,包括:请求设备、中间设备、以及目的设备,上述NAT设备包含于上述中间设备,且采用现场可编程门阵列FPGA与中央处理单元CPU相结合的设计架构,上述装置可以包括:FPGA 410和CPU 420。

FPGA 410,用于针对依次接收到的生存时间TTL值从2开始逐次递增的用户数据报协议UDP请求报文,根据控制表项将每一报文转发至FPGA 420,上述控制表项由FPGA 420预先发送至本地;

FPGA 420,用于根据接收到的TTL值为2的请求报文所携带的五元组信息和NAT信息,创建该五元组信息所对应的会话表项以及该表项与该NAT信息的对应关系;根据上述对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换,并将转换后的请求报文转发至下一跳中间设备;

FPGA 420,还用于在接收到FPGA 410转发至本地的控制报文协议ICMP请求超时报文后,根据上述对应关系对接收到的ICMP请求超时报文进行NAT还原,并将还原后的请求超时报文返回至请求设备。

在本实施例的第一种实现方式中,上述FPGA 420,还用于:

根据FPGA 410转发至本地的TTL值为1的请求报文生成控制表项,上述控制表项包含控制信息以及该报文所携带的五元组信息,以使FPGA 410根据该控制信息将携带该五元组信息的每一TTL值大于1的请求报文转发至本地;以及用于将生成的控制表项发送至FPGA 410。

在本实施例的第二种实现方式中,上述FPGA 410还用于:

针对接收到的TTL值为1的UDP请求报文,将该请求报文直接转发至FPGA 420;

上述FPGA 420还用于:向请求设备返回该请求报文所对应的ICMP请求超时报文。

在本实施例的第三种实现方式中,上述FPGA 420还用于:

针对接收到的每一TTL值大于1的请求报文,判断本地是否已创建该报文所携带五元组信息和NAT信息所对应的会话表项以及该表项与该NAT信息的对应关系;

如果已经创建,则根据上述对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换;否则,创建该对应关系、并根据创建后的对应关系对接收到的每一TTL值大于1的请求报文进行NAT转换。

在本实施例的第四种实现方式中,上述FPGA 410具体用于:

在确定接收到的UDP请求报文为待转发至下一跳设备的报文时,判断本地是否存在与该报文相匹配的控制表项;

如果存在,则将接收到的UDP请求报文转发至FPGA 420;如果不存在,则发送至下一跳中间设备。

从以上实施例可以看出,FPGA在接收到基于TRACERT命令的UDP请求报文时,可根据CPU预先发送至本地的控制表项,将接收到的请求报文转发至CPU,以使CPU在本地建立该报文所携带五元组信息对应的会话表项、以及该表项与待转换NAT信息的对应关系,从而使得CPU在接收到请求报文所对应的ICMP请求超时报文时,可以根据本地已经建立的对应关系,向请求设备返回正确的请求超时报文,由此保证基于TRACERT命令的网络运维可以实现对其测试路径中故障的可靠定位及分析。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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