一种网络设备抓包方法及装置与流程

文档序号:11147747
一种网络设备抓包方法及装置与制造工艺

本发明涉及计算机网络技术领域,具体涉及一种网络设备抓包方法及装置。



背景技术:

路由器(Router)等网络设备用来转发报文,是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。一般地,路由器的组成部分包括数据收发接口和路由处理器等,数据收发接口有WAN接口、无线接口、LAN接口等。WAN接口为调制解调器与路由器的连接接口,无线接口为无线网卡与路由器的连接接口,LAN接口则为电脑等设备与路由器的连接接口。

若报文转发出现异常,需要抓取路由器收发的数据报文来分析报文因何种原因丢在了哪个设备上。因此需要一种网络设备抓包方法能够将经过网络设备上的报文抓取出来。

现有的网络设备抓包方法对符合设定规则的报文进行分析,且设定的规则与抓包匹配函数高度耦合,当需要增加新的规则时,需要对整个抓包程序进行修改,可扩展性差。



技术实现要素:

本发明实施例提供一种网络设备抓包方法及装置,用于解决现有的网络设备抓包方法中程序不易扩展的问题。

本发明实施例提供了一种网络设备抓包方法,包括:

获取网络设备接口的抓包配置信息;

根据所述抓包配置信息确定抓包匹配函数链表;

根据所述抓包匹配函数链表对应的匹配函数对所述网络设备接口收发的报文进行抓包匹配。

可选地,所述抓包配置信息包括:

接口、报文的协议类型、IP地址和端口号。

可选地,所述根据所述抓包匹配函数链表对应的匹配函数对所述网络设备接口收发的报文进行抓包匹配,包括:

若匹配函数判断所述网络设备接口收发的报文符合所述抓包配置信息,则匹配函数返回1。

可选地,每种抓包配置信息对应一个匹配函数;

所述方法还包括:

获取与每种抓包配置信息对应的匹配函数,设置所述每种抓包配置信息的唯一标识。

可选地,所述根据所述抓包配置信息确定抓包匹配函数链表包括:

根据所述抓包配置信息中每种抓包配置信息的唯一标识获取所述每种抓包配置信息的匹配函数;

将获取的匹配函数挂载至抓包匹配函数链表。

本发明实施例提供了一种网络设备抓包设备,包括:

抓包配置信息获取单元,用于获取网络设备接口的抓包配置信息;

抓包匹配函数链表确定单元,用于根据所述抓包配置信息确定抓包匹配函数链表;

抓包匹配单元,用于根据所述抓包匹配函数链表对应的匹配函数对所述网络设备接口收发的报文进行抓包匹配。

可选地,所述抓包配置信息包括:

接口、报文的协议类型、IP地址和端口号。

可选地,所述抓包匹配单元进一步用于:

当匹配函数判断所述网络设备接口收发的报文符合所述抓包配置信息时,则匹配函数返回1。

可选地,每种抓包配置信息对应一个匹配函数;

所述装置还包括:

匹配函数获取单元,用于获取与各个抓包配置信息对应的匹配函数,设置所述每种抓包配置信息的唯一标识。

可选地,所述抓包匹配函数链表确定单元包括:

匹配函数获取模块,用于根据所述抓包配置信息中每种抓包配置信息的唯一标识获取所述每种抓包配置信息的匹配函数;

抓包匹配函数链表确定模块,用于将获取的匹配函数挂载至抓包匹配函数链表。

本发明实施例提供的网络设备抓包方法及装置,获取网络设备接口的抓包配置信息;根据所述抓包配置信息确定抓包匹配函数链表;根据所述抓包匹配函数链表对应的匹配函数对所述网络设备接口收发的报文进行抓包匹配。本发明实施例对抓包配置信息和匹配函数进行了解耦,单独进行开发,避免了现有网络设备抓包方法中程序不易扩展的缺陷,当需要增加新的配置信息时,无需对整个抓包程序进行修改,提高了程序的可扩展性,易于维护。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一个实施例的网络设备抓包方法的流程示意图;

图2是本发明一个实施例的网络设备抓包装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是本发明一个实施例的网络设备抓包方法的流程示意图。如图1所示,该实施例的方法包括:

S11:获取网络设备接口的抓包配置信息;

需要说明的是,网络设备的接口数量通常比较多,确定接口,可以提高抓包的准确性。本发明实施例针对各个接口设置抓包配置信息。抓包配置信息实质是抓包规则,抓包程序根据抓包规则进行抓包,符合抓包规则的进行抓取,不符合抓包规则的不进行抓取。

S12:根据所述抓包配置信息确定抓包匹配函数链表;

需要说明的是,本发明实施例的抓包匹配函数链表包括至少一个匹配函数,用来判断是否满足抓包规则,匹配函数的内容是不会变化的,就是根据规则对报文进行匹配,抓包配置信息中包括哪些规则就将对应的匹配函数挂在到抓包匹配函数链表上。

S13:根据所述抓包匹配函数链表对应的匹配函数对所述网络设备接口收发的报文进行抓包匹配;

需要说明的是,当需要对网络设备的某个接口进行抓包时,那么就申请一块内存,内存信息就是抓包规则中包含的信息,然后将该内存挂在对应的接口的属性信息capture_rule里面。这样当接口收到报文时,会查找到对应capture_rule是否有对应的数值,如果没有的话,说明没有抓包规则,就不需要进行抓包,如果发现有对应的数值,即有相关的抓包规则的话,那么说明需要抓包。

