通过ACL快速定位特定流报文丢弃原因的方法及装置与流程

文档序号:16198789发布日期:2018-12-08 06:24阅读:419来源:国知局
通过ACL快速定位特定流报文丢弃原因的方法及装置与流程

本发明涉及网络通信领域,尤其涉及一种通过acl快速定位特定流报文丢弃原因的方法及装置。

背景技术

数据通信厂商的网络交换设备通常提供二、三层网络交换功能,为了提升设备的可维护性,通常需要提供多种调试诊断功能,其中就包括报文在设备上丢弃原因诊断的功能。传统的网络交换设备大都是通过提供基于端口的报文丢弃原因记录及丢弃个数统计的能力。

然而,通常一个端口上会有多条流同时进行转发,基于端口的丢包统计只能看出整个端口的丢包情况,无法快速识别定位出特定流是否有丢包、丢包原因是什么,往往需要结合业务配置等信息进一步分析,定位效率低。

现有技术中,多条网络流量通过网络交换设备的端口1进入设备进行转发,当交换设备出现丢包问题时,查询端口的丢包统计信息,结果发现端口1有“ttlcheckfail”导致的丢包计数增长,然而,按照现有技术,仅能获知端口1上有ip报文因为ttl检查被丢弃,但实际上,端口1上有多种业务流量同时进来,比如ssh、telnet、以及其他基于ip报文的业务,这些业务的报文都可能出现ttl检查失败的问题,而现有技术无法区分当前端口上因为ttl检查被丢弃的报文的具体业务类型。



技术实现要素:

为解决上述技术问题,本发明的目的在于提供一种通过acl快速定位特定流报文丢弃原因的方法及装置。

为了实现上述发明目的之一,本发明一实施方式提供一种通过acl快速定位特定流报文丢弃原因的方法,所述方法包括:s1、为网络交换设备的端口配置acl规则,所述acl规则用于过滤识别不同业务的报文;

s2、当任一端口接收到报文后,获取报文特征作为关键字以匹配acl规则;

s3、判断当前报文是否匹配到对应的acl规则,

若是,在确认当前报文被丢弃后,对当前报文执行acl规则对应的action,以记录当前报文对应的丢包统计信息;所述丢包统计信息包括:任一报文的丢包原因、丢包计数以及最后丢弃时间至少其中之一;

若否,正常转发当前报文。

作为本发明一实施方式的进一步改进,所述步骤s3后,所述方法还包括:

在任一报文被丢弃后,通过查询所述action,以获取被丢弃报文的丢包统计信息。

作为本发明一实施方式的进一步改进,所述步骤s1具体包括:

使用报文特征为acl的key创建acl规则,同时在acl规则上使能action。

作为本发明一实施方式的进一步改进,配置所述acl规则的action具体包括:

在转发芯片上通过唯一的id或index绑定并指向一块独立的寄存器,所述寄存器用于记录报文的丢包统计信息。

作为本发明一实施方式的进一步改进,所述步骤s3具体包括:当任一报文被丢弃并执行acl规则对应的action时,获取id或index;

以id或index查询寄存器,以获取寄存器的存储位置;

将被丢弃报文的丢包统计信息写入寄存器对应的存储位置中。

为了实现上述发明目的另一,本发明一实施方式提供一种通过acl快速定位特定流报文丢弃原因的装置,所述装置包括:配置模块,用于为网络交换设备的端口配置acl规则,所述acl规则用于过滤识别不同业务的报文;

匹配模块,用于在任一端口接收到报文后,获取报文特征作为关键字以匹配acl规则;

处理模块,用于判断当前报文是否匹配到对应的acl规则,

若是,在确认当前报文被丢弃后,对当前报文执行acl规则对应的action,以记录当前报文对应的丢包统计信息;所述丢包统计信息包括:任一报文的丢包原因、丢包计数以及最后丢弃时间至少其中之一;

若否,正常转发当前报文。

作为本发明一实施方式的进一步改进,调取模块,用于在任一报文被丢弃后,通过查询所述action,以获取被丢弃报文的丢包统计信息。

作为本发明一实施方式的进一步改进,所述配置模块具体用于:

使用报文特征为acl的key创建acl规则,同时在acl规则上使能action。

作为本发明一实施方式的进一步改进,所述配置模块还用于:在转发芯片上通过唯一的id或index绑定并指向一块独立的寄存器,所述寄存器用于记录报文的丢包统计信息。

作为本发明一实施方式的进一步改进,所述处理模块还用于:

当任一报文被丢弃并执行acl规则对应的action时,获取id或index;

以id或index查询寄存器,以获取寄存器的存储位置;

将被丢弃报文的丢包统计信息写入寄存器对应的存储位置中。

与现有技术相比,本发明通过acl快速定位特定流报文丢弃原因的方法及装置,通过acl实现基于特定流的报文丢弃情况统计,解决传统统计方式不能基于特定流统计的问题;通过本发明,可以快速定位出特定流的丢包问题原因,提高定位效率。

