System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及传输与承载网-ip技术-tcp/ip,尤其是涉及一种基于dpdk-pdump的nfv平台抓包方法及装置。
技术介绍
1、目前,高性能、低延迟的网络应用程序越来越多的使用了开源组件dpdk,并且dpdk提供了一个通用的抓包工具dpdk-pdump,该工具可以对dpdk纳管的网卡进行抓包,可以通过源ip、目的ip、源端口、目的端口等信息过滤数据报文;
2、在nfv平台下,如lb、fw等通用网元已经运行在虚拟机内,且各个网元都有独立的vpc隔离,其他vpc内的用户想要使用这些通用网元,必然需要跨vpc访问;且运行在nfv平台上的通用网元,都在在vxlan解析的基础上,增加了geneve协议的封装,使得真实用户报文,在vfc平台转发过程中,数据报文存在多种形态,想要获取真实用户报文,使用传统的抓包工具,已经变得十分不方便。
3、上述中的现有技术方案存在以下缺陷:
4、通常传统做法:
5、1.使用通用dpdk-pdump对数据报文全量抓包;
6、2.使用通用的过滤条件对outer层报文进行过滤;
7、第一种方法会抓取转发节点所有数据报文,在数据量大的时候,会影响转发程序性能,且大量的数据报文中查找真实用户报文也变的十分困难;
8、第二种方法是通用过滤条件只能对报文的outer层信息进行过滤,即使通过vpc能够过滤部分报文,但是真实用户报文在转发过程中至少会在3个vpc内转发,一次抓包只能捕获一个vpc的报文,导致很难同时捕获到完整的真实用户报
技术实现思路
1、本专利技术的目的是提供一种基于dpdk-pdump的nfv平台抓包方法方法及装置,增加了丰富、灵活的过滤规则,使抓包工具能够适应nfv平台复杂的网络报文,并从中抓取想要捕获的报文。
2、为实现上述目的,本专利技术提供了如下技术方案:
3、一种基于dpdk-pdump的nfv平台抓包方法,包括以下步骤:
4、步骤一:dpdk的librte_pdump库中修改过滤规则struct pdump_filter的数据结构,使该数据结构可以保存outer层、inner层和geneve层的过滤字段;
5、步骤二:dpdk的librte_pdump库修改数据包过滤函数pdump_filter,使该过滤函数可以根据新的过滤规则完成数据包的捕获;
6、步骤三:dpdk-pdump抓包工具修改命令行参数,使用户可以通过命令行输入,指定多个过滤规则;
7、步骤四:修改dpdk-pdump代码中parse_pdump函数,取消该函数中对原始过滤字段的解析;
8、步骤五:修改dpdk-pdump代码中新增的parse_filter函数,解析命令行参数--filter指定的过滤规则。
9、作为本专利技术所述一种基于dpdk-pdump的nfv平台抓包方法的一种优选方案,其中,所述步骤一,具体还包括以下子步骤:
10、s1.1:dpdk的librte_pdump库中修改struct pdump_filter结构,包含mask属性,pdump_filter_entry数组(每一个entry就是一个过滤规则);
11、s1.2:mask属性使用int类型,每一个bit为代表一种属性,目前使用到的属性rte_pdump_filter_mask_outer(具有outer层过滤字段)、rte_pdump_filter_mask_inner(具有内层过滤字段)和rte_pdump_filter_mask_geneve(具有geneve层过滤字段)。
12、作为本专利技术所述一种基于dpdk-pdump的nfv平台抓包方法的一种优选方案,其中,所述步骤一,具体还包括以下子步骤:
13、s1.3:每一个pdump_filter_entry过滤规则,包含outer层、inner层、geneve层过滤字段;outer层过滤字段包含通用字段:src-host(源ip地址)、dst-host(目的ip地址)、host(ip地址)、proto(协议,支持tcp、udp、icmp)、proto-port(协议端口)、src-port(源端口)、dst-port(目的端口);以及特殊字段:vni(vxlan协议id);inner层过滤字段包含通用字段:在outer层通用过滤字段的基础上,增加前缀i-,如内层ip地址过滤字段为i-host;geneve层过滤字段包含通用字段:在outer层通用过滤字段的基础上,增加前缀g-,如geneve层ip地址过滤字段为g-host,特殊字段:gwlbe id(为geneve层可拓展用户自定义opt中定义的业务对象id)。
14、作为本专利技术所述一种基于dpdk-pdump的nfv平台抓包方法的一种优选方案,其中,所述步骤二,具体还包括以下子步骤:
15、s2.1:判断过滤规则中的mask,如果不存在任何过滤属性,说明抓包请求中没有设置任何过滤参数,不需要解析数据包,直接快速捕获数据包;
16、s2.2:如果mask包含rte_pdump_filter_mask_outer属性,解析数据包outer层源ip地址、目的ip地址、源端口、目的端口、协议类型和vni字段。
17、作为本专利技术所述一种基于dpdk-pdump的nfv平台抓包方法的一种优选方案,其中,所述步骤二,具体还包括以下子步骤:
18、s2.3:如果mask包含rte_pdump_filter_mask_inner或rte_pdump_filter_mask_geneve属性,解析数据包所有剩余层级信息,包含inner层和geneve层的源ip地址、目的ip地址、源端口、目的端口、协议类型字段,以及geneve的gwlbe id字段;
19、s2.4:使用解析的数据包各层信息,对所有过滤规则进行匹配,存在任何一个过滤规则的匹配,则将该数据包捕获。
20、作为本专利技术所述一种基于dpdk-pdump的nfv平台抓包方法的一种优选方案,其中,所述步骤三,具体包括以下子步骤:
21、s3.1:命令行参数--pdump中取消所有过滤相关的字段;
22、s3.2:新增命令行参数--filter,通过该参数可以设置一个过滤规则,且该参数可以多次使用,以设置多个或关系的过滤规则。
23、作为本专利技术所述一种基于dpdk-pdump的nfv平台抓包方法的一种优选方案,其中,所述步骤三,具体还包括以下子步骤:
24、s3.3:命令行参数--filter中,过滤字段支持步骤s1.3中描述的outer层、inner层和geneve层的所有过滤字段。
25、作为本专利技术所述一种基于dpdk-pdump的nfv平台抓包方法的一种优选方案,其中,所述步骤五,具体包括以下子步骤:
26、本文档来自技高网...
【技术保护点】
1.一种基于dpdk-pdump的nfv平台抓包方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤一,具体还包括以下子步骤:
3.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤一,具体还包括以下子步骤:
4.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤二,具体还包括以下子步骤:
5.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤二,具体还包括以下子步骤:
6.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤三,具体包括以下子步骤:
7.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤三,具体还包括以下子步骤:
8.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤五,具体包括以下子步骤:
...【技术特征摘要】
1.一种基于dpdk-pdump的nfv平台抓包方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤一,具体还包括以下子步骤:
3.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤一,具体还包括以下子步骤:
4.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤二,具体还包括以下子步骤:
5.根据权利要求1所述的基于dpdk-pdump的nfv平台抓包方法,其特征在于,所述步骤二,具体还包括以下子步骤:
...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。