本发明实施例提供的网络设备抓包方法,对抓包配置信息和匹配函数进行了解耦,单独进行开发,避免了现有网络设备抓包方法中程序不易扩展的缺陷,当需要增加新的配置信息时,无需对整个抓包程序进行修改,提高了程序的可扩展性,易于维护。

具体地,所述抓包配置信息包括:

接口、报文的协议类型、IP地址和端口号。

需要说明的是,报文的协议类型包括常见的arp,rarp,icmp,tcp,udp,other,any,其中other表明除了arp,rarp,tcp和udp之外的其他协议的报文,而any表明所有协议的报文都要抓。IP地址分为源IP地址和目的IP地址;除arp和rarp不需要指定IP地址外,其他对应的协议都根据需要指定或者不指定IP地址。端口号分为源端口号和目的端口号;tcp和udp可以选择指定或者不指定端口号,其他协议都不需要指定端口号。例如:“在接口2上抓取源IP地址是1.1.1.2,目的IP是2.2.2.2的协议是udp,端口是1234的报文”为接口2的抓包配置信息。

在实际应用中,为上述四种规则分别设置对应的匹配函数,匹配函数链表是根据抓包配置信息设置的四个匹配函数中的一个或多个。

采用匹配链表设置与抓包配置信息对应的匹配函数,匹配链表上的匹配函数都需要执行,而如果采取数组设置匹配函数,那么还需要判断数组中的函数是否存在,以及函数是否是当前规则可用等情况。因此,本发明实施例采用匹配函数链表的形式设置配置函数,提高了抓包程序执行的效率。

在本发明实施例的一种可选的实施方式中,与图1中的方法类似,步骤S13包括:

若匹配函数判断所述网络设备接口收发的报文符合所述抓包配置信息,则匹配函数返回1。

需要说明的是,匹配函数的返回值是0或者1,也可以是其他数值,用来表明是否匹配成功,匹配函数的入参是抓包配置信息以及报文。以匹配IP地址的函数为例,通过解析报文中的IP地址后,就可以和配置信息中记录的IP地址进行比较,然后返回比较结果。

进一步地,所述方法还包括:

获取与各个抓包配置信息对应的匹配函数,设置所述每种抓包配置信息的唯一标识。

在实际应用中,将每种抓包配置信息设置唯一标识ID,且每种抓包配置信息对应一个匹配函数。

进一步地,所述根据所述抓包配置信息确定抓包匹配函数链表包括:

根据所述抓包配置信息中每种抓包配置信息的唯一标识获取所述每种抓包配置信息的匹配函数;

将获取的匹配函数挂载至抓包匹配函数链表。

举例来说,抓包配置信息中包括IP地址,那么就可以根据IP地址的唯一标识ID找到对应的匹配函数,然后将该函数挂到匹配函数链表上即可。如果抓包配置信息中不包括IP地址,那么就无需将IP地址对应的匹配函数挂到匹配函数链表上。

可理解的是,本发明实施例将规则信息和匹配函数有效的进行了解耦和,可以单独进行开发,也可以根据实际情况进行扩展,比如需要对多MAC地址进行匹配,那么仅仅需要在匹配规则中添加MAC地址,同时添加一个匹配MAC地址的函数就可以了。

图2是本发明一个实施例的网络设备抓包装置的结构示意图。如图2所示,该实施例的装置包括:

抓包配置信息获取单元21,用于获取网络设备接口的抓包配置信息;

抓包匹配函数链表确定单元22,用于根据所述抓包配置信息确定抓包匹配函数链表;

抓包匹配单元23,用于根据所述抓包匹配函数链表对应的匹配函数对所述网络设备接口收发的报文进行抓包匹配。

本发明实施例提供的网络设备抓包装置,对抓包配置信息和匹配函数进行了解耦,单独进行开发,避免了现有网络设备抓包方法中程序不易扩展的缺陷,当需要增加新的配置信息时,无需对整个抓包程序进行修改,提高了程序的可扩展性,易于维护。

进一步地,所述抓包配置信息包括:

接口、报文的协议类型、IP地址和端口号。

抓包匹配单元23进一步用于:

当匹配函数判断所述网络设备接口收发的报文符合所述抓包配置信息时,则匹配函数返回1。

本发明实施例中,每种抓包配置信息对应一个匹配函数;;

所述装置还包括:

匹配函数获取单元,用于获取与每种抓包配置信息对应的匹配函数,设置所述每种抓包配置信息的唯一标识。

具体地,抓包匹配函数链表确定单元22包括:

匹配函数获取模块,用于根据所述抓包配置信息中每种抓包配置信息的唯一标识获取所述每种抓包配置信息的匹配函数;

抓包匹配函数链表确定模块,用于将获取的匹配函数挂载至抓包匹配函数链表。

本发明实施例的网络设备抓包装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。

本发明实施例提供的网络设备抓包方法及装置,获取网络设备接口的抓包配置信息;根据所述抓包配置信息确定抓包匹配函数链表;根据所述抓包匹配函数链表对应的匹配函数对所述网络设备接口收发的报文进行抓包匹配。本发明实施例对抓包配置信息和匹配函数进行了解耦,单独进行开发,避免了现有网络设备抓包方法中程序不易扩展的缺陷,当需要增加新的配置信息时,无需对整个抓包程序进行修改,提高了程序的可扩展性,易于维护。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

需要说明的是术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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