附图说明

图1是本发明一实施方式中通过acl快速定位特定流报文丢弃原因的方法的流程示意图;

图2是本发明一基于交换设备的具体示例的示意图;

图3是本发明一实施方式中通过acl快速定位特定流报文丢弃原因的装置的模块示意图。

具体实施方式

以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。

如图1所示,在本发明的一实施方式中,通过acl快速定位特定流报文丢弃原因的方法包括:

s1、为网络交换设备的端口配置acl规则,所述acl用于过滤识别不同业务的报文。

本发明具体实施方式中,所述步骤s1具体包括:使用报文特征为acl的key创建acl规则,同时在acl规则上使能action,所述报文特征例如:ip报文、tcp封装的传输层以及目的端口号等。

本发明较佳实施方式中,配置所述acl规则的action具体包括:在转发芯片上通过唯一的id或index绑定并指向一块独立的寄存器,所述寄存器用于记录报文的丢包统计信息;所述丢包统计信息包括:任一报文的丢包原因、丢包计数以及最后丢弃时间至少其中之一。

需要说明的是,对应于交互设备的每一端口可以任意配置acl规则,acl规则的配置方式主要依据传递报文的报文特征进行创建,故,对同一条acl规则可以应用于不同的端口,不同的端口也可以配置不同的acl规则。

为了便于理解,结合图2所示,描述一具体示例供参考。该示例中,配置的第一acl规则用于过滤识别ssh报文;第二acl规则用于过滤识别telnet报文(该报文为正常转发报文,故为其配置的acl规则未在图中体现),所述ssh报文的报文特征为:ip报文+tcp封装的传输层+目的端口号22;所述telnet报文的报文特征为:ip报文+tcp封装的传输层+目的端口号23.

相应的,分别以ip+tcp+目的端口22为acl的key创建第一acl规则;该第一acl规则通过index绑定为2的“discardinfo”寄存器;以ip+tcp+目的端口23为acl的key创建第二acl规则;该第二acl规则通过index绑定为3的“discardinfo”寄存器;相应的,将该第一以及第二acl规则均应用到端口1上。

进一步的,所述方法还包括:s2、当任一端口接收到报文后,获取报文特征作为关键字以匹配acl规则。

继续上述示例,当端口1接收到ssh报文后,获取其报文特征“ip+tcp+目的端口22”,并以其为关键字匹配acl规则;需要说明书的,本示例仅对ssh报文被丢弃为例进行说明,实际应用中,对每个特定流对应的报文业务均配置独立的acl规则,且同一acl规则可以根据每个端口传递的特定流对应的报文业务应用在不同的端口上。

进一步的,所述方法还包括:s3、判断当前报文是否匹配到对应的acl规则,若是,在确认当前报文被丢弃后,对当前报文执行acl规则对应的action,以记录当前报文对应的丢包统计信息;所述丢包统计信息包括:任一报文的丢包原因、丢包计数以及最后丢弃时间至少其中之一;若否,正常转发当前报文。

本发明较佳实施方式中,所述步骤s3具体包括:当任一报文被丢弃并执行acl规则对应的action时,获取id或index;以id或index查询寄存器,以获取寄存器的存储位置;将被丢弃报文的丢包统计信息写入寄存器对应的存储位置中。

在实际应用中,若根据报文特征匹配到对应的acl规则,并在确认当前具有该报文特征的报文为被丢弃的报文后,将该被丢弃报文的丢包统计信息写入寄存器对应的存储位置中以供后续查询。若不能匹配acl规则,则确认当前报文为正常转发的报文;若匹配到acl规则,且不是丢弃的报文,也确认当前报文为正常转发的报文,进一步的,将未匹配到acl规则的报文以及匹配到acl规则但未被丢弃的报文正常转发。

接续上述示例,端口1进来的ssh报文会匹配命中上述第一acl规则,且其他流量不会命中上述第一acl规则,在ssh报文匹配命中上述第一acl规则后,确认其被丢弃,则对该ssh报文执行对应的action。较为具体的,获取action信息中记录的地址为2的“discardinfo”寄存器的index,通过该index找到对应的地址为2的“discardinfo”寄存器位置;进一步的,将该ssh报文对应的丢包统计信息写入寄存器中,该丢包统计信息包括:丢弃原因,丢弃个数(递增方式)以及最后丢弃时间。

进一步的,在所述步骤s3后,所述方法还包括:在任一报文被丢弃后,通过查询所述action,以获取被丢弃报文的丢包统计信息。

本发明较佳实施方式中,可通过上层系统软件查询寄存器,并在ssh报文对应的地址中获取其对应的丢包统计信息,以通过查询该丢包统计信息获得该ssh报文的具体丢包信息。

本发明可以通过在端口上配置不同的acl规则,即可以快速检查哪种具体的报文流丢包。

结合图2所示,在本发明的第一实施方式中,通过acl快速定位特定流报文丢弃原因的装置包括:配置模块100、匹配模块200、处理模块300。

配置模块100用于为网络交换设备的端口配置acl规则,所述acl用于过滤识别不同业务的报文。

本发明具体实施方式中,配置模块100具体用于使用报文特征为acl的key创建acl规则,同时在acl规则上使能action,所述报文特征例如:ip报文、tcp封装的传输层以及目的端口号等。

本发明较佳实施方式中,配置模块100配置所述acl规则的action具体包括:在转发芯片上通过唯一的id或index绑定并指向一块独立的寄存器,所述寄存器用于记录报文的丢包统计信息;所述丢包统计信息包括:任一报文的丢包原因、丢包计数以及最后丢弃时间至少其中之一。

需要说明的是,对应于交互设备的每一端口可以任意配置acl规则,acl规则的配置方式主要依据传递报文的报文特征进行创建,故,对同一条acl规则可以应用于不同的端口,不同的端口也可以配置不同的acl规则。

为了便于理解,结合图1所示,描述一具体示例供参考。该示例中,配置的第一acl规则用于过滤识别ssh报文;第二acl规则用于过滤识别telnet报文,所述ssh报文的报文特征为:ip报文+tcp封装的传输层+目的端口号22;所述telnet报文的报文特征为:ip报文+tcp封装的传输层+目的端口号23.

相应的,分别以ip+tcp+目的端口22为acl的key创建第一acl规则;该第一acl规则通过index绑定为2的“discardinfo”寄存器;以ip+tcp+目的端口23为acl的key创建第二acl规则;该第二acl规则通过index绑定为3的“discardinfo”寄存器;相应的,将该第一以及第二acl规则均应用到端口1上。

匹配模块200用于在任一端口接收到报文后,获取报文特征作为关键字以匹配acl规则。

继续上述示例,当端口1接收到ssh报文后,获取其报文特征“ip+tcp+目的端口22”,并以其为关键字匹配acl规则;需要说明书的,本示例仅对ssh报文被丢弃为例进行说明,实际应用中,对每个特定流对应的报文业务均配置独立的acl规则,且同一acl规则可以根据每个端口传递的特定流对应的报文业务应用在不同的端口上。

处理模块300用于判断当前报文是否匹配到对应的acl规则,若是,在确认当前报文被丢弃后,对当前报文执行acl规则对应的action,以记录当前报文对应的丢包统计信息;所述丢包统计信息包括:任一报文的丢包原因、丢包计数以及最后丢弃时间至少其中之一;若否,正常转发当前报文。

本发明较佳实施方式中,处理模块300具体用于当任一报文被丢弃并执行acl规则对应的action时,获取id或index;以id或index查询寄存器,以获取寄存器的存储位置;将被丢弃报文的丢包统计信息写入寄存器对应的存储位置中。

在实际应用中,若根据报文特征匹配到对应的acl规则,并在确认当前具有该报文特征的报文为被丢弃的报文后,将该被丢弃报文的丢包统计信息写入寄存器对应的存储位置中以供后续查询。若不能匹配acl规则,则确认当前报文为正常转发的报文;若匹配到acl规则,且不是丢弃的报文,也确认当前报文为正常转发的报文,进一步的,将未匹配到acl规则的报文以及匹配到acl规则但未被丢弃的报文正常转发。

接续上述示例,端口1进来的ssh报文会匹配命中上述第一acl规则,且其他流量不会命中上述第一acl规则,在ssh报文匹配命中上述第一acl规则后,确认其被丢弃,则对该ssh报文执行对应的action。较为具体的,获取action信息中记录的地址为2的“discardinfo”寄存器的index,通过该index找到对应的地址为2的“discardinfo”寄存器位置;进一步的,将该ssh报文对应的丢包统计信息写入寄存器中,该丢包统计信息包括:丢弃原因,丢弃个数(递增方式)以及最后丢弃时间。

进一步的,处理模块300还用于在任一报文被丢弃后,通过查询所述action,以获取被丢弃报文的丢包统计信息。

本发明较佳实施方式中,可通过上层系统软件查询寄存器,并在ssh报文对应的地址中获取其对应的丢包统计信息,以通过查询该丢包统计信息获得该ssh报文的具体丢包信息。

本发明可以通过在端口上配置不同的acl规则,即可以快速检查哪种具体的报文流丢包。

与现有技术相比,本发明通过acl快速定位特定流报文丢弃原因的方法及装置,通过acl实现基于特定流的报文丢弃情况统计,解决传统统计方式不能基于特定流统计的问题;通过本发明,可以快速定位出特定流的丢包问题原因,提高定位效率。

以上所描述的系统实施方式仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是分开的,可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本申请可用于众多通用或专用的通信芯片中。例如:交换芯片、路由器芯片,服务器芯片等等。

应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